Cisco: コンフィグをXML形式で取得する(IOS-XE/NX-OS/IOS-XR)

今回は Cisco 機器でコンフィグを XML 形式で出力させる方法を紹介します。今時では、Netconf で取れば早いじゃんか、、、という突っ込みがきそうですが昔ながらの CLI 経由で確認する方法です。(XR は Netconf 使ってます)

昨今 Python などで XML を解析して遊んだりするのにネットワーク機器の出力を使うと楽しいですよね。(私だけか?)

IOS/IOS-XE編

IOS/IOS-XE の場合では、特に設定はする必要はありません。パイプ(|)をして ‘format’ を使うだけです。簡単ですね。

当然ですがコンフィグだけでなく、show コマンドでもどうように XML 形式の出力を得ることができます。

NX-OS編

Nexus で使われる NX-OS では昔からコンフィグを含め show コマンドも XML 形式で出力できることは有名かと思います。また、特別な設定は必要ありません。
NX-OS でも IOS と同じくパイプ(|)を使って、’xml’ を指定するだけです。出力までに少し時間がかかります。
※ 下記の例では、bgp 設定に絞ってコンフィグを表示しています。

IOSと同じく、show コマンドも同様の方法で XML 形式にできます。

IOS-XR 編

ASR9000 等で使われる IOS-XR では、残念ながら簡単にコンフィグを XML 形式で表示されることができません。というのも、設定が必要となり、外部から SSH なりで Netconf アクセスして出力する必要があります。
IPアドレスをインタフェースに割り当て、SSH、XML/Netconf Agent 等の設定を下記のようにします。

設定

Netconf でのやり取り

すると、下記のように Linux から SSH で Netconf で接続できます。

hello のリプライを返します。

次は OpenConfig の Bgp モデルをベースに BGP 設定を取得します。

すると、下記のように XML で BGP 設定を得ることができます。今回は OpenConfig の BGP モデルを使ったので、そのモデルに準拠した形で表示されています。

以上が IOS/IOS-XE, NX-OS, IOS-XR の 3機種 でルータの設定内容を XML 形式で取得する方法を紹介しました。最後の IOS-XR だけはちょっと方法が異なりますが、XML で取得できる点は同じなので、XML をパースする Python コードの練習とかにどうでしょうか?

ではでは。

スポンサーリンク

フォローする

スポンサーリンク