Skip to content

2016/05

APIC-EM の API にアクセスしてみる

APIC-EM は GUI 上からデバイスを管理出来ますが、APIC-EM の API へアクセスすることによって管理されている機器の情報を利用することが出来ます。今回は Python を使って APIC-EM の API へアクセスしてみます。

Cisco Nexus で実行可能なコマンドを一覧表示する

Cisco Nexus では show cli syntax を使うとコマンドの一覧を表示することが出来ます。これを活用してコマンドを探すことが出来ます。

show cli syntax は出力が非常に多くなるので、grep や egrep で出力結果を絞ります。例えばスパニングツリーに関連するコマンドだけを表示させたい場合は show cli syntax | grep spanning-tree のように実行します。

APIC-EM から Path Trace を実行する

Cisco APIC-EM から Path Trace を実行すると「トラフィックがどの経路を通っているのか?」というのを可視化することが出来ます。今回は Path Trace の実行方法をメモしておきます。

APIC-EM にデバイスを登録する

Cisco の APIC-EM (Application Policy Infrastructure Controller Enterprise Module) にデバイスを登録する手順をメモしておきます。APIC-EM は日々進歩している (言い過ぎ?) ので、バージョンによって画面や操作が異なる可能性があります。

はじめての OTV (Overlay Transport Virtualization)

OTV を使うと L2 延伸を行うことが出来ます。例えば、離れたデータセンター間で仮想マシンを vMotion した際等に利用出来ます。L2延伸だけなら L2TP でも可能ですが、L2TP ではループする可能性があります。対して OTV はマルチパス機能やループフリーである、という性質を持っています。今回はシンプルな構成で OTV を試してみます。

Cisco VIRL から Git リポジトリへアクセスする

Cisco VIRL では検証した構成や機器のコンフィグを .virl ファイルに保存しておくことが出来ます。.virl ファイルをローカル PC に保存しておくことも出来ますが、GitHub 等のリポジトリに保存しておくと便利です。Cisco VIRL を操作する VMMaestro は Git クライアント機能を持っているのですが、少なくても自分が試す限りはちょっと癖がある??ようなので、Git リポジトリの利用手順をメモしておきます。

はじめての LISP (Location/Identifier Separation Protocol)

現在、広く使われている IP アドレスは「ネットワークアドレスを頼りにルーティングし」「ホストアドレスを頼りにエンドポイントに到達する」という、ふたつの機能があります。ネットワークのプロトコルである LISP (Locator/Identifier Separation Protocol) を使うと、これらふたつの機能を分離して扱うことで、よりネットワークを拡張出来るというメリットがあります。今回は最小の構成を作り、Cisco IOS で LISP を設定してみます。

尚、プログラミング言語にも LISP (LISt Processor) という同じ名前のものがありますが無関係です。

C# から APIC-EM の REST API にアクセスする

Cisco Japan BlogSDN カテゴリー に「Python を使って APIC-EM の REST API にアクセスする」という記事が掲載されています。

(APIC-EM に限らず) Python や Ruby から REST API にアクセスするサンプルはしばしば見かけるのですが、C# のサンプルはなぜか数が少ないきがします… (探し方が悪い?)。というわけで C# のサンプルを書いてみました。あくまでサンプルなのでエラー処理はしていません。

OS X に scapy をインストールする

scapy があれば対話的に、または Python スクリプトから任意のパケットを生成すること (等) が出来ます。OS X への scapy インストール手順をメモしておきます。検証には OS X El Captian (10.11.4) を、インストールには homebrew を使いました (homebrew はインストールされている前提です)。