5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Last updated at Posted at 2024-04-15

SONiC について

SONiC(Software for Open Networking in the Cloud)は、LinuxベースのNOSです。2016年にMicrosoftによって開発され、当初はAzureクラウドデータセンター向けに作成されましたが、その後、MS社はソースコードをオープンし、業界での人気と採用が広がっているそうです。
ググってみたら、"Enterprise SONiC By XXX" は 勝手に使えなく、MS 社のトレードマークだそうです。

Enterprise SONiC By XXX なら、日本では以下 2 社の利用実績もあるって 近年の JANOG の講演会から聞きました。

目標

  • GNS3 に Broadcom VS をインポート
  • VS Interface の確認
    • mgmt port
    • front port
  • ping 疎通
    • Vlan config
    • IP interface config
    • ARP table

環境と事前準備

GNS3 に Broadcom VS をインポート

  1. sonic-vs-3.1.2.gns3a を事前に何処かでダウンロード
  2. GNS3を開き、「file」->「Import appliance」->「sonic-vs-3.1.2.gns3a」を選択し、デフォルトの「Install the appliance on your local computer」を確認し、「next」をクリック
    esxi-2.PNG
  3. デフォルトの「qemu-system-x86_64」を確認し、「next」をクリック
    esxi-3.PNG
  4. Enterprise SONiC Distribution by Broadcom version 3.1.2 のステータスはReady to install になってるかどうかを確認
    もし missing file になっている場合、事前に github 上ダウンロードした3.1.2 版のイメージを import する必要
    Nextボタンを押すと、「The template available in the router category」の完了画面は表示する
    esxi-4.PNG
  5. インポート完了!
    esxi_vs-5.PNG

VS Interface の確認

GNS3でSONiCを使うの記事を参考し、インターフェースについて、Community版の SONiC VS ならいくつかの罠がありそうで、まず VS 上のインターフェースを確認しましょう。

Interface

Broadcom SONiC VS

デフォルトの Interface status を show interface status コマンドで確認してみると、、、

admin@brSONiC-1:~$ show interface statu
  Interface            Lanes    Speed    MTU    Alias    Vlan    Oper    Admin    Type    Asym PFC
-----------  ---------------  -------  -----  -------  ------  ------  -------  ------  ----------
  Ethernet0               49      25G   9100   Eth1/1  routed    down     down     N/A         N/A
  Ethernet1               50      25G   9100   Eth1/2  routed    down     down     N/A         N/A
  Ethernet2               51      25G   9100   Eth1/3  routed    down     down     N/A         N/A
  Ethernet3               52      25G   9100   Eth1/4  routed    down     down     N/A         N/A
  Ethernet4               57      25G   9100   Eth1/5  routed    down     down     N/A         N/A
  Ethernet5               58      25G   9100   Eth1/6  routed    down     down     N/A         N/A
  Ethernet6               59      25G   9100   Eth1/7  routed    down     down     N/A         N/A
  Ethernet7               60      25G   9100   Eth1/8  routed    down     down     N/A         N/A
  Ethernet8               61      25G   9100   Eth1/9  routed    down     down     N/A         N/A
  Ethernet9               62      25G   9100  Eth1/10  routed    down     down     N/A         N/A
 Ethernet10               63      25G   9100  Eth1/11  routed    down     down     N/A         N/A
 Ethernet11               64      25G   9100  Eth1/12  routed    down     down     N/A         N/A
 Ethernet12               77      25G   9100  Eth1/13  routed    down     down     N/A         N/A
 Ethernet13               78      25G   9100  Eth1/14  routed    down     down     N/A         N/A
 Ethernet14               79      25G   9100  Eth1/15  routed    down     down     N/A         N/A
 Ethernet15               80      25G   9100  Eth1/16  routed    down     down     N/A         N/A
 Ethernet16               85      25G   9100  Eth1/17  routed    down     down     N/A         N/A
 Ethernet17               86      25G   9100  Eth1/18  routed    down     down     N/A         N/A
 Ethernet18               87      25G   9100  Eth1/19  routed    down     down     N/A         N/A
 Ethernet19               88      25G   9100  Eth1/20  routed    down     down     N/A         N/A
 Ethernet20               93      25G   9100  Eth1/21  routed    down     down     N/A         N/A
 Ethernet21               94      25G   9100  Eth1/22  routed    down     down     N/A         N/A
 Ethernet22               95      25G   9100  Eth1/23  routed    down     down     N/A         N/A
 Ethernet23               96      25G   9100  Eth1/24  routed    down     down     N/A         N/A
 Ethernet24               13      25G   9100  Eth1/25  routed    down     down     N/A         N/A
 Ethernet25               14      25G   9100  Eth1/26  routed    down     down     N/A         N/A
 Ethernet26               15      25G   9100  Eth1/27  routed    down     down     N/A         N/A
 Ethernet27               16      25G   9100  Eth1/28  routed    down     down     N/A         N/A
 Ethernet28               21      25G   9100  Eth1/29  routed    down     down     N/A         N/A
 Ethernet29               22      25G   9100  Eth1/30  routed    down     down     N/A         N/A
 Ethernet30               23      25G   9100  Eth1/31  routed    down     down     N/A         N/A
 Ethernet31               24      25G   9100  Eth1/32  routed    down     down     N/A         N/A
 Ethernet32               29      25G   9100  Eth1/33  routed    down     down     N/A         N/A
 Ethernet33               30      25G   9100  Eth1/34  routed    down     down     N/A         N/A
 Ethernet34               31      25G   9100  Eth1/35  routed    down     down     N/A         N/A
 Ethernet35               32      25G   9100  Eth1/36  routed    down     down     N/A         N/A
 Ethernet36               97      25G   9100  Eth1/37  routed    down     down     N/A         N/A
 Ethernet37               98      25G   9100  Eth1/38  routed    down     down     N/A         N/A
 Ethernet38               99      25G   9100  Eth1/39  routed    down     down     N/A         N/A
 Ethernet39              100      25G   9100  Eth1/40  routed    down     down     N/A         N/A
 Ethernet40              105      25G   9100  Eth1/41  routed    down     down     N/A         N/A
 Ethernet41              106      25G   9100  Eth1/42  routed    down     down     N/A         N/A
 Ethernet42              107      25G   9100  Eth1/43  routed    down     down     N/A         N/A
 Ethernet43              108      25G   9100  Eth1/44  routed    down     down     N/A         N/A
 Ethernet44              113      25G   9100  Eth1/45  routed    down     down     N/A         N/A
 Ethernet45              114      25G   9100  Eth1/46  routed    down     down     N/A         N/A
 Ethernet46              115      25G   9100  Eth1/47  routed    down     down     N/A         N/A
 Ethernet47              116      25G   9100  Eth1/48  routed    down     down     N/A         N/A
 Ethernet48  121,122,123,124     100G   9100  Eth1/49  routed    down     down     N/A         N/A
 Ethernet52  125,126,127,128     100G   9100  Eth1/50  routed    down     down     N/A         N/A
 Ethernet56      69,70,71,72     100G   9100  Eth1/51  routed    down     down     N/A         N/A
 Ethernet60      65,66,67,68     100G   9100  Eth1/52  routed    down     down     N/A         N/A
 Ethernet64          1,2,3,4     100G   9100  Eth1/53  routed    down     down     N/A         N/A
 Ethernet68      33,34,35,36     100G   9100  Eth1/54  routed    down     down     N/A         N/A
 Ethernet72          5,6,7,8     100G   9100  Eth1/55  routed    down     down     N/A         N/A
 Ethernet76      41,42,43,44     100G   9100  Eth1/56  routed    down     down     N/A         N/A

なんと、トータル 56 ポートがあります。多分この VS は downlink 25Gx48 / uplink 100Gx8 のスイッチだと想定しているでしょう。
だが、GNS3上の操作は eth0 + Ethernet0~8 、トータル 10 ポートしかありません。

GNS3上のポート SONiC仮想マシン内でのポート
eth0 eth0
Ethernet0 Ethernet0
Ethernet1 Ethernet1
Ethernet2 Ethernet2
... ...
Ethernet8 Ethernet8

Broadcom SONiC VS のポート数は少ないですが、Community SONiC VS のような GNS3 と VS の名称不一致の現象がないですね。Community 版より使いやすいでしょう。

ping 疎通を検証!

以下のようにトポロジーを作図します。
esxi-topo-7.PNG
以下のコンフィグを想定

スイッチ名 VLAN ID IPアドレス ポート ポートのタグ付け
fanout 1 Vlan1: 192.168.1.1/24 Ethernet0, Ethernet1 タグなし
brSONiC-1 10 Vlan10: 172.16.10.1/24 Ethernet0 タグ付き
brSONiC-1 - mgmt: 192.168.1.10/24 eth0 -
brSONiC-2 10 Vlan10: 172.16.10.2/24 Ethernet0 タグ付き
brSONiC-2 - mgmt: 192.168.1.11/24 eth0 -

また、default hostname は sonic のため、事前に以下のコマンドでそれぞれの hostname を変更しときます。

sudo config hostname ${new_hostname}

fanout

config

admin@fanout:~$ sudo config interface startup Ethernet0
admin@fanout:~$ sudo config interface startup Ethernet1
admin@fanout:~$ sudo config vlan add 1
admin@fanout:~$ sudo config vlan member add 1 -u Ethernet0
admin@fanout:~$ sudo config vlan member add 1 -u Ethernet1
admin@fanout:~$ sudo config interface ip add Vlan1 192.168.1.1/24

interface status

admin@fanout:~$ show interface status |head -n 5
  Interface            Lanes    Speed    MTU    Alias    Vlan    Oper    Admin    Type    Asym PFC
-----------  ---------------  -------  -----  -------  ------  ------  -------  ------  ----------
  Ethernet0               49      25G   9100   Eth1/1   trunk      up       up     N/A         N/A
  Ethernet1               50      25G   9100   Eth1/2   trunk      up       up     N/A         N/A
  Ethernet2               51      25G   9100   Eth1/3  routed    down     down     N/A         N/A

ip interface

admin@fanout:~$ show ip interfaces 
Interface    IPv4 address/mask    Master    Admin/Oper    BGP Neighbor    Neighbor IP    Flags
-----------  -------------------  --------  ------------  --------------  -------------  -------
Vlan1        192.168.1.1/24                 up/up         N/A             N/A
docker0      240.127.1.1/24                 up/down       N/A             N/A
lo           127.0.0.1/8   

Vlan brief

admin@fanout:~$ show vlan brief 
+-----------+----------------+-----------+----------------+-----------------------+
|   VLAN ID | IP Address     | Ports     | Port Tagging   | DHCP Helper Address   |
+===========+================+===========+================+=======================+
|         1 | 192.168.1.1/24 | Ethernet0 | untagged       |                       |
|           |                | Ethernet1 | untagged       |                       |
+-----------+----------------+-----------+----------------+-----------------------+

brSONiC-1

config

admin@fanout:~$ sudo config interface startup Ethernet0
admin@fanout:~$ sudo config vlan add 10
admin@fanout:~$ sudo config vlan member add 10 Ethernet0
admin@fanout:~$ sudo config interface ip add Vlan10 172.16.10.1/24
admin@fanout:~$ sudo config interface ip add eth0 192.168.1.10/24

Interface status

admin@brSONiC-1:~$ show interface status |head -n 5
  Interface            Lanes    Speed    MTU    Alias    Vlan    Oper    Admin    Type    Asym PFC
-----------  ---------------  -------  -----  -------  ------  ------  -------  ------  ----------
  Ethernet0               49      25G   9100   Eth1/1   trunk      up       up     N/A         N/A
  Ethernet1               50      25G   9100   Eth1/2  routed    down     down     N/A         N/A
  Ethernet2               51      25G   9100   Eth1/3  routed    down     down     N/A         N/A

ip interface

admin@brSONiC-1:~$ show ip interfaces 
Interface    IPv4 address/mask    Master    Admin/Oper    BGP Neighbor    Neighbor IP    Flags
-----------  -------------------  --------  ------------  --------------  -------------  -------
Vlan10       172.16.10.1/24                 up/up         N/A             N/A
docker0      240.127.1.1/24                 up/down       N/A             N/A
eth0         192.168.1.10/24                up/up         N/A             N/A
lo           127.0.0.1/8   

Vlan brief

admin@brSONiC-1:~$ show vlan brief 
+-----------+----------------+-----------+----------------+-----------------------+
|   VLAN ID | IP Address     | Ports     | Port Tagging   | DHCP Helper Address   |
+===========+================+===========+================+=======================+
|        10 | 172.16.10.1/24 | Ethernet0 | tagged         |                       |
+-----------+----------------+-----------+----------------+-----------------------+

brSONiC-2

config

admin@fanout:~$ sudo config interface startup Ethernet0
admin@fanout:~$ sudo config vlan add 10
admin@fanout:~$ sudo config vlan member add 10 Ethernet0
admin@fanout:~$ sudo config interface ip add Vlan10 172.16.10.2/24
admin@fanout:~$ sudo config interface ip add eth0 192.168.1.11/24

Interface status

admin@brSONiC-2:~$ show interface status |head -n 5
  Interface            Lanes    Speed    MTU    Alias    Vlan    Oper    Admin    Type    Asym PFC
-----------  ---------------  -------  -----  -------  ------  ------  -------  ------  ----------
  Ethernet0               49      25G   9100   Eth1/1   trunk      up       up     N/A         N/A
  Ethernet1               50      25G   9100   Eth1/2  routed    down     down     N/A         N/A
  Ethernet2               51      25G   9100   Eth1/3  routed    down     down     N/A         N/A

ip interface

admin@brSONiC-2:~$ show ip interfaces 
Interface    IPv4 address/mask    Master    Admin/Oper    BGP Neighbor    Neighbor IP    Flags
-----------  -------------------  --------  ------------  --------------  -------------  -------
Vlan10       172.16.10.2/24                 up/up         N/A             N/A
docker0      240.127.1.1/24                 up/down       N/A             N/A
eth0         192.168.1.11/24                up/up         N/A             N/A
lo           127.0.0.1/8   

Vlan brief

admin@brSONiC-2:~$ show vlan brief 
+-----------+----------------+-----------+----------------+-----------------------+
|   VLAN ID | IP Address     | Ports     | Port Tagging   | DHCP Helper Address   |
+===========+================+===========+================+=======================+
|        10 | 172.16.10.2/24 | Ethernet0 | tagged         |                       |
+-----------+----------------+-----------+----------------+-----------------------+

検証結果

お互いに ping させて、show arp コマンドで確認すると、ARP 学習できましたね。
esxi-arp-8.PNG

最後に

以上で、今日の目的も全部達成しましたね。
どのように SONiC VS を利用するのかすでに多くの記事がありますが、実際に動けるか試した記事はまだまだ少ないです。今後、GNS3を使用して、以下の機能を試し記事にしてみようと考えています。

L2機能:

  • LACP

L3機能:

  • Static route
  • BGP
  • OSPF

セキュリティ / システム / 管理機能:

  • CACL
  • AAA

システム / 管理 SNMP サポート機能:

  • Syslog
  • NTP
  • DHCPリレー
  • ログファイル
  • 管理フレームワーク

...など

長く書いてしまいましたが、ここまで参考していただいてありがとうございます。
初めて Qiita での投稿で、今後ともよろしくお願いします!

参考

How to run vSONiC on GNS3
SONiC github
Setting up SONiC on GNS3
SONiC CLI について

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?