Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
1
260
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
350
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
550
Introduce marp-ai-slide-generator
itarutomy
0
150
日本Rubyの会: これまでとこれから
snoozer05
PRO
6
250
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
0
170
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.4k
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.3k
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.6k
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
1.2k
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
270
モダンデータスタックの理想と現実の間で~1.3億人Vポイントデータ基盤の現在地とこれから~
taromatsui_cccmkhd
2
290
Featured
See All Featured
Crafting Experiences
bethany
0
24
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Scaling GitHub
holman
464
140k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
74
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
71
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
97
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
150
Music & Morning Musume
bryan
46
7k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
72
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
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をよろしくお願いします!