SlideShare a Scribd company logo
ネットワーク API のあれこれ
Network Node API
How do you wan to talk with your Network Node?
Twitter: @ebiken | ebiken.g@gmail.com
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 1
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 2
ネットワーク自動化・アプリケーション連携への動き
JANOG36 : 2015年7月15~17日
• API/Web化によるネットワーク自動化
• by 井上さん@株式会社IDCフロンティア
• http://www.janog.gr.jp/meeting/janog36/program/api
• NETCONF/YANG
• by 土屋 師子生@シスコシステムズ合同会社
• http://www.janog.gr.jp/meeting/janog36/program/netconf
JANOG37 : 2016年1月20~22日
• クラウド事業者側の仮想環境ネットワークの自動化について
• by 村上さん@GMOインターネット株式会社
• http://www.janog.gr.jp/meeting/janog37/program/vauto
ネットワークプログラマビリティ勉強会
• 2014年10月24日~ 16ヶ月で8回
• http://network-
programmability.connpass.com/
NetOpsCoding
• 2015年10月30日~ 4ヶ月で2回
• #1 https://atnd.org/events/70253
• #2 https://atnd.org/events/74772
ネットワーク自動化・アプリケーション連携への動き
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 3
ネットワーク自動化・アプリケーション連携への動き
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 4
ネットワーク自動化・アプリケーション連携への動き
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 5
機器側の課題
• 機器毎に違うから?
• NETCONF/YANG難しい?
• REST/WebAPI の手軽さが欲しい?
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 6
発表・BLOG・資料などがまだ沢山存在!?
でも、いまひとつ加速してない気がする?(注:個人の見解です)
人側(開発・運用)の課題
• ネットワーク&プログラミング両方
分かってる人少ない?
• 日常忙しすぎて時間無い?
⇒ 機器側の現状について調べてみた
(人側については是非ご意見をお聞かせください)
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 7
ネットワーク機器へのインターフェース(API)
アクセスの目的
• 変更:設定
• 参照:設定&状態&統計&ログ
• Configuration
• Status
• Statistics (counter)
• Log (syslog?)
• コマンド実行
• Ping, Traceroute, packet capture,
アクセス手段
• CLI / SSH
• SNMP
• NETCONF / RESTCONF
• REST (like) APIs
• JSON/XML + HTTP (RPC)
本日はこれ
⇒ JANOG36 : NETCONF/YANG by 土屋 師子生さん@Cisco
http://www.janog.gr.jp/meeting/janog36/program/netconf
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 8
API対応状況(ネットワーク機器各種)
なぜネットワーク運用自動化が進まないのか
Why is it difficult to automate network operation
by Biglobe 土屋さん
http://www.slideshare.net/taijitsuchiya5/ss-47398248
http://www.slideshare.net/taijitsuchiya5/whitebox-switch-48099814
REST API ??
REST おさらい
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 9
REST おさらい
• URI = リソース
• HTTP Method=操作
• POST => Create
• GET => Read
• PUT => Update
• DELETE => Delete
• BODYエンコーディング(符号化)
• 何でも良い:JSON, XML, CSV etc.
• でも JSON が多い
• ステート(セッション)もたない
操作 リソース
REST おさらい
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 10
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 11
• HTTP(S) トランスポート
• プログラムしやすい!
• コマンド1行でリクエスト作成可能
• curl, wget ..
• 様々な言語のライブラリ
• Ruby, Python, Go, Perl ...
• (当然)標準化されていない
• RESTは規約ではなく思想
• (個人の見解です)
• そもそもRESTfulだとできない事
もある
• Candidate config + commit とか。
RESTといいながらRESTfulではない実装が多数
• JSON-RPC, XML-RPC
• セッション持ったりしている
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 12
Brocade vRouter 5600 (Vyatta)
Brocade vRouter 5600 (Vyatta)
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 13
設定投入&適用 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>/<cmd>
4. optional: view config
• GET /rest/conf/<conf-id>/<path>
5. save config
• POST /rest/conf/<conf-id>/<cmd>
6. Finish configuration session
• DELETE /rest/conf/<conf-id>
Brocade vRouter 5600 (Vyatta)
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 14
参照コマンド (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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 15
参照コマンド (継続的)
• 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 16
Brocade VDX
REST (like) API のタイプ
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 17
JSON RPC 型 (Arista EOS eAPI)
URI: 固定
Encoding符号化: JSON
コマンド:BODY (JSON)
パラメータ:BODY (JSON)
Reference: https://eos.arista.com/arista-eapi-101/
<protocol>://<username>:<password>@<hostname or ip-address>/command-api
ex: http://admin:pAssW0rd@198.51.100.1/command-api
• CLIを投入するようにコマンドをシーケンシャルに記述可能
• 参考: Arista eAPI の概略を5分で説明してくれます。
• https://www.youtube.com/watch?v=9sWux0GCZ78
• Command API Explorer
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 18
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 19
JUNOS: XML RPC Single Method
参考:JunosのREST APIを使ってみる
http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
device-name port
JUNOS: XML RPC Single Method
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 20
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 21
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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 22
JUNOS 設定投入・適用
参考:JunosのREST APIを使ってみる
http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
REST (like) API のタイプ
• CLIに紐づいたRPC Method をBODYに複数記述
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 23
XML RPC Multi Method型 (JUNOS Multi RPC)
Request
Response
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 24
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 を投入
Appendix
オープンソースな実装ってあるの?
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 25
• OpenSwitch by HP
• REST実装あり。但し現状は OVSDB に対する操作のみ。
• ops-restd : Overview
• ------------
• OpenSwitch provides a Tornado framework-based application to access
**OVSDB** using RESTful APIs. The ops-restd module provides all the necessary
python packages required to add, delete, modify tables in the OVSDB database
using ```HTTP``` methods, ```GET, POST, PUT and DELETE```.
• Linux Shellアクセスできる機器増えてるので、Switchに載るGateway作ると
か?
• OpenFlowでもなんでも、RESTでアクセスできるように。
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 26
Appendix
プログラムするのに知っておきたい事
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 27
ベンダーが作成している? ライブラリ
• 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 28
Slide 40, JANOG36, IDCF井上さん
http://www.janog.gr.jp/meeting/janog36/download_file/view/188/170
まとめ
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 29
• API色々サポートされてるよ
• まだベンダー事に独自だよ
• RESTはひどく違うよ。てか、RESTじゃないし。
• 開発のためのライブラリは出てきてるけど、まだまだ足りない?
• Open Sourceも出てきたよ。でも、まだまだ発展途上。
• 違いを吸収する何かが必要
• OpenDaylight等、NMS / ミドル?
• Linux Shellアクセス可能な機器増えてるので、機器に載るGateway作れば良いのでは?
• ネットワークプログラミング始めるには十分な環境なのでは?
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 30
まとめ
ディスカッション
(皆さんに聞いてみたいコト)
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 31
ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 32
ちょっとアンケート(あなたの気持ちは?)
1. システム開発は外注するよ
• Do you really want to Program, Write Code?
• NMSはSIerが作ってくれるから。
• お金と時間ある人はこちらで。
2. ミドルウェア経由で作るよ
• どうせ機器間の違いを吸収するミドルウェア必
要なんじゃない?(ODLとか)
• ミドル作る人が頑張ればAPIの種類はどうでも
良い?あれば良い。
• ほんとにODLとか使いたい?やりたい事のわり
に複雑じゃない?
3. ライブラリ使ってやります。
• 開発はしたいけど、機器毎にライブラリ用意して
もらったらAPIは気にしなくてOK?
• Python, Ruby, Go?
• ライブラリは誰が作るんだっけ?
4. API直接使いたい!
• システム小さいし。
• APIが必要:既存監視システム、NMSなどに統合
したいから。
API使って自動化・プログラミング進めたいと言う人。どのスタンス?

More Related Content

PDF
"OPEN NETWORKING" に向けた Management / Data Plane の動向
PDF
ネットワークOS野郎 ~ インフラ野郎Night 20160414
PDF
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
PDF
How to run P4 BMv2
PPTX
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
PPTX
plotnetcfg入門 | Introduction to plotnetcfg
PPTX
Introduction to Ostinato , network packet crafting and generator.
PDF
Ansible npstudy-shtsuchi
"OPEN NETWORKING" に向けた Management / Data Plane の動向
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
How to run P4 BMv2
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
plotnetcfg入門 | Introduction to plotnetcfg
Introduction to Ostinato , network packet crafting and generator.
Ansible npstudy-shtsuchi

What's hot (20)

PPTX
Software forwarding path
PPTX
OpenShift from Easy way to Hard ? Way
PDF
Service Chaining Current and Future
PDF
OpenContrailのソースコードを探検しよう!
PDF
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
PDF
Lagopus & NFV with Vhost (Tremaday#9)
PPTX
Opnfv handson apex intro
PDF
スマホのセンサーでネットワークを操る ~Ansible TowerによるレガシーNW機器のAPI化~
PDF
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
PDF
Mk network programmability-03
PPTX
loggregator update
PPTX
Container Networking Deep Dive
PPTX
nftables: the Next Generation Firewall in Linux
PPTX
VPP事始め
PDF
minneで学ぶクラウド脳
PDF
Lagopus Router v19.07.1
PDF
ProjectAtomic-and-geard
PPTX
Pulsar Handson 20180226
PDF
Cloud Foundryのコンポーネントloggregatorについて
PDF
NPStudy LT Lagopus Router v19.07
Software forwarding path
OpenShift from Easy way to Hard ? Way
Service Chaining Current and Future
OpenContrailのソースコードを探検しよう!
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
Lagopus & NFV with Vhost (Tremaday#9)
Opnfv handson apex intro
スマホのセンサーでネットワークを操る ~Ansible TowerによるレガシーNW機器のAPI化~
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
Mk network programmability-03
loggregator update
Container Networking Deep Dive
nftables: the Next Generation Firewall in Linux
VPP事始め
minneで学ぶクラウド脳
Lagopus Router v19.07.1
ProjectAtomic-and-geard
Pulsar Handson 20180226
Cloud Foundryのコンポーネントloggregatorについて
NPStudy LT Lagopus Router v19.07
Ad

Viewers also liked (20)

PDF
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
PDF
20140404 vyatta users Group / REST API解説
PDF
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
PDF
Open Network OS Overview as of 2015/10/16
PPTX
Quick Start Guide using Virtuozzo 7 (β) on AWS EC2
PPTX
PDF
≪先進企業に学べ!≫大塚商会 × BROCADE 『たよれーる』のデータセンター基盤に、なぜイーサネット・ファブリックを採用したのか?~SDNへの進化のス...
PDF
Building Cloud Virtual Topologies with Ravello and Ansible
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
PDF
Gephi Tutorial Visualization (Japanese)
PDF
20120309 cloud mix-public クラウドごった煮
PPTX
Infrastructure as Code for Network
PDF
Microsoftにおけるネットワーク自動化とそれを支えるソフトウェア群について
PDF
そろそろSSH/Telnetを離れて自動化したい
PDF
Infrastructure as code
PDF
MC-LAG Configuration with BGP-base VPLS
PPTX
Instrumentation and Telemetry ガイダンス
PPTX
第1回 ネットワーク図について語る会 2015-08-27
PDF
インフラ屋の友:Tera Term
PDF
20111015 勉強会 (PCIe / SR-IOV)
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
20140404 vyatta users Group / REST API解説
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
Open Network OS Overview as of 2015/10/16
Quick Start Guide using Virtuozzo 7 (β) on AWS EC2
≪先進企業に学べ!≫大塚商会 × BROCADE 『たよれーる』のデータセンター基盤に、なぜイーサネット・ファブリックを採用したのか?~SDNへの進化のス...
Building Cloud Virtual Topologies with Ravello and Ansible
OVN 設定サンプル | OVN config example 2015/12/27
Gephi Tutorial Visualization (Japanese)
20120309 cloud mix-public クラウドごった煮
Infrastructure as Code for Network
Microsoftにおけるネットワーク自動化とそれを支えるソフトウェア群について
そろそろSSH/Telnetを離れて自動化したい
Infrastructure as code
MC-LAG Configuration with BGP-base VPLS
Instrumentation and Telemetry ガイダンス
第1回 ネットワーク図について語る会 2015-08-27
インフラ屋の友:Tera Term
20111015 勉強会 (PCIe / SR-IOV)
Ad

Similar to ネットワークAPI のあれこれ (ENOG37) (20)

PDF
データセンターを構成する最新ネットワーク技術動向
PDF
ネットワークコンフィグ分析ツール Batfish との付き合い方
PPTX
EC-CUBE API プラグイン勉強会
PPT
マッシュアップ勉強会
PPT
マッシュアップ勉強会
PDF
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
PPTX
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
PDF
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
PDF
Practical Web Audio API Programming
PDF
Reactor Netty & Apache Kafka Stack #jsug
PDF
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
PDF
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
PDF
OSSはどこまで産業用機器に使えるか_20230520.pdf
PDF
第2.1回Twitter API勉強会 - 検索API
PPTX
WebRTC mediasoup on raspberrypi3
PDF
さくらのクラウドを使ってみよう
PDF
20130315 abc firefox_os
PDF
Draft: Observability, Service Mesh and Microservices
PDF
AWSによるサーバーレスアーキテクチャ
PDF
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
データセンターを構成する最新ネットワーク技術動向
ネットワークコンフィグ分析ツール Batfish との付き合い方
EC-CUBE API プラグイン勉強会
マッシュアップ勉強会
マッシュアップ勉強会
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Practical Web Audio API Programming
Reactor Netty & Apache Kafka Stack #jsug
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
OSSはどこまで産業用機器に使えるか_20230520.pdf
第2.1回Twitter API勉強会 - 検索API
WebRTC mediasoup on raspberrypi3
さくらのクラウドを使ってみよう
20130315 abc firefox_os
Draft: Observability, Service Mesh and Microservices
AWSによるサーバーレスアーキテクチャ
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.

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の現状と展望" ENOG53@上越
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
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の現状と展望" ENOG53@上越
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

ネットワークAPI のあれこれ (ENOG37)

  • 1. ネットワーク API のあれこれ Network Node API How do you wan to talk with your Network Node? Twitter: @ebiken | ebiken.g@gmail.com ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 1
  • 2. ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 2 ネットワーク自動化・アプリケーション連携への動き JANOG36 : 2015年7月15~17日 • API/Web化によるネットワーク自動化 • by 井上さん@株式会社IDCフロンティア • http://www.janog.gr.jp/meeting/janog36/program/api • NETCONF/YANG • by 土屋 師子生@シスコシステムズ合同会社 • http://www.janog.gr.jp/meeting/janog36/program/netconf JANOG37 : 2016年1月20~22日 • クラウド事業者側の仮想環境ネットワークの自動化について • by 村上さん@GMOインターネット株式会社 • http://www.janog.gr.jp/meeting/janog37/program/vauto ネットワークプログラマビリティ勉強会 • 2014年10月24日~ 16ヶ月で8回 • http://network- programmability.connpass.com/ NetOpsCoding • 2015年10月30日~ 4ヶ月で2回 • #1 https://atnd.org/events/70253 • #2 https://atnd.org/events/74772
  • 3. ネットワーク自動化・アプリケーション連携への動き 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 3
  • 4. ネットワーク自動化・アプリケーション連携への動き 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 4
  • 5. ネットワーク自動化・アプリケーション連携への動き 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 5
  • 6. 機器側の課題 • 機器毎に違うから? • NETCONF/YANG難しい? • REST/WebAPI の手軽さが欲しい? ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 6 発表・BLOG・資料などがまだ沢山存在!? でも、いまひとつ加速してない気がする?(注:個人の見解です) 人側(開発・運用)の課題 • ネットワーク&プログラミング両方 分かってる人少ない? • 日常忙しすぎて時間無い? ⇒ 機器側の現状について調べてみた (人側については是非ご意見をお聞かせください)
  • 7. ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 7 ネットワーク機器へのインターフェース(API) アクセスの目的 • 変更:設定 • 参照:設定&状態&統計&ログ • Configuration • Status • Statistics (counter) • Log (syslog?) • コマンド実行 • Ping, Traceroute, packet capture, アクセス手段 • CLI / SSH • SNMP • NETCONF / RESTCONF • REST (like) APIs • JSON/XML + HTTP (RPC) 本日はこれ ⇒ JANOG36 : NETCONF/YANG by 土屋 師子生さん@Cisco http://www.janog.gr.jp/meeting/janog36/program/netconf
  • 8. ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 8 API対応状況(ネットワーク機器各種) なぜネットワーク運用自動化が進まないのか Why is it difficult to automate network operation by Biglobe 土屋さん http://www.slideshare.net/taijitsuchiya5/ss-47398248 http://www.slideshare.net/taijitsuchiya5/whitebox-switch-48099814 REST API ??
  • 9. REST おさらい ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 9 REST おさらい • URI = リソース • HTTP Method=操作 • POST => Create • GET => Read • PUT => Update • DELETE => Delete • BODYエンコーディング(符号化) • 何でも良い:JSON, XML, CSV etc. • でも JSON が多い • ステート(セッション)もたない 操作 リソース
  • 10. REST おさらい ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 10 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に含まれない!
  • 11. REST おさらい ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 11 • HTTP(S) トランスポート • プログラムしやすい! • コマンド1行でリクエスト作成可能 • curl, wget .. • 様々な言語のライブラリ • Ruby, Python, Go, Perl ... • (当然)標準化されていない • RESTは規約ではなく思想 • (個人の見解です) • そもそもRESTfulだとできない事 もある • Candidate config + commit とか。 RESTといいながらRESTfulではない実装が多数 • JSON-RPC, XML-RPC • セッション持ったりしている
  • 12. 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 12 Brocade vRouter 5600 (Vyatta)
  • 13. Brocade vRouter 5600 (Vyatta) ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 13 設定投入&適用 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>/<cmd> 4. optional: view config • GET /rest/conf/<conf-id>/<path> 5. save config • POST /rest/conf/<conf-id>/<cmd> 6. Finish configuration session • DELETE /rest/conf/<conf-id>
  • 14. Brocade vRouter 5600 (Vyatta) ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 14 参照コマンド (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
  • 15. Brocade vRouter 5600 (Vyatta) ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 15 参照コマンド (継続的) • 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 .
  • 16. 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 16 Brocade VDX
  • 17. REST (like) API のタイプ ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 17 JSON RPC 型 (Arista EOS eAPI) URI: 固定 Encoding符号化: JSON コマンド:BODY (JSON) パラメータ:BODY (JSON) Reference: https://eos.arista.com/arista-eapi-101/ <protocol>://<username>:<password>@<hostname or ip-address>/command-api ex: http://admin:pAssW0rd@198.51.100.1/command-api
  • 18. • CLIを投入するようにコマンドをシーケンシャルに記述可能 • 参考: Arista eAPI の概略を5分で説明してくれます。 • https://www.youtube.com/watch?v=9sWux0GCZ78 • Command API Explorer ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 18 JSON RPC 型 (Arista EOS eAPI)
  • 19. 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 19 JUNOS: XML RPC Single Method 参考:JunosのREST APIを使ってみる http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
  • 20. device-name port JUNOS: XML RPC Single Method ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 20 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
  • 21. JUNOS: XML RPC Single Method ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 21 CLIコマンドに対応する RPC method 確認方法 参考:JunosのREST APIを使ってみる http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
  • 22. JUNOS: XML RPC Single Method • 1. 設定投入:POST load-configuration • 設定内容は BODY に CLI 出力と同様のフォーマットで指定。 • Candidate Config に保存される • 2. 設定適用:POST commit-configuration ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 22 JUNOS 設定投入・適用 参考:JunosのREST APIを使ってみる http://qiita.com/kazubu/items/e5e0941f66f6c6f2f55a
  • 23. REST (like) API のタイプ • CLIに紐づいたRPC Method をBODYに複数記述 ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 23 XML RPC Multi Method型 (JUNOS Multi RPC) Request Response
  • 24. ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 24 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 を投入
  • 26. • OpenSwitch by HP • REST実装あり。但し現状は OVSDB に対する操作のみ。 • ops-restd : Overview • ------------ • OpenSwitch provides a Tornado framework-based application to access **OVSDB** using RESTful APIs. The ops-restd module provides all the necessary python packages required to add, delete, modify tables in the OVSDB database using ```HTTP``` methods, ```GET, POST, PUT and DELETE```. • Linux Shellアクセスできる機器増えてるので、Switchに載るGateway作ると か? • OpenFlowでもなんでも、RESTでアクセスできるように。 ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 26
  • 28. ベンダーが作成している? ライブラリ • 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 のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 28 Slide 40, JANOG36, IDCF井上さん http://www.janog.gr.jp/meeting/janog36/download_file/view/188/170
  • 30. • API色々サポートされてるよ • まだベンダー事に独自だよ • RESTはひどく違うよ。てか、RESTじゃないし。 • 開発のためのライブラリは出てきてるけど、まだまだ足りない? • Open Sourceも出てきたよ。でも、まだまだ発展途上。 • 違いを吸収する何かが必要 • OpenDaylight等、NMS / ミドル? • Linux Shellアクセス可能な機器増えてるので、機器に載るGateway作れば良いのでは? • ネットワークプログラミング始めるには十分な環境なのでは? ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 30 まとめ
  • 32. ネットワーク API のあれこれ|ENOG37@燕三条 2016/02/19|@ebiken 32 ちょっとアンケート(あなたの気持ちは?) 1. システム開発は外注するよ • Do you really want to Program, Write Code? • NMSはSIerが作ってくれるから。 • お金と時間ある人はこちらで。 2. ミドルウェア経由で作るよ • どうせ機器間の違いを吸収するミドルウェア必 要なんじゃない?(ODLとか) • ミドル作る人が頑張ればAPIの種類はどうでも 良い?あれば良い。 • ほんとにODLとか使いたい?やりたい事のわり に複雑じゃない? 3. ライブラリ使ってやります。 • 開発はしたいけど、機器毎にライブラリ用意して もらったらAPIは気にしなくてOK? • Python, Ruby, Go? • ライブラリは誰が作るんだっけ? 4. API直接使いたい! • システム小さいし。 • APIが必要:既存監視システム、NMSなどに統合 したいから。 API使って自動化・プログラミング進めたいと言う人。どのスタンス?