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

2年かけてSONiCコミュニティにマージされた話

 2年かけてSONiCコミュニティにマージされた話

2年かけてSONiCコミュニティにマージされた話
NTTネットワークイノベーションセンタ
中野 寛二

SONiC Workshop Japan 2025
https://sonic.connpass.com/event/345182/

Tweet

More Decks by SONiC Users Group Japan

Other Decks in Technology

Transcript

  1. 1 Copyright 2025 NTT CORPORATION 目次 • SONiCについて • NTTの考えるSONiCの課題

    • 提案したfpmsyncd拡張 • マージまでの流れ • まとめ
  2. 2 Copyright 2023 NTT CORPORATION SONiCについて • SONiCはオープンなネットワークOSである。 • MicrosoftがOCP(Open

    Compute Project)に2016年に寄贈し、2022まではOCP Networking傘下、2022以降はLinux Foundationで管理されている。 • コンテナベースアーキテクチャ • Docker (標準) • Kubernetes • Redis DB集中管理システム • Pub/Subメッセージング(Redis) • SAIを用いたスイッチASIC制御 出展: https://github.com/sonic-net/SONiC/wiki/Architecture
  3. 3 Copyright 2025 NTT CORPORATION SONiCの課題 プレーン 分類 コミュニティSONiCの状況/課題 検討したアプローチ

    マネジメント 設定変更コマンド体系 コマンド数が少ない。 KLISH CLI拡張 (Management Framework) L2/L3設定コマンド体系が異なる 外部制御プロトコル 設定項目が限定的 YANG拡張 (Management Framework) REST, gNMIのみ。旧来から利用するNETCONF に対応不可。相互接続性に難あり。 NETCONF拡張 (Management Framework) コントロール ルーティングプロトコル 標準ではBGPのみ利用可。OSPF等のIGPサポート 不可。 COPP関連の設定ファイル変更 ECMP経路処理 旧来の経路追加メッセージのみ利用可。Nexthop Group (netlinkメッセージ)が利用不可。 Fpmsyncd機能*拡張 *fpm形式のnetlinkメッセージの経路更新メッ セージをRedis DBに同期する機能 データ 伝送機能のサポート • Alibabaによる伝送機能のサポートの議論して いるが対応ハードウェアの入手性に難あり。 • 市中製品による伝送機能の実装 SAIのサポート • SAIサポートの対応状況がASIC毎に異なる。 • BroadcomはSAIフルスペックをサポート不可 • SAIの多くのAPIに準拠していた Intel Tofinoが開発中止。機能拡 張には他チップ検討要 • Broadcomはコミュニティ版 libsaiに意図的に制限があるため メーカとの連携検討要 • 2022年からSONiCの取り組みをしていく中で検討してきた課題
  4. 4 Copyright 2025 NTT CORPORATION Nexthop Groupとは • Nexthop Groupは、nexthop情報をnexthop

    objectとroute objectで分離をしている。 • nexthop groupのメリットとして、「メモリ消費量の削減」、「追加・更新に必要な時間 の短縮」がある。 route prefix dev gateway route prefix nexthop nexthop dev(出力IF) gateway(転送先) route Prefix nexthop nexthop dev gateway nexthop dev gateway nexthop dev(出力IF) gateway(転送先) nexthop group nexthop[N] Nexthop Group機能 Nexthop Group機能なし 参考:https://zenn.dev/ebiken_sdn/articles/a2b05db7af8048
  5. 5 Copyright 2025 NTT CORPORATION 提案したfpmsyncd拡張の概要 • 経路処理の効率化であるNext Hop GroupにDBからASICまでは対応している。

    • FRRとAPPL_DB間のfpmsyncdはNext Hop Groupに非対応である。 • fpmsyncdをNext Hop Group対応を行い経路処理の効率化を目指す。 bgp container (FRR) staticd bgpd zabra [dplane_fpm_nl] [zebra.conf] fpmsyncd Tcp.port 2620 format: netlink database container (radis-server) CONFIG_DB APPL_DB ASIC_DB ①設定有効化 ② fpm use-nexthop-group オプションの有効化 ③ fpmメッセージ処理の有効化 ④ fpmメッセージ処理の実行 ⑤NEXTHOP_GROUP_TABLE エントリを作成 2 1 3 4 5
  6. 6 Copyright 2025 NTT CORPORATION Fpmsyncd拡張の動作 • Next Hop Groupを使用しない場合は、zebraからRTM_NEWROUTEをfpmsyncdで

    ROUTE_TABLEに変換してAPPL_DBに送信する。 • Next Hop Groupを使用する場合は、zebraからRTM_NEWNEXTHOPをfpmsyncdで NEXT_HOP_GROUP_TABLEとROUTE_TABLEに変換して送信する。
  7. 7 Copyright 2025 NTT CORPORATION Fpmsyncd拡張の動作 • 測定には仮想版(sonic-vs)で1万経路~50万経路までBGP経路の印加を行い切り替え時 間の測定を行った。 •

    測定した結果、NexthopGroup対応により性能向上が見えた。 Spine1 (sonic-vs) Spine2 (sonic-vs) Leaf1 (sonic-vs) Leaf2 (sonic-vs) 試験機
  8. 8 Copyright 2025 NTT CORPORATION SONiCへのアップストリーム方法 • SONiCに機能提案を行う際に次の開発サイクルを行う。 • 当該ブランチのリリース日までに完成しなかった機能が次

    のリリース以降に実装される。 https://github.com/sonic-net/SONiC/wiki/release_train Plan : 次回リリースのロードマップに追加するように、コミュニティに機 能提案する。 また、HLDの概要を提案するのとレビューの日付 を決定する。 Design review : HLDには詳細なデザインとSONiCアーキテクチャへの適合性 を記載することが必要になる。HLDはコミュニティからレビュー が行われる。 Coding & Test : HLDに従ってコーディングとテスト行う。HLDレビュー結果に よってコード修正が必要となる。 Release : 機能を実装したブランチがリリース日に提供される。ブランチの 動作検証/コード修正期間(1-2ヶ月)が設けてあり、その間に当 該機能の検証/修正作業を行う。 Plan Design Coding & Test Release
  9. 9 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  10. 10 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  11. 13 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  12. 14 Copyright 2025 NTT CORPORATION マージまでの道のり PRしたfpmsyncd拡張のHLDはコミュニティミーティング及び Routing WGでのレビューにて、Next Hop

    Group機能の必要性が 認められ機能追加が承認された HLDレビューでは、次の確認があり対応を行った • デフォルトはDisable動作が必要 • Enable/Disableの追加するため修正
  13. 15 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  14. 17 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  15. 19 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  16. 21 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  17. 23 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  18. 25 Copyright 2025 NTT CORPORATION マージまでの道のり https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915 2023年 2024年

    2025 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  19. 27 Copyright 2025 NTT CORPORATION fpmsyncd以外の改善 プレーン 分類 コミュニティSONiCの状況/課題 検討したアプローチ

    マネジメント 設定変更コマンド体系 コマンド数が少ない。 KLISH CLI拡張 (Management Framework) L2/L3設定コマンド体系が異なる 外部制御プロトコル 設定項目が限定的 YANG拡張 (Management Framework) REST, gNMIのみ。旧来から利用するNETCONF に対応不可。相互接続性に難あり。 NETCONF拡張 (Management Framework) コントロール ルーティングプロトコル 標準ではBGPのみ利用可。OSPF等のIGPサポート 不可。 COPP関連の設定ファイル変更 ECMP経路処理 旧来の経路追加メッセージのみ利用可。Nexthop Group (netlinkメッセージ)が利用不可。 Fpmsyncd機能*拡張 *fpm形式のnetlinkメッセージの経路更新メッ セージをRedis DBに同期する機能 データ 伝送機能のサポート • Alibabaによる伝送機能のサポートの議論して いるが対応ハードウェアの入手性に難あり。 • 市中製品による伝送機能の実装 SAIのサポート • SAIサポートの対応状況がASIC毎に異なる。 • BroadcomはSAIフルスペックをサポート不可 • SAIの多くのAPIに準拠していた Intel Tofinoが開発中止。機能拡 張には他チップ検討要 • Broadcomはコミュニティ版 libsaiに意図的に制限があるため メーカとの連携検討要
  20. 28 Copyright 2025 NTT CORPORATION fpmsyncd以外の改善 • OpenConfig support for

    Ethernet interfaces HLDによると OpenConfigでInterfaceカウンタの取得できないらしい • 実機で動作確認した結果、取得できた ⇒ HLDの修正PR実施 ./gnmi_get -notls -xpath "/openconfig- interfaces:interfaces/interface[name="Ethernet16"]" -target_addr "counters": { "in-broadcast-pkts": "0", "in-discards": "2", "in-errors": "0", "in-multicast-pkts": "6389", "in-octets": "1597018", "in-pkts": "6389", "in-unicast-pkts": "0", "out-broadcast-pkts": "0", "out-discards": "0", "out-errors": "0", "out-multicast-pkts": "6391", "out-octets": "1641995", "out-pkts": "6391", "out-unicast-pkts": "0" },
  21. 30 Copyright 2025 NTT CORPORATION まとめ • 2年をかけて、SONiCコミュニティに対して提案してきた機能がマージされた。 • 本提案では、NextHop

    Groupの機能に対応するために必要な拡張を行った。 • マージに向けて、提案機能の必要性や有用性について、コミュニティメンバー への説明・議論を重ねながら進めた。また、コミュニティからのフィードバッ クを受けてHLDおよびコードの修正を継続的に実施した。 • アップストリームは、新機能提案以外にもHLD修正やバグ修正など幅広くコ ミュニティに貢献することができる。