Interop 2023のShowNetバックボーン詳解

2023/6/15-2

Interop Tokyo 2023のShowNetバックボーンに関して、ShowNet NOCの中村遼さんからの寄稿を頂きました。 詳細であり、かつ、わかりやすい素晴らしい解説、ありがとうございます!

Interop 2023のShowNetバックボーン

2023年のInterop Tokyo ShowNetにおいて、ルーティングという観点からの見どころはおおきく2つです。

  • SRv6によるバックボーンネットワーク
  • EVPN-VXLANによるユーザ収容ネットワーク

それぞれの技術の概要と、2023年のShowNetのどこでどう使われているか、ShowNet名物の一つ、トポロジー図から見ていきます。

SRv6によるバックボーンネットワーク

Segment Routingは、ネットワーク上のあらゆる要素、たとえばノードやノード同士の隣接関係、そしてサービス等を、Segment Identifer (SID)と呼ばれる識別子で表現し、転送するパケットに「このパケットはどのSIDを通過すべきか」というSIDのリストを埋め込んで転送するSource Routingの仕組みのひとつです。 Segment Routing over IPv6 (SRv6)は、Segment RoutingのSIDとして128bitのIPv6アドレスを用い、パケットをIPv6でカプセル化して転送する技術として、2010年代後半から標準化、そして実装が進んでいます。

SRv6の主なユースケースのひとつは、キャリア等のバックボーンネットワークにおけるVPN(インターネットVPNではなく、ひとつのネットワーク上に顧客ごとに分離された経路表(VRF)を用いて構築されるマルチテナントな仮想ネットワークのこと、L3VPN、L2VPNとも)を構築する際のデータプレーンとして用いることです。

SRv6によるL3VPNでは、ルータは「自身の持つこのSID宛にきたIPv4 in IPv6のパケットは、カプセル化を解いて、中のIPv4パケットをこのVRFで宛先を検索して転送する」という動作をします(仕様としてはEnd.DT4と呼ばれる動作)。 あとは「この宛先IPv4ネットワークへ転送するときは、このSIDでカプセル化して送信する」という動作を組み合わせれば(仕様としてはH.Encapsと呼ばれる動作)、あるルータから別のルータへ、IPv4パケットをIPv6でカプセル化してルータ間、実際にはそれらのルータの配下にいるノード間で転送することができます。

また、IPv4の経路表はVRFとして分離されているので、単一のIPv6バックボーンネットワーク上に分離された複数のIPv4ネットワークを論理的に構築することができます(当然、IPv6パケットをIPv6でカプセル化する動作もあります)。

このように、パケットをover-IPv6で転送するSRv6ですが、「ある宛先へのパケットをどのSIDへ転送するか」という情報はBGPで経路として交換します。 IPネットワークにおける経路とは「宛先」と「Next-hop」の組み合わせです。 SRv6 L3VPNのBGPで交換する経路は、宛先はVRF内における宛先IPv4またはIPv6ネットワークアドレス、Next-hopはSID (128 bitのIPv6アドレス)、となります。

当然ただのBGPでこのような経路を交換することはできないので、新しい経路広告フォーマット(NLRI)が必要です。 これを規定する仕様がRFC 9252であり、2022年7月に発行されました。 2022年7月といえば、去年(2022年)6月のShowNetでフルSRv6バックボーンの構築が行われた後です。 このようにShowNetでは、標準化が進行中、または完了直後の新しい技術も積極的に取り込んで動かし検証する、まさにRunning Codeを動かす場としての役割も負っています。

今年(2023年)のトポロジー図の話にもどりましょう。 図1は2023年のShowNetバックボーンにおけるSRv6の範囲をピックアップしたものです。 赤い丸のアイコンがLayer-3のルータを表しています。


図1: ShowNet 2023のSRv6バックボーン / https://www.interop.jp/2023/shownet/topology.pdfより

上の3台、mx204、ne8000m4-1、acx7100が対外接続としてTransit ASやPeer ASとBGPピアをはっています。 図1下部の2台、mx10004とne8000m4-2はShowNetのユーザである出展社のセグメントを収容しています。 そして左のfx2とkamueeはデータセンタ相当部分の収容、右のncs57b1とacx7509がサービス用サーバネットワークを収容しています。 各ルータが収容するネットワーク、つまり、対外、ユーザ、左右のサーバ群の間のトラフィッ クは、すべてSRv6で(つまりIPv6で)カプセル化されて転送されました。

SRv6はIPv6ですべてのトラフィックを転送します。 IPv6には、Link Localアドレスという、機器のインターフェースに自動で付与されるアドレスがあります。 この2つが組み合わさると、なんとバックボーンのリンクにIPアドレスを付与する必要がなくなります。 これはSRv6を利用する利点のひとつです。

IPv4ネットワークでは、ルータ間でパケットを転送するためにルータのインターフェースにIPv4アドレスを付与する必要があります。 2台のルータが1本のリンクで直接接続する場合、大抵は/30のアドレスブロックを切り出してリンクに割り当てることでしょう。 ネットワーク全体では/30がルータ間のリンクの数だけ必要なります。

その結果、運用者はたくさんの細かいIPv4ネットワークの割り当てを管理することになります。 SRv6によってバックボーンがIPv6シングルスタックになれば、ルータ間のリンクにはLink Localアドレスだけが自動で付与されればよく、あとはIGP (OSPFやISIS)を使って、BGPをはるためのアドレス(大抵はLoopbackにつけた/128のアドレス)を交換するだけです(実際にShowNetで構築してみて、IPv6 Link Localのみのunderlayは作るのがとても楽でした。 個人的にはSRv6のこの点はとても気に入っています)。

また2023年のSRv6バックボーンでは、VRFを使わないSRv6の活用にもチャレンジしました。 冒頭、SRv6のユースケースのひとつはVPNである、と書きました。 一方ネットワークによってはVPN、VRFを利用してネットワークを仮想的に分離する必要はないが、オーバーレイの利点(バックボーンのシングルスタック化やアドレスフリー、他にもコアルータの経路数の削減、VRFでは動作しない機能の利用など)を享受したい場合もあります。

VPN無しでSRv6を使うには、BGPで交換されるNext-hopがSIDな経路を、VRFではないデフォルトの経路表にインストールする必要があります。 さらに踏み込んで言うと、BGPで交換される経路のSAFIが128から1になります。 2023年のShowNetではインターネットと通信するネットワーク面(VRF内に構築されるCGN配下のプライベートアドレス面と比較して、グローバル面や表(おもて)面とShowNetでは呼ばれます)は、最近実装が進んだこの機能を利用してVRF内のVPNではなくルータのデフォルトの経路表で構築されました。

Looking Glassで確認する

ShowNetのLooking Glass (bgp.interop-tokyo.net、ShowNetが存在する3日間だけ利用できます)を使って、実際にデフォルトの経路表にインストールされた経路を見てみると、宛先がSRv6のSIDになっていることがわかります(ここで表示されている経路は、Looking Glass用にたてたコンテナルータのためNext-hopがunusableになっています)。


inet.0: 917099 destinations, 1834194 routes (916664 active, 838429 holddown, 866 hidden)
130.69.0.0/16 (2 entries, 1 announced)
        State: 
        +BGP    Preference: 170/-151
                Next hop type: Unusable, Next hop index: 0
                Address: 0x5639ce9148dc
                Next-hop reference count: 2202742, key opaque handle: (nil), non-key opaque handle: (nil)
                Source: 2001:3e8::12
                State: 
                Local AS:   290 Peer AS:   290
                Age: 10:51:42 	Metric: 0 
                Validation State: valid 
                Task: BGP_290.2001:3e8::12+48625
                AS path: 2907 2501 I  (Originator)
                Aggregator: 2501 133.11.255.160
                Cluster list:  0.0.0.12
                Originator ID: 45.0.0.3
                Communities: large:290:1000:2 large:290:2023:11 large:290:2023:330 large:290:2023:3301 large:45686:1000:2 large:45686:1001:1
                Accepted MultiNexthop RecvNextHopIgnored
                SRv6 SID: 2001:3e8:fa00:3:4:: Service tlv type: 5 Behavior: 19 BL: 40 NL: 24 FL: 16 AL: 0 TL: 0 TO: 0
                Localpref: 150
                Router ID: 45.0.0.12
                Thread: junos-main 
        -BGP    Preference: 170/-151
                Next hop type: Unusable, Next hop index: 0
                Address: 0x5639ce9148dc
                Next-hop reference count: 2202742, key opaque handle: (nil), non-key opaque handle: (nil)
                Source: 2001:3e8::13
                State: 
                Inactive reason: Not Best in its group - Update source
                Local AS:   290 Peer AS:   290
                Age: 10:51:53 	Metric: 0 
                Validation State: valid 
                Task: BGP_290.2001:3e8::13+55185
                Announcement bits (1): 1-KRT MFS 
                AS path: 2907 2501 I  (Originator)
                Aggregator: 2501 133.11.255.160
                Cluster list:  0.0.0.13
                Originator ID: 45.0.0.3
                Communities: large:290:1000:2 large:290:2023:11 large:290:2023:330 large:290:2023:3301 large:45686:1000:2 large:45686:1001:1
                Accepted MultiNexthop RecvNextHopIgnored
                SRv6 SID: 2001:3e8:fa00:3:4:: Service tlv type: 5 Behavior: 19 BL: 40 NL: 24 FL: 16 AL: 0 TL: 0 TO: 0
                Localpref: 150
                Router ID: 45.0.0.13
                Thread: junos-main 

EVPN-VXLANによるユーザ収容ネットワーク

バックボーンネットワークから今度はアクセスネットワークの方に目を向けてみます。 2023年のShowNetでは、ユーザを収容するアクセスネットワークにEVPN-VXLANを用いています。

SRv6によるバックボーンがキャリア向け技術のデモンストレーションである一方、アクセス網へのEVPN-VXLANの適用はエンタープライズ・キャンパスネットワークのユースケースを想定しています。 エンタープライズ・キャンパスのネットワークを物理的な側面から見ると、例えば建物のフロアごとに多数のUTPを収容できるフロアスイッチを設置し、建物内の縦管を通る光ファイバを使ってフロアスイッチを建物の集約スイッチへ接続、集約スイッチは建物間ファイバ を使ってコアへ接続するような構成が多いのではないでしょうか。

同じ箇所をネットワークの論理的な側面から見ると、ユーザを収容するセグメント(往々にしてVLAN)をどうやってフロアスイッチのユーザポートまで伸ばすか、フロアからコアまでの経路でどうように冗長をとるのか、そしてデフォルトゲートウェイの冗長をどうやって確保するのか、といった点がキモになります。

このようなアクセスネットワークにおいてもっとも一般的な技術はVLANですが、Flood-and-LearnなLayer-2では、ループは許容されず冗長経路を作ることができない(STPはありますが色々つらい点が多い)、広大なL2に大量のMACが流れるのは規模性の観点からも厳しいものがある、ホップバイホップにスイッチにVLANを投入する必要があり設定が手間、デフォルトゲートウェイの冗長もVRRP が必要であくまでActive-Standby、など、実際の運用ではなかなか厳しい点が多々あります。

そこで2023年のShowNetでは、VLANを(正確にはスイッチ間に設定されるVLANを)廃し、ShowNetのユーザである出展社さんのブースへ繋がるUTPを収容するスイッチが、ブースから受信したEthernetフレームをVXLANでカプセル化し、IPネットワークごしに出展社収容ルータへ転送する構成を採りました。 VXLANはRFC 7348で標準化されたカプセル化方式で、Ethernetフレームを、IP、UDP、そしてVXLANヘッダでカプセル化して転送します。図2はShowNetのトポロジー図からEVPN-VXLANによる出展社収容に関わる部分をピックアップして示しています。

ブースへのUTPを収容するのはex4100、s5732h、nexus93108tc、catalyst9300の4機種計8台、これらのスイッチは受信したEthernetフレームはVXLANでカプセル化しルータへ送信、また自身が受信したVXLANでカプセル化されたパケットを解いてEthernetフレームとして転送するVTEP(VXLAN Tunnel End Point)として動作しました。 VTEPがカプセル化したIPパケットは、OSPFで経路制御されるLayer-3ネットワーク越しにユーザセグメントのデフォルトゲートウェイとして動作するmx10004またはne8000m4-2へ転送されます。 mx10004とne8000m4-2は、VLXANカプセル化されたパケットを受信するとそのカプセル化を解き(つまりmx10004とne8000m4-2もVTEPです)、インナーのEthernetフレームが属すセグメント(VXLANヘッダに含まれるVirtual Network Identifierと呼ばれる24 bitの識別子で識別されます)に紐づくLayer-3インターフェースで受信され、当て宛先IPアドレスでVRF内の経路にしたがってルーティングされて、宛先に応じて次はSRv6で転送されていきます。


図2: EVPN-VXLANによる出展社収容ネットワーク / https://www.interop.jp/2023/shownet/topology.pdfより

SRv6で「ある宛先へのパケットをどのSIDへ転送するか」をBGPで交換したように、VXLANでEthernetフレームを転送するためには「あるMAC宛のフレームをどのVTEPへ転送するか」をVTEP間で交換する必要があります。 これを実現するのがEthernet VPN (EVPN)と呼ばれるBGPの拡張です。 EVPNには「あるMAC宛のフレームをどのVTEPへ転送するか」を示すType-2 MAC/IP Advertisement Routeの他にも、BUM(Broadcast、Unknown Unicast、Multicast)パケットをどこに転送すべきかを伝えるType-3 Inclusive Multicast Routeなど、いくつかの経路タイプがあります。 EVPNを利用することで、ひとつのセグメントに対してデフォルトゲートウェイとして動作する複数の機器、2023年のShowNetでいえば mx10004とne8000m4-2は、ひとつのユーザセグメント(VXLANセグメント)に同じIPアドレスと同じMACアドレスを持ち、どちらも同時に動作できるActive-Active構成なデフォルトゲートウェイとして冗長性を確保しました。

EVPN、とくにEVPN-VXLANは、仮想環境における仮想マシンへのLayer-2セグメントの接続や、VLANが4094個しか切れないこと対するソリューションとして登場し、標準化、実装が進みました。 そのため当初(EVPN-VXLANのRFC8365が発行されたのが2018年、元になったドラフトは2013年にsubmitされました)はデータセンター向けの高機能かつ高性能な光多ポートスイッチでの実装が主流でした。 これが近年はデータセンター以外、とくにUTP多ポート+光アップリンクのエンタープライズ向けスイッチへも実装が進んだ結果、Layer-2 VPNはキャリアやデータセンター事業者以外でも手の届く技術になりつつあります。 ShowNetバックボーンはキャリア向けの技術が主であると思われがちではありますが、このようにエンタープライズ向けにも常に新しい技術・構成にチャレンジしています。

関連記事

最近のエントリ

過去記事

過去記事一覧

IPv6基礎検定

YouTubeチャンネルやってます!