## Transcript
2. ### [Table of Contents • Network OS や White Box Switch](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_1.jpg "SONiC Introduction (日本語) Table of Contents
• Network OS や White Box Swit...")
の歴史 • SONiCの概要 • ホワイトボックススイッチの内部構造 • SAI 誕生の背景と役割 • SONiCアーキテクチャの全体像 • SONiCがサポートする機能と機能拡張の流れ • 海外事例 • マイクロソフト社 • アリババ社(Alibaba) • eBay (世界最大規模のオークションサイト) • 商用版や商用サポート • 商用版SONiCと特長 • 有償サポート提供ベンダと特長 • コミュニティ運営 • SONiC Foundation • ガバナンス改善の進捗(2023年) • コミュニティが管理する情報ソース • ワーキンググループ • リリースプロセスの全体像 • SONiCのこれから • 2024年 コミュニティ運営の注力項目 • スイッチASIC以外でのSONiCの利用 • SONiC DASH on SmartSwitch • SONiC-VPP アーキテクチャ • . SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
3. ### [SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24 2013](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_2.jpg "SONiC Introduction (日本語) SONiC Introduction | SONiC Workshop Japan 2024 ...")
Open Compute Project OCP ネットワーク プロジェクト開始 2015 SAI公開@OCP (MSFT) 2014 FBOSS公開 (Facebook) 2021 SAI 採用 2016 SONiC公開 @OCP (MSFT) 2022 Linux Foundation に移籍 2015 ホワイトボックス スイッチユーザ会開催 2022 LINE商用導入 (JANOG) 2023 KDDI商用導入 (JANOG) 2010 Cumulus Networks 2020 買収:NVIDIA 2010 Big Switch Networks Mellanox 買収:NVIDIA 2020 買収:Arista 2015 SnapRoute (ex-Apple) 2019 買収:Infoblox 2014 OpenSwitch (HPE) 2016 OPX (Dell EMC) 2019 Linux Foundation に加入 2020 プロジェクト終了 2017 $25M 増資 (AT&T, VC) 2019~2020 頃に淘汰が進み SONiC/SAIがデファクトに DANOS, DENT 等、他にも 続いているプロジェクトは有る 日本 Network OS や White Box Switch の歴史
5. ### [ホワイトボックススイッチの内部構造 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_4.jpg "SONiC Introduction (日本語) ホワイトボックススイッチの内部構造
SONiC Introduction | SONiC Wo...")
マネジメントプレーン • ユーザーインターフェース • 設定管理 • モニタリング・ログ機能の提供 パケット パーサー パケット処理パイプライン 送信キュー (QoS) Port L2 L3 ACL プロトコル処理エージェント ルーティング テーブル LAG BGP OSPF ユーザ インターフェース CLI/GUI API 管理機能 モニタ リング ログ 設定管理 コントロールプレーン (どのようにパケットを処理するか?) • ルーティングプロトコルの処理(RIB) • データプレーンへのルール設定(FIB) データプレーン • パケットヘッダの解析 • パケットの変換・転送 SONiC スイッチ ASIC
6. ### [• Switch ASIC • NPU (Network Processing Unit) とも呼ばれ、パケット転送に特化したチップ •](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_5.jpg "SONiC Introduction (日本語) • Switch ASIC
• NPU (Network Processing Unit) と...")
SONiCで利用されるデータプレーンはこの Switch ASIC が中心となる • Linux Kernel Networking Stack • CPUで動作する、Linux OS のパケット処理機能 • sonic-vs ではこれを利用し、サーバ上の仮想環境を用いた SONiC の動作検証が可能 となる • DPDK • CPUで動作。Kernelをバイパスしてユーザランドでパケットを処理する • CPUリソースを占有しながら動作するが、CPUを用いた高速なパケット処理を実現 可能になる • SmartNIC • FPGA, Multi-core Processor, NPU 等のチップを搭載したNIC型のカード • CPUからパケット処理をオフロードし、高速低遅延でパケット処理が可能 • Intel IPU(専用チップ), Nvidia DPU(ARMマルチコア) といった名称が広がりつつある SONiCが対応するデータプレーン SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
10. ### [スイッチASICの機能ブロック毎の役割 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_9.jpg "SONiC Introduction (日本語) スイッチASICの機能ブロック毎の役割
SONiC Introduction | SONiC ...")
機能ブロック 役割 SerDes (Serializer/Deserializer) ビット単位のシリアル入力信号を8ビットや16ビットといったパラレル 信号に変換(出力時は逆にパラレル信号をシリアル信号に変換) パケットバッファ・複製エンジン (Packet Buffer & Replication Engine) 受信したパケットを処理中に保持するバッファ。優先度などに応じた バッファを用意する事により、QoSを実現する。また、ブロードキャス トやマルチキャスパケットを複製する。 パーサー(Parser) パケットヘッダを解析し、メタデータとして保存 デパーサー(Deparser) パケット処理パイプラインの実行結果を元に、パケットヘッダを再構築 パケット処理パイプライン (Ingress/Egress Pipeline) ヘッダ情報や受信ポート等、メタデータを元に指定された処理を実施 メタデータ(meta data) パイプライン処理を実行する際、マッチ・テーブルなどの検索キーや処 理分岐に利用される。パースしたヘッダ情報、入力ポート、処理中に生 成されたデータなどが含まれる キュー (Buffer & Queuing Engine) 送信スケジュールを元にパケットを送信
13. ### [SONiCで起動している Docker コンテナ SONiC Introduction | SONiC Workshop Japan 2024](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_12.jpg "SONiC Introduction (日本語) SONiCで起動している Docker コンテナ
SONiC Introduction | S...")
| 2024/05/24 admin@sonic:~$ docker ps --format "table {{.Names}}¥t{{.Image}}¥t{{.Command}}" --no-trunc NAMES IMAGE COMMAND snmp docker-snmp:latest "/usr/local/bin/supervisord" pmon docker-platform-monitor:latest "/usr/bin/docker\_init.sh" mgmt-framework docker-sonic-mgmt-framework:latest "/usr/local/bin/supervisord" lldp docker-lldp:latest "/usr/bin/docker-lldp-init.sh" gnmi docker-sonic-gnmi:latest "/usr/local/bin/supervisord" radv docker-router-advertiser:latest "/usr/bin/docker-init.sh" gbsyncd docker-gbsyncd-vs:latest "/usr/local/bin/supervisord" syncd docker-syncd-vs:latest "/usr/local/bin/supervisord" teamd docker-teamd:latest "/usr/local/bin/supervisord" bgp docker-fpm-frr:latest "/usr/bin/docker\_init.sh" swss docker-orchagent:latest "/usr/bin/docker-init.sh" eventd docker-eventd:latest "/usr/local/bin/supervisord" database docker-database:latest "/usr/local/bin/docker-database-init.sh"
15. ### [SONiCがサポートする機能と機能拡張の流れ SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_14.jpg "SONiC Introduction (日本語) SONiCがサポートする機能と機能拡張の流れ
SONiC Introduction | SON...")
2017年 BGP、ECMP、VLAN、LAG、SNMP、ACL、 QoS(ECN, RDMA)、WRED、PFC、Syslog 2018年 VRF、VXLAN、Warm Reboot、IPv6 ACL 2019年 BGP-EVPN、ZTP、NAT、sFlow、Management Framework 2020年 ECMP拡張、CoPP、Multi-ASIC、シェーピングやQoSの拡張 2021年 BGP Unnumbered、SRv6、MPLS、MC-LAG、P4(PINS) 2022年 SRv6 uSID、SONiC-DASH(SmartNIC)、gNMI、PINS拡張、 セキュリティ拡張、設定のロールバック 2023年 プラットフォーム開発キットでのFPGAサポート、 管理フレームワークやYANGモデルの拡充
17. ### [• 2016年にSONiCをオープンソースとして公開 • 翌2017年にSONiCを開発しオープンソースにした経緯や目的について解説してたBLOGを公開 • "SONiC: The networking switch software](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_16.jpg "SONiC Introduction (日本語) • 2016年にSONiCをオープンソースとして公開
• 翌2017年にSONiCを開発しオー...")
that powers the Microsoft Global Cloud" • 数万台のスイッチで構成された、ハイパースケールなデータセンターネットワークの運用 経験から明確化されたニーズを元に設計・開発 • ネットワークの各階層に最適なスイッチング・ハードウェアを使用 • エンドユーザーに影響を与えることなく新機能を導入可能 • 信頼性の高いアップデートを、(数週間ではなく)数時間でスイッチ全体に展開可能 • クラウドスケールのディープ・テレメトリーや自動化された障害緩和を活用可能 • 自社開発のSDNソフトウェアにより、統一された構造を使用してネットワーク内のすべての ハードウェア要素を簡単に制御可能。これにより重複を排除し障害を低減可能。 • SONiCを自社開発し、SAIと共に公開しエコシステムを構築 異なるベンダや世代のASICに対応するソフトウェア資産への投資を、無駄なく継続可能に マイクロソフト社 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
20. ### [アリババ社(Alibaba) SONiCを利用する事による恩恵(Benefits) SONiC Introduction | SONiC Workshop Japan 2024 |](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_19.jpg "SONiC Introduction (日本語) アリババ社(Alibaba)
SONiCを利用する事による恩恵(Benefits)
SONiC...")
2024/05/24 大幅なコスト削減と シームレスなインフラ管理 様々なユースケースに利用されるネットワーク機器をSONiC で統一する事によるCAPEX/OPEXの削減や、シームレスな監 視、管理、拡張性を実現 テストの効率化による ネットワーク品質の向上 自社ユースケースの要件に絞ったテストを実施する事により、 一般的なベンダ機器と比較し1~2割のテストで同様の効果 を得ることが可能 アジャイルな更新サイクル 自社の裁量で必要な修正を適用可能となり、外部に依存する 事なくインフラを最新に保つことが可能 新機能や機器の導入の迅速化 開発リソースを自社要件に合わせて振り分ける事により、迅 速に利用したい新機能や機器を導入可能 活発なコミュニティとの 共同イノベーション SONiCのメリットを享受するだけでなくコミュニティに貢献 する事により、コミュニティと共同でSONiCの機能強化が可 能 引用:ホワイトペーパー "SONiC Alibaba Data Center Network Use Case" より抜粋して翻訳
21. ### [参考:"Resolving the Support Gap for SONiC, OCP 2022" • eBayがSONiCを採用した背景と課題](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_20.jpg "SONiC Introduction (日本語) 参考:"Resolving the Support Gap for SONiC, OCP 20...")
• ビジネスからの要求(制約) • ネットワーク機器の突然の値上げがあった場合、予算を増やすことは困難 • ビジネスに合わせたキャパシティプランニングが必要であり、予算に合わせてスケールダウンする事 は困難 • サプライヤ(機器ベンダ)の課題 • 納期が長い(52週間) • 突然のサポート打ち切り • 1年間に数度にわたる値上げ • "サプライチェーンの多様化" による解決 • 複数の調達先からネットワーク機器を購入する事により、特定のネットワーク機器ベンダへの 依存度を下げ、コストや納期面でのリスクを低減 eBay (世界最大規模のオークションサイト) SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
25. ### [商用版SONiCと特長 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_24.jpg "SONiC Introduction (日本語) 商用版SONiCと特長
SONiC Introduction | SONiC Workshop...")
ベンダ企業名 特長 参考情報 Arrcus, Inc. 商用ルータであるArcOSのルーティングエンジン搭載 MPLS Japan 2022 "Evolution of Whitebox Solution" Broadcom ASICベンダによる直接的なSAIサポート Broadcom Enterprise SONiC Cisco Cisco Silicon One ASICを搭載 SRv6に関して充実したSAIを提供 MPLS Japan 2023 "SRv6 in SONiC" SONiC on Cisco 8000 Dell デル・テクノロジーズのハードウェアとセットでの提供も可能 Enterprise SONiC Distribution by Dell Technologies Edgecore ホワイトボックススイッチベンダ(ODM)による直接的な プラットフォームサポート White Papers: Enterprise SONiC Distribution by Edgecore Juniper 商用ルータであるcRPDのルーティングエンジン搭載 Juniper Web: "ジュニパーSONiCの導入" Nvidia ASICベンダによる直接的なSAIサポート NVIDIA Web: SONiC White Paper @ebiken が調査した情報のまとめ(2024/05/24) 提供機能や販売・サポートなど、現在の状況は各ベンダにご確認お願いします
26. ### [有償サポート提供ベンダと特長 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_25.jpg "SONiC Introduction (日本語) 有償サポート提供ベンダと特長
SONiC Introduction | SONiC Works...")
• Apresia Systems株式会社 • 幅広くホワイトボックススイッチとネットワークOSを組み合わせた販売や保守サポートを提供 • 保守サポート(日本語窓口)、テクニカルシルバーサポート(障害対応、技術サポート)、ハンズオントレーニング、開発環境サポート、を提供 • JANOG 44,45,49 等のカンファレンスでもSONiC関連の講演を行っている • 参考:Apresia Systems株式会社 "SONiC紹介ページ" • Aviz Networks • SONiCのカスタマイズやメンテナンスを提供 • SONiC、Arista、Cisco、NVIDIA等、マルチベンダで構成されたネットワークの可視化や設定自動化(Aviz ONES) • ユースケース検証に利用可能なテストツール(Aviz FTAS) • 参考:https://aviznetworks.com/ ⇒ Products • デル・テクノロジーズ • "Dell Enterprise SONiC" の開発元から直接日本語でサポートを受ける事が可能 • デル・テクノロジーズによるハードウェアと統合したサポート • 参考:Enterprise SONiC Distribution by Dell Technologies • 他にも日本のホワイトボックススイッチの販売代理店がサポートを提供?(未確認 ⇒ 誰か教えてください) @ebiken が調査した情報のまとめ(2024/05/24) 提供するサポート内容など、現在の状況は各ベンダにご確認お願いします
30. ### [コミュニティが管理する情報ソース SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_29.jpg "SONiC Introduction (日本語) コミュニティが管理する情報ソース
SONiC Introduction | SONiC Wor...")
日常的なコミュニケーションはオンラインで実施 内容 サイトへのリンク SONiC Foundation ホームページ ポータルサイト https://sonicfoundation.dev/ SONiC X(旧Twitter)アカウント SONiC 関連のニュース、ユースケース、イベント告知、等 https://twitter.com/SONiC\_Fund SONiC LinkedIn アカウント SONiC 関連のニュース、ユースケース、イベント告知、等 https://www.linkedin.com/company/sonic-fund/ SONiC Slack ワークスペース SONiC 関連のニュース、ユースケース、イベント告知、技術的な質問、等 https://sonicswitch.slack.com/ SONiC YouTube チャネル SONiC 関連の講演やミーティングの録画 https://www.youtube.com/@sonic-fund sonicproject Google Groups メーリングリスト(一般的な話題) https://groups.google.com/g/sonicproject Groups.io グループ ワーキンググループ、開発者向け(dev)やその他メーリングリスト https://lists.sonicfoundation.dev/ GitHub Organization 各種情報の集約(各情報の場所は以下に記載) https://github.com/sonic-net GitHub SONiC Wiki ユーザーマニュアルや開発者向けの情報 https://github.com/sonic-net/SONiC/wiki GitHub SONiC レポジトリ 仕様書(HLD)、全体的な Issue、PR(Pull Request) https://github.com/sonic-net/SONiC GitHub その他レポジトリ 各モジュールのソースコード、Issue、PR https://github.com/sonic-net/sonic-<module名> GitHub プロジェクト リリース管理のためのプロジェクト https://github.com/orgs/sonic-net/projects
31. ### [ワーキンググループ SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_30.jpg "SONiC Introduction (日本語) ワーキンググループ
SONiC Introduction | SONiC Workshop J...")
ワーキンググループ名 概要 sonic-dev - • メインの開発メーリングリスト • 開発に関わる場合は参加必須 • 次期リリースの候補機能募集、リリーススケ ジュール等、リリース全般に関する話題を共有 sonic-wg- routing SONiC Working Group on Routing • ルーティングの機能や性能改善を議論 • FRRoutingコミュニティからも開発者が参加し ており、FRRoutingとの連携やFRRoutingの改 善も含めた議論が行われている sonic- smartswitch SmartSwitch Group • ASICとDPUを組み合わせた、SmartSwitchと 呼ばれる新しいプラットフォームに関する議論 sonic-wg-otn SONiC Working Group for Optical Transport Network • OTN(光伝送装置)制御をサポートする拡張に 関する議論 umf-working- group UMF Working Group • 統合管理フレームワーク(UMF) sonic-system- orch SONiC System Orchestration Working Group • システムとしてのSONiCに関する議論 • SONiC全体やコンテナ毎の起動や再起動、イ メージのインストール、設定のリロード、等 sonic-wg-ai SONiC AI Working Group • AI/MLネットワークのユースケースを議論 https://lists.sonicfoundation.dev/g/main/subgroups
38. ### [SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24 https://sonic.connpass.com/event/313138/](https://files.speakerdeck.com/presentations/06eab1fdf1b74b3badee8a191f86066d/slide_37.jpg "SONiC Introduction (日本語) SONiC Introduction | SONiC Workshop Japan 2024 ...")