HiRoLabブログ

HiRoのゆるふわIT備忘録

Cisco NSOを使ってみた。

はじめに

Cisco NSO(Network Service Orchestrator)を導入してCiscoルーター(IOS)のconfigを書き換えるところまでやってみた。

NSOには評価版と商用版があります。
商用として使用するわけでないので、評価版を使用します。

Cisco Blogを参考にして自宅ラボの環境でも設定してみた。
参考記事と被っているいる箇所はあるが、バージョンや動作環境などが異なる為、比較しながら参考にしていただければ幸いです。
※参考にした記事は本記事の最後の方にリンクを掲載しております。

動作環境

動作環境は以下です
・ハード:Dell Poweredge R610
・OS: Ubuntu on VMware ESXi
・ルータ: Cisco(iOS)-892 サービス統合型ルータ

目次

事前準備

NSOを使用するには下記がインストールされている必要がある。
私の環境は下記のバージョンにて動作確認したものとする。

Python 2.7.18
・ant 1.10.7-1
・paramiko 2.6.0
・OpenSSH_8.2p1
・openjdk 11.0.10
・make 4.2.1

セットアップ

■ダウンロード
ダウンロードが必要なものは下記です。
※ダウンロードにはCCO IDが必要になるので、アカウント作成を行ってからダウンロードしてください。

NSO 5.5 Linux
Cisco IOS(XE) NED

下図を参考にNSO 5.5 LinuxCisco IOS(XE) NEDをダウンロードしてください。 f:id:HiRo1325:20210311230523p:plain

ダウンロードページはこちらになります。 developer.cisco.com

■ファイルの展開
ダウンロードしたファイルを展開します。

root@hiro-virtual-machine:~/NSO# bash nso-5.5.linux.x86_64.signed.bin

NSOのインストール
展開されたファイルにinstallerのファイルがあるので、下記コマンドでNSOインストールを行う。

root@hiro-virtual-machine:~/NSO# bash nso-5.5.linux.x86_64.installer.bin

Cisco NSO起動
インストールが完了したらCisco NSOの起動を行います。
起動コマンドはこちらです。

root@hiro-virtual-machine:~/NSO# ncs

webuiにアクセスすることで起動できているか確認できる。
アクセス方法は下記です。

http://<ubuntuのIP>:8080

f:id:HiRo1325:20210313232355p:plain

初回ログインはusernameとpasswordはadminです。

バイス登録

それではデバイス登録としてCiscoルータを登録してみた。

■NEDパッケージの追加
まずはNEDパッケージの読み込みが必要になる。
NEDパッケージの追加するにはダウンロードしたCisco IOS(XE) NEDのファイルを展開する。

root@hiro-virtual-machine:~/NSO# sh ncs-5.5-cisco-ios-6.69.1.signed.bin

NCS CLIログインを行うには下記コマンドにて行う。
簡単にオプションを説明すると-u でadminユーザ、-CにてCisco Styleにてログインを行う。

root@hiro-virtual-machine:~/NSO# ncs_cli -u admin -C

User admin last logged in 2021-03-14T02:12:13.630744-00:00, to hiro-virtual-machine, from 192.168.100.13 using webui-http
admin connected from 127.0.0.1 using console on hiro-virtual-machine
admin@ncs# 

下記コマンドにてパッケージの読み込みを行う。

admin@ncs# packages reload
reload-result {
    package cisco-ios-cli-6.69
    result true
}

次に認証設定を行う。
ここではルータの認証情報の設定を行う。
※XXXXXXは個人の環境のものに合わせてください

admin@ncs# config
Entering configuration mode terminal
admin@ncs(config)# devices authgroups group ios-auth
admin@ncs(config-group-ios-auth)# umap admin
admin@ncs(config-umap-admin)# remote-name XXXXXX
admin@ncs(config-umap-admin)# remote-password XXXXXX
admin@ncs(config-umap-admin)# remote-secondary-password XXXXXX
admin@ncs(config-umap-admin)# commit
Commit complete.
admin@ncs(config-umap-admin)# end

次にルータのIPや接続プロトコルを設定することでデバイスの登録ができる。

admin@ncs# config
Entering configuration mode terminal
admin@ncs(config)# devices device ios1
admin@ncs(config-device-ios1)# authgroup ios-auth
admin@ncs(config-device-ios1)# address 192.168.100.23
admin@ncs(config-device-ios1)# port 23
admin@ncs(config-device-ios1)# device-type cli ned-id cisco-ios-cli-6.69
admin@ncs(config-device-ios1)# device-type cli protocol telnet
admin@ncs(config-device-ios1)# state admin-state unlocked
admin@ncs(config-device-ios1)# commit
Commit complete.
admin@ncs(config-device-ios1)# end

バイス確認

バイス登録ができたか下記コマンドにて確認ができる。

admin@ncs# show devices list
NAME  ADDRESS         DESCRIPTION  NED ID              ADMIN STATE
------------------------------------------------------------------
ios1  192.168.100.23  -            cisco-ios-cli-6.69  unlocked

ルータに接続

下記コマンドにてCiscoルータ(IOS)に接続

admin@ncs# devices device ios1 connect
result true
info (admin) Connected to ios1 - 192.168.100.23:23

configの同期

下記コマンドにてciscoルータのconfig取り込み。

admin@ncs# devices device ios1 sync-from
result true

コンフィグ修正

・NCS CLIで書き換え
NCS CLIでconfig変更手順は下記です。

admin@ncs# config
Entering configuration mode terminal
admin@ncs(config)# devices device ios1 config
admin@ncs(config-config)# interface GigabitEthernet 0
admin@ncs(config-if)# ip address 192.168.3.5 255.255.255.0
admin@ncs(config-if)# commit
Commit complete.

configを変更できたかルータにログインして確認

ios1#show int gigabitEthernet 0
GigabitEthernet0 is down, line protocol is down 
  Hardware is PQII_PRO_UEC, address is e05f.b923.8ecc (bia e05f.b923.8ecc)
  Internet address is 192.168.3.5/24
  MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Auto Duplex, 1Gbps, media type is RJ45
  output flow-control is XON, input flow-control is XON
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input never, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     0 packets input, 0 bytes, 0 no buffer
     Received 0 broadcasts (0 IP multicasts)
     0 runts, 0 giants, 0 throttles 
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog, 0 multicast, 0 pause input
     0 packets output, 0 bytes, 0 underruns
     0 output errors, 0 collisions, 1 interface resets
     0 unknown protocol drops
     0 babbles, 0 late collision, 0 deferred
     1 lost carrier, 0 no carrier, 0 pause output
     0 output buffer failures, 0 output buffers swapped out

・webuiで書き換え
webuiでも同様にconfig変更できるのでやってみた。

config変更するにはwebuiログインを行いDevice Managerを選択 f:id:HiRo1325:20210314024607p:plain

次に、configurationを選択。 f:id:HiRo1325:20210314024401p:plain

configuration配下に対象インターフェースのアドレスにて設定箇所がある為、直接書き換える。 f:id:HiRo1325:20210314050140p:plain

変更後のアドレスはこちらです。 f:id:HiRo1325:20210313013649p:plain

CLIと同様にcommitを行うことで繁栄される。 commitを行うにはCommit managerにて行う。 f:id:HiRo1325:20210314032446p:plain

Commit managerにて修正前と修正後の差分確認も行える。 f:id:HiRo1325:20210314044756p:plain

commit f:id:HiRo1325:20210314033148p:plain

ルータにて確認

ios1#show int gigabitEthernet 0
GigabitEthernet0 is down, line protocol is down
  Hardware is PQII_PRO_UEC, address is e05f.b923.8ecc (bia e05f.b923.8ecc)
  Internet address is 192.168.6.5/24
  MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Auto Duplex, 1Gbps, media type is RJ45
  output flow-control is XON, input flow-control is XON
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input never, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     0 packets input, 0 bytes, 0 no buffer
     Received 0 broadcasts (0 IP multicasts)
     0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog, 0 multicast, 0 pause input
     0 packets output, 0 bytes, 0 underruns
     0 output errors, 0 collisions, 1 interface resets
     0 unknown protocol drops
     0 babbles, 0 late collision, 0 deferred
     1 lost carrier, 0 no carrier, 0 pause output
     0 output buffer failures, 0 output buffers swapped out

参考にしたサイト

評価版 Cisco NSO を使ってみよう [2020年版]

評価版 Cisco NSO を使ってみよう NED 活用編 [2020年版]

評価版 Cisco NSO を使ってみよう NED 活用編 [2020年版]

さいごに

今回はデバイス一つに対して行ってみたが、次はJuniperも使って複数デバイスに対して設定できる記事を作成予定