Cisco Network Service Orchestrator是Tail-f网络控制系统(NCS)的演进。 Tail-f于2014年被思科收购。该产品已得到增强,并构成了思科NSO的基础。

1. 下载安装

1.1 下载

下载地址

1.2 安装

sh nso-4.7.linux.x86_64.signed.bin
sh nso-4.7.linux.x86_64.installer.bin $HOME/nso-4.7
source $HOME/nso-4.7/ncsrc

1.3 启动、停止

1.3.1 创建启动环境

ncs-setup --netsim-dir ./netsim --dest . 

说明:

  1. --netsim-dir:从该路径读取模拟数据
  2. --dest:创建目录用来保存日志,数据库文件,配置文件

1.3.2 启动NSO

ncs

1.3.3 停止NSO

ncs --stop

1.3.1 启动停止模拟器

ncs-netsim start
ncs-netsim stop

1.4 WEB访问

http://<ip>:8080

用户名:admin
密码:admin

2. 使用说明

2.1 NSO命令行

2.1.1 进入NSO CLI终端

ncs_cli -C -u admin

2.1.2 启用开发者模式

license smart development enable

2.1.3 查看license

show license status

2.1.4 查看运行设备

# 查看所有设备
show running-config devices device

# 查看设备c0
show running-config devices device c0 config

# 查看设备c0 c1 c2
show running-config devices device c0..2 config ios:router

2.1.5 查看设备connect状态

 devices connect

2.1.6 同步设备配置到数据库

devices sync-from

2.2 NSO模拟器命令行

2.2.1 创建思科ios模拟设备

ncs-netsim create-network $NCS_DIR/packages/neds/cisco-ios 3 c

2.2.2 启动NSO模拟器

ncs-netsim start

2.2.3 进入模拟设备

 ncs-netsim cli-i <设备名>
 例如:
 ncs-netsim cli-i c1

3. NSO框架

NSOFramwork.png

3.1 TIPs

3.1.1 管理设备

  1. 支持设备同步配置 (命令)
  2. 每次操作视为一个原子操作,要么完全成功,要么恢复到操作前的状态 (快照恢复)
  3. 可以根据实际情况更新数据库或设备配置 (类似一致性校验)
  4. 支持命令行直接查看某台设备的全部配置信息
  5. 支持命令行直接修改指定设备的配置
  6. 支持设备分组,组可以分层,同个设备可以存在于多个组 (只是简单的设置组名和设备)
  7. 可以对一个组的设备应用相同的配置(配置以template的形式提前配好,对设备组应用该template)
  8. 设备模型定义了设备的配置数据模型(YANG),通过设备模型,可以让不同vendor的设备应用同一个template
  9. 在每次commit时会验证用户配置的规则,对当前提交的配置进行检查,并给出警告或错误。
  10. 多用户命令行下同时commit配置,如果有冲突,会提示并让用户解决冲突。
  11. NSO需要保存每个device的认证信息
  12. 通过不同的NED连接设备(管理方式,配置下发的方式)
  13. 设备有管理状态,分别是:

    • unlocked: 能编辑,也能下发到设备
    • southbound-locked:能编辑,但不允许下发到设备
    • locked:既不能编辑,也不能下发到设备
  14. 设备的故障处理(跟踪SSH配置记录,保存配置记录到文件)

3.1.2 管理网络服务(network service)

  1. NSO抽象设备的具体细节,用户只需要输入服务相关的属性(用户不感知设备实现细节,只关心服务)
  2. NSO用来支持服务配置的功能:

    • Service Modeling
      可以对服务的属性以及到设备配置的映射关系进行建模
    • Service life-cycle
      用于修改服务元素,同时对网络设备进行相应的更改
  3. NSO的服务实例具有可以表示和操作的配置数据。用户可以通过 CLI、WebUI、REST 等方式查看和操作服务实例。 NSO维护了服务实例和设备配置之间的引用关系。
  4. NSO提供了命令行配置service model
  5. 通过算法,自动将服务更改变为设备配置更改
  6. 检查服务配置是否是一致的,分别支持三种检查方式,并显示不一致的检查结果:

    • 实际设备上的配置与CDB中的配置
    • 期望的配置与CDB中的配置
    • 期望的配置与实际设备上的配置
  7. 修改服务后,能显示服务变化导致的设备配置差异
  8. 能查看服务配置和设备配置之间的关系
  9. 先定义service model,在定义从服务配置到实际设备配置的映射
  10. NSO接管现有服务需要手动操作:构建所有的服务列表、导入设备、同步配置等。
  11. 当配置冲突,NSO通过一个commit flag来限制设备上的配置不会被覆盖。

3.1.3 Administration

支持备份/恢复、3A、HA、日志

3.2 名词解释

  1. NEDs:Network Element Drivers, provides the connectivity between NSO and the devices,包含数据模型(data model)用来指定设备支持的配置数据和操作数据。
    有四种类型:

    • Netconf NED: the device supports NETCONF, for example Juniper.
    • CLI NED: any device with a CLI that resembles a Cisco CLI
    • Generic NED: proprietary protocols like REST, non-Cisco CLIs.
    • SNMP NED: a SNMP device.
  2. Tail-f FASTMAP算法:该算法可自动从服务更改中获取设备配置更改。