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
WhiteBoxSwitch NOSの変遷
Search
Mabuchin
November 20, 2019
Technology
5
1.9k
WhiteBoxSwitch NOSの変遷
in CNUGI#2
Mabuchin
November 20, 2019
Tweet
Share
More Decks by Mabuchin
See All by Mabuchin
TIPSTARのライブ・プロダクションシステムの裏側
mabuchin
1
1.2k
ホワイトボックス伝送の動向と商用利用について
mabuchin
3
680
Cassini + Goldstone DCI use case and challenges
mabuchin
1
200
転びながらもネットワーク処理をソフトウェアで自作していく話
mabuchin
8
4.3k
モダンなネットワーク構成管理DBを最小労力で開発する
mabuchin
3
790
Gitでネットワークオペレーションを進める話
mabuchin
0
110
TapAggregationを使ったデータプレーン性能測定
mabuchin
0
210
Github PullRequestで作業半自動化
mabuchin
0
77
お手軽! BGP RIBのリアルタイム経路解析+可視化
mabuchin
0
330
Other Decks in Technology
See All in Technology
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
6
760
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
6.2k
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
110
2.5Dモデルのすべて
yu4u
2
860
クラウドサービス事業者におけるOSS
tagomoris
1
820
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
400
Amazon S3 Tablesと外部分析基盤連携について / Amazon S3 Tables and External Data Analytics Platform
nttcom
0
130
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
260
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
13
3.4k
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
720
The Future of SEO: The Impact of AI on Search
badams
0
200
Platform Engineeringは自由のめまい
nwiizo
4
2.1k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The Invisible Side of Design
smashingmag
299
50k
BBQ
matthewcrist
87
9.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
What's in a price? How to price your products and services
michaelherold
244
12k
Transcript
mixi, Inc. WhiteBoxなNOSの変遷 Cumulus Linux + SONiC Toshiya Mabuchi 2019/11/19
2 おことわり
5年前…
昔Whitebox NOSを検証したことがありました 4 JANOG35.5 パネルセッション:検証してみて感じたホワイトボックススイッチの未来 https://www.janog.gr.jp/meeting/janog35.5/download_file/33/180
5年前のCumulus Linux • Version 2.2.2 • VXLAN/BGP/ISIS/OSPF/VRRP等の基本的なL2/L3サポート • VXLANはfdbの学習未サポート(staticのみ) •
各種ネットワークの設定はFile書き換え • Ansibleのroleは当時からあった • ファイルの置き換え/追記等 • 監視はlinuxと同等 • Zabbix agentやIF-MIB等で情報取得 5 基本的な機能を備えつつ安価なモジュールが使えるL2/L3スイッチ
そのときの課題 •ドキュメント情報がまだ充⾜していなかった • Quick Start Guide + αくらいの情報量 • 出たばかりでフォーラムの蓄積も無し
• 外部API Interfaceがまだなかった
今のCumulus Linux • Version 3.7 • NLCU • Quagga ->
FRR • BGP unnumbered • HTTP API • Netconf / OpenConfigはまだサポート無し • PTP Boundary Clock * • ASIC Monitoring * • Knowledge base docs 7 * Spectrum限定
相当に状況が変化
ちょっと触ってみました
GoodPoint: NLCU • コンフィグ変更CLIの登場 • Commitで反映する⽅式 • Day2 configを持つアーキテクチャの場合は効果⼤ •
Config validation / rollback • ⼿動時には特に効果絶⼤ #vim /etc/network/interfaces auto swp1 iface swp1 address 192.0.2.1/30 address 2001:DB8::1/126 $net add interface swp1 ip address 192.0.2.1/30 $net add interface swp1 ipv6 address 2001:db8:123::1/126 $net pending $net commit
GoodPoint: FRR • BGP unnumbered • プロトコル⾃体で運⽤の負荷軽減を図ることが可能 • Ansibleで設定変更! すらも無くせるメリット
• FRRでServerと共通化 • Spine + Leaf + ToR + Serverが全てFRR config管理 Leaf ToR Server leaf.j2 Tor.j2 Server.j2 DB
GoodPoint: ASIC Monitoring • ASIC Monitoringが可能 • 定期的にASICのパケットキューの状態をSnapShot • パケット⻑をヒストグラムとしてデータ採取可能
• Bufferの滞留具合やロスの原因をを程度深堀り可能に • WhiteBoxだけどSwitchdがBlackboxだから分からない︕が無くなる(?) • 実際運⽤してる⼈で使ってる⼈いますか︖ • Mellanox WJH(What just happened) (Spectrum2) • Cumulus4.x~ • Drop reasonをメタデータとして組み込んでCPUに上げる • 期待!!!
GoodPoint: HTTP API • HTTP API≠REST CONF • 構造化されたAPIではない •
NLCUをHTTP Protocol越し実行 • 動作させることは簡単 • Docsが少なめ • netconf/openconfigはまだ • Automation • HTTP API • 設定ファイルをAnsibleで置換/追記 • 自作API serverを建てる Curl例
⽐較まとめ Cumulus2.2 Cumulus3.7 Config File edit NLCU + File API
なし HTTP API & ⼀部grpc Routing Quaaga FRR Monitoring Snmpd, server agent系 Snmpd, agent, ASIC monitor,
段違いに使いやすくなってた
ホワイトボックススイッチのよくある図 Hardware Network OS Monitoring API Routing CLI • )BSEXBSFґଘແ͠
• ίϯϙʔωϯτຖʹબՄೳ • ಠࣗπʔϧαʔόʔϛυϧΣΞ ؆୯ʹಋೖՄೳ
OSSなNOS SONiCとの使⽤感⽐較
Cumulusアーキテクチャ • NCLU • 統合コマンドライン • Switchdev • Linuxの基本構造に 則った⽅式
• Switchdがnetlinkを 拾ってASICにも伝搬 https://cumulusnetworks.com/blog/cumulus-linux-network-command-line-utlility/linux-nclu-architecture/ Linux-NCLU-Architecture
SONiCアーキテクチャ • Config command • 統合コマンドライン • Json fileをもとにDBに 書き込み
• SAI Interface • DBの変更通知を • 受け取ってsyncdが SAI準拠でASICを叩く https://github.com/Azure/SONiC/wiki/Architecture Azure/SONiC Architecture
SONiCとCumulusのルート挿⼊時の違い Cumulus SONiC FRR BGPd zebra fpmsyncd APPL_DB ASIC_DB swss
zapi syncd ASIC FRR BGPd zebra kernel zapi switchd netlink ASIC ASIC Driver
コンポーネントを換装する試験 Cumulus SONiC GoBGP zebra fpmsyncd APPL_DB ASIC_DB swss zapi
syncd ASIC GoBGP zebra kernel zapi switchd netlink ASIC ASIC Driver ここ変えるだけでOK ※SONiCはzapiの対応バージョンを 有識者に確認しなかったら少しハマってたかも
ハマったことを共有しようと思ったけど ハマらなかった
SONiC / Cumulus Linux • Switchdev(Cumulus Linux) • Kernel is
• アーキテクチャとしてシンプル • 何も気にせず経路をkernelに⼊れればOK • SAI(SONiC) • Redis is • 基本的にRedisの中央DB経由で情報をやり取り • DB情報からsyncdがSAI Interfaceを使いASIC SDKを叩く
SONiCの良いところ • OSのライセンス費⽤がかからない • ⼤量投⼊時のコストメリット • OSSなので拡張が可能 • TAIの導⼊ •
GoldStone • gNMI等はSONiCのほうが 実装が進⾏している https://telecominfraproject.com/oopt/
SONiCのつらい点 • ビルドが超⻑い • ⼿元のビルド⽤マシンで⼤体 8h • 基本はビルド済みイメージで良い • が…SONiCを使うケースは多少のカスタムしたいケースが多い
• トライエラーが結構なコスト • 普通に動かない • Release版のONIE imageを使っても動作しないのは⽇常茶飯事 • ⾃社で検証したStable Versionを1つ上げるだけでも結構きつい
実際のところSONiCはそこそこ⾟い • Syncdは簡単に落ちる • 商用ユーザの大半はDay1 configurationのみの運用 • Day2を想定する作りにはなってない • config
commandのvalidationほぼ無し 2019-09-12.06:37:27.491030|s|SAI_OBJECT_TYPE_PORT:oid:0x1000000000013|SAI_PORT_ATTR_ADMIN_STATE=false 2019-09-12.06:37:27.491149|s|SAI_OBJECT_TYPE_PORT:oid:0x1000000000013|SAI_PORT_ATTR_SPEED=400000 2019-09-12.06:37:27.491252|s|SAI_OBJECT_TYPE_PORT:oid:0x1000000000013|SAI_PORT_ATTR_ADMIN_STATE=true 2019-09-12.06:37:27.493167|n|switch_shutdown_request|| Typo Syncd is down….
Cumulus / SONiCのオペレーションカバー範囲 Defining Day-2 Operations https://dzone.com/articles/defining-day-2-operations SONiC / Cumulus
ver2.2 Cumulus ver3.7
参考: Config Validation
⽐較まとめ Cumulus2.2 Cumulus3.7 SONiC (201904 build) Stably ◦ ◦ △
Cost 要ライセンス 要ライセンス 無し Customize △ △ ◦ Config File + vtysh NLCU + File + vtysh configCLI + file + vtysh API なし HTTP API gNMI Routing Quaaga FRR FRR Monitoring Snmpd, agent系 Snmpd, agent系, ASIC monitor SNMP,gNMI
• CumulusはDay2 Configが運⽤可能になった • NLCUは多くのネットワークエンジニアにとって嬉しい • 設定で詰まることはほぼ無い • Cumulus /
SONiC(OSS NOS)の⽐較 • OSS NOSも徐々に⼒はつけてきている • 安定稼働させるためにCumulusのN倍の労⼒が必要 • そこにリソースを投⼊できるか? 既存運⽤に適⽤させつつ、マイグレーションするプランも可能 Summary 安定性/コスト/カスタマイズの観点から適切な選択を︕
これが欲しいな… •FRR部分以外のgNMIのフルサポート • Interfaceを(可能な限り)統⼀したい • HTTP APIより可⽤性⾼いgNMI等があると嬉しい •MPLSラベルルーティングのサポート • 既存網のマイグレーション選択肢に⼊ると嬉しい
• ASIC冗⻑的な観点からもコアにも⼊れれると良い
32