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
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
110
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.4k
Tab5をRubyで動くパソコンにする
kishima
1
190
PfEingのアプローチで働こう
rindrics
0
180
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
710
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
0
250
IoTハンズオンの舞台裏
shirouz
2
140
V8コントリビュート超入門
riyaamemiya
0
140
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
200
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
270
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
420
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
2
2.3k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Prompt Engineering for Job Search
mfonobong
0
440
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
260
Being A Developer After 40
akosma
91
590k
RailsConf 2023
tenderlove
30
1.5k
Six Lessons from altMBA
skipperchong
29
4.5k
Making the Leap to Tech Lead
cromwellryan
135
10k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
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をよろしくお願いします!