キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
1121
閲覧回数
1
いいね!
0
コメント
Akira Iwamoto
Cisco Employee
Cisco Employee

 

はじめに

NETCONF 機器の操作を行うためには、接続先機器のデータモデル情報が必要です。 以前の記事で、NETCONFの get-schema を使用してそれらを取得する方法について投稿しましたが、NSO 5.2 以降ではそれらの機能が内蔵されています。

https://community.cisco.com/t5/-/-/ta-p/3320213

記事最後に紹介した、Pioneer のようなものがネイティブで使用可能となっています。

機器が使用する yang モデルの yang ファイルは、各ベンダWebサイト等で取得できることもありますが、バージョン毎に違うため、この方法では機器から確実にそのバージョンのものが取得出来ます。

netconf-ned-builder コマンド

このコマンドはdevtools の一部となっています。CLI上では通常確認できず、以下のようにそれを使用できるよう、devtools を true にしてください。NSO に対する config  ではありませんので、そのセッションのみで有効です。次のログイン後にはオフとなります。

admin@ncs# devtools true
admin@ncs# netconf-ned-builder ?
Possible completions:
profile This list contains profiles, which are reusable selections of modules.
project An instance of NED project.
admin@ncs#

netconf-ned-builder コマンドによるNED作成は、運用環境において実施することを想定しておりません。Yangのダウンロード、NEDのコンパイルには多少なりとも負荷を与えることになりますので、運用環境で実施する場合はご注意下さい。

NED の作成

接続先機器の登録

NEDの作成を行いたい機器を、/devices/device へ登録します。この時点では使用したいNEDはまだありませんので、通常の netconf NED  機器として設定します。

admin@ncs# show running-config devices device iosxe
devices device iosxe
 address   192.168.1.1
 port      830
 authgroup xe
 device-type netconf ned-id netconf
 state admin-state unlocked
!
admin@ncs#

  この例では、接続先機器は CSR1000v を使用しています。netconf はすでに有効化されており、接続できる状態です。この後、SSH Key の取得を行い、準備完了です。

admin@ncs# devices device iosxe ssh fetch-host-keys
result updated
fingerprint {
    algorithm ssh-rsa
    value a1:6f:56:3a:40:96:00:db:6e:90:33:af:73:35:8b:ff
}
admin@ncs# 

netconf-ned-builder の設定

netconf-ned-builder 自体の設定を行います。接続に使用するデバイスを選択したり、作成する NED の名前やバージョンを設定します。名前とバージョンは任意ですが、接続先機器用のものとなるため、それに合わせておくと後からわかりやすく、便利です。

admin@ncs(config)# netconf-ned-builder project iosxe 16.9.2
Value for 'device' [iosxe]:
Value for 'local-user' (): cisco
Value for 'vendor' (): Cisco
admin@ncs(config-project-iosxe/16.9.2)# max-download-threads 1
admin@ncs(config-project-iosxe/16.9.2)# commit
Commit complete.
admin@ncs(config-project-iosxe/16.9.2)#

 max-download-threads 1 は、必要に応じて付加します。機器に対して、デフォルトでは 3 つまでTCPセッションを作成し、同時にダウンロードを行います。接続先側の状況に合わせて設定してください。

設定が完了しましたので、確認をします。成果物は以下のディレクトリに出力されます。

admin@ncs# show netconf-ned-builder
netconf-ned-builder project iosxe 16.9.2
download-cache-path /private/tmp/csc1/ncs-run/state/netconf-ned-builder/cache/iosxe-nc-16.9.2
ned-directory-path /private/tmp/csc1/ncs-run/state/netconf-ned-builder/iosxe-nc-16.9.2
admin@ncs#

モジュールリストの取得

実際に機器へ接続し、使用されているモジュールのリストを取得します。

admin@ncs# netconf-ned-builder project iosxe 16.9.2 fetch-module-list
admin@ncs#

取得したモジュールのリストは以下のコマンドで確認出来ます。

admin@ncs# show netconf-ned-builder project iosxe 16.9.2 module
module ATM-FORUM-TC-MIB ""
 namespace urn:ietf:params:xml:ns:yang:smiv2:ATM-FORUM-TC-MIB
 location  [ NETCONF http://localhost:8008/restconf/tailf/modules/ATM-FORUM-TC-MIB ]
module ATM-MIB 1998-10-19
 namespace urn:ietf:params:xml:ns:yang:smiv2:ATM-MIB
 location  [ NETCONF http://localhost:8008/restconf/tailf/modules/ATM-MIB/1998-10-19 ]
module ATM-TC-MIB 1998-10-19
 namespace urn:ietf:params:xml:ns:yang:smiv2:ATM-TC-MIB
 location  [ NETCONF http://localhost:8008/restconf/tailf/modules/ATM-TC-MIB/1998-10-19 ]
...

モジュールの取得

前項目ではリストのみを取得しましたが、今度はモジュール自体を取得します。以下のコマンドを使用して、特定のモジュールをダウンロード対象に選択刷ることができます。
admin@ncs# netconf-ned-builder project iosxe 16.9.2 module <module name> <revision> select
全てのモジュールを対象とする場合は、以下のようにワイルドカードを使用して指定できます。
admin@ncs# netconf-ned-builder project iosxe 16.9.2 module * * select
ダウンロードが始まりますが、その状況を確認したい場合は、は以下のコマンドを使用して下さい。
admin@ncs# show netconf-ned-builder project iosxe 16.9.2 module status
NAME                              REVISION    STATUS
-------------------------------------------------------------------
ATM-FORUM-TC-MIB                              selected,downloaded
ATM-MIB                           1998-10-19  selected,downloaded
ATM-TC-MIB                        1998-10-19  selected,downloaded
BGP4-MIB                          1994-05-05  selected,downloaded
BRIDGE-MIB                        2005-09-19  selected,downloaded
.....
CISCO-QOS-PIB-MIB                 2007-08-29  selected,downloaded
CISCO-RADIUS-EXT-MIB              2010-05-25  selected,pending
CISCO-RF-MIB                      2005-09-01  selected
CISCO-RTTMON-MIB                  2012-08-16  selected,pending
CISCO-RTTMON-TC-MIB               2012-05-25  selected
CISCO-SESS-BORDER-CTRLR-CALL-STA  2010-09-03  selected
TS-MIB
CISCO-SESS-BORDER-CTRLR-STATS-MI  2010-09-15  selected
B
CISCO-SIP-UA-MIB                  2004-02-19  selected
CISCO-SMI                         2012-08-29  selected
....

モジュールのコンパイル

ここまでで必要な yang ファイルが取得出来ましたので、次にそれを使用可能なようにコンパイルを行う必要があります。netconf-ned-builder で全ての作業を完了させる場合は、NSO CLI上からコンパイルを指示出来ます。NEDパッケージとして出力し、通常のパッケージと同様に手動でコンパイルすることも出来ます。

netconf-ned-builder コマンドのオプション

build-ned コンパイルを開始する
export-ned build-ned でコンパイルされたモジュールを含めた、tar.gz パッケージファイルを作成する
make-development-ned  NED をユーザが手動でコンパイルできるよう、通常のNEDパッケージディレクトリを作成する。NETSIMも作成される。

 

build-ned オプション

NEDをコンパイルします。成果物は show netconf-ned-builder で表示されるディレクトリに作成されます。

admin@ncs# netconf-ned-builder project iosxe 16.9.2 build-ned
admin@ncs# show netconf-ned-builder project ned-directory-path FAMILY MAJOR NAME VERSION NED DIRECTORY PATH -------------------------------------------------------------------------------------- iosxe 16.9.2 /path/ncs-run/state/netconf-ned-builder/iosxe-nc-16.9.2 admin@ncs# exit
$ ls -la /path/ncs-run/state/netconf-ned-builder/iosxe-nc-16.9.2
total 4
drwxr-xr-x 5 akiwamot wheel 160 Jul 25 00:03 .
drwxr-xr-x 4 akiwamot wheel 128 Jul 24 23:49 ..
drwxr-xr-x 422 akiwamot wheel 13504 Jul 25 00:07 load-dir
-rw-r--r-- 1 akiwamot wheel 516 Jul 25 00:03 package-meta-data.xml
drwxr-xr-x 4 akiwamot wheel 128 Jul 25 00:07 src
$

export-ned オプション

作成されたファイル・ディレクトリを、NSOが使用可能な tar.gz ファイルに圧縮して保存します。

admin@ncs# netconf-ned-builder project iosxe 16.9.2 export-ned to-directory packages
tar-file /path/ncs-run/packages/ncs-5.3-iosxe-nc-16.9.2.tar.gz
admin@ncs#

make-development-ned オプション

通常の make コマンドでコンパイルが可能なよう、Makefile が含まれたパッケージディレクトリを作成します。netsim も作成されるため、ここで作られたNEDを使ってアプリケーション開発に使用できます。

admin@ncs# netconf-ned-builder project iosxe 16.9.2 make-development-ned in-directory packages
ned-path packages/iosxe-nc-16.9.2
admin@ncs#
admin@ncs# exit
$ cd packages/iosxe-nc-16.9.2/
$ ls -la
total 0
drwxr-xr-x 5 akiwamot wheel 160 Jul 25 00:56 .
drwxrwxrwx 4 akiwamot wheel 128 Jul 25 00:56 ..
drwxr-xr-x 5 akiwamot wheel 160 Jul 25 00:56 netsim
drwxr-xr-x 3 akiwamot wheel 96 Jul 25 00:56 python
drwxr-xr-x 6 akiwamot wheel 192 Jul 25 00:56 src
$

make コマンドでコンパイルを行います。これは他のNEDと同様です。

$ cd src
$ ls -al
total 8
drwxr-xr-x 6 akiwamot wheel 192 Jul 25 00:56 .
drwxr-xr-x 5 akiwamot wheel 160 Jul 25 00:56 ..
-rw-r--r-- 1 akiwamot wheel 2298 Jul 25 00:56 Makefile
drwxr-xr-x 4 akiwamot wheel 128 Jul 25 00:56 java
-rw-r--r-- 1 akiwamot wheel 445 Jul 25 00:56 package-meta-data.xml.in
drwxr-xr-x 446 akiwamot wheel 14272 Jul 25 00:56 yang
$ make
....
$

参考情報

旧来の方法では、以下の記事を紹介しておりました。旧バージョンのNSOについては、以下を参考にしてください。

https://community.cisco.com/t5/-/-/ta-p/3320121

 

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします