Skip to content

Cisco

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

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

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

Cisco VIRL のディスク領域を拡張する

Cisco VIRL を .ova ファイルから ESXi にデプロイすると、デフォルトで自由に使えるディスク領域は 70GB 程度です。これではやや心もとないので、ディスク領域を拡張してみます。今回検証した Cisco VIRL 1.0.26 は「Ubuntu + LVM」で出来ているので、具体的には LVM を拡張することになります。

Cisco ACI を CLI から curl を使って制御する

Cisco ACI には主に以下のような状態確認/設定変更の手段があります。

  1. Web GUI
  2. (Web GUI に付属する) API Inspector
  3. Visore
  4. Cobra SDK
  5. APIC REST to Python Adapter
  6. ACI Toolkit
  7. APIC 上の CLI

今回は外部 Linux の CLI 上から curl を使って「ACI へのログイン / テナントの作成 / 削除」を実施してみます。

SNMP Poll の最小設定

Cisco VIRL 上で幾つかのネットワーク機器に (Trap では無く) SNMP Poll だけを設定し、Linux からホスト名を SNMPGet してみます。Poll の最小設定であれば、少なくても今回扱った機器は全て一行で設定出来ます。

IOSv / XEv / XRv / Junos で BMP を試してみる

BMP とは「BGP Monitoring Protocol」のことで、現在は標準化に向けて IETF のドラフト段階 (draft-17) にあります。

BMP サーバの実装はまだ数が少ないようですが、今回は ryu に付随する BMP サーバを IOSv、XEv、XRv、Junos と組み合わせて試してみます。

NX-OSv も試してみたのですが、後述の通り BMP の設定が出来ませんでした。

GoBGP の基本的な使い方

GoBGP は Go 言語で実装された BGP デーモンです。VIRL 上でネットワーク機器と組み合わせて使うと BGP の検証をする際に便利です。今回は簡単な使い方をメモしておきます。

Routing Context を指定し、都度の VRF 指定を省略する

ネットワーク機器では一台で複数のルーティングテーブルを保有出来る機器があります。こういった機能のことは各社毎に呼び名が異なります。一例を挙げると以下の通りです。

メーカー 呼び名
Cisco VRF (Virtual Routing Forwarding)
Juniper Routing Instance
F5 Networks Route Domain

Cisco 製品を例にとると、通常は実行するコマンド毎に参照するルーティングテーブルが所属する VRF 名を指定します。IOSv で「VRF-1 のルーティングテーブルを参照して Ping を実行する」場合は以下のようになります。

1
2
3
4
IOSv# ping vrf VRF-1 10.0.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.1, timeout is 2 seconds:
!!!!!

これを連続して実行すると以下のようになります。数が多くなってくると都度、VRF 名を指定するのが面倒になってきます (操作ミスも増えます)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
IOSv# ping vrf VRF-1 10.0.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/3 ms

IOSv# ping vrf VRF-1 10.0.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/7 ms

IOSv# ping vrf VRF-1 10.0.1.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/5 ms

このような場合、以下のコマンドで「VRF 名の指定を省略した場合に参照されるデフォルト VRF」を指定することが出来ます。

IOSv / IOS-XE / NX-OSv IOS-XRv
RoutingContext を指定 VRF に変更する routing-context vrf VRF-NAME set default-vrf VRF-NAME
RoutingContext を default/global に戻す routing-context vrf default set default-vrf none

尚、このコマンドは 1 セッションの間のみ、有効です。例えば、Routing Context を変更後にログアウトし、再ログインすると default/global VRF に戻ります。以下の環境で試してみます。