SONiCで業界標準コマンドを試してみた~Edgecore-SONiC編~

はじめに
これまで、OpenNetworking Blogでは、Edgecore-SONiC (以下ecSONiC)を中心に、ホワイトボックススイッチやSONiCについて触れてきました。
これらが浸透していく中で、様々なお客様から、業界標準のコマンド体系に対応してほしいというお声を頂くことが増えてきました。
ecSONiCでは、昨年末リリースのバージョン「ec202111.10」で業界標準コマンド体系のCLIを新たにサポートしました。
そこで本記事では、このCLIでスイッチに対する基本設定ができるかどうか、実機で試してみた結果について触れていきます。
Edgecore-SONiC業界標準コマンド体系「isCLI」
ecSONiCでは、業界標準コマンド体系のモードを「isCLI(Cisco Like CLI)」(他ベンダでは SONIC CLI等)と呼んでいます。
isCLI実装機能
ec202111.10時点で、isCLIで実装されている機能は以下の通りです。
・System Status、File Mgmt、Event Logs、Time、
・ACL、Interface、Port Channel、MCLAG、Port Mirror、
・FDB、VLAN、EVPN/VxLAN、Priority、WRED&ECN、Buffer、PFC、LLDP、
・IPv4 & IPv6、ARP、Routing、BGP、VRF、SAG
isCLIモードへの遷移
ecSONiCにログイン後、「sonic-cli」コマンドでisCLIへモード遷移します。
admin@sonic:~$ sonic-cli
sonic# configure terminal
確認結果
今回は、VlanやIPアドレス割り当て、LAG、Routingなどの基本的な機能の設定可否について確認しました。
確認した各設定項目のサマリーです。
設定内容 |
結果 |
VLAN+IPアドレス+ポートアサイン (Access Port、Trunk Port) | 設定可能 |
Routed portに対するIPアドレス設定 | 設定可能 |
LAG | LACPのみ設定可能 |
Static Routing | 設定可能 |
管理系機能:HostName、NTP、SNMP | NTPサーバの指定のみ可能 |
VLAN設定 + IPアドレス設定
Vlan及びIPアドレスは、以下で設定しました。
sonic# configure terminal
### VLANの作成 sonic(config)# vlan database sonic(config-vlan)# vlan 10 sonic(config-vlan)# vlan 11 sonic(config-vlan)# vlan 12 sonic(config-vlan)# exit
### VLANに対するIPアドレス設定 sonic(config)# interface vlan 10 sonic(config-if-Vlan10)# ip address 1.1.1.1 255.255.255.0 sonic(config-if-Vlan10)# exit
sonic(config)# interface vlan 11 sonic(config-if-Vlan11)# ip address 2.2.2.1 255.255.255.0 sonic(config-if-Vlan11)# exit
sonic(config)# interface vlan 12 sonic(config-if-Vlan12)# ip address 3.3.3.1 255.255.255.0 sonic(config-if-Vlan12)# end
設定したVlan及びIPアドレスは、以下で確認しました。
### VLAN・IPアドレス設定結果確認 sonic# show vlan brief +-----------+--------------+---------+-----------+----------+---------------+---------------+----------------------------+ | VLAN ID | IP Address | Ports | Port | Proxy | Description | DHCP Helper | DHCP Relay Configuration | | | | | Tagging | ARP | | Address | | +===========+==============+=========+===========+==========+===============+===============+============================+ | 10 | 1.1.1.1/24 | | | disabled | | | Source Interface: | | | | | | | | | Link Selection: | | | | | | | | | Server Vrf: | | | | | | | | | Server ID Override: | | | | | | | | | Primary Address: | | | | | | | | | Max Packet Size: | +-----------+--------------+---------+-----------+----------+---------------+---------------+----------------------------+ | 11 | 2.2.2.1/24 | | | disabled | | | Source Interface: | | | | | | | | | Link Selection: | | | | | | | | | Server Vrf: | | | | | | | | | Server ID Override: | | | | | | | | | Primary Address: | | | | | | | | | Max Packet Size: | +-----------+--------------+---------+-----------+----------+---------------+---------------+----------------------------+ | 12 | 3.3.3.1/24 | | | disabled | | | Source Interface: | | | | | | | | | Link Selection: | | | | | | | | | Server Vrf: | | | | | | | | | Server ID Override: | | | | | | | | | Primary Address: | | | | | | | | | Max Packet Size: | +-----------+--------------+---------+-----------+----------+---------------+---------------+----------------------------+
作成したVLANに対し、以下の通りAccess Port、Trunk Portでポートアサインの設定を投入しました。
sonic# configure terminal
### VLANのポートアサイン (Access Port) sonic(config)# interface Ethernet 0 sonic(conf-if-Ethernet0)# switchport allowed vlan add 10 untagged sonic(conf-if-Ethernet0)# exit
### VLANのポートアサイン (Trunk Port) sonic(config)# interface Ethernet 1 sonic(conf-if-Ethernet1)# switchport allowed vlan add 11-12 tagged sonic(conf-if-Ethernet1)# end
VLANのポートアサイン結果は、以下のように確認しました。
### VLANのポートアサイン結果確認 sonic# show vlan brief +-----------+--------------+-----------+-----------+----------+---------------+---------------+----------------------------+ | VLAN ID | IP Address | Ports | Port | Proxy | Description | DHCP Helper | DHCP Relay Configuration | | | | | Tagging | ARP | | Address | | +===========+==============+===========+===========+==========+===============+===============+============================+ | 10 | 1.1.1.1/24 | Ethernet0 | untagged | disabled | | | Source Interface: | | | | | | | | | Link Selection: | | | | | | | | | Server Vrf: | | | | | | | | | Server ID Override: | | | | | | | | | Primary Address: | | | | | | | | | Max Packet Size: | +-----------+--------------+-----------+-----------+----------+---------------+---------------+----------------------------+ | 11 | 2.2.2.1/24 | Ethernet1 | tagged | disabled | | | Source Interface: | | | | | | | | | Link Selection: | | | | | | | | | Server Vrf: | | | | | | | | | Server ID Override: | | | | | | | | | Primary Address: | | | | | | | | | Max Packet Size: | +-----------+--------------+-----------+-----------+----------+---------------+---------------+----------------------------+ | 12 | 3.3.3.1/24 | Ethernet1 | tagged | disabled | | | Source Interface: | | | | | | | | | Link Selection: | | | | | | | | | Server Vrf: | | | | | | | | | Server ID Override: | | | | | | | | | Primary Address: | | | | | | | | | Max Packet Size: | +-----------+--------------+-----------+-----------+----------+---------------+---------------+----------------------------+
Routed Portに対するIPアドレス設定
Routed Portに対するIPアドレスは、以下のように設定しました。
sonic# configure terminal ### Routed Portに対するIPアドレス設定 sonic(config)# interface Ethernet 0 sonic(conf-if-Ethernet0)# ip address 1.1.1.1/24 sonic(conf-if-Ethernet0)# end
### IPアドレス設定確認 sonic# show ip interface Ethernet 0 Interface Master IPv4 address/mask Admin/Oper BGP Neighbor Neighbor IP ----------- -------- ------------------- ------------ -------------- ------------- Ethernet0 1.1.1.1/24 up/down N/A N/A sonic#
LAG
LAGは、LACP設定のみ可能でした。
LACPは以下のように設定しました。
sonic# configure terminal
### ※VLAN設定は割愛
### LACPインターフェースの作成・設定投入 sonic(config)# interface PortChannel 1 sonic(conf-if-PortChannel1)# switchport allowed vlan add 100 untagged sonic(conf-if-PortChannel1)# exit
sonic(config)# interface PortChannel 2 sonic(conf-if-PortChannel2)# switchport allowed vlan add 200 tagged sonic(conf-if-PortChannel2)# exit
### LACPメンバーポートの設定 sonic(config)# interface Ethernet0 sonic(conf-if-Ethernet0)# lacp 1 sonic(conf-if-Ethernet0)# exit
sonic(config)# interface Ethernet1 sonic(conf-if-Ethernet1)# lacp 2 sonic(conf-if-Ethernet1)# exit sonic(config)# exit
### LACP設定結果確認 sonic# show PortChannel Port Channel : PortChannel1 MTU : 9100 Member Port : Ethernet0
Port Channel : PortChannel2 MTU : 9100 Member Port : Ethernet1
Static Routing
Static Routingは、以下のように設定しました。
### Static Routeの設定 sonic(config)# ip route 192.168.10.0 255.255.255.0 192.168.0.2
### Static Route 設定後のルート確認 sonic(config)# 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, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure K>* 0.0.0.0/0 [0/0] via 192.168.0.1, eth0, 21:01:30 C>* 192.168.0.0/24 is directly connected, eth0, 21:01:30 S>* 192.168.10.0/24 [1/0] via 192.168.0.2, eth0, weight 1, 00:00:30
### Static Routeの削除 sonic(config)# no ip route 192.168.10.0 255.255.255.0
### Static Routeの削除結果確認 sonic(config)# 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, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure K>* 0.0.0.0/0 [0/0] via 192.168.0.1, eth0, 21:04:23 C>* 192.168.0.0/24 is directly connected, eth0, 21:04:23 sonic(config)#
管理系機能:HostName、NTP、SNMP
HostName、NTP、SNMPのうち、現在のecSONiCではNTPのみサポートされています。
HostNameは下記のように設定したところ、エラーとなりました。
sonic# configure terminal sonic(config)# hostname hoge ^ % Error: Invalid input detected at "^" marker. sonic(config)#
NTPは下記のように設定しました。
sonic(config)# ntp server 1.1.1.1
sonic(config)# end
sonic# show ntp server
NTP Server 1.1.1.1
sonic#
SNMPは下記のように設定したところ、エラーとなりました。
sonic(config)# snmp-server ^ % Error: Invalid input detected at "^" marker. sonic(config)#
所感と今後
今回、ecSONiCでisCLIを使用し、VLANやIPアドレス、Static Routingなど、基本的な機能を設定することができました。
ecSONiCでは、2025年5月リリースの「ec202111.11」でも、isCLIで設定可能な機能も拡充されています。
これにより、業界標準コマンド体系のネットワーク機器を触れてきたエンジニアの皆様にも、SONiC利用のハードルが下がってくると考えています。
まとめ
今回はecSONiCの業界標準体型のコマンド「isCLI」を使用して、基本的な機能の設定可否を確認しました。
独特なコマンド体系によりSONiCを敬遠している方も、ぜひ一度触れてみてはいかがでしょうか?
関連する情報
資料一覧はこちら
マクニカが取り扱う製品のご紹介のほか、
BGPクロスネットワーク自動構築ファイルやネットワーク運用試験評価レポートなど、オープンネットワーキングに関する資料を掲載しております。
詳細はこちら
製品ページTopへ
IP Infusion
オープンネットワーキングプロバイダのマーケットリーダーとして、キャリア、サービスプロバイダ、データセンターなど600社以上のお客様に信頼性の高いネットワークソリューションを提供しています。
お問い合わせ・資料請求
株式会社マクニカ Edgecore Networks 担当
- TEL:045-470-9831
- E-mail:projectmonstar@macnica.co.jp
平日 9:00~17:00