onePK を使ってアプリケーションを作る – IP 経路制御編
シスコには SDN(Software Defined Networking)に関する多くの取り組みがあり、様々なソリューションがリリースされています。このブログでは、Cisco IOS に対するプログラマビリティとして公開される「onePK(Cisco ONE Platform Kit)」の観点から、SDN について考えていきたいと思います。
onePKとは
onePK(one Platform Kit)とは、IOS、IOS-XE、IOS-XR、NX-OS を対象としたソフトウェア開発キット で、C 言語、Java、Python の開発言語の ライブラリ として提供されます。現在、以下のように、API ドキュメントが公開され始めたという状況です。
もうしばらくすると SDK 自身の公開が開始される予定です。また、onePK 対応の Cisco IOS についても、今月に ISRG2 および ASR 1000 のルータ製品を皮切りに、各プラットフォーム毎に対応 IOS バージョンがリリースされる計画になっています。
このonePK で提供される API を利用すれば、IOS を制御するアプリケーションを作ることができます。具体的に制御できるものには、経路制御、アクセスコントロール、QoS、AAA などがあります。またデバイス情報、インターフェイス情報、Syslog 情報、CDP 情報など、非常に多くの情報を取得することもできます。
onePK の特徴は、自律分散で動作する従来の IOS 機能と、onePK を使って制御する機能を併用することができるハイブリッド型の SDN である点です。つまり、従来の Config ベースの自律分散機能をベースとして利用しつつ、onePK アプリケーションから優先度の高い制御を実行することで、ネットワークを制御できるようになります。また少し違う視点から見ると、onePK の API を使うことで、「IOS のコントロールプレーンの一部を自分で実装できる」もしくは「IOS のフォワーディング プレーン機能を利用したアプリケーション開発ができる」という言うことができます。SDN でよく出てくるプロトコルの 1 つである OpenFlow の場合、OpenFlow の仕様で定義されているデータプレーン機能をコントローラで利用できるのに対し、onePK では豊富な IOS のデータプレーン機能の利用できるということになります。
ネットワークのプログラマビリティの楽しさ
私は学生時代に趣味で、C 言語を使ってゲームを作っていました。社会人になってから、業務としてプログラム開発をしたことはありませんが、onePK の SDK を手に入れた時、久しぶりに C 言語でプログラムを書いてみようという気持ちになりました。そこで私が最初に取り組んだのは、IP の経路制御のアプリケーションでした。
シスコのネットワーク エンジニアである私が言うのも奇妙かもしれませんが、私は以前から、ルーティング プロトコルの操作や管理を面倒だと思っていました。皆さんも RIP や OSPF といったルーティング プロトコルはご存知だと思います。これらのプロトコルの経路制御は、メトリックを緻密に設計し、その設計に基づいて各ルータを設定する必要があります。さらにメトリックはプレフィックス単位ではないので、プレフィックス単位で経路を制御しようと思うと、PBR(Policy-Based Routing)や MPLS-TE などを使う必要があり、これまた設計/設定が大変です。
onePK を使えばこのような課題が解決できるかも、という期待が私の中に生まれたのでした。
実際に作ってみた
IP 経路制御のアプリ作成には、onePK のルーティング サービスセットの API を利用します。onePK の API のお作法になじむまでは少し苦労しましたが、実はほとんどがサンプル プログラムを使うことで実装できてしまいました。操作性を考えて、ネットワークトポロジ上のルータのアイコンをクリックして経路指示を行うような GUI も作ってみました。なお GUI に関しては onePK の API では提供されていませんので、別途開発が必要です。
GUI 操作で実際に IP 経路情報をルータに入れ、show ip route コマンドで確認すると、以下のように“a”というフラグが付いたアプリケーション ルートが挿入されているのが確認できます。
このように onePK アプリが利用されている環境であっても、従来の IOS のコマンドや IP ルーティングの概念がそのまま使えます。これは ハイブリッド型SDNであるonePK のメリットの 1 つで、 RIP や OSPF などと混在させた運用もできるのです。RIP や OSPF などで IP バックボーンを構成して運用させたまま、必要に応じて一部のプレフィックスの経路だけを変更する、パイロット的な導入ができます。これができないと、IP バックボーンに必要とされる IP 経路情報のすべてをアプリケーションで制御しなければならなくなります。
また、ルータ内の IP 経路の排他制御に関しては、IOS の機能である Administrative Distance が便利です。onePK で処理されるアプリケーション ルートの Administrative Distance 値を小さく(優先度を高く)しておけば、RIP や OSPFと混在していても、アプリケーションで指示した通りに IP 経路制御ができます。
このようなアプリがあれば、回線やネットワーク機器のメンテナンス時や輻輳時に、一時的にトラフィックを迂回させるなんてことも、あっという間にできてしまいます。実際にこのアプリを使っていろいろな場所でデモを行なっていますが、皆さんからの評価は高く、その有用性を確信しました。このようなアプリが市場に出てくるようになれば、もっと迅速かつフレキシブルに IP ネットワークの運用ができるようになると思います。
Tags:- #enterprisenetworks
- #intentbasednetworking
- #WiredforWireless
- #クラウド
- #データセンター
- 11ac
- 2017
- 2021年度
- 3gpp
- 5G
- 5G ショーケース
- 5G 重点施策
- 5Gサイバーセキュリティ
- 5Gデモ
- ACI
- API
- APIC
- APIC EM
- APPLE
- Apple iOS
- Architecture
- ARS 9904
- ASR 9000
- ASR 9006
- ASR 9901
- ASR9904
- Best of Show Award
- Buzzword
- BYOD
- Catalyst
- catalyst 9600
- CGN
- Cisco
- Cisco 4451 ISR
- Cisco 8201-32FH
- Cisco ACI
- Cisco AI/ML
- Cisco Aironet 3800
- Cisco APIC Enterprise Module
- Cisco ASR 1009X
- Cisco ASR 9902
- Cisco Catalyst
- Cisco Catalyst 3850
- Cisco Crosswork
- Cisco Data Center Solution Day
- Cisco EPN Day
- Cisco Hierarchical Controller
- Cisco Intelligent Proximity
- Cisco IOS
- Cisco IOS フル活用への道
- Cisco Network Services Orchestrator
- Cisco Nexus
- Cisco NFM(Nexus Fabric Manager)
- Cisco NSO
- Cisco Prime DCNM(Data Center Network Manager)
- Cisco Prime Network
- Cisco Quantum™ Virtualized Packet Core
- Cisco Routed Optical Networking
- Cisco SD-WAN
- Cisco Silicon One
- Cisco Spark
- Cisco Tetration Analytics
- Cisco VTS(Virtual Topology System)
- Cisco Webex
- Cisco Webex Meetings
- Cisco Webex Teams
- CiscoJapan2020BlogRelay
- CiscoSDWAN
- Cloud Days
- Cloud Native
- CMX
- Colin Kincaid
- Collaboration
- Connected Mobile Experience
- CPAK
- Data Center Anywhere
- DC インターコネクト
- Dis-Aggregation
- DNA Center
- Doug Webster
- DWDM
- E-DI
- EEM
- eMBB
- Embedded Event Manager
- EPC
- EPN
- ESP
- Ethernet ファブリック
- Evolved Programmable Network
- FabricPath
- Facebook Wi-Fi
- Firepower
- Flexible NetFlow
- FutureOfIT
- HCO
- HotStage
- HyperFlex
- IBN
- IDC
- IIoT
- Internet for the Future
- Internet of Everything
- Internet of Things
- Internet of Things(IoT)
- InternetofEverything
- Interop
- Interop 2023
- Interop Tokyo
- interop tokyo 2014
- Interop tokyo 2015
- Interop Tokyo 2016
- Interop tokyo 2018
- interop tokyo 2019
- Interop Tokyo 2021
- Interop Tokyo 2023
- INTEROP2021
- Interop21
- Introp
- IoE
- ios
- ios10
- IoT
- IP SLA
- IP ファブリック
- ISR
- IT
- IT の未来
- JANOG48
- Jeff Reed
- jim grubb
- KT(Knowledge Transfer)
- Lab
- Leading Lights
- Level 3
- Lightreading
- LightSpeed Plus
- LISP
- LoRa
- LTE
- M2M
- mGig
- ML
- mMTC
- Multi-Pod
- NaaS
- NCS
- NCS 55A1
- netflow
- NetFusion
- Netrounds
- Network Architecture
- Nexus
- Nexus 7000/7700
- Nexus 7700
- Nexus 9000
- Nexus 9000 スイッチ
- Nexus 92160YC
- NFV
- nms
- nso
- NX-OS
- onePK
- Open vRAN
- openPK
- OpenStack
- PBB-EVPN
- PGW
- programmability
- QvPC
- Remote Leaf
- REST API
- Routed Optical Networking
- Sandbox
- SD-WAN
- SDI
- SDN
- SDN2014
- SDWAN
- Sedona Systems
- Segment Routing over IPv6
- Showcase
- ShowNet
- SHOWNET2021
- ShowNetツアー
- Silicon One
- SNMP Trap
- SP ネットワーク
- SR Hand Off
- SRv6
- Stealthwatch
- Supervisor Engine 6T
- SX20
- Tail-F
- TC
- tco
- Team Space
- Tetration Analytics
- TheatGRID
- ThousandEyes
- Threat Centric Security
- URLLC
- Virtualization
- VM
- VPN
- VXLAN
- VXLAN ファブリック
- WeareCisco
- Web スケール
- Wi-Fi
- Wi-Fi 6
- wifi
- Wireless
- YANG
- にょロボてぃくす
- アナリティクス
- アプリケーション
- アプリケーション セントリック インフラストラクチャ
- アプリケーション ネットワーキング サービス
- アーキテクチャ
- イノベーション
- インタークラウド
- インテル Xeon プロセッサ
- インテントベース
- インテントベース ネットワーキング
- インフラストラクチャ
- インフラストラクチャ プログラマビリティ
- インフラストラクチャ プログラマビリティ、ネットワーク、ネットワーク プログラマビリティ、SDN、ソフトウェア定義型、IT の未来
- エグゼクティブ
- エンタープライズ ネットワーキング
- エンタープライズネットワーク
- エンドツーエンド
- オーケストレーション
- カスタマー エクスペリエンス
- カスタマーサクセス
- キャリアAS
- クラウド コンピューティング
- クラウドAS
- クラウドネイティブ
- コネクテッドカー
- コラボレーション
- サイバーセキュリティ
- サービス プロバイダー
- サービスプロバイダー
- シスコ
- シスコが考えるサービスプロバイダー エンドツーエンドアーキテクチャ
- スイッチ
- スケジュール済みファブリック
- スマートシティ
- スマート工場
- スモールセル
- セキュリティ
- セグメント ルーティング
- セグメントルーティング
- ソフトウェア定義型
- テクノロジー
- テレフォニー
- テレワーク
- デジタル
- デジタルデバイド
- デジタルトランスフォーメーション
- デジタル変革
- データ
- データセンターネットワーク
- データン
- トレンド
- ネットワーク
- ネットワーク アーキテクチャ
- ネットワーク プログラマビリティ
- ネットワーク、ネットワーク プログラマビリティ
- ネットワークアーキテクチャ
- ネットワークエンジニア
- ネットワークシステム
- ネットワーク仮想化
- ネットワーク保証
- ネットワーク監視
- ネットワーク管理
- ネットワーク自動化
- ハイパーコンバージドインフラ
- ハイパースケール
- ハイブリッドクラウド
- パケット コア
- パケットコア
- パートナーシップ
- ビッグ データ
- ビッグデータ
- ビデオ
- ファブリック
- ブログリレー
- ブース紹介
- プライベートクラウド
- プロアクティブな運用
- プログラマビリティ
- プログラマブル ネットワーク
- プログラマブル ファブリック
- ホワイトペーパー
- マルチクラウド
- マルチテナント
- ミレニアル世代
- モバイル
- モバイル デバイス
- モバイル ワーク
- モバイル ワークスペース
- モバイルネットワーク
- モバイル通信事業者
- モビリティ
- モビリティ セキュリティ
- ユニファイド コミュニケーション
- ルータ
- ロケーションベースのサービス
- ローカル5G
- ワイヤレス
- 事業戦略
- 事業戦略説明会
- 人工知能(AI)
- 仮想ネットワーク
- 仮想化
- 仮想化パケット コア
- 俊敏性
- 働きがいのある会社
- 働き方改革
- 光伝送装置
- 合併・買収
- 在宅勤務
- 変革のハブ
- 富士通
- 年次セキュリティ レポート 2014年
- 新入社員
- 楽天
- 楽天モバイル
- 機械学習(ML)
- 次世代 IPS
- 注目
- 特集
- 脅威中心型セキュリティ
- 自動設定
- 製品
- 論文コンテスト
- 買収
- 連載:ネットワーク アーキテクチャ考
- 開発
- 開発環境