ホワイトボックススイッチの相互運用性試験 ~Edgecore SONiC x Cumulus Linux~

はじめに
定期的にアップしてきました Open Networking (オープンネットワーキング) についての記事も今回で第6回目となります。
本記事では、Edgecore SONiC (ecSONiC) と Cumulus Linux を対象にしたホワイトボックススイッチの相互運用性試験についてご紹介します。
他にもOpen Networkingに関わる記事がありますので、以下「記事一覧はこちら」からご興味のある記事をご覧ください。
ホワイトボックススイッチの相互運用性試験とは?
ホワイトボックススイッチはハードウェアとソフトウェアが分離されており、ハードウェアが同じでも異なるネットワーク OS を搭載して運用が可能です。
今回は複数のホワイトボックススイッチに異なるネットワーク OS を搭載して、装置間で特定機能の相互運用性を検証しました。
相互運用性試験の概要
データセンターのネットワークにおいて、ecSONiC と Cumulus Linux を搭載した複数の装置が混在環境で稼動する事を想定して検証を実施しました。
今回検証を行なったネットワーク機能と各機能の簡単な説明を下記に記載します。データセンターのネットワークでよく使用されるメジャーな機能をいくつか選定しました。
LACP:複数の物理ポートを束ねてスイッチ間の帯域幅拡大や負荷分散、リンクの冗長性を高める機能
BGP:AS間で経路情報をやり取りするためのルーティングプロトコル
VxLAN:L3ネットワーク上に仮想的なL2ネットワークを構築するトンネリングプロトコル
試験環境
試験環境で使用したホワイトボックススイッチの情報を下記に記載します。

図1:検証装置一覧
Edgecore 社の AS7326-32X と Delta 社の AG9032 V2 を評価機として使用し、Edgecore 社の AS7726-32X は VxLAN の試験環境で中継器として使用しました。
試験内容
機能毎の試験構成図、装置設定および試験結果を記載します。
LACP
本試験では、ecSONiC と Cumulus Linux 搭載の装置をそれぞれ1台使用して、装置間を2本のケーブルで接続しています。

図2:LACP 試験構成図
次に、LACP 用の仮想インターフェース (PortChannel) を各装置で作成し、物理インターフェースにマッピングさせます。以下に ecSONiC 側の設定例を記載します。
〇PortChannel 作成
AS7326-32X@sonic:~$ sudo config portchannel add PortChannel01
〇PortChannelに物理インターフェースをマッピング
AS7326-32X@sonic:~$ sudo config portchannel member add PortChannel01 Ethernet56
AS7326-32X@sonic:~$ sudo config portchannel member add PortChannel01 Ethernet60
全ての設定を終えた後、各装置で下記の内容を確認しました。
・Host 間の疎通中に片方のケーブルを切断した際、継続して疎通ができること
・パケットキャプチャツールを使用し、装置間で LACP のコントロールフレーム (LACPDU) が送受信されていること
・CLI コマンドを使用し、LACP プロトコルがアクティブになっていること
ecSONiC 側の LACPプロトコル状態は、以下のコマンドで確認を実施しました。黄色のマーク部分で示した通り、PortChannel01 で LACP がアクティブになっていることが分かります。

図3:LACP コマンド実行結果
BGP (iBGP & eBGP)
本試験では、ecSONiC と Cumulus Linux 搭載の装置をそれぞれ1台使用して、各装置のループバックインターフェースにIPアドレスを設定します。
また、iBGP の試験では同一のAS番号、eBGP の試験では異なる AS番号をそれぞれ設定し、ECMP との機能併用も確認するために各装置間は2本のケーブルで接続しています。

図4:iBGP 試験構成図

図5:eBGP 試験構成図
各試験では、まず初めに BGP で使用するループバックインターフェースを作成し、VTY シェルという統合ターミナルを起動して BGP 関連の設定をします。
ループバックインターフェースの作成は、BGP Unnumbered と呼ばれる IPv6 リンクローカルアドレスを使用した自動的な BGP ピアを行うために設定をしています。以下に ecSONiC 側の設定例を記載します。
〇LoopBack0 の設定例
AS7326-32X@sonic:~$ sudo config interface ip add Loopback0 1.1.1.1/32 /*Loopback0 作成*/
AS7326-32X@sonic:~$ vtysh /* VTY シェル起動 */
sonic# configure terminal
sonic(config)# router bgp 65001 /* AS番号指定 */
sonic(config-router)# bgp router-id 1.1.1.1 /* Loopback0 アドレス指定 */
sonic(config-router)# neighbor Ethernet56 interface remote-as internal /* neighbor 指定(iBGP) */
全ての設定を終えた後、各装置で下記の内容を確認しました。
・BGP ルーティングにより、Host 間の疎通が正常に通ること
・パケットキャプチャツールを使用し、BGP セッションが正常に確立されていること
・CLI コマンドを使用し、マルチパス (ECMP) が設定されていること
ecSONiC 側のマルチパス設定は、以下のコマンドで確認を実施しました。黄色のマーク部分で示した通り、192.168.2.0/24 の宛先ルートに対してはネクストホップがマルチパスで設定されていることが分かります。

図6:BGP コマンド実行結果
VxLAN
本試験では、Asymmetric ルーティングを想定して、ecSONiC と Cumulus Linux 搭載の装置を評価機として Leaf にそれぞれ1台、Spine には中継装置としての用途でもう1台 Cumulus Linux を搭載の装置を配置しています。
各 Leaf 装置にはデータプレーン用の VTEP およびコントロールプレーン用の EVPN を作成し、Spine 装置には EVPN の設定をします。

図7:VxLAN 試験構成図
まずは、VxLAN を使用するために VTEP および NVO を作成し、VTEP に VLAN ID とVNI をマッピングします。以下に Leaf1 (ecSONiC) 装置の設定例を記載します。
AS7326-32X@sonic:~$ sudo config vxlan add evpn 1.1.1.1 /* VTEP 作成 */
AS7326-32X@sonic:~$ sudo config vxlan evpn_nvo add nvo evpn /* VNVO 設定 */
AS7326-32X@sonic:~$ sudo config vxlan map add evpn 2 2000 /* VTEP に VLAN ID と VNI を関連付け */
次に、VTY シェルを起動して VxLAN や EVPN 関連の設定をします。
AS7326-32X@sonic:~$ vtysh
sonic# configure terminal
sonic(config)# router bgp 65001
sonic(config-router)# bgp router-id 1.1.1.1
sonic(config-router)# neighbor Ethernet52 interface remote-as external
sonic(config-router)# address-family ipv4 unicast
sonic(config-router)# network 1.1.1.1/32
sonic(config-router)# network 192.168.2.0/24
sonic(config-router)# exit
sonic(config)# address-family l2vpn evpn
sonic(config-router-af)# neighbor Ethernet52 activate
sonic(config-router-af)# advertise-all-vni
全ての設定を終えた後、各 Leaf 装置で下記の内容を確認しました。
・VxLAN ルーティングにより、Host 間で疎通が正常に通ること
・CLIコマンドを使用し、VTEP に設定した内容が正しく表示されること
・CLIコマンドを使用し、Leaf 装置間で VxLAN が相互認識されること
Leaf1 (ecSONiC) 装置の VxLAN 状態は、以下のコマンドで確認を実施しました。OperStatus の状態から Leaf 装置間で VxLAN が相互認識されていることが分かります。

図8:VxLAN コマンド実行結果
以上が弊社で検証を行なった ecSONiC と Cumulus Linux を対象にした相互運用性試験のご紹介になります。
資料ダウンロードフォーム
本記事でご紹介した相互運用性試験のテスト仕様書は、以下「資料ダウンロードはこちら」よりアンケートにご回答いただきますと、資料ダウンロードのご案内メールに記載されている URL よりダウンロードできます。今回の評価対象機能における ecSONiC と Cumulus Linux 相互運用の動作性について、より詳細をご確認いただけます。
最後に
マクニカではオープンネットワーキングを実際に体験し、試験や検証をおこなえる環境をリモートで提供するサービスのご用意があります。
本サービスでは、ネットワークOSの操作性の検証、様々なメーカーのネットワークOSやホワイトボックススイッチ、光トランシーバーを組み合わせた試験をおこなえます。

リモート検証サービス イメージ図
気軽にオープンネットワーキングの検証をおこなえるサービスとなっており、基本構成での利用は無償になっています。
ご利用可能なネットワークOSやホワイトボックススイッチについて、具体的なユースケース、またお申し込み方法はダウンロード資料よりご確認いただけます。資料は下記「マクニカ ネットワークOS リモート検証サービス」よりアンケートにご回答いただきますとご案内メールに記載されているURLよりダウンロードができます。
こんな方がリモート検証サービスを利用しています。

実際に利用いただいた方の声をご紹介します。
古河ネットワークソリューション株式会社 様
「昨今リモートのサービス環境が増えていますが、その中でも評価機材へのアクセス性が良く好印象でした。
ご提供頂いた資料も分かり易く、目的とした検証を円滑に進めることができました。」
関連する情報
資料一覧はこちら
マクニカが取り扱う製品のご紹介のほか、
BGPクロスネットワーク自動構築ファイルやネットワーク運用試験評価レポートなど、オープンネットワーキングに関する資料を掲載しております。
詳細はこちら
製品ページTopへ
IP Infusion
オープンネットワーキングプロバイダのマーケットリーダーとして、キャリア、サービスプロバイダ、データセンターなど600社以上のお客様に信頼性の高いネットワークソリューションを提供しています。
お問い合わせ・資料請求
株式会社マクニカ Edgecore Networks 担当
- TEL:045-470-9831
- E-mail:projectmonstar@macnica.co.jp
平日 9:00~17:00