定期的にアップしてきました Open Networking (オープンネットワーキング) についての記事も今回で第6回目となります。
本記事では、Edgecore SONiC (ecSONiC) と Cumulus Linux を対象にしたホワイトボックススイッチの相互運用性試験についてご紹介します。

ホワイトボックススイッチの相互運用性試験とは?

ホワイトボックススイッチはハードウェアとソフトウェアが分離されており、ハードウェアが同じでも異なるネットワーク 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よりダウンロードができます。

最後に

マクニカではオープンネットワーキングを実際に体験し、試験や検証を行える環境をリモートで提供するサービスのご用意があります。基本構成での検証では無償でご利用可能です。今回ご紹介をした相互運用性試験の環境もご用意することができますので、より詳細は以下に記載がございますのでもしご興味がありましたらご覧ください。

 

お問い合わせ

本記事に関してご質問などありましたら、以下「お問い合わせはこちら」よりお願いします。

他のOpen Networking記事

以下「Open Networking Blog 記事一覧」より、Open Networking に関わる他の記事をご覧いただけます。

Open Networking Blogとは?

さまざまなOpen Networking(オープンネットワーキング)に関わるトピックを分かりやすく説明している技術情報ページです。