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 .
说明:
- --netsim-dir:从该路径读取模拟数据
- --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框架
3.1 TIPs
3.1.1 管理设备
- 支持设备同步配置 (命令)
- 每次操作视为一个原子操作,要么完全成功,要么恢复到操作前的状态 (快照恢复)
- 可以根据实际情况更新数据库或设备配置 (类似一致性校验)
- 支持命令行直接查看某台设备的全部配置信息
- 支持命令行直接修改指定设备的配置
- 支持设备分组,组可以分层,同个设备可以存在于多个组 (只是简单的设置组名和设备)
- 可以对一个组的设备应用相同的配置(配置以template的形式提前配好,对设备组应用该template)
- 设备模型定义了设备的配置数据模型(YANG),通过设备模型,可以让不同vendor的设备应用同一个template
- 在每次commit时会验证用户配置的规则,对当前提交的配置进行检查,并给出警告或错误。
- 多用户命令行下同时commit配置,如果有冲突,会提示并让用户解决冲突。
- NSO需要保存每个device的认证信息
- 通过不同的NED连接设备(管理方式,配置下发的方式)
设备有管理状态,分别是:
- unlocked: 能编辑,也能下发到设备
- southbound-locked:能编辑,但不允许下发到设备
- locked:既不能编辑,也不能下发到设备
- 设备的故障处理(跟踪SSH配置记录,保存配置记录到文件)
3.1.2 管理网络服务(network service)
- NSO抽象设备的具体细节,用户只需要输入服务相关的属性(用户不感知设备实现细节,只关心服务)
NSO用来支持服务配置的功能:
- Service Modeling
可以对服务的属性以及到设备配置的映射关系进行建模 - Service life-cycle
用于修改服务元素,同时对网络设备进行相应的更改
- NSO的服务实例具有可以表示和操作的配置数据。用户可以通过 CLI、WebUI、REST 等方式查看和操作服务实例。 NSO维护了服务实例和设备配置之间的引用关系。
- NSO提供了命令行配置service model
- 通过算法,自动将服务更改变为设备配置更改
检查服务配置是否是一致的,分别支持三种检查方式,并显示不一致的检查结果:
- 实际设备上的配置与CDB中的配置
- 期望的配置与CDB中的配置
- 期望的配置与实际设备上的配置
- 修改服务后,能显示服务变化导致的设备配置差异
- 能查看服务配置和设备配置之间的关系
- 先定义service model,在定义从服务配置到实际设备配置的映射
- NSO接管现有服务需要手动操作:构建所有的服务列表、导入设备、同步配置等。
- 当配置冲突,NSO通过一个commit flag来限制设备上的配置不会被覆盖。
3.1.3 Administration
支持备份/恢复、3A、HA、日志
3.2 名词解释
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.
- Tail-f FASTMAP算法:该算法可自动从服务更改中获取设备配置更改。