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
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ネットワーク試験自動化 - GoBGPシナリオテストを例に -
NetOpsCoding #2
Wataru Ishida
March 04, 2016
More Decks by Wataru Ishida
See All by Wataru Ishida
セルラーネットワークオープン化動向@wbsug#4
ishidawataru
0
330
netopscoding#5開催に向けて
ishidawataru
0
360
GoBGP: Yet another BGP implementation in Go
ishidawataru
0
680
OCP networking update @wbsug#2
ishidawataru
1
430
Other Decks in Technology
See All in Technology
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
1
560
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
650
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
520
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
2k
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
190
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
3
600
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
9.7k
Snowflakeと仲良くなる第一歩
coco_se
4
400
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
200
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
210
小さくはじめるSLI/SLO ~育てながら組織に定着させる実践知~ / Starting Small with SLI/SLOs: Building Adoption Through Continuous Growth
nari_ex
2
1.3k
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
110
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
Mind Mapping
helmedeiros
PRO
1
240
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Practical Orchestrator
shlominoach
191
11k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Evolving SEO for Evolving Search Engines
ryanjones
0
210
The agentic SEO stack - context over prompts
schlessera
0
800
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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をよろしくお願いします!