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
SONiCってどうなのよ?
Search
Masaru OKI
June 28, 2019
Technology
0
720
SONiCってどうなのよ?
ホワイトボックススイッチ用NOSであるSONiCについて強みと弱みなどを含めて紹介し、同様なNOSであるOpenSwitchと比較します。
Masaru OKI
June 28, 2019
Tweet
Share
More Decks by Masaru OKI
See All by Masaru OKI
Ansible把握した 1日目
imasaruoki
0
210
NPLによるデータプレーンプログラミング
imasaruoki
8
2.1k
SONiC近況報告 2019/Fall
imasaruoki
1
1.1k
ホワイトボックススイッチをAnsibleで操る話
imasaruoki
2
2.2k
ホワイトボックススイッチとNOSを取り巻く状況について
imasaruoki
3
2.1k
SONICイントロダクション
imasaruoki
1
360
SONiCをはじめてみよう
imasaruoki
4
1.4k
SONiCで設定するFRRouting
imasaruoki
0
1.3k
SONiCトラブルシューティング
imasaruoki
1
350
Other Decks in Technology
See All in Technology
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
140
MapLibreとAmazon Location Service
dayjournal
1
160
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
2
240
IaCジェネレーターとBedrockで詳細設計書を生成してみた
tsukasa_ishimaru
1
210
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
310
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
900
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
280
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
260
MySQL の SQL クエリチューニングの要所を掴む勉強会
andpad
3
6.4k
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
私が trocco を推す理由
__allllllllez__
1
220
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Atom: Resistance is Futile
akmur
259
25k
Gamification - CAS2011
davidbonilla
76
4.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Code Review Best Practice
trishagee
55
15k
Designing Experiences People Love
moore
136
23k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
What the flash - Photography Introduction
edds
64
11k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Transcript
SONiCってどうなのよ? - 対決 SONiC vs OpenSwitch - June 28, 2019
Masaru OKI @masaru0714
SONiCはホワイトボックススイッチで動く • ホワイトボックススイッチの外観は通常の L2/L3スイッチと変わらず。 ◦ OSが入ってなくて、あとから好きな OSを入れられる。 ◦ 中身はLinuxが動くPC+スイッチASIC。ただしビデオやサウンドはない。 •
SONiC https://azure.github.io/SONiC/ ◦ Debian LinuxベースのNOS。シリアルやsshからログインして使う。 ◦ ログインするとbashが動く。lsもpsも思いのまま。 2
SONiCはふつうのLinuxと何が違う? • スイッチに最初から入ってる ONIE経由でインストールする。 ◦ 環境を整えれば、 LANをつないで電源投入するだけでインストールできる • GUIがない(ビデオカードがないから) •
後ろにたくさんついてるファンの制御や 2系統ある電源の監視ができる。 • 正面にずらっと並んだポートの制御ができる。 • 内蔵されているスイッチASICの制御ができる。 ◦ 内部ではSAI (Switch Abstraction Interface)ライブラリを使って制御している • 設定DBを持っていて、パケット転送設定や BGP設定などを書き込める。 • サポートされているスイッチ以外にインストールしても正しく動かない。 3
SONiCはIOSやJUNOSと何が違う? • ホワイトボックススイッチ用で、ハードウェアと不可分ではない。 ◦ 対応ハードウェアのリスト https://github.com/Azure/SONiC/wiki/Supported-Devices-and-Platforms • Debianベースでオープンソース、問題発生時にコード追跡・修正まで可能。 • 認証はLinuxシェル環境へのログインと同等。
• 設定エラーからのロールバック機能はない。 • Routing StackもOSS(FRR or Quagga or goBGP) • ベンダーのサポートはなく、コミュニティベースでの開発。 • 機能実装はまだまだこれからのものが多い。 ロードマップ https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning • 知見はまだまだ広まっていない (特に日本語) 4
SONiCここがイケてる • 対応スイッチが多数。 https://github.com/Azure/SONiC/wiki/Supported-Devices-and-Platforms • コミュニティが(他と比べて)活発。 ◦ MLは日に数通。隔週で電話会議を実施。 OCP Summitでは分科会もある。
• 複数のベンダーがコードを寄贈して commitも実施している。 ◦ accton, dell, mellanox, arista, barefoot, celestica, microsoft, • OCP SAI (現在v1.4)を使っていてベンダー中立性を保ちやすい。 • 公式のドキュメントも整いつつある。 • ASICベンダーのSDKを含むSAIライブラリ以外、すべてオープンソース。 • 各機能をdockerコンテナ内で動かしている (e.g. bgp docker, database docker) • FRRを内包するなど、オールインワンパッケージ。 5
SONiCここがイケてない 2019年6月時点 • CLIで設定するしかない (APIは用意されていない) • ZTPサポートはまだ用意されていない。 ◦ インストールはできるが設定を読み込み運用状態にするところまでは動かない •
インクリメンタルな設定はあまりできない。 ◦ config reloadで再読み込みさせると daemon類は一度停止して設定反映後に再起動 • アップグレードすると、設定ごとリセットされる (実質再インストール) • 自前でソースからビルドすると、ビルド環境の /etc/resolv.confが入る。 6
ところでOpenSwitchは? • https://www.openswitch.net/ • OPXと呼ばれる (旧世代はOPS) • 検索すると上位に出てくる Open vSwitch
(OVS)ではないので注意。 • ホワイトボックススイッチ用のオープンソース NOS。Debianベース。 • 特徴 ◦ ipコマンド等で設定すれば ASICに設定反映 (similar to Cumulus Linux) ◦ APIが用意されていて、 CあるいはPythonによる制御が可能。 • 注意点 ◦ Routing Stackは別途apt-get installして(通常のLinuxと同様に)使う。 ◦ OPXは2019年6月時点でDELLのスイッチにしか対応していない。 7
SONiC vs OpenSwitch 項目 SONiC OpenSwitch (OPX) 対応製品 Arista,Edgecore,DELLなど総計40モデル DELL製品20モデル
対応ASIC Barefoot, Broadcom, Mellanox, Centec, Marvell, Nephos, (Cavium) (TD3は未対応 ) Broadcom (TD3にも対応) Routing Stack 標準はFRR, Quagga, goBGPから選択可能 各自インストールし OPXと別に管理 CLI 独自コマンド (show, config) Linuxコマンド(ip等)と独自コマンド VRF 対応予定 対応 SAI version 1.4 0.96 ZTP 対応予定 対応 API なし C, Python用を用意 ソフトウェアスイッチ実装 実装済み機能は最低限 (vslib) SONiCよりは実装量が多い模様 (opx-sai-vm) コミュニティ 活発 静か 有償サポート なし Dell Networking OS 10 Enterprise Edition 8
雑感 • OpenSwitch ◦ 作りこみが丁寧できれい ◦ 機能実装もできている (VRFなど)、APIも用意されている ◦ しかし事実上DELL専用で、コミュニティも閑散としていて状況把握しづらい
◦ 対応スイッチ(S5232F-ON)にインストールするも動かず、頭を抱えているところ ◦ サポートが欲しければ素直に商用の OS10EEを使いましょう • SONiC ◦ 作りこみはやや粗いか ◦ 機能実装もこれからのものが多いが、実装済みで in productionな機能もある ◦ 多様なスイッチに対応し、コミュニティも活発。スイッチベンダーも多数参加 ◦ 対応スイッチなら素直に動く、情報さえあれば移植もできる ◦ OCP SAI Projectと連携していて今後のメンテナンスも続きそう 9
その他NOS • Cumulus Linux ◦ 言わずと知れた商用製品の代表的存在 • Stratum ◦ Routing
stackを含まずgNMI, gNOIを使い制御するホワイトボックススイッチ向け OS ◦ OSSと表明されているがまだ未公開 (2019年公開予定と書かれた資料があった ) ◦ P4言語が扱えることが前提。 TD4 (NPL)が対応となるか未知数 • Beluganos ◦ IP/MPLSを扱うホワイトボックススイッチ用 OS。現在進行形で開発中 ◦ OpenNSL,OF-DPAといったBroadcom用APIを使う (あるいはOpenFlow対応スイッチを使う ) ◦ FRR, goBGPを使いBGPやOSPFを扱うことができる • SnapRoute CN-NOS ◦ ホワイトボックススイッチ内で組込型 k8sを動かす、マイクロサービス指向の OS ◦ OSS(ONIEやK8sなど)を使うが、CN-NOS自体はOSSではないようだ
軍配は? • OSSならSONiCが比較的安心 ◦ OS10EEと比較するならともかく、 OPXと比較するならSONiC ◦ ホワイトボックススイッチ用オープンソース NOSの標準となっていく予感 ◦
商用製品(e.g. Cumulus Linux)と比較すると作りこみはまだまだ足りない ◦ いま触れば立派なアーリーアダプターになれる ◦ 今後に期待! 11