Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SONiC Introduction (日本語)

SONiC Introduction (日本語)

SONiC Workshop Japan 2024
https://sonic.connpass.com/event/313138/
SONiC Introduction 歴史と概要、海外事例、商用版、コミュニティ、これから
Kentaro Ebisawa | Twitter: @ebiken

ebiken

May 22, 2024
Tweet

More Decks by ebiken

Other Decks in Technology

Transcript

  1. Table of Contents • Network OS や White Box Switch

    の歴史 • 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
  2. SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24 2013

    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 の歴史
  3. SONiC 概要 • ホワイトボックススイッチの内部構造 • SAI 誕生の背景と役割 • SONiCアーキテクチャの全体像 •

    2023年までに追加された主な機能 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
  4. ホワイトボックススイッチの内部構造 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    マネジメントプレーン • ユーザーインターフェース • 設定管理 • モニタリング・ログ機能の提供 パケット パーサー パケット処理パイプライン 送信キュー (QoS) Port L2 L3 ACL プロトコル処理エージェント ルーティング テーブル LAG BGP OSPF ユーザ インターフェース CLI/GUI API 管理機能 モニタ リング ログ 設定管理 コントロールプレーン (どのようにパケットを処理するか?) • ルーティングプロトコルの処理(RIB) • データプレーンへのルール設定(FIB) データプレーン • パケットヘッダの解析 • パケットの変換・転送 SONiC スイッチ ASIC
  5. • 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
  6. ホワイトボックススイッチの内部構造 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    写真引用元:AS7816-64X 製品仕様(OCPウェブサイト) https://www.opencompute.org/products/119/edgecore-networks-as7816-64x-100gbe-data-center-switch-torspine-switch-port-to-power
  7. サーバーとスイッチの内部構造の比較 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    ペリフェラル PCI express CPU Memory Memory メモリ (DRAM) スイッチ ASIC FAN LED Sensor PCI express CPU Memory Memory Memory コント ローラ コント ローラ マザー ボード スイッチ 基盤 NIC カード CPU ボード サーバーの内部構造 スイッチの内部構造
  8. スイッチASICの機能ブロック毎の役割 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    スイッチASIC meta data meta data フロントパネルポート Ingress Pipeline Parser Deparser Packet Buffer & Replication Engine Buffer & Queueing Engine Ingress Pipeline Ingress Pipeline Parser Deparser Ingress Pipeline Egress Pipeline SerDes
  9. スイッチASICの機能ブロック毎の役割 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    機能ブロック 役割 SerDes (Serializer/Deserializer) ビット単位のシリアル入力信号を8ビットや16ビットといったパラレル 信号に変換(出力時は逆にパラレル信号をシリアル信号に変換) パケットバッファ・複製エンジン (Packet Buffer & Replication Engine) 受信したパケットを処理中に保持するバッファ。優先度などに応じた バッファを用意する事により、QoSを実現する。また、ブロードキャス トやマルチキャスパケットを複製する。 パーサー(Parser) パケットヘッダを解析し、メタデータとして保存 デパーサー(Deparser) パケット処理パイプラインの実行結果を元に、パケットヘッダを再構築 パケット処理パイプライン (Ingress/Egress Pipeline) ヘッダ情報や受信ポート等、メタデータを元に指定された処理を実施 メタデータ(meta data) パイプライン処理を実行する際、マッチ・テーブルなどの検索キーや処 理分岐に利用される。パースしたヘッダ情報、入力ポート、処理中に生 成されたデータなどが含まれる キュー (Buffer & Queuing Engine) 送信スケジュールを元にパケットを送信
  10. SAI ( Switch Abstraction Interface) • スイッチASIC制御のためには、ドライバを含むSDKが必要 (Software Development Kit)

    • SDKはASICベンダやASICのモデル毎に異なる (及びそれを利用するためのAPI) • 異なるスイッチASICを搭載したスイッチに対応するNOS開発に は、スイッチASIC毎に多くの変更(開発)が必要 SAI == スイッチASIC 共通&オープンな制御API の誕生 SAI 誕生の背景と役割 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
  11. SONiCで起動している Docker コンテナ SONiC Introduction | SONiC Workshop Japan 2024

    | 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"
  12. サブシステムとデータベース連携動作の例 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    syncd コンテナ swss コンテナ DB コンテナ bgp コンテナ FRRouting (FPM module) fpmsyncd APPL_DB ASIC_DB orchagent syncd スイッチASIC ASIC driver
  13. SONiCがサポートする機能と機能拡張の流れ SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    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モデルの拡充
  14. • 2016年にSONiCをオープンソースとして公開 • 翌2017年にSONiCを開発しオープンソースにした経緯や目的について解説してたBLOGを公開 • "SONiC: The networking switch software

    that powers the Microsoft Global Cloud" • 数万台のスイッチで構成された、ハイパースケールなデータセンターネットワークの運用 経験から明確化されたニーズを元に設計・開発 • ネットワークの各階層に最適なスイッチング・ハードウェアを使用 • エンドユーザーに影響を与えることなく新機能を導入可能 • 信頼性の高いアップデートを、(数週間ではなく)数時間でスイッチ全体に展開可能 • クラウドスケールのディープ・テレメトリーや自動化された障害緩和を活用可能 • 自社開発のSDNソフトウェアにより、統一された構造を使用してネットワーク内のすべての ハードウェア要素を簡単に制御可能。これにより重複を排除し障害を低減可能。 • SONiCを自社開発し、SAIと共に公開しエコシステムを構築 異なるベンダや世代のASICに対応するソフトウェア資産への投資を、無駄なく継続可能に マイクロソフト社 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
  15. SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24 引用:

    "SONiC SRv6 deployment for Predictable-WAN, OCP 2023" Slide 3
  16. アリババ社(Alibaba) SONiCを利用する事による恩恵(Benefits) SONiC Introduction | SONiC Workshop Japan 2024 |

    2024/05/24 大幅なコスト削減と シームレスなインフラ管理 様々なユースケースに利用されるネットワーク機器をSONiC で統一する事によるCAPEX/OPEXの削減や、シームレスな監 視、管理、拡張性を実現 テストの効率化による ネットワーク品質の向上 自社ユースケースの要件に絞ったテストを実施する事により、 一般的なベンダ機器と比較し1~2割のテストで同様の効果 を得ることが可能 アジャイルな更新サイクル 自社の裁量で必要な修正を適用可能となり、外部に依存する 事なくインフラを最新に保つことが可能 新機能や機器の導入の迅速化 開発リソースを自社要件に合わせて振り分ける事により、迅 速に利用したい新機能や機器を導入可能 活発なコミュニティとの 共同イノベーション SONiCのメリットを享受するだけでなくコミュニティに貢献 する事により、コミュニティと共同でSONiCの機能強化が可 能 引用:ホワイトペーパー "SONiC Alibaba Data Center Network Use Case" より抜粋して翻訳
  17. 参考:"Resolving the Support Gap for SONiC, OCP 2022" • eBayがSONiCを採用した背景と課題

    • ビジネスからの要求(制約) • ネットワーク機器の突然の値上げがあった場合、予算を増やすことは困難 • ビジネスに合わせたキャパシティプランニングが必要であり、予算に合わせてスケールダウンする事 は困難 • サプライヤ(機器ベンダ)の課題 • 納期が長い(52週間) • 突然のサポート打ち切り • 1年間に数度にわたる値上げ • "サプライチェーンの多様化" による解決 • 複数の調達先からネットワーク機器を購入する事により、特定のネットワーク機器ベンダへの 依存度を下げ、コストや納期面でのリスクを低減 eBay (世界最大規模のオークションサイト) SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
  18. eBay (世界最大規模のオークションサイト) 1. 差別化のための独自機能 • ユーザーにとって必要のない、差別化自体を目的とした機能差異 2. 案件に応じた機能開発により、ネットワークOS間での要件を 収束できない •

    購買力のあるユーザー要望に依存したロードマップの変更 3. サポートモデルがベンダ毎に異なり、かつベンダをまたがる 課題への対応が困難 サプライチェーンの多様化を進める際の課題 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24 SONiC の採用により解決 SONiC の採用により解決できない課題
  19. eBay (世界最大規模のオークションサイト) サポートプロバイダの活用 SONiC Introduction | SONiC Workshop Japan 2024

    | 2024/05/24 オペレーター (ユーザー企業) サポート プロバイダ ハードウェア サプライヤー SONiC コミュニティ • デバイス テスト/要件 • SONiC テスト/要件 • 新機能要件 • SONiCやデバイスの課題 • SONiC 修正や機能の提案 (オペレーターの代わりに) • 開発工程の上流でのテスト • ハードウェア関連の要求 • ハードウェア関連の課題 • 開発工程の上流でのテスト • 堅朗なSONiC(ソフトウェア) • 堅朗なハードウェア • ネットワークダウン時のSLA付きサポート • ハードウェア関連の新機能 • ハードウェア関連の修正 • SONiC の修正や新機能
  20. 商用版SONiCと特長 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    ベンダ企業名 特長 参考情報 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) 提供機能や販売・サポートなど、現在の状況は各ベンダにご確認お願いします
  21. 有償サポート提供ベンダと特長 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    • 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) 提供するサポート内容など、現在の状況は各ベンダにご確認お願いします
  22. SONiC Foundation SONiC Introduction | SONiC Workshop Japan 2024 |

    2024/05/24 2022年に OCP -> Linux Foundation へ運営が移管 https://sonicfoundation.dev/
  23. ガバナンス(運営) 改善の進捗(2023年) SONiC Introduction | SONiC Workshop Japan 2024 |

    2024/05/24 SONiCウェブサイトの新設 技術運営委員会(TSC) メンバーと議長の 選出プロセス整備 機能品質レベルの定義 ワーキンググループ の導入・新設 デザインレビュー プロセスの改善 FRRアップグレード プロセスの正式化 組織運営の透明性向上 引用:Slide 7 を翻訳:OCP2023 SONiC Workshop:"SONiC Foundation Updates: SONiC 2023 Unleashing the Power of Open Networking"
  24. コミュニティが管理する情報ソース SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    日常的なコミュニケーションはオンラインで実施 内容 サイトへのリンク 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
  25. ワーキンググループ SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    ワーキンググループ名 概要 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
  26. リリースプロセスの全体像 SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24

    202311リリースの際の流れ https://docs.linuxfoundation.org/lfx/easycla 初めて Issue や PR を登録する際には、個人コントリ ビューター・ライセンス同意書(ICLA: Individual Contributor License Agreement)への合意が必須 (将来変更の可能性があるため都度確認お願いします)
  27. SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24 リリースプロセスやコントリビューション方法の詳細は

    後程のセッションで... SONiCコミュニティにアップストリームしてみた NTT 中野寛二
  28. SONiC のこれから • 2024年 コミュニティ運営の注力項目 • スイッチASIC以外でのSONiCの利用 • SONiC DASH

    on SmartSwitch • SONiC-VPP アーキテクチャ SONiC Introduction | SONiC Workshop Japan 2024 | 2024/05/24
  29. 2024年 コミュニティ運営の注力項目 SONiC Introduction | SONiC Workshop Japan 2024 |

    2024/05/24 引用:OCP 2023 "SONiC Foundation Updates: SONiC 2023 Unleashing the Power of Open Networking"
  30. スイッチASIC以外でのSONiCの利用 SONiC DASH on SmartSwitch SONiC Introduction | SONiC Workshop

    Japan 2024 | 2024/05/24 OCP2023 "Build limitless network with Smart Switch" OCP 2023: "Alibaba Next-gen Gateway" Azure "ネットワーク仮想アプライアンス(NVA)高速接続" サービス
  31. スイッチASIC以外でのSONiCの利用 SONiC-VPP アーキテクチャ SONiC Introduction | SONiC Workshop Japan 2024

    | 2024/05/24 引用:"2023-06 - FD.io: SONiC VPP platform Use Case" Slide 6 "LFN Developer & Testing Forum", Shashidhar Patil, Sameer Nanajkar (Cisco)