Whiteboxスイッチ用NOSであるSONiCの仮想試験環境を構築してみた
初めに
JANOG44にて「OSSなWhitebox用NOSのSONiCが商用で使われている理由を考える」をご紹介しました。その中で、Whiteboxスイッチで動作するOSSのNOSであるSONiCを仮想マシンとして試験する環境を構築できることをデモしました。JANOGではKVMのCLIを使用しましたが、このページではGNS3にて仮想マシンのSONiCにて試験環境を構築する手順を詳細にご説明いたします。具体的には、以下のLeaf x 2、Spine x 2のIP CLOSファブリックを仮想マシンのSONiCにて構築することを目標とします。
図1 目標とするGNS3のネットワーク環境
前準備
仮想試験環境として、KVMのネストを有効にしたUbuntu18.04の仮想マシンにGNS3をインストールしました。それぞれ、以下のバージョンとなります。
ブログ掲載時に使用したKVM用のSONiCイメージのブランチは、現在リンクが削除されており入手できない状態となっています。
入手可能なブランチはこちらから入手をお願いします。
仮想マシン | Ubuntu18.04 (kernel 4.15.0-54) |
---|---|
KVM | libvirt 4.0.0, QEMU(API) 4.0.0, QEMU(hypervisor) 2.11.1 |
GNS3 | 2.1.21 |
GNS3上にSONiC KVMの導入
GNS3を起動し、メニューから"Edit" -> "Preferences"を選択します。設定画面が出てきましたら、"QEMU VMs"のタブを選択し、"New"ボタンをクリックします。
図2 GNS3にてQEMU VMsテンプレートを作成
ウィザードに従い設定を行います。RAMは2048MB、シリアルはtelnet、Disk Imageは入手したsonic-vs.imgを指定します。 QEMU VM Templatesが作成されましたら、Editボタンを押し、ネットワークインタフェースを適宜増やし、Disk Interfaceをvirtioに変更しておきます。 以下が、完成したQEMU VM templatesとなります。図3 作成したQEMU VMsテンプレート
登録したKVM SONiCのテンプレートを以下のように配置、接続します。注意点として、SONiCはeth0を管理ポートとして認識しますので、今回の例ではNATにつなげました。そうすることで、ホストマシンからは各SONiC仮想マシンへSSHログインが可能になります。その上で、eth1以降をユーザ通信用のポートとしてSONiCやホスト間を接続します。図4 GNS3でのKVMのSONiCイメージ
SONiCへの設定
GNS3上で、SONiCと仮想PCを配置しましたら、各装置を起動させます。SONiCにはTelnetで接続することで、シリアルに接続することが可能です。例えば、以下はSpine1に接続したときの例となります。
SONiCのConfiguration
config_db.jsonを保存しましたら、sudo rebootにて再起動させます。設定したconfig_db.jsonにてSONiCが再起動されますが、設定が各コンテナに反映され、BGPによるルーティング情報が交換されるまでに4-5分程度かかります。起動すると、以下のようにコンテナが起動していると思います。
$ telnet 127.0.0.1 5000
Debian GNU/Linux 9 Spine1 ttyS0
Spine1 login: admin
Password:
Last login: Fri Jul 26 10:47:14 UTC 2019 from 192.168.122.1 on pts/0
Linux Spine1 4.9.0-9-2-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2015-12-19) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: http://azure.github.io/SONiC/
admin@Spine1:~$
SONiCのログインは、ユーザ:admin、パスワード:YourPaSsWoRdとなります。
SONiCの設定はconfigコマンドで実行できるものもありますが、/etc/sonic/config_db.jsonにて大枠の設定を定義しておく必要があります。このページの下部にLeaf1, Leaf2, Spine1, Spine2のそれぞれのconfig_db.jsonのサンプルを記載しておりますので、そちらを各SONiC仮想マシンの/etc/sonic/config_db.jsonに反映します。ご参考までに、config_db.jsonの設定方法や例については以下のページにて説明がされています。SONiCのConfiguration
config_db.jsonを保存しましたら、sudo rebootにて再起動させます。設定したconfig_db.jsonにてSONiCが再起動されますが、設定が各コンテナに反映され、BGPによるルーティング情報が交換されるまでに4-5分程度かかります。起動すると、以下のようにコンテナが起動していると思います。
admin@Spine1:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb4fdd74ead2 docker-syncd-vs:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours syncd
d5a7560d4da6 docker-dhcp-relay:latest "/usr/bin/docker_ini…" 5 weeks ago Up 2 hours dhcp_relay
c39cfef428d6 docker-teamd:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours teamd
d5ec36128035 docker-sonic-telemetry:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours telemetry
c646fe6a7bd5 docker-snmp-sv2:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours snmp
243dc675660f docker-router-advertiser:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours radv
2a509d77dc82 docker-orchagent:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours swss
e266d1ce92ef docker-fpm-frr:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours bgp
02ec04bff6d2 docker-lldp-sv2:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours lldp
8e7209e388ab docker-platform-monitor:latest "/usr/bin/docker_ini…" 5 weeks ago Up 2 hours pmon
01e360be3c16 docker-database:latest "/usr/bin/supervisord" 5 weeks ago Up 2 hours database
admin@Spine1:~$
また、vtyshを実行すれば、FRRのCLIに接続できます。以下の例の通り、BGPによってルーティング情報が交換されていることを確認することができます。
- Spine1
admin@Spine1:~$ ip route show default via 192.168.122.1 dev eth0 3.3.3.3 via 10.1.1.2 dev Ethernet0 proto 186 src 1.1.1.1 metric 20 4.4.4.4 via 10.1.2.2 dev Ethernet4 proto 186 src 1.1.1.1 metric 20 10.1.1.0/24 dev Ethernet0 proto kernel scope link src 10.1.1.1 10.1.2.0/24 dev Ethernet4 proto kernel scope link src 10.1.2.1 10.11.0.0/24 via 10.1.1.2 dev Ethernet0 proto 186 src 1.1.1.1 metric 20 10.22.0.0/24 via 10.1.2.2 dev Ethernet4 proto 186 src 1.1.1.1 metric 20 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.95 240.127.1.0/24 dev docker0 proto kernel scope link src 240.127.1.1 linkdown admin@Spine1:~$ admin@Spine1:~$ vtysh Hello, this is FRRouting (version 7.0.1-sonic). Copyright 1996-2005 Kunihiro Ishiguro, et al. Spine1# show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route K>* 0.0.0.0/0 [0/0] via 192.168.122.1, eth0, 00:02:05 C>* 1.1.1.1/32 is directly connected, lo, 00:02:05 B>* 3.3.3.3/32 [20/0] via 10.1.1.2, Ethernet0, 00:01:06 B>* 4.4.4.4/32 [20/0] via 10.1.2.2, Ethernet4, 00:01:01 C>* 10.1.1.0/24 is directly connected, Ethernet0, 00:01:07 C>* 10.1.2.0/24 is directly connected, Ethernet4, 00:01:07 B>* 10.11.0.0/24 [20/0] via 10.1.1.2, Ethernet0, 00:01:06 B>* 10.22.0.0/24 [20/0] via 10.1.2.2, Ethernet4, 00:01:01 C>* 192.168.122.0/24 is directly connected, eth0, 00:02:05 Spine1#
- Leaf1
admin@Leaf1:~$ ip route show default via 192.168.122.1 dev eth0 1.1.1.1 via 10.1.1.1 dev Ethernet0 proto 186 src 3.3.3.3 metric 20 2.2.2.2 via 10.2.1.1 dev Ethernet4 proto 186 src 3.3.3.3 metric 20 4.4.4.4 proto 186 src 3.3.3.3 metric 20 nexthop via 10.1.1.1 dev Ethernet0 weight 1 nexthop via 10.2.1.1 dev Ethernet4 weight 1 10.1.1.0/24 dev Ethernet0 proto kernel scope link src 10.1.1.2 10.2.1.0/24 dev Ethernet4 proto kernel scope link src 10.2.1.2 10.11.0.0/24 dev Vlan1001 proto kernel scope link src 10.11.0.1 10.22.0.0/24 proto 186 src 3.3.3.3 metric 20 nexthop via 10.1.1.1 dev Ethernet0 weight 1 nexthop via 10.2.1.1 dev Ethernet4 weight 1 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.109 240.127.1.0/24 dev docker0 proto kernel scope link src 240.127.1.1 linkdown admin@Leaf1:~$ admin@Leaf1:~$ vtysh Hello, this is FRRouting (version 7.0.1-sonic). Copyright 1996-2005 Kunihiro Ishiguro, et al. Leaf1# show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route K>* 0.0.0.0/0 [0/0] via 192.168.122.1, eth0, 00:04:05 B>* 1.1.1.1/32 [20/0] via 10.1.1.1, Ethernet0, 00:03:05 B>* 2.2.2.2/32 [20/0] via 10.2.1.1, Ethernet4, 00:03:09 C>* 3.3.3.3/32 is directly connected, lo, 00:04:05 B>* 4.4.4.4/32 [20/0] via 10.1.1.1, Ethernet0, 00:03:00 * via 10.2.1.1, Ethernet4, 00:03:00 C>* 10.1.1.0/24 is directly connected, Ethernet0, 00:03:11 C>* 10.2.1.0/24 is directly connected, Ethernet4, 00:03:10 C>* 10.11.0.0/24 is directly connected, Vlan1001, 00:03:10 B>* 10.22.0.0/24 [20/0] via 10.1.1.1, Ethernet0, 00:03:00 * via 10.2.1.1, Ethernet4, 00:03:00 C>* 192.168.122.0/24 is directly connected, eth0, 00:04:05 Leaf1#
sudo config bgp startup all
ホスト間の通信確認
SONiCが起動しましたので、ホスト間の通信を確認します。今回の実験環境では、ホストはVPCSを使用しています。ホストのConsoleに接続し、以下のようにIPアドレスとデフォルトゲートウェイを設定します。
- PC-1
PC-1> ip 10.11.0.2/24 10.11.0.1 Checking for duplicate address... PC1 : 10.11.0.2 255.255.255.0 gateway 10.11.0.1 PC-1>
- PC-2
PC-2> ip 10.22.0.2/24 10.22.0.1 Checking for duplicate address... PC1 : 10.22.0.2 255.255.255.0 gateway 10.22.0.1 PC-2>
- PC-1
PC-1> ping 10.22.0.2 84 bytes from 10.22.0.2 icmp_seq=1 ttl=61 time=3.662 ms 84 bytes from 10.22.0.2 icmp_seq=2 ttl=61 time=3.035 ms 84 bytes from 10.22.0.2 icmp_seq=3 ttl=61 time=2.747 ms 84 bytes from 10.22.0.2 icmp_seq=4 ttl=61 time=2.636 ms
- PC-2
PC-2> ping 10.11.0.2 84 bytes from 10.11.0.2 icmp_seq=1 ttl=61 time=2.722 ms 84 bytes from 10.11.0.2 icmp_seq=2 ttl=61 time=2.413 ms 84 bytes from 10.11.0.2 icmp_seq=3 ttl=61 time=2.428 ms 84 bytes from 10.11.0.2 icmp_seq=4 ttl=61 time=2.501 ms
最後に
以上、本ブログにて、SONiCをWhiteboxスイッチが無くても試験できる仮想試験環境の構築をご紹介いたしました。JANOGでもお話しましたが、この環境でtelemetryの実験をすることも可能です。また、起動しているアプリケーションはsyncd以外は全て、Whiteboxの実機環境と同じものが動作しておりますので、それらの動作確認をすることにも使用できます。この情報が少しでも役に立てれば幸いです。
使用したconfig_db.json
- Leaf1
{ "BGP_NEIGHBOR": { "10.1.1.1": { "asn": "65100", "holdtime": "180", "keepalive": "60", "local_addr": "10.1.1.2", "name": "Spine1", "nhopself": "0", "rrclient": "0" }, "10.2.1.1": { "asn": "65100", "holdtime": "180", "keepalive": "60", "local_addr": "10.2.1.2", "name": "Spine2", "nhopself": "0", "rrclient": "0" } }, "DEVICE_METADATA": { "localhost": { "bgp_asn": "65110", "hostname": "Leaf1", "hwsku": "Force10-S6000", "mac": "52:54:00:12:34:01", "platform": "x86_64-kvm_x86_64-r0", "type": "LeafRouter" } }, "INTERFACE": { "Ethernet0|10.1.1.2/24": {}, "Ethernet4|10.2.1.2/24": {} }, "VLAN_INTERFACE": { "Vlan1001|10.11.0.1/24": {} }, "LOOPBACK_INTERFACE": { "Loopback0|3.3.3.3/32": {} }, "PORT": { "Ethernet0": { "admin_status": "up", "alias": "fortyGigE0/0", "index": "0", "lanes": "25,26,27,28", "mtu": "9100", "speed": "40000" }, "Ethernet4": { "admin_status": "up", "alias": "fortyGigE0/4", "index": "1", "lanes": "29,30,31,32", "mtu": "9100", "speed": "40000" }, "Ethernet8": { "admin_status": "up", "alias": "fortyGigE0/8", "index": "2", "lanes": "33,34,35,36", "mtu": "9100", "speed": "40000" }, "Ethernet12": { "admin_status": "up", "alias": "fortyGigE0/12", "index": "3", "lanes": "37,38,39,40", "mtu": "9100", "speed": "40000" }, "Ethernet16": { "admin_status": "up", "alias": "fortyGigE0/16", "index": "4", "lanes": "45,46,47,48", "mtu": "9100", "speed": "40000" }, "Ethernet20": { "admin_status": "up", "alias": "fortyGigE0/20", "index": "5", "lanes": "41,42,43,44", "mtu": "9100", "speed": "40000" }, "Ethernet24": { "admin_status": "up", "alias": "fortyGigE0/24", "index": "6", "lanes": "1,2,3,4", "mtu": "9100", "speed": "40000" }, "Ethernet28": { "admin_status": "up", "alias": "fortyGigE0/28", "index": "7", "lanes": "5,6,7,8", "mtu": "9100", "speed": "40000" }, "Ethernet32": { "admin_status": "up", "alias": "fortyGigE0/32", "index": "8", "lanes": "13,14,15,16", "mtu": "9100", "speed": "40000" }, "Ethernet36": { "admin_status": "up", "alias": "fortyGigE0/36", "index": "9", "lanes": "9,10,11,12", "mtu": "9100", "speed": "40000" }, "Ethernet40": { "admin_status": "up", "alias": "fortyGigE0/40", "index": "10", "lanes": "17,18,19,20", "mtu": "9100", "speed": "40000" }, "Ethernet44": { "admin_status": "up", "alias": "fortyGigE0/44", "index": "11", "lanes": "21,22,23,24", "mtu": "9100", "speed": "40000" }, "Ethernet48": { "admin_status": "up", "alias": "fortyGigE0/48", "index": "12", "lanes": "53,54,55,56", "mtu": "9100", "speed": "40000" }, "Ethernet52": { "admin_status": "up", "alias": "fortyGigE0/52", "index": "13", "lanes": "49,50,51,52", "mtu": "9100", "speed": "40000" }, "Ethernet56": { "admin_status": "up", "alias": "fortyGigE0/56", "index": "14", "lanes": "57,58,59,60", "mtu": "9100", "speed": "40000" }, "Ethernet60": { "admin_status": "up", "alias": "fortyGigE0/60", "index": "15", "lanes": "61,62,63,64", "mtu": "9100", "speed": "40000" }, "Ethernet64": { "admin_status": "up", "alias": "fortyGigE0/64", "index": "16", "lanes": "69,70,71,72", "mtu": "9100", "speed": "40000" }, "Ethernet68": { "admin_status": "up", "alias": "fortyGigE0/68", "index": "17", "lanes": "65,66,67,68", "mtu": "9100", "speed": "40000" }, "Ethernet72": { "admin_status": "up", "alias": "fortyGigE0/72", "index": "18", "lanes": "73,74,75,76", "mtu": "9100", "speed": "40000" }, "Ethernet76": { "admin_status": "up", "alias": "fortyGigE0/76", "index": "19", "lanes": "77,78,79,80", "mtu": "9100", "speed": "40000" }, "Ethernet80": { "admin_status": "up", "alias": "fortyGigE0/80", "index": "20", "lanes": "109,110,111,112", "mtu": "9100", "speed": "40000" }, "Ethernet84": { "admin_status": "up", "alias": "fortyGigE0/84", "index": "21", "lanes": "105,106,107,108", "mtu": "9100", "speed": "40000" }, "Ethernet88": { "admin_status": "up", "alias": "fortyGigE0/88", "index": "22", "lanes": "113,114,115,116", "mtu": "9100", "speed": "40000" }, "Ethernet92": { "admin_status": "up", "alias": "fortyGigE0/92", "index": "23", "lanes": "117,118,119,120", "mtu": "9100", "speed": "40000" }, "Ethernet96": { "admin_status": "up", "alias": "fortyGigE0/96", "index": "24", "lanes": "125,126,127,128", "mtu": "9100", "speed": "40000" }, "Ethernet100": { "admin_status": "up", "alias": "fortyGigE0/100", "index": "25", "lanes": "121,122,123,124", "mtu": "9100", "speed": "40000" }, "Ethernet104": { "admin_status": "up", "alias": "fortyGigE0/104", "index": "26", "lanes": "81,82,83,84", "mtu": "9100", "speed": "40000" }, "Ethernet108": { "admin_status": "up", "alias": "fortyGigE0/108", "index": "27", "lanes": "85,86,87,88", "mtu": "9100", "speed": "40000" }, "Ethernet112": { "admin_status": "up", "alias": "fortyGigE0/112", "index": "28", "lanes": "93,94,95,96", "mtu": "9100", "speed": "40000" }, "Ethernet116": { "admin_status": "up", "alias": "fortyGigE0/116", "index": "29", "lanes": "89,90,91,92", "mtu": "9100", "speed": "40000" }, "Ethernet120": { "admin_status": "up", "alias": "fortyGigE0/120", "index": "30", "lanes": "101,102,103,104", "mtu": "9100", "speed": "40000" }, "Ethernet124": { "admin_status": "up", "alias": "fortyGigE0/124", "index": "31", "lanes": "97,98,99,100", "mtu": "9100", "speed": "40000" } }, "TELEMETRY": { "gnmi": { "port": "8080" } }, "VLAN": { "Vlan1001": { "members": [ "Ethernet8" ], "vlanid": "1001" } }, "VLAN_MEMBER": { "Vlan1001|Ethernet8": { "tagging_mode": "untagged" } } }
- Leaf2
{ "BGP_NEIGHBOR": { "10.1.2.1": { "asn": "65100", "holdtime": "180", "keepalive": "60", "local_addr": "10.1.2.2", "name": "Spine1", "nhopself": "0", "rrclient": "0" }, "10.2.2.1": { "asn": "65100", "holdtime": "180", "keepalive": "60", "local_addr": "10.2.2.2", "name": "Spine2", "nhopself": "0", "rrclient": "0" } }, "DEVICE_METADATA": { "localhost": { "bgp_asn": "65120", "hostname": "Leaf2", "hwsku": "Force10-S6000", "mac": "52:54:00:12:34:02", "platform": "x86_64-kvm_x86_64-r0", "type": "LeafRouter" } }, "INTERFACE": { "Ethernet0|10.1.2.2/24": {}, "Ethernet4|10.2.2.2/24": {} }, "VLAN_INTERFACE": { "Vlan1001|10.22.0.1/24": {} }, "LOOPBACK_INTERFACE": { "Loopback0|4.4.4.4/32": {} }, "PORT": { "Ethernet0": { "admin_status": "up", "alias": "fortyGigE0/0", "index": "0", "lanes": "25,26,27,28", "mtu": "9100", "speed": "40000" }, "Ethernet4": { "admin_status": "up", "alias": "fortyGigE0/4", "index": "1", "lanes": "29,30,31,32", "mtu": "9100", "speed": "40000" }, "Ethernet8": { "admin_status": "up", "alias": "fortyGigE0/8", "index": "2", "lanes": "33,34,35,36", "mtu": "9100", "speed": "40000" }, "Ethernet12": { "admin_status": "up", "alias": "fortyGigE0/12", "index": "3", "lanes": "37,38,39,40", "mtu": "9100", "speed": "40000" }, "Ethernet16": { "admin_status": "up", "alias": "fortyGigE0/16", "index": "4", "lanes": "45,46,47,48", "mtu": "9100", "speed": "40000" }, "Ethernet20": { "admin_status": "up", "alias": "fortyGigE0/20", "index": "5", "lanes": "41,42,43,44", "mtu": "9100", "speed": "40000" }, "Ethernet24": { "admin_status": "up", "alias": "fortyGigE0/24", "index": "6", "lanes": "1,2,3,4", "mtu": "9100", "speed": "40000" }, "Ethernet28": { "admin_status": "up", "alias": "fortyGigE0/28", "index": "7", "lanes": "5,6,7,8", "mtu": "9100", "speed": "40000" }, "Ethernet32": { "admin_status": "up", "alias": "fortyGigE0/32", "index": "8", "lanes": "13,14,15,16", "mtu": "9100", "speed": "40000" }, "Ethernet36": { "admin_status": "up", "alias": "fortyGigE0/36", "index": "9", "lanes": "9,10,11,12", "mtu": "9100", "speed": "40000" }, "Ethernet40": { "admin_status": "up", "alias": "fortyGigE0/40", "index": "10", "lanes": "17,18,19,20", "mtu": "9100", "speed": "40000" }, "Ethernet44": { "admin_status": "up", "alias": "fortyGigE0/44", "index": "11", "lanes": "21,22,23,24", "mtu": "9100", "speed": "40000" }, "Ethernet48": { "admin_status": "up", "alias": "fortyGigE0/48", "index": "12", "lanes": "53,54,55,56", "mtu": "9100", "speed": "40000" }, "Ethernet52": { "admin_status": "up", "alias": "fortyGigE0/52", "index": "13", "lanes": "49,50,51,52", "mtu": "9100", "speed": "40000" }, "Ethernet56": { "admin_status": "up", "alias": "fortyGigE0/56", "index": "14", "lanes": "57,58,59,60", "mtu": "9100", "speed": "40000" }, "Ethernet60": { "admin_status": "up", "alias": "fortyGigE0/60", "index": "15", "lanes": "61,62,63,64", "mtu": "9100", "speed": "40000" }, "Ethernet64": { "admin_status": "up", "alias": "fortyGigE0/64", "index": "16", "lanes": "69,70,71,72", "mtu": "9100", "speed": "40000" }, "Ethernet68": { "admin_status": "up", "alias": "fortyGigE0/68", "index": "17", "lanes": "65,66,67,68", "mtu": "9100", "speed": "40000" }, "Ethernet72": { "admin_status": "up", "alias": "fortyGigE0/72", "index": "18", "lanes": "73,74,75,76", "mtu": "9100", "speed": "40000" }, "Ethernet76": { "admin_status": "up", "alias": "fortyGigE0/76", "index": "19", "lanes": "77,78,79,80", "mtu": "9100", "speed": "40000" }, "Ethernet80": { "admin_status": "up", "alias": "fortyGigE0/80", "index": "20", "lanes": "109,110,111,112", "mtu": "9100", "speed": "40000" }, "Ethernet84": { "admin_status": "up", "alias": "fortyGigE0/84", "index": "21", "lanes": "105,106,107,108", "mtu": "9100", "speed": "40000" }, "Ethernet88": { "admin_status": "up", "alias": "fortyGigE0/88", "index": "22", "lanes": "113,114,115,116", "mtu": "9100", "speed": "40000" }, "Ethernet92": { "admin_status": "up", "alias": "fortyGigE0/92", "index": "23", "lanes": "117,118,119,120", "mtu": "9100", "speed": "40000" }, "Ethernet96": { "admin_status": "up", "alias": "fortyGigE0/96", "index": "24", "lanes": "125,126,127,128", "mtu": "9100", "speed": "40000" }, "Ethernet100": { "admin_status": "up", "alias": "fortyGigE0/100", "index": "25", "lanes": "121,122,123,124", "mtu": "9100", "speed": "40000" }, "Ethernet104": { "admin_status": "up", "alias": "fortyGigE0/104", "index": "26", "lanes": "81,82,83,84", "mtu": "9100", "speed": "40000" }, "Ethernet108": { "admin_status": "up", "alias": "fortyGigE0/108", "index": "27", "lanes": "85,86,87,88", "mtu": "9100", "speed": "40000" }, "Ethernet112": { "admin_status": "up", "alias": "fortyGigE0/112", "index": "28", "lanes": "93,94,95,96", "mtu": "9100", "speed": "40000" }, "Ethernet116": { "admin_status": "up", "alias": "fortyGigE0/116", "index": "29", "lanes": "89,90,91,92", "mtu": "9100", "speed": "40000" }, "Ethernet120": { "admin_status": "up", "alias": "fortyGigE0/120", "index": "30", "lanes": "101,102,103,104", "mtu": "9100", "speed": "40000" }, "Ethernet124": { "admin_status": "up", "alias": "fortyGigE0/124", "index": "31", "lanes": "97,98,99,100", "mtu": "9100", "speed": "40000" } }, "TELEMETRY": { "gnmi": { "port": "8080" } }, "VLAN": { "Vlan1001": { "members": [ "Ethernet8" ], "vlanid": "1001" } }, "VLAN_MEMBER": { "Vlan1001|Ethernet8": { "tagging_mode": "untagged" } } }
- Spine1
{ "BGP_NEIGHBOR": { "10.1.1.2": { "asn": "65110", "holdtime": "180", "keepalive": "60", "local_addr": "10.1.1.1", "name": "Leaf1", "nhopself": 0, "rrclient": 0 }, "10.1.2.2": { "asn": "65120", "holdtime": "180", "keepalive": "60", "local_addr": "10.1.2.1", "name": "Leaf2", "nhopself": 0, "rrclient": 0 } }, "DEVICE_METADATA": { "localhost": { "bgp_asn": "65100", "hostname": "Spine1", "hwsku": "Force10-S6000", "mac": "52:54:00:12:34:03", "platform": "x86_64-kvm_x86_64-r0", "type": "LeafRouter" } }, "DEVICE_NEIGHBOR": {}, "INTERFACE": { "Ethernet0|10.1.1.1/24": {}, "Ethernet4|10.1.2.1/24": {} }, "LOOPBACK_INTERFACE": { "Loopback0|1.1.1.1/32": {} }, "PORT": { "Ethernet0": { "admin_status": "up", "alias": "fortyGigE0/0", "index": "0", "lanes": "25,26,27,28", "mtu": "9100", "speed": "40000" }, "Ethernet4": { "admin_status": "up", "alias": "fortyGigE0/4", "index": "1", "lanes": "29,30,31,32", "mtu": "9100", "speed": "40000" }, "Ethernet8": { "admin_status": "up", "alias": "fortyGigE0/8", "index": "2", "lanes": "33,34,35,36", "mtu": "9100", "speed": "40000" }, "Ethernet12": { "admin_status": "up", "alias": "fortyGigE0/12", "index": "3", "lanes": "37,38,39,40", "mtu": "9100", "speed": "40000" }, "Ethernet16": { "admin_status": "up", "alias": "fortyGigE0/16", "index": "4", "lanes": "45,46,47,48", "mtu": "9100", "speed": "40000" }, "Ethernet20": { "admin_status": "up", "alias": "fortyGigE0/20", "index": "5", "lanes": "41,42,43,44", "mtu": "9100", "speed": "40000" }, "Ethernet24": { "admin_status": "up", "alias": "fortyGigE0/24", "index": "6", "lanes": "1,2,3,4", "mtu": "9100", "speed": "40000" }, "Ethernet28": { "admin_status": "up", "alias": "fortyGigE0/28", "index": "7", "lanes": "5,6,7,8", "mtu": "9100", "speed": "40000" }, "Ethernet32": { "admin_status": "up", "alias": "fortyGigE0/32", "index": "8", "lanes": "13,14,15,16", "mtu": "9100", "speed": "40000" }, "Ethernet36": { "admin_status": "up", "alias": "fortyGigE0/36", "index": "9", "lanes": "9,10,11,12", "mtu": "9100", "speed": "40000" }, "Ethernet40": { "admin_status": "up", "alias": "fortyGigE0/40", "index": "10", "lanes": "17,18,19,20", "mtu": "9100", "speed": "40000" }, "Ethernet44": { "admin_status": "up", "alias": "fortyGigE0/44", "index": "11", "lanes": "21,22,23,24", "mtu": "9100", "speed": "40000" }, "Ethernet48": { "admin_status": "up", "alias": "fortyGigE0/48", "index": "12", "lanes": "53,54,55,56", "mtu": "9100", "speed": "40000" }, "Ethernet52": { "admin_status": "up", "alias": "fortyGigE0/52", "index": "13", "lanes": "49,50,51,52", "mtu": "9100", "speed": "40000" }, "Ethernet56": { "admin_status": "up", "alias": "fortyGigE0/56", "index": "14", "lanes": "57,58,59,60", "mtu": "9100", "speed": "40000" }, "Ethernet60": { "admin_status": "up", "alias": "fortyGigE0/60", "index": "15", "lanes": "61,62,63,64", "mtu": "9100", "speed": "40000" }, "Ethernet64": { "admin_status": "up", "alias": "fortyGigE0/64", "index": "16", "lanes": "69,70,71,72", "mtu": "9100", "speed": "40000" }, "Ethernet68": { "admin_status": "up", "alias": "fortyGigE0/68", "index": "17", "lanes": "65,66,67,68", "mtu": "9100", "speed": "40000" }, "Ethernet72": { "admin_status": "up", "alias": "fortyGigE0/72", "index": "18", "lanes": "73,74,75,76", "mtu": "9100", "speed": "40000" }, "Ethernet76": { "admin_status": "up", "alias": "fortyGigE0/76", "index": "19", "lanes": "77,78,79,80", "mtu": "9100", "speed": "40000" }, "Ethernet80": { "admin_status": "up", "alias": "fortyGigE0/80", "index": "20", "lanes": "109,110,111,112", "mtu": "9100", "speed": "40000" }, "Ethernet84": { "admin_status": "up", "alias": "fortyGigE0/84", "index": "21", "lanes": "105,106,107,108", "mtu": "9100", "speed": "40000" }, "Ethernet88": { "admin_status": "up", "alias": "fortyGigE0/88", "index": "22", "lanes": "113,114,115,116", "mtu": "9100", "speed": "40000" }, "Ethernet92": { "admin_status": "up", "alias": "fortyGigE0/92", "index": "23", "lanes": "117,118,119,120", "mtu": "9100", "speed": "40000" }, "Ethernet96": { "admin_status": "up", "alias": "fortyGigE0/96", "index": "24", "lanes": "125,126,127,128", "mtu": "9100", "speed": "40000" }, "Ethernet100": { "admin_status": "up", "alias": "fortyGigE0/100", "index": "25", "lanes": "121,122,123,124", "mtu": "9100", "speed": "40000" }, "Ethernet104": { "admin_status": "up", "alias": "fortyGigE0/104", "index": "26", "lanes": "81,82,83,84", "mtu": "9100", "speed": "40000" }, "Ethernet108": { "admin_status": "up", "alias": "fortyGigE0/108", "index": "27", "lanes": "85,86,87,88", "mtu": "9100", "speed": "40000" }, "Ethernet112": { "admin_status": "up", "alias": "fortyGigE0/112", "index": "28", "lanes": "93,94,95,96", "mtu": "9100", "speed": "40000" }, "Ethernet116": { "admin_status": "up", "alias": "fortyGigE0/116", "index": "29", "lanes": "89,90,91,92", "mtu": "9100", "speed": "40000" }, "Ethernet120": { "admin_status": "up", "alias": "fortyGigE0/120", "index": "30", "lanes": "101,102,103,104", "mtu": "9100", "speed": "40000" }, "Ethernet124": { "admin_status": "up", "alias": "fortyGigE0/124", "index": "31", "lanes": "97,98,99,100", "mtu": "9100", "speed": "40000" } } }
- Spine2
{ "BGP_NEIGHBOR": { "10.2.1.2": { "asn": "65110", "holdtime": "180", "keepalive": "60", "local_addr": "10.2.1.1", "name": "Leaf1", "nhopself": 0, "rrclient": 0 }, "10.2.2.2": { "asn": "65120", "holdtime": "180", "keepalive": "60", "local_addr": "10.2.2.1", "name": "Leaf2", "nhopself": 0, "rrclient": 0 } }, "DEVICE_METADATA": { "localhost": { "bgp_asn": "65100", "hostname": "Spine2", "hwsku": "Force10-S6000", "mac": "52:54:00:12:34:04", "platform": "x86_64-kvm_x86_64-r0", "type": "LeafRouter" } }, "DEVICE_NEIGHBOR": {}, "INTERFACE": { "Ethernet0|10.2.1.1/24": {}, "Ethernet4|10.2.2.1/24": {} }, "LOOPBACK_INTERFACE": { "Loopback0|2.2.2.2/32": {} }, "PORT": { "Ethernet0": { "admin_status": "up", "alias": "fortyGigE0/0", "index": "0", "lanes": "25,26,27,28", "mtu": "9100", "speed": "40000" }, "Ethernet4": { "admin_status": "up", "alias": "fortyGigE0/4", "index": "1", "lanes": "29,30,31,32", "mtu": "9100", "speed": "40000" }, "Ethernet8": { "admin_status": "up", "alias": "fortyGigE0/8", "index": "2", "lanes": "33,34,35,36", "mtu": "9100", "speed": "40000" }, "Ethernet12": { "admin_status": "up", "alias": "fortyGigE0/12", "index": "3", "lanes": "37,38,39,40", "mtu": "9100", "speed": "40000" }, "Ethernet16": { "admin_status": "up", "alias": "fortyGigE0/16", "index": "4", "lanes": "45,46,47,48", "mtu": "9100", "speed": "40000" }, "Ethernet20": { "admin_status": "up", "alias": "fortyGigE0/20", "index": "5", "lanes": "41,42,43,44", "mtu": "9100", "speed": "40000" }, "Ethernet24": { "admin_status": "up", "alias": "fortyGigE0/24", "index": "6", "lanes": "1,2,3,4", "mtu": "9100", "speed": "40000" }, "Ethernet28": { "admin_status": "up", "alias": "fortyGigE0/28", "index": "7", "lanes": "5,6,7,8", "mtu": "9100", "speed": "40000" }, "Ethernet32": { "admin_status": "up", "alias": "fortyGigE0/32", "index": "8", "lanes": "13,14,15,16", "mtu": "9100", "speed": "40000" }, "Ethernet36": { "admin_status": "up", "alias": "fortyGigE0/36", "index": "9", "lanes": "9,10,11,12", "mtu": "9100", "speed": "40000" }, "Ethernet40": { "admin_status": "up", "alias": "fortyGigE0/40", "index": "10", "lanes": "17,18,19,20", "mtu": "9100", "speed": "40000" }, "Ethernet44": { "admin_status": "up", "alias": "fortyGigE0/44", "index": "11", "lanes": "21,22,23,24", "mtu": "9100", "speed": "40000" }, "Ethernet48": { "admin_status": "up", "alias": "fortyGigE0/48", "index": "12", "lanes": "53,54,55,56", "mtu": "9100", "speed": "40000" }, "Ethernet52": { "admin_status": "up", "alias": "fortyGigE0/52", "index": "13", "lanes": "49,50,51,52", "mtu": "9100", "speed": "40000" }, "Ethernet56": { "admin_status": "up", "alias": "fortyGigE0/56", "index": "14", "lanes": "57,58,59,60", "mtu": "9100", "speed": "40000" }, "Ethernet60": { "admin_status": "up", "alias": "fortyGigE0/60", "index": "15", "lanes": "61,62,63,64", "mtu": "9100", "speed": "40000" }, "Ethernet64": { "admin_status": "up", "alias": "fortyGigE0/64", "index": "16", "lanes": "69,70,71,72", "mtu": "9100", "speed": "40000" }, "Ethernet68": { "admin_status": "up", "alias": "fortyGigE0/68", "index": "17", "lanes": "65,66,67,68", "mtu": "9100", "speed": "40000" }, "Ethernet72": { "admin_status": "up", "alias": "fortyGigE0/72", "index": "18", "lanes": "73,74,75,76", "mtu": "9100", "speed": "40000" }, "Ethernet76": { "admin_status": "up", "alias": "fortyGigE0/76", "index": "19", "lanes": "77,78,79,80", "mtu": "9100", "speed": "40000" }, "Ethernet80": { "admin_status": "up", "alias": "fortyGigE0/80", "index": "20", "lanes": "109,110,111,112", "mtu": "9100", "speed": "40000" }, "Ethernet84": { "admin_status": "up", "alias": "fortyGigE0/84", "index": "21", "lanes": "105,106,107,108", "mtu": "9100", "speed": "40000" }, "Ethernet88": { "admin_status": "up", "alias": "fortyGigE0/88", "index": "22", "lanes": "113,114,115,116", "mtu": "9100", "speed": "40000" }, "Ethernet92": { "admin_status": "up", "alias": "fortyGigE0/92", "index": "23", "lanes": "117,118,119,120", "mtu": "9100", "speed": "40000" }, "Ethernet96": { "admin_status": "up", "alias": "fortyGigE0/96", "index": "24", "lanes": "125,126,127,128", "mtu": "9100", "speed": "40000" }, "Ethernet100": { "admin_status": "up", "alias": "fortyGigE0/100", "index": "25", "lanes": "121,122,123,124", "mtu": "9100", "speed": "40000" }, "Ethernet104": { "admin_status": "up", "alias": "fortyGigE0/104", "index": "26", "lanes": "81,82,83,84", "mtu": "9100", "speed": "40000" }, "Ethernet108": { "admin_status": "up", "alias": "fortyGigE0/108", "index": "27", "lanes": "85,86,87,88", "mtu": "9100", "speed": "40000" }, "Ethernet112": { "admin_status": "up", "alias": "fortyGigE0/112", "index": "28", "lanes": "93,94,95,96", "mtu": "9100", "speed": "40000" }, "Ethernet116": { "admin_status": "up", "alias": "fortyGigE0/116", "index": "29", "lanes": "89,90,91,92", "mtu": "9100", "speed": "40000" }, "Ethernet120": { "admin_status": "up", "alias": "fortyGigE0/120", "index": "30", "lanes": "101,102,103,104", "mtu": "9100", "speed": "40000" }, "Ethernet124": { "admin_status": "up", "alias": "fortyGigE0/124", "index": "31", "lanes": "97,98,99,100", "mtu": "9100", "speed": "40000" } } }