LoginSignup
1
0

SONiC VS 仮想スイッチを使ってみよう [Community/Edgecore]

Last updated at Posted at 2024-04-19

はじめに

SONiC VS 仮想スイッチを使ってみよう」という記事に、Broadcom SONiC の VS の導入方法を紹介しました。

いろんな SONiC がありますが、以下のように分類できると考えられます。

SONiC name type license note VS download link
Community SONiC OSS - - https://sonic.software/
Broadcom SONiC Enterprise SONiC Distribution 必須 - https://github.com/Broadcom/sonic-VirtualSwitch/releases/tag/3.1.2
Edgecore SONiC Enterprise SONiC Distribution - To download the SONiC image, sign up for an account on the Edgecore support portal 要相談
- 代理店経由
- Edgecore経由
Dell SONiC Enterprise SONiC Distribution 必須 re-branded from Broadcom SONiC ?
Nvidia SONiC proprietary 必須 only compatible with Nvidia HW ?
Microsoft,
Alibaba SONiC ...
proprietary N/A only deployed in their own Datacenter, no plans to sell SONiC to customers N/A

日本では、すでに Edgecore SONiC VS 環境で ZTP などの機能を検証したりする事例もありました。(参考: SONiC ZTPでデータセンターネットワークを作った話 )

しかしながら、Edgecore SONiCの正式リリース版はまだなく、Edgecore SONiCの VS 環境を活用したい場合は、Edgecoreの代理店にご連絡いただくことで入手可能です。

さて、Edgecore SONiC と Community SONiC の Virtual Switch を試してみましょう。

今回の目標

  • GNS3 に EC SONiC VS をインポート
  • GNS3 に Community SONiC VS をインポート
  • Version 確認
  • EC/Brcm/Community の を相互接続し、ping 疎通を検証

Community SONiC VS と EC SONiC VS をインポート

Community と EC について、両方とも以下の手順でインポートできます。

  1. イメージファイルを事前に入手・ダウンロード

    • Target
      • Community 202311
      • EC SONiC 202111.3
  2. GNS3 → Edit → Preference → QEMU → Qemu VMs → new
    image.png

  3. イメージを指定し、推奨の RAM サイズは、4096M です。
    image.png

  4. templates の導入完了を確認
    OSS-1.png

  5. 推奨として、vCPU を 2 する
    image.png

  6. Community とEC 両方とも、1 * mgmt_port + 32 * 100G/40G port の仮想スイッチのため、adapters33 に設定しておく。また、一個目のポートは mgmt port なので、first port name を eth0 に設定する
    image.png

  7. 以上の手順でimport 完了!
    image.png

ただし、GNS3 との interface 名称不一致の現象がありますが、実は対策があります

template -> configuration -> configure customer adapters に SONiC の naming に合わせて修正すれば、名称不一致の現象を解消できます。一個ずつ入力して面倒ですが、一度設定すれば、作図する際に間違って違うポートに接続するのを避けますね。
image.png

GNS3 とのnaming 問題を解消し、完璧です。
image.png

Version 確認

show version コマンドを叩いてみると、以下の情報を確認できましたね。(立ち上がった docker のバージョンは省略します。)

Vendor SONiC Version Platform Distribution Kernel Build Commit Build Date
Broadcom SONiC-OS-3.1.2-Enterprise_Base x86_64-kvm_x86_64-r0 Debian 9.13 4.9.0-11-2-amd64 1759d99d0 Thu Jul 8 18:48:40 UTC 2021
Edgecore SONiC.Edgecore-SONiC_20221124_131355_ec202111_vs_48 x86_64-kvm_x86_64-r0 Debian 11.5 5.10.0-8-2-amd64 ca3fda267 Thu Nov 24 09:27:45 UTC 2022
Community SONiC.202311.525638-e0f87535b x86_64-kvm_x86_64-r0 Debian 11.9 5.10.0-23-2-amd64 e0f87535b Thu Apr 18 11:44:09 UTC 2024

それぞれのビルド情報が見られて、面白いですね。

EC/Brcm/Community SONiCを相互接続しよう!

Community SONiC VSの場合、以下の testbed 環境に合わせる BGP の config はそのままに残っています
image.png
本記事は、便宜上で、/etc/sonic/config_db.json の"bgp_asn" を削除しました。なぜかというと、"bgp_asn" の設定が入ると、/etc/sonic/config_db.jsonから BGP 設定をデフォルトとして読み込まないからです。
image.png

config_db.json を修正してrebootすると、BGP routing の設定は初期となります。

Topology

以下のようにトポロジーを作図します。
image.png

sudo config interface startup ${interface_name} で link up させて、接続中のポートは up になっているか確認します
image.png

ping 疎通の環境は以下のように設定します。
image.png

Result

お互いに ping させて、show arp 確認してみると、お互いに arp 学習済で、成功しましたね!
image.png

最後に

この記事は、これまでに経験した GNS3 の罠にハマらないように考えてメモしました。SONiC VSの環境構築の記事はここまでとなります。

ネット上に、Community SONiCとEC SONiC の仮想スイッチの情報がまだ少なく、より多くの方にSONiC を体験してもらいたいですね。本記事が皆様の参考になれば幸いです。

次回は、どのようにVS 環境で ZTPによる自動デプロイ機能を紹介いたします。GNS3上で、DHCP/TFTP サーバの事前作業はやや面倒で、その情報も共有したいと思います。

参考

Broadcom SONiC VS 仮想スイッチを使ってみよう
SONiC からみる MAC Table と Routing Table
[Enterprise SONiC] FRRouting and config initialization
SONiC Testbed Topology
Edgecore SONiC distributors

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0