概要
このドキュメントでは NSO をはじめてさわる方に向けて、NSO をインストールしてから Netsim を使って動作確認するまでの作業のながれを紹介します。
例では NSO 4.2.3 を使用していますが、他のバージョンでも手順に変わりはありません。
1. NSO のインストール
$HOME/nso-4.2.3 に NSO をローカルインストールしています。
~$ sh ./nso-4.2.3.linux.x86_64.installer.bin --local-install $HOME/nso-4.2.3
INFO Using temporary directory /tmp/ncs_installer.7975 to stage NCS installation bundle INFO Unpacked ncs-4.2.3 in /home/hkakehas/nso-4.2.3 INFO Found and unpacked corresponding DOCUMENTATION_PACKAGE INFO Found and unpacked corresponding EXAMPLE_PACKAGE INFO Generating default SSH hostkey (this may take some time) INFO SSH hostkey generated INFO Environment set-up generated in /home/hkakehas/nso-4.2.3/ncsrc INFO NCS installation script finished INFO Found and unpacked corresponding NETSIM_PACKAGE INFO NCS installation complete
|
2. source ncsrc
source コマンドで ncsrc を指定して NSO を起動するために必要な各種パス・環境変数を読み込みます。
.bashrc 等に同コマンドを追加しておくと、次回以降ログインしたときに同コマンドを実行する手間が省けて便利です。
~$ source $HOME/nso-4.2.3/ncsrc ~$ ~$ echo 'source $HOME/nso-4.2.3/ncsrc' >> ~/.bashrc
|
3. ランタイムディレクトリの作成
ncs-setup コマンドで NSO のランタイムディレクトリを作成します。
この例では ncs-run という名前で作成しています。
~$ ncs-setup --dest ./ncs-run ~$ ~$ tree ncs-run ncs-run |-- README.ncs |-- logs |-- ncs-cdb |-- ncs.conf |-- packages |-- scripts | |-- command | `-- post-commit `-- state
|
4. NED パッケージへのリンクの作成
簡易的なテスト等のために NSO にあらかじめバンドルされているNED を、ランタイムディレクトリの /packages 配下にリンクします。
この例では IOS NED と IOS-XR NED をリンクしています。
~$ ln -s $HOME/nso-4.2.3/packages/neds/cisco-ios ./ncs-run/packages/ ~$ ln -s $HOME/nso-4.2.3/packages/neds/cisco-iosxr ./ncs-run/packages/ ~$ ~$ ls ./ncs-run/packages/ cisco-ios cisco-iosxr
|
5. NSO の起動
ランタイムディレクトリに移動して ncs コマンドを実行し、NSO を起動します。
手順4 でリンクした NEDパッケージがロードされていることを確認して、いったん Linux CLI に戻ります。
~$ cd ncs-run/ ~/ncs-run$ ncs ~/ncs-run$ ~/ncs-run$ ncs_cli -u admin -C
admin connected from X.X.X.X using ssh on nso admin@ncs# admin@ncs# show packages package package-version PACKAGE NAME VERSION ---------------------- cisco-ios 3.0 cisco-iosxr 3.0
admin@ncs# exit
|
6. Netsim の作成・起動
ncs-netsim create-network / add-to-network コマンドを使って Netsim を作成します。
この例では IOS NED の Netsim x 1、IOS-XR NED の Netsim x 1 を作成しています。
Netsim の起動に必要な各種ファイルは、netsim ディレクトリ配下に展開されます。
次に ncs-netsim start コマンドで Netsim を起動します。
~/ncs-run$ ncs-netsim create-network cisco-ios 1 ios DEVICE ios0 CREATED ~/ncs-run$ ncs-netsim add-to-network cisco-iosxr 1 iosxr DEVICE iosxr0 CREATED ~/ncs-run$ ls README.ncs logs ncs-cdb ncs.conf netsim packages scripts state target ~/ncs-run$ ~/ncs-run$ ncs-netsim start DEVICE ios0 OK STARTED DEVICE iosxr0 OK STARTED
|
7. Netsim への接続情報を NSO にロードする
ncs-netsim ncs-xml-init コマンドで Netsim への接続情報を作成し ncs_load コマンドで NSO にロードします。
~/ncs-run$ ncs-netsim ncs-xml-init > devices.xml ~/ncs-run$ ncs_load -l -m ./devices.xml
|
8. sync-from の実施
NSO にログインして devices sync-from を実行します。コマンドが成功したら準備完了です。
~/ncs-run$ ncs_cli -u admin -C
admin connected from X.X.X.X using ssh on nso admin@ncs# admin@ncs# devices sync-from sync-result { device ios0 result true } sync-result { device iosxr0 result true }
|
おまけ. 接続情報をマニュアルで NSO に設定する場合
接続情報は NSO の CLI からマニュアルで設定することもできます。
実機への接続情報を設定するときはこちらの手順を使うのが一般的です。
(config)# devices authgroups group CISCO-DEVICES default-map remote-name cisco remote-password cisco (config)# (config)# devices device iosxr0 (config-device-iosxr0)# address 127.0.0.1 port 10023 (config-device-iosxr0)# device-type cli ned-id cisco-ios-xr protocol ssh (config-device-iosxr0)# authgroup CISCO-DEVICES (config-device-iosxr0)# state admin-state unlocked (config-device-iosxr0)# commit Commit complete. (config-device-iosxr0)# top (config)# exit # devices fetch-ssh-host-keys device [ iosxr0 ] fetch-result { device iosxr0 result unchanged fingerprint { algorithm ssh-dss value 43:d9:76:41:71:e5:2b:0a:12:b5:e9:7a:98:0b:99:aa } }
|
動作確認
NSO の CLI から Netsim に設定投入できることを確認しています。
admin@ncs# config Entering configuration mode terminal admin@ncs(config)# devices device ios0 config ios:interface Loopback 0 admin@ncs(config-if)# ip address 10.0.0.1 255.255.255.255 admin@ncs(config-if)# top admin@ncs(config)# devices device iosxr0 config cisco-ios-xr:interface Loopback 0 admin@ncs(config-if)# ipv4 address 10.0.0.2 255.255.255.255 admin@ncs(config-if)# commit dry-run cli devices { device ios0 { config { ios:interface { Loopback 0 { ip { address { primary { + address 10.0.0.1; + mask 255.255.255.255; } } } } } } } device iosxr0 { config { cisco-ios-xr:interface { + Loopback 0 { + ipv4 { + address { + ip 10.0.0.2; + mask 255.255.255.255; + } + } + } } } } }
admin@ncs(config-if)# commit Commit complete.
|