SlideShare a Scribd company logo
ネットワーク機器のAPIあれこれ入門
How do you wan to talk with your Network Nodes?
Twitter: @ebiken | ebiken.g@gmail.com
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 1
本日のお題
「ネットワーク機器のAPIを使って何かしたい!」
と思っている人が、何かを始められるように
ネットワーク機器APIの全体像をつかむ
• APIを利用してできる事
• ネットワーク機器のインターフェース
• REST (like) API の違い
• Appendix:参考資料
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 5
要は、自分がこの数か月勉強したことをシェアします。
ネットワーク自動化の全体像
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 6
APIを利用してできる事
設定投入
ディスカバリー
トポロジー描画
通知・アラート
(Notification)
コマンド実行
ネットワーク管理システム(NMS)
アプリケーション
ネットワーク機器
Ping
Traceroute
設定(参照)
RIB/FIB
隣接情報
複数機器
状態(Status)
統計(Stats)
設定投入
複数機器
ネットワーク自動化の全体像
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 7
APIを利用してできる事
ディスカバリー
トポロジー描画
通知・アラート
(Notification)
コマンド実行
ネットワーク管理システム(NMS)
アプリケーション
ネットワーク機器
Ping
Traceroute
設定(参照)
RIB/FIB
隣接情報
状態(status)
統計(Stats)
アプリケーション・プログラムによるアクセスが可能
⇒ これらを組み合わせた様々な自動化が可能
ネットワーク自動化の全体像
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 8
ネットワーク機器のインターフェース
昔ながらの
インターフェース
標準化が進められているAPI 機器毎の独自API
REST? API
(JSON/XML+HTTP)
(RPC over HTTP)
NECONF/YANG
(RESTCONF)
CLI
SNMP
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 9
CLI / SSH
ネットワーク機器のAPI
ネットワーク機器のAPI
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 10
CLI / SSH
• SSHセッション上でCLIコマンド
を会話的に実行
• SSHセッションを意識した
プログラミング(煩雑)
• Exscript, expect等SSHパッケー
ジの利用
• CLI経由でのみ実行可能なコ
マンドが存在
参考: NetOpsCoding Advent Calendar 2015
ソフトウェアからルータにSSH(Exscript)で設定してみる
http://qiita.com/taijijiji/items/351c48a8a77ee56f6e79
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 11
NETCONF / YANG
ネットワーク機器のAPI
ネットワーク機器のAPI:NETCONF/YANG
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 12
ネットワーク機器設定の
「データモデル」「オペレーション」 「データストア」 を提供
• IETFで標準化@NETCONF WG
• RFC 6241 NETCONF
• RFC 6020 YANG
https://datatracker.ietf.org/wg/netconf/documents/
オペレーション
<get-config>
<edit-config>
<delete-config>
<commit>
etc.
データストア
candidate config
running config
startup config
YANG (データモデル)
設定情報含むネットワーク機器のモデル化
NETCONF (プロトコル)
オペレーション データストア
XML-RPC
SSH, TLS (トランスポート)
ネットワーク機器のAPI:NETCONF/YANG
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 13
NetConf / YANG
Network Configuration Management with NETCONF and YANG
http://www.ietf.org/edu/documents/2012-ietf-84-netconf-yang.pdf
YANG
NetConf
<get-config>
<edit-config>
<delete-config>
<commit>
オペレーションの流れ
ネットワーク機器のAPI:NETCONF/YANG
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 14
YANG Model Example
RFC 7223 : YANG Interface Management
https://tools.ietf.org/html/rfc7223
ネットワーク機器のAPI:NETCONF/YANG
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 15
嬉しい点
• 標準化が進められている
• データモデル(YANG)
• プロトコル(NETCONF)
• 多くのベンダーがサポート表明
• オペレーションやエンコーディン
グ(XML)は各機器共通
つらい点
• 「設定」 関連情報・操作のみ
• ベンダーや機器間でのデータモデ
ルの差異
• YANGを使わなくても良い
• 操作(設定)可能なパラメータの差異
• 操作できない設定も
• エンコーディングはXML
• 冗長で読みづらい
⇒ SDK/Libraryの利用が必須
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 16
... その前に ...
REST API
ネットワーク機器のAPI
REST おさらい
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 17
REST おさらい
• URI = リソース
• HTTP Method=操作
• POST => Create
• GET => Read
• PUT => Update
• DELETE => Delete
• BODYエンコーディング(符号化)
• 何でも良い:JSON, XML, CSV etc.
• でも JSON が多い
• ステート(セッション)もたない
操作 リソース
REST おさらい
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 18
REST な URI
•/interface/ge-0-0-1
•/interface/ge-0-0-1/ipv4
•/version
REST ではない URI
•/show-interface/ge-0-0-1
•/set-interface/ge-0-0-1/ipv4
•/show-version
操作は REST URIに含まれない!
REST おさらい
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 19
RESTの特徴
• HTTP(S) トランスポート
• プログラムしやすい!
• コマンド1行でリクエスト作成可能
• curl, wget ..
• 様々な言語のライブラリ
• Ruby, Python, Go, Perl ...
• (当然)標準化されていない
• RESTは規約ではなく思想
• (個人の見解です)
• 実際にはRESTfulだとできない事
も
• Candidate config + commit とか。
• 結果、RESTfulではない&各機器異
なる実装に。
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 20
API対応状況(ネットワーク機器各種)
なぜネットワーク運用自動化が進まないのか
by Biglobe 土屋さん
http://www.slideshare.net/taijitsuchiya5/ss-47398248
http://www.slideshare.net/taijitsuchiya5/whitebox-switch-48099814
REST API !?
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 21
REST (like) な API の分類 (概要)
• URI
• リソース
• リソース+操作
• 常に同じ
• エンコード
• JSON
• XML
• セッション
• 有り:URI/BODYにSessionID
• 無し
• オペレーション
• CLIをBodyに入れて送信
• HTTP METHOD + URI
• URIにコマンド入れる
RESTと記載されてても、(基本)RESTfulではない
• JSON-RPC, XML-RPC, WEB API?
Brocade vRouter 5600 (Vyatta)
• URI: コマンドを表す(リソースではなく)
• Encoding符号化: JSON
• 参照・設定、共にセッションを持つ
• Config Workflow
• Ops: one-time output
• Ops: continuous output
• GET /rest/op/<cmd>
• Ops with no session ID will return parameter definitions.
• Very different from RESTful concept.
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 22
Brocade vRouter 5600 (Vyatta)
Brocade vRouter 5600 (Vyatta)
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 23
設定投入&適用 Workflow
1. Begin a configuration session
• Config Session ID named "conf-id" will be
generated.
2. make configuration changes
• PUT /rest/conf/<conf-id>/set/<path>
• PUT /rest/conf/<conf-id>/delete/<path>
3. commit changes
• POST /rest/conf/<conf-id>/commit
4. optional: view config
• GET /rest/conf/<conf-id>/<path>
5. save config
• POST /rest/conf/<conf-id>/save
6. Finish configuration session
• DELETE /rest/conf/<conf-id>
CLIをURLにマップしたイメージ
Brocade vRouter 5600 (Vyatta)
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 24
参照コマンド (One Time)
• Begin a ops session
• POST /rest/op/show/version
• HTTP/1.1 201 Created
• Location: rest/op/137AA3B22A362CA3
• Get output from the command just
sent
• GET /rest/op/137AA3B22A362CA3
• HTTP/1.1 200 OK
• If request 2nd time, it's gone.
• GET /rest/op/137AA3B22A362CA3
• HTTP/1.1 410 Gone
Brocade vRouter 5600 (Vyatta)
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 25
参照コマンド (継続的)
• Begin a ops session (ex: ping)
• POST /rest/op/ping/10.0.0.1
• Get ouput (1st)
• GET /rest/op/02B3479CA1522F2A
• HTTP/1.1 200 OK
• PING 10.3.0.1 (10.3.0.1) 56(84) bytes of
data.
• 64 bytes from 10.3.0.1: icmp_seq=1
ttl=64 time=0.839 ms
• 64 bytes from 10.3.0.1: icmp_seq=2
ttl=64 time=0.846 ms
• ...
• 64 bytes from 10.3.0.1: icmp_seq=18
ttl=64 time=0.821 ms
• Get output (2nd)
• GET /rest/op/02B3479CA1522F2A
• HTTP/1.1 200 OK
• 64 bytes from 10.3.0.1: icmp_seq=19
ttl=64 time=0.799 ms
• 64 bytes from 10.3.0.1: icmp_seq=20
ttl=64 time=0.807 ms
• ...
• Stop a ops session (and the command
ping)
• DELETE /rest/op/02B3479CA1522F2A
.
Brocade VDX
• URI: リソースを表す
• エンコード(符号化):XML
• コマンド:HTTP Method (GET, POST, PUT, PATCH, DELETE, OPTIONS, and HEAD)
• パラメーター:BODY (XML)
• 設定のための “session-id” や “commit” という概念はない
• POST http://host:80/rest/config/running/interface/TenGigabitEthernet/%221/0/5%22/ip
• <address>
• <address>192.168.10.1/24</address>
• <ospf-ignore>true</ospf-ignore>
• </address>
• 参照(実行)コマンドには “session-id” があり実行結果をレスポンス
• ex: l2traceroute-result,
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 26
Brocade VDX
REST (like) API のタイプ
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 27
JSON RPC 型 (Arista EOS eAPI)
URI=固定(/command-api)
BODYにCLIコマンド列挙(JSON)
ex: http://admin:pAssW0rd@198.51.100.1/command-api
Reference: https://eos.arista.com/arista-eapi-101/
<protocol>://<username>:<password>@<hostname or ip-address>/command-api
• CLIを投入するようにコマンドをシーケンシャルに記述可能
• 参考: Arista eAPI の概略を5分で説明してくれます。
• https://www.youtube.com/watch?v=9sWux0GCZ78
• Command API Explorer
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 28
JSON RPC 型 (Arista EOS eAPI)
JUNOS: XML RPC Single Method
• CLIに紐づいた RPC Method をURIに記述
• インターフェース名などのパラメータもURI中に?で指定
• scheme://device-name:port/rpc/method[@attributes]?params
• scheme: http or https
• method: rpc command
• 各コマンドに対してそれぞれRPC methodが定義されている。
• params: Optional parameter values (name[=value])
• Response Formatを指定可能
• @attributes で指定: @format=json
• HTTP header “Accept:” で指定:application/xml, application/json
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 29
JUNOS: XML RPC Single Method
参考:JunosのREST APIを使ってみる
http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
device-name port
JUNOS: XML RPC Single Method
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 30
URI Example
https://198.51.100.1:3000/rpc/get-software-information
... /get-interface-information?terse=&interface-name=ge-0/0/1
method
method parameters
参考:JunosのREST APIを使ってみる
http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
JUNOS: XML RPC Single Method
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 31
CLIコマンドに対応する RPC method 確認方法
参考:JunosのREST APIを使ってみる
http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
JUNOS: XML RPC Single Method
• 1. 設定投入:POST load-configuration
• 設定内容は BODY に CLI 出力と同様のフォーマットで指定。
• Candidate Config に保存される
• 2. 設定適用:POST commit-configuration
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 32
JUNOS 設定投入・適用
参考:JunosのREST APIを使ってみる
http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
REST (like) API のタイプ
• (URIでなく)CLIに紐づくRPC Method をBODYに複数記述
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 33
XML RPC Multi Method型 (JUNOS Multi RPC)
Request Response
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 34
REST (like) API の特徴(機器別)
• Vyatta
• URI = CLI Command
• Encode: JSON
• Session 設定:有|参照:有
• 設定はセッション(conf-id)毎にCandidate config
を編集、Commit
• 参照やOpsコマンド実行は2回以上リクエスト投
げて結果を受け取る
• 継続的なコマンド(Ping)とか実行可能
• Brocade VDX
• URI = Resource
• Encode: XML
• Session: 設定:無|参照:有(継続コマンドのみ)
• HTTP Method で操作を表す
• 設定のためのセッションという概念は無い。
• 継続的なコマンドにはセッションという概念あり。
• Arista
• URI: 固定 /command-api
• Encode: JSON
• Session: 無
• コマンドは Request BODY に JSONで記述
• 複数コマンドを1度に送信できる。
• Juniper
• URI = CLI mapped RPC method (or 固定URI
+ RPC method in BODY)
• Encode: XML, JSON, TXT
• Session: 無
• 設定投入は設定をBODYに記載して /load-
configuration に投入
• 適用は commit-configuration を投入
プログラミングの階層構造&まとめ
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 35
Network Controller
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 36
プログラミングの階層構造
アプリケーション
SDK / library
(機器毎)
Plug-in(機器毎)
Wire Protocol
CLI/SSH, NETCONF, REST (like)
各機器共通API
REST (like)
「実現したいこと」&「機器仕様」
を元に検討
まとめ
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 37
SDK や Library の提供・活用
NECONF/YANG
⇒ 標準化進められているが複雑
REST (like) API
⇒ ベンダー毎に独自なAPI
シンプルなAPIの必要性
直接APIアクセス (SDK や Library だけで
はできないことを実装するために)
⇒ メーカーによる機能追加(要求)
⇒ API Proxy/Agent などの開発・公開
メーカーの視点から
多くの人に使ってもらえる(期待が持てる)機能は実装&改善可能
試して、できなかった事、足りない機能など公開して
「プログラミングしやすい環境」を加速させよう!
Appendix: LINK集
これからネットワークプログラムしたい人が読むと嬉しい資料
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 38
ネットワーク自動化・アプリケーション連携への動き
IDCF 井上さん
• 2015年10月中心 : QIITAでAPI実装・実験色々
• http://qiita.com/inoueissei
Biglobe 土屋さん
• 2015/12/21 ソフトウェアからルータにNETCONF(ncclient)で設定してみる
• http://qiita.com/taijijiji/items/394d6af5a71834c4e48a
• 2015/12/02 ソフトウェアからルータにSSH(Exscript)で設定してみる
• http://qiita.com/taijijiji/items/351c48a8a77ee56f6e79
• 2015/05/xx ?? なぜネットワーク運用自動化が進まないのか
• Why is it difficult to automate network operation
• http://www.slideshare.net/taijitsuchiya5/ss-47398248
• http://www.slideshare.net/taijitsuchiya5/whitebox-switch-48099814
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 39
ネットワーク自動化・アプリケーション連携への動き
Shintaro Kojima @codeout
• NETCONF 入門 知ったかぶりしない NETCONF (2014/10/24)
• http://codeout.hatenablog.com/entry/2014/10/24/230013
• NETCONF 入門 やってみよう NETCONF (2014/10/30)
• http://codeout.hatenablog.com/entry/2014/10/30/224405
Hiroshi Ota @otahi
• 2015/04/23 テスト自動化@第4回 ネットワークプログラマビリティ勉強会
• http://gvtkne.blogspot.jp/2015/04/npstudy4.html
Brocade Yukihiro Kikuchi
• 2014/04/04 Vyatta REST API解説@Vyatta Users Group
• http://www.slideshare.net/YukihiroKikuchi/20140404-vyatta-users-group
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 40
ネットワーク自動化・アプリケーション連携への動き
Twitter: @takech9203
• 2015/02/22 VyattaのREST APIを使ってみる
• http://qiita.com/takech9203/items/2225c8e4ac7dc5bea1e0
Twitter: @kakkotetsu
• 2014/12/14 Arista の REST API を ruby や Ansible で突いてみよう
• http://qiita.com/kakkotetsu/items/944c263c1580a230a9c0
NetOpsCoding Advent Calendar 2015:
• http://qiita.com/advent-calendar/2015/netopscoding
• 2015/12/17 JunosのREST APIを使ってみる
• http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 41
ベンダーが作成している? ライブラリ
• Juniper
• https://github.com/Juniper/net-netconf
• https://github.com/Juniper/netconf-perl
• https://github.com/Juniper/netconf-java
• https://github.com/Juniper/netconf-php
• https://github.com/leopoul/ncclient
• Cisco
• https://github.com/jtimberman/ruby-cisco
• https://github.com/nickpegg/ciscolib
• Brocade
• [https://github.com/brocade/ncclient
• https://github.com/brocade/brocade (OpenStack Plugin)
• https://github.com/BRCDcomm/BVC (VyattaController )
• https://github.com/zapman449/brocade_switchshow_aliases
(Fiber switches)
• Alaxala
• https://github.com/sumikawa/netconf
• Cumulus
• https://github.com/CumulusNetworks/cumulus-linux-
ansible-modules
• https://github.com/CumulusNetworks/cumulus-linux-chef-
modules
• https://github.com/CumulusNetworks/net-next
• https://github.com/CumulusNetworks/quagga
• https://github.com/CumulusNetworks/cumulus-cl-interfaces-
puppet
• https://github.com/OpenRTMFP/Cumulus (MonaServer使っ
たSW)
• https://github.com/cotdsa/cumulus
• http://cumulusnetworks.com/blog/cumulus-linux-2/
ネットワーク機器のAPIあれこれ入門|NetOpsCoding#2|2016/03/04|@ebiken 42
Slide 40, JANOG36, IDCF井上さん
http://www.janog.gr.jp/meeting/janog36/download_file/view/188/170

More Related Content

PDF
BGP Unnumbered で遊んでみた
PDF
IPv4/IPv6 移行・共存技術の動向
PDF
ネットワーク構築訓練 入門
PPTX
フロー技術によるネットワーク管理
PDF
NETCONFとYANGの話
PPTX
ConfD で Linux にNetconfを喋らせてみた
PDF
Linux女子部 systemd徹底入門
PDF
Scapyで作る・解析するパケット
BGP Unnumbered で遊んでみた
IPv4/IPv6 移行・共存技術の動向
ネットワーク構築訓練 入門
フロー技術によるネットワーク管理
NETCONFとYANGの話
ConfD で Linux にNetconfを喋らせてみた
Linux女子部 systemd徹底入門
Scapyで作る・解析するパケット

What's hot (20)

PDF
"SRv6の現状と展望" ENOG53@上越
PDF
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
PPTX
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
PDF
ISPの向こう側、どうなってますか
PDF
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
PDF
ロードバランスへの長い道
PDF
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
PDF
ネットワークコンフィグ分析ツール Batfish との付き合い方
PDF
SRv6 study
PDF
ネットワークOS野郎 ~ インフラ野郎Night 20160414
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PDF
ネットワークエンジニアはどこでウデマエをみがくのか?
PDF
大規模DCのネットワークデザイン
PDF
インターネットの仕組みとISPの構造
PDF
大規模サービスを支えるネットワークインフラの全貌
PDF
Serf / Consul 入門 ~仕事を楽しくしよう~
PDF
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
PDF
インフラエンジニアってなんでしたっけ(仮)
PPTX
マイクロサービスにおける 結果整合性との戦い
"SRv6の現状と展望" ENOG53@上越
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ISPの向こう側、どうなってますか
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
ロードバランスへの長い道
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークコンフィグ分析ツール Batfish との付き合い方
SRv6 study
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットワークエンジニアはどこでウデマエをみがくのか?
大規模DCのネットワークデザイン
インターネットの仕組みとISPの構造
大規模サービスを支えるネットワークインフラの全貌
Serf / Consul 入門 ~仕事を楽しくしよう~
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
インフラエンジニアってなんでしたっけ(仮)
マイクロサービスにおける 結果整合性との戦い
Ad

Viewers also liked (20)

PDF
ネットワークAPI のあれこれ (ENOG37)
PDF
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
PPTX
plotnetcfg入門 | Introduction to plotnetcfg
PDF
"OPEN NETWORKING" に向けた Management / Data Plane の動向
PPTX
Getting started with YANG
PPTX
オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証
PDF
20140404 vyatta users Group / REST API解説
PPTX
Quick Start Guide using Virtuozzo 7 (β) on AWS EC2
PPTX
ネットワーク図作成ツール nwdiag の紹介 2011/07 #janog28
PDF
Ansible handson
PPTX
Netconf et Yang
PDF
Cliに慣れよう
PDF
≪先進企業に学べ!≫大塚商会 × BROCADE 『たよれーる』のデータセンター基盤に、なぜイーサネット・ファブリックを採用したのか?~SDNへの進化のス...
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
PDF
KLabのSI事業について
PDF
Gephi Tutorial Visualization (Japanese)
PDF
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
PPTX
excel を捨てよ blockdiag を使おう 2011/05 #tqrk03 (tokyu.rb)
PDF
20120309 cloud mix-public クラウドごった煮
PDF
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
ネットワークAPI のあれこれ (ENOG37)
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
plotnetcfg入門 | Introduction to plotnetcfg
"OPEN NETWORKING" に向けた Management / Data Plane の動向
Getting started with YANG
オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証
20140404 vyatta users Group / REST API解説
Quick Start Guide using Virtuozzo 7 (β) on AWS EC2
ネットワーク図作成ツール nwdiag の紹介 2011/07 #janog28
Ansible handson
Netconf et Yang
Cliに慣れよう
≪先進企業に学べ!≫大塚商会 × BROCADE 『たよれーる』のデータセンター基盤に、なぜイーサネット・ファブリックを採用したのか?~SDNへの進化のス...
OVN 設定サンプル | OVN config example 2015/12/27
KLabのSI事業について
Gephi Tutorial Visualization (Japanese)
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
excel を捨てよ blockdiag を使おう 2011/05 #tqrk03 (tokyu.rb)
20120309 cloud mix-public クラウドごった煮
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
Ad

Similar to ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2) (20)

PDF
Wakame-vnet / Open Source Project for Virtual Network & SDN
PDF
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社
PDF
Microsoft tech fielders_cisco_20150126_配布版
PPTX
Vco rest api_overview_rev02
PPT
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
PDF
20131211 Neutron Havana
PDF
EVPN for Cloud Builders
PPTX
Interact 2018:PowerShell of Microsoft SDN v2 101
PDF
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
PDF
データセンター進化論:これ以上オープンになれないSDNとは?
PDF
【Interop tokyo 2014】 Cisco SDNの進化とアプリケーションモデル標準化への取り組み
PDF
【Interop Tokyo 2015】 DC 1: Cisco VXLAN ファブリックの展望
PDF
OpenFlowをXenServerで試してみよう
PDF
OpenStack and ACI
PDF
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
PDF
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
PDF
変わるモバイル・ネットワークの世界 ~ソフトウェアが可能にする破壊的進化のリアリティと将来~
PDF
API イントロダクション APIC-EM, Prime Infrastructure & CMX
PDF
161027 net opscoding-junos-automation
PDF
【Brocade OpenStack ソリューション】OpenStack 概要
Wakame-vnet / Open Source Project for Virtual Network & SDN
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社
Microsoft tech fielders_cisco_20150126_配布版
Vco rest api_overview_rev02
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
20131211 Neutron Havana
EVPN for Cloud Builders
Interact 2018:PowerShell of Microsoft SDN v2 101
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
データセンター進化論:これ以上オープンになれないSDNとは?
【Interop tokyo 2014】 Cisco SDNの進化とアプリケーションモデル標準化への取り組み
【Interop Tokyo 2015】 DC 1: Cisco VXLAN ファブリックの展望
OpenFlowをXenServerで試してみよう
OpenStack and ACI
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
変わるモバイル・ネットワークの世界 ~ソフトウェアが可能にする破壊的進化のリアリティと将来~
API イントロダクション APIC-EM, Prime Infrastructure & CMX
161027 net opscoding-junos-automation
【Brocade OpenStack ソリューション】OpenStack 概要

More from Kentaro Ebisawa (20)

PDF
P4 Updates (2020) (Japanese)
PDF
Barefoot Faster™ 日本語紹介
PDF
IETF106 Hackathon 報告 & P4 based Switch の課題と未来
PDF
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
PDF
Yang Tools Quick Memo
PDF
In Network Computing Prototype Using P4 at KSC/KREONET 2019
PDF
Comparison of SRv6 Extensions uSID, SRv6+, C-SRH
PDF
Interop2019 Toyota Netcope P4
PDF
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
PDF
p4srv6 (P4-16) design document rev1.0
PDF
SRv6 Mobile User Plane : Initial POC and Implementation
PDF
JANOG43 Forefront of SRv6, Open Source Implementations
PDF
Using GTP on Linux with libgtpnl
PDF
GTPing, How To
PDF
SRv6 Mobile User Plane P4 proto-type
PDF
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
PDF
Zebra 2.0 in Hybrid Cloud Era
PDF
p4alu: Arithmetic Logic Unit in P4
PDF
zebra & openconfigd Introduction
PDF
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
P4 Updates (2020) (Japanese)
Barefoot Faster™ 日本語紹介
IETF106 Hackathon 報告 & P4 based Switch の課題と未来
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
Yang Tools Quick Memo
In Network Computing Prototype Using P4 at KSC/KREONET 2019
Comparison of SRv6 Extensions uSID, SRv6+, C-SRH
Interop2019 Toyota Netcope P4
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
p4srv6 (P4-16) design document rev1.0
SRv6 Mobile User Plane : Initial POC and Implementation
JANOG43 Forefront of SRv6, Open Source Implementations
Using GTP on Linux with libgtpnl
GTPing, How To
SRv6 Mobile User Plane P4 proto-type
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Zebra 2.0 in Hybrid Cloud Era
p4alu: Arithmetic Logic Unit in P4
zebra & openconfigd Introduction
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック

ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)

Editor's Notes

  • #2: みなさん実践的なのが多いので、これから!という人を中心に、ネットワーク機器のAPIについて俯瞰してみましょう。
  • #3: https://atnd.org/events/74772
  • #4: 5分間の発表聞いた後には。。。 ・ネットワーク機器の自動化に登場する各要素が理解できてる ・どんなAPI=インターフェースがあるか、その分類と特徴が分かる。 ・試して、公開しようという気持ちになる。
  • #6: 駆け足になるけど、最後に参考資料へのLINKまとめあるから詳しくはそれ読もう!
  • #7: API それぞれでできる事はこんな感じ。 アプリケーションによるアクセスが可能=これらを組み合わせた自動化が可能 (Neighbor)
  • #8: 「今は想像できてない使い方が産まれる可能性がある」 ⇒ 自分がAPIを勉強している理由 API それぞれでできる事はこんな感じ。 アプリケーションによるアクセスが可能=これらを組み合わせた自動化が可能 (Neighbor)
  • #9: Transport や Object どこまで標準化されているかも説明
  • #11: セッション意識 ⇒ Config Modeなど1コマンドでは実行できない操作があるため、 taiji tsuchiya
  • #13: 例えば、インターフェイスの設定はNETCONFでできるけど、リンクアグリゲーションの設定はNETCONFだとできない。インターフェイスのUp/DownはSNMPで取得できるけど、LACP BlockedのステートはSNMPで取得できない。こういった状況にある場合は結局のところtelnet/sshしなくてはいけなくなります。
  • #14: MTU変更するだけでこの煩雑さ。 <config> に挟まれた部分が YANG を利用もしくはベンダー独自も可能。
  • #16: 例えば、インターフェイスの設定はNETCONFでできるけど、リンクアグリゲーションの設定はNETCONFだとできない。インターフェイスのUp/DownはSNMPで取得できるけど、LACP BlockedのステートはSNMPで取得できない。こういった状況にある場合は結局のところtelnet/sshしなくてはいけなくなります。
  • #20: それを踏まえて「対応状況」を見てみましょう
  • #21: これみて 「REST使えば簡単!?」 とか思って調べてみた。
  • #28: Good Video: https://www.youtube.com/watch?v=9sWux0GCZ78 URI: 固定 Encoding: JSON コマンド:BODY (JSON) パラメータ:BODY (JSON)
  • #30: JunosのREST APIを使ってみる http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a terse = 簡略なアウトプットを指定。他にbrief, detail, extensive等がある。
  • #31: scheme://device-name:port/rpc/method[@attributes]?params
  • #37: 規模によってはNetwork Controller利用を検討(機器共通のAPIを提供可能な場合も) 実際に簡単に開発できるようになるにはSDK重要 でも、SDKに無いことしたい(未成熟)、SDKが無い、などの場合アプリから直接
  • #38: 自分もまだ数か月ですので、一緒に学んで試していきましょう。 標準化は進んでいる。 ちょっと進みは遅いけど十分? 汎用的なので複雑になりがち。 Gatewayで吸収できるので、勝手に作っちゃうのがベター? 開発環境は? Swaggerとか便利そう NetConf/YANG, RESTConf, RESTの操作感の違い コードの書き方、生データの見え方、設定・モニター何に向いてる?
  • #43: 16:03:02] Kentaro Fujinuma: Brocade の API を見ると [16:03:17] Kentaro Fujinuma: NetConf/YANG と REST/JSON を完全にパラレルに作っています [16:03:29] Kentaro Fujinuma: これは内部的には同じ処理をしているからだと思います。
  • #47: 例えば、インターフェイスの設定はNETCONFでできるけど、リンクアグリゲーションの設定はNETCONFだとできない。インターフェイスのUp/DownはSNMPで取得できるけど、LACP BlockedのステートはSNMPで取得できない。こういった状況にある場合は結局のところtelnet/sshしなくてはいけなくなります。