Cisco Japan Blog
Share

プログラマビリティ in ShowNet 2017

- 2017年6月30日 8:00 PM

今年も無事に Interop Tokyo を無事に終えることができました。
ご来場いただいた方、ありがとうございました。

今回は、 Interop Tokyo 2017 の会場ネットワークである「ShowNet」で利用されたシスコのプログラマビリティに関して解説します。

ところで、「ShowNet」をご存知でしょうか?前述したように「Interop Tokyo の会場ネットワーク」であると同時に、ネットワーク関連ベンダーから提供された最新機器および最新技術によって構築されており、ライブデモンストレーション ネットワークということができます。ShowNet について詳しくは、Interop のサイト をご覧ください。

今年の ShowNet において、シスコの製品が持つ API (Application Programmable Interface) を活用した例のご紹介です。

Cisco Spark との連携

最初にご紹介するのは、 Cisco Spark との連携です。ShowNet の構築に関わるエンジニアは 441 名。構築中には、様々な問題が発生します。そのときに使われるツールに TTDB(Trouble Ticket Data Base)があります。このツール上で、 ShowNet で発生している問題をチケットと言う単位で管理します。

TTDB は、下記のような画面の Web アプリケーションになっています。

Web アプリケーションであるため、ブラウザがあればどこからでも管理できるのですが、逆にいうと常にブラウザ監視していないと、最新情報を知ることができないのです。

そこで、チケットの更新を Cisco Spark に通知するシステムを作っていただきました。
全体の流れは下記のとおりです。

TTDB に更新があると、Cisco Spark の API を通して端末に通知が送信されます。たとえば、次のようなチケットが作成されたとします。

 

すると、次のような通知を Cisco Spark で受けることができます。

Cisco Spark は、シスコからの参加メンバーだけではなく、 ShowNet のボランティア スタッフ内のコミュニケーション ツールとしても利用されていました。その機能に加えて、同じツールを使って ShowNet で起きている問題を把握することができるようになっていたのです。

Cisco Spark の API については、 Cisco Spark for Developers をご覧ください。

ピアリング ポータルと NSO の連携

次にピアリング ポータルと Cisco Network Services Orchestrator(NSO)の連携をご紹介します。ShowNet は、様々な企業から提供された機器などを利用して作られております。外部につながるネットワークのトランジットも様々なASから提供されているものを利用しております。  一昨年までメールを利用し、トランジットに必要な情報を受け取っていたそうですが、昨年から下のような Web ポータルサイトで必要な情報を入力して、自動化したそうです。

しかし、昨年は裏で、直接各機器にログインをし、適切な設定を流しこむことをされていたそうです。

今年は、 NSO を間に挿入することで、複数の設定機器の接続を抽象化でき、統一された API を経由し設定することを可能にしました。

NSO では NED (Network Element Driver) という様々なベンダのコンフィグを YANG でモデル化したドライバを用意しているため、ベンダを気にせず、簡単に自動化を実現することが可能になります。

こちらが、 Peering Portal 上の入力画面です。

こちらに入力された情報を元に、 NSO に下記のような XML を HTTP POST します。

<shownetpeer xmlns="http://example.com/shownetpeer">
  <name>as7521_jpnap-111_v4</name>
  <device>ncs5k</device>
  <description>AS7521</description>
  <password>Interoptokyo2017</password>
  <my_as_number>290</my_as_number>
  <remote_as_number>7521</remote_as_number>
  <neighbor_group_name>ix-peer-v4</neighbor_group_name>
  <neighbor_address>210.173.176.1</neighbor_address>
</shownetpeer>

そうすると NSO の中で、下記のような設定を作成し、各機器に投入します。 XML 内の device タグを見て、対象機器を、 neighbor_address タグを見て、 IPv4 か IPv6 かを判断しています。

devices {
     device ncs5k {
         config {
             cisco-ios-xr:router {
                 bgp {
                     bgp-no-instance 290 {
+                        neighbor 210.173.176.1 {
+                            remote-as 7521;
+                            description AS7521;
+                            password {
+                                enc-type clear;
+                                password Interoptokyo2017;
+                            }
+                            use {
+                                neighbor-group ix-peer-v4;
+                            }
+                        }
                     }
                 }
             }
         }
     }
 }

設定投入だけでなく、状況の確認も REST API 経由で行うことができ、 Peering Portal で状況を確認できます。

今回の ShowNet では、シスコ製品だけでなく、次のような他のネットワーク機器メーカーの製品も制御しました。

  • Cisco NCS 5501-SE
  • アラクサラネットワークス AX8616R
  • ファーウェイ・ジャパン NE9000-20
  • ジュニパーネットワークス MX10003

最後に

シスコが提供する様々な機器に備わっている API を利用することで、いろいろな自動化が可能になり、 Interop を支える ShowNet でもおおいに活用されました。ぜひ、皆さんの機器でも API を利用し、日々の運用を便利にしてみてください。

Tags:
Leave a comment

Share