Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ネットワーク試験自動化 - GoBGPシナリオテストを例に -
Search
Wataru Ishida
March 04, 2016
Technology
0
1k
ネットワーク試験自動化 - GoBGPシナリオテストを例に -
NetOpsCoding #2
Wataru Ishida
March 04, 2016
Tweet
Share
More Decks by Wataru Ishida
See All by Wataru Ishida
セルラーネットワークオープン化動向@wbsug#4
ishidawataru
0
330
netopscoding#5開催に向けて
ishidawataru
0
350
GoBGP: Yet another BGP implementation in Go
ishidawataru
0
660
OCP networking update @wbsug#2
ishidawataru
1
430
Other Decks in Technology
See All in Technology
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
460
AWS Trainium3 をちょっと身近に感じたい
bigmuramura
1
130
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
品質のための共通認識
kakehashi
PRO
3
220
小さな判断で育つ、大きな意思決定力 / 20251204 Takahiro Kinjo
shift_evolve
PRO
1
580
因果AIへの招待
sshimizu2006
0
930
チーリンについて
hirotomotaguchi
4
1.4k
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
210
RAG/Agent開発のアップデートまとめ
taka0709
0
150
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
560
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
3
900
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.1k
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Designing Experiences People Love
moore
143
24k
Music & Morning Musume
bryan
46
7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
700
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Side Projects
sachag
455
43k
4 Signs Your Business is Dying
shpigford
186
22k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Transcript
ネットワーク試験⾃自動化 -‐ GoBGPシナリオテストを例例に -‐ NetOpsCoding #2
⾃自⼰己紹介 名前 : ⽯石⽥田 渉 職場 : NTT ソフトウェアイノベーションセンタ 仕事
: NetOpsCoding osrg/gobgp : Go⾔言語BGP実装 ishidawataru/goldp : Go⾔言語LDP実装
本⽇日のお題 Trusting the network automation ⾃自動化による怪我を防ぐのに役に⽴立立つ(かもしれない) ネットワーク試験⾃自動化事例例の紹介 https://honestnetworker.wordpress.com/
GoBGPの試験⾃自動化 24.4%のPythonが何をしているかを 紹介させて下さい
-‐ Go⾔言語BGP実装, オープンソース(Apache2) -‐ 既存BGP実装への(主にJPNAPさんの)不不満が開発動機 1. APIがない, ⾃自動化に向かない 2. 性能がでない,
マルチコアを活かせない 3. コンフィギュレーションが様々 GoBGP ?
-‐ いまどきの技術で不不満点を解消 1. gRPCによるAPI firstな設計 2. Go⾔言語を利利⽤用し、マルチコア対応 3. OpenConfig(YANGモデル)を採⽤用 GoBGP
?
API first ? gobgpd gobgp Your Software gRPC GoBGPの設定/情報取得はすべてgRPC経由 -‐
CLIはgRPCのAPIを利利⽤用して実装 -‐ はじめから⾃自動化が前提の設計 -‐ NO MORE EXPECT!
⾃自動化の怪我を減らすには -‐ ソフトウェア開発にバグはつきもの -‐ バグを⽣生まないためには試験(テスト)が⼤大事 -‐ ユニットテスト : ソースコードの各関数,機能の試験 -‐
シナリオテスト : ソフトウェア全体の試験 今⽇日はこっち -‐ 試験をスケールさせるには試験も⾃自動化したい
GoBGPのシナリオテスト github jenkins docker パッチ投稿 • パッチ投稿を契機に⾃自動的にテストを開始 • 開発者はテスト結果を⾒見見て、パッチを取り込むか 修正が必要か判断するだけでいい
GoBGPのシナリオテスト マージしてよさそうな例例 マージしちゃだめそうな例例
どんな試験があるのか
Demo
Now Printing 仕組み -‐ 仮想BGPネットワークをDockerを使って構築 -‐ その中にGoBGPをいれて、正しい挙動を⽰示すか確認 Quagga ExaBGP GoBGP
-‐ 開発ツールとして超優秀 -‐ 諸々の依存関係でハマることが激減 -‐ Dockerfileを書いておけばポータブルに環境構築可能 -‐ 複数のBGPデーモンをそれぞれコンテナとして起動 -‐ 同⼀一テストに属するコンテナを⼀一つの仮想NWに配属
-‐ 別仮想NWならIPアドレスが重複してても⼤大丈夫 -‐ 複数のテストを同時実⾏行行可能
bgp_router_test.py -‐ GoBGPコンテナを1つ, Quaggaコンテナを3つ起動
bgp_router_test.py -‐ Quaggaコンテナから経路路を広告(add_route)
bgp_router_test.py -‐ GoBGPをQuagga間でピアを張る
bgp_router_test.py -‐ ピアが張れたことの確認
bgp_router_test.py -‐ GoBGPが広告の際, ⾃自AS番号を加えていることの確認
gobgp/test/lib/ -‐ 各BGP実装を同じように扱えるライブラリを⽤用意し、 シナリオテストを実装している
-‐ ‘-‐j’オプションでjson出⼒力力し, json.loads()してdone 例例)RIBを出⼒力力 – gobgp.py
-‐ CLI出⼒力力の空⽩白の数を数えるところからスタート♪ 例例)RIBを出⼒力力 – quagga.py
応⽤用例例 -‐ BGP実装のパフォーマンス測定ツール BGPerf -‐ osrg/bgperf [時間があったらDemo] -‐ 既存ベンダの仮想アプライアンス版を利利⽤用すれば、ソフト ウェアの試験は⼿手元で気軽にできるようになる?
-‐ 物理理ルータもDockerの仮想ネットワークにサーバの物理理イン ターフェイスを加えれば試験可能 -‐ アイデア次第でいろいろ出来る気がします!
まとめ -‐ 運⽤用⾃自動化のリスクを低減させるため、運⽤用 ⾃自動化試験の⾃自動化も! -‐ 開発ツールとしてDocker優秀 -‐ 複雑なネットワーク構成も仮想的にLinux内で 再現可能 -‐
GoBGPをよろしくお願いします!