トランスポートで光るIPv6~IPv6 link-local~①

ビジネス推進本部 応用技術部
コアネットワークチーム
平河内 竜樹

データセンターネットワークを構築する技術として、ここ数年IPネットワークをトランスポートとしてFabricを構成する「IP Fabric」の注目度が高まっています。本コラムではIP Fabricをよりシンプルに展開するための手段としてIPv6が有するLink-Localアドレスの活用に着目し、具体的な構成方法について検証データを交えて紹介します。(前編)
 
連載インデックス

 

IP Fabricに関する情報

IP Fabricの動向や構成技術に関しては、解りやすく整理された資料が多く公開されています。検索で上位にヒットすると思われるものを中心に、関連する資料と併せて、末尾にURLを記載致しました。本コラムの前段階となる情報として、ぜひご参照頂ければと思います。

改めて触れておきたい点として、IP Fabricが収容対象のホストもしくはCE機器に対して提供可能な接続性(以下、単純にサービスと表現することがあります)にはバリエーションが存在し、それに従って利用される技術も異なることが挙げられます。IP Fabricを大別すると、接続性の要件がレイヤ3だけである環境に対して通常のIPルーティングとレイヤ3転送で実現するパターン(図1)と、レイヤ2接続やテナント分離などが要件にある場合にオーバーレイ技術を併用して構成するパターン(図2)となります。 
 

a01
図1:IPルーティングのみで制御されレイヤ3の接続性を提供するIP Fabric

 

a02
図2:併用されるオーバーレイ技術によって多様なサービスを提供するIP Fabric

 
図1の構成では収容するサブネットがホスト収容機器で一度終端されるため、BUMトラフィックがFabricを跨ぐことは無く、万一ストームが起きても影響範囲はその配下に限定されます。また、マルチパス構成によってノンブロッキングの帯域が確保でき、FIBが階層化されていれば中継網上の障害に対して規模を問わず速やかに復旧することが可能です。とりわけ3層のClosトポロジにコントロールプレーンとしてBGPだけを用いて構築されたMicrosoftデータセンターの手法は、詳しく紹介された資料が公開されていることに加えてRFCにもなっており、超大規模なインフラを有するOTT事業者のネットワークへの要求事項や実現方法を知る上での貴重な情報となっています。一方この構成は収容するサブネットが各ホスト収容機器で閉じられることを前提としており、アドレッシングやアプリケーション、とりわけ仮想化環境に対しては制約になり得ます。ネットワーク配置の自由度より大規模適性が重視される環境に向いた構成方法とも言えます。

図2の構成ではアンダーレイとなるネットワークは各NVE (Network Virtualization Edge) のトンネル終端となるIPアドレスに対して転送可能であれば良く、テナント識別が可能なトンネルの上で、「任意のVLAN同士をレイヤ2で接続」「複数存在する配下のIP空間に対しテナント分離を維持したままレイヤ3で接続」などの様々な接続形態を取ることができます。レイヤ3転送を含む場合、レイヤ2 / レイヤ3の境界が1箇所に集中しているか複数に分散しているかなどの観点でさらに分解できます。レイヤ2転送においては、異なる収容ポートにおける同一VLAN IDの個別取り扱いやQ-in-Qフレームへの対応が行われるケースもあります。実現の可否は実装依存となる箇所もありますが、多様なサービスに対応可能であることがオーバーレイ構成の大きな特徴です。反面、管理要素は増大し、スケール阻害要因も増加する点に注意が必要です。

なお、いずれのパターンにおいてもIPをトランスポートとしてClosトポロジを形成し、ECMPによるスケールアウトやIPベースのOAMを利用可能である点が共通の特徴となります。また3層の5-stage Clos()といった様に階層を増やすことによって、1ノードあたりの要求ポート数を抑えながら多数ホストの収容に対応することが可能となります。今回着目するトランスポートレイヤへのIPv6の適用はトポロジに依存する内容ではなく、構成を単純なものとするために以降もLeaf-Spineの2階層を対象に挙げますが、異なるトポロジにも該当する内容となります。

またIP Fabricは、LAGやTRILL / SPBに挙げられる様なイーサネットベースの技術と比較すればオーバーレイの有無を問わず利用に手間を要する技術と言え、その点は手軽な配備を行う上でのハードルにもなり得ます。どのような点が展開上の課題となるか、次項から具体的に触れていきます。
 

IP Fabricにおける課題:IPの設計・設定

一点目はトランスポートネットワークに対してIPの設計・設定が必要となることです。前項のいずれのケースにおいても、中継リンクへの到達性はサービス提供の上で必須ではありませんが、トランスポートとしてIPの転送を実行するためには中継リンクに対してもIPアドレスの割り当てが必要となります。結果、中継ネットワークに対するアドレス資源の消費や割り当て方針の検討が発生するという形で影響を及ぼします。また指定するアドレスの値はインタフェースや機器によって固有となるため、運用形態によっては設定作業に関する工数の増加やヒューマンエラーの誘発に繋がるおそれがあります。

この点に関してはポイントツーポイントネットワークであることを前提にイーサネットリンクをunnumberedインタフェースとして取り扱える機能も存在しており、これをIP Fabricに適用することができれば、中継リンクのアドレッシングを省略することが可能になります。ただ、ベンダーによって実装方法や制約が異なることに加え、例えばOAMなどの観点からインタフェース単位でIPアドレスを必要とする場合には適用が難しいという側面もあります。
 

IP Fabricにおける課題:BGPの設計・設定

二点目はBGPを適用したケースにおけるASの設計やピアリングの設定です。BGPは大規模環境における運用実績が豊富で、また経路操作の自由度も高く、Fabricに対してこのような要件がある場合は特に適合するプロトコルです。加えてVXLANなどのオーバーレイ環境に対しては、EVPNアドレスファミリを利用することによって、BUM配送先の自動発見やフラッディングの抑制といった機能を提供することが可能になります

ただBGPの利用に際しては、論理設計の要素としてAS番号(以下、ASN)の考慮が必要となる上に、設定は複雑になる傾向があります。具体的には、シングルASで運用する場合はBGPネクストホップの解決方法が留意点となり、機器や階層を単位としてASNを個別とする場合は割り当て方針の検討が発生します。またBGPはプロトコルとしてディスカバリステージを持たず、通常ピアのIPアドレス指定を必要とします。関連してピアのASN指定を必須とする実装が多く、これらの要素は機器間の設定共通化や各機器の設定量圧縮において妨げになります。

上記の経緯より、IP Fabricは利用者にある程度の複雑さをもたらす技術であり、特にレイヤ2のVXLAN Fabricとして構成する際には比較対象となるイーサネット系の技術と比べると簡素な展開という点でギャップが目立つと言えます。ただこのケースにおいても基盤にIPを用いる利点は存在し、図3に挙げた要素が重視される環境であれば、IP Fabricは有用な選択肢です。

a03図3:サービスに依存せずファブリックを構築する技術としてIPを用いる主な利点

 
また設定の手間に関しては自動化でカバーする視点もあり、実際に巨大なインフラを運用するOTT事業者のケースでは、ネットワークは自動化を前提に構築されていることが公開情報から読み取れます。

一方、指定が必要な要素を適切に共通化・省略することができれば、管理対象の削減という点で有用となり、またIP Fabricにおける導入の敷居を下げることにも繋がります。以降では「中継リンクに対するアドレッシング・ルーティングの省略」「BGP設定に対する機器固有性の排除」に焦点を当て、実現方法を掘り下げていきます。
  

IPv6によるアドレッシングの省略とBGP Dynamic Neighbor機能の活用

中継リンクのアドレスに対する設計および設定の省略を検討すると、その必要の無い技術をトランスポートネットワークに適用し、目的の通信はオーバーレイ経由で提供するという形式がまず挙げられます。IPv6に存在するlink-localアドレスは128-bitのアドレスに対する明確な自動生成機構を有し、またAdjacency Tableの構築やルーティングプロトコルの交換にも利用され、上記の用途に適合します。

IPv6は当該の全インタフェースでlink-localアドレスを必要とする仕様であり、また隣接機器への自発的な通知に関してもタイマーなどが規定されています。各ノードでデフォルトとしてIPv6が有効である場合、隣接機器とは起動直後からlink-localアドレスを利用した通信が可能な状態となります。また、IPv6を扱うOSPFやVRRPはlink-localアドレスを利用して交換され、提供されるネクストホップもlink-localアドレスが基本となります。

なおlink-localアドレス自体はIPv4にも存在していますが、ホストがDHCPでアドレスが取得できなかった際に利用するケースが主眼です。ネットワーク上のトランジットリンクに適用する際には、169.254.0.0/16のアドレスが設定可能であっても、インタフェース単位で再利用可能な空間として認識しない実装も多いのではないでしょうか。またアドレスの自動生成やルーティングプロトコルとの連携まで踏まえると、意図した用途にIPv4のlink-localアドレスを利用することは現実的ではありません。

IP FabricのトランスポートにIPv6を採用すれば、自動生成が行われるlink-localアドレスによってアドレッシングとルーティングが可能となり、中継リンクに対するアドレスの設計や設定は省略できます。ルーティングプロトコルに関しても、例えばOSPFを利用する場合、シングルエリアで構成すればノード固有の値となる設定情報はルータIDのみとすることができます。有効化するインタフェースなどに関しては機器固有の設定部となる可能性もありますが、リーフ機器では共通の機器を採用しアップリンクに利用するポートは揃える構成にするなど、同じ階層の機器間であれば多くのケースで揃えることができると考えられます。

リーフ機器間で交換されたIPv6のGlobalアドレスを利用してオーバーレイ構成を取れば、トランスポートがIPv4であった場合と同じように、レイヤ2やIPv4の接続性を提供することができます。この時EVPNでシグナリングを行う際にはBGP設定の固有性、主にはピアに対するアドレスとASNの指定を考慮することになりますが、これらの要素も機能や設計によっては共通化が可能です。今回はVPNシグナリングであるため、スパイン機器にRRを適用しIBGPで構成すれば、ピアとして指定するASNは階層を問わず共通化されます。

また、BGP実装の中には対向からの始動を前提としてピアのアドレス指定を省略できる機能(ここではDynamic Neighbor機能と呼びます)があります。リーフ機器で指定するEVPN用のピアアドレスは、二つのスパインそれぞれのLoopback宛のものに、共通化可能です。加えてDynamic Neighbor機能をスパイン機器に適用すれば、各機器に適用するBGP関連の設定は機器の追加に因らず一定のものとなり、また同一階層の中では機器間のBGP設定は共通のものとなります。
  

EVPN-VXLAN IPv6 Underlay:試験の環境と結果

ここからは、トランスポートネットワークにIPv6とOSPFv3を利用した際の検証データを紹介します。今回は試験環境にJuniper Network社のvMXを用い、IPv6トランスポート対応のVXLANを利用してレイヤ2の接続を提供する形態としました。本試験ではJUNOS 17.3R1.10を利用し、オーバーレイにはEVPNも併用しました。以下に示す図4は利用したプロトコルの組み合わせ、図5は試験の構成図、表1・表2は設定の抜粋となります。
 

a04図4:試験で利用するプロトコル

 

a05図5: 試験の構成図

  

表1:設定の抜粋(アンダーレイ)
Core-01
set groups GROUP_CORE-IF interfaces <ge-0/0/[0-1]> unit <*> family inet6
set apply-groups GROUP_CORE-IF
set protocols ospf3 area 0.0.0.0 interface all interface-type p2p
set interfaces lo0 unit 0 family inet6 address 2001:db8::1/128
set routing-options router-id 10.0.0.1
Core-02
set groups GROUP_CORE-IF interfaces <ge-0/0/[0-1]> unit <*> family inet6
set apply-groups GROUP_CORE-IF
set protocols ospf3 area 0.0.0.0 interface all interface-type p2p
set interfaces lo0 unit 0 family inet6 address 2001:db8::2/128
set routing-options router-id 10.0.0.2
Edge-10
set groups GROUP_CORE-IF interfaces <ge-0/0/[0-1]> unit <*> family inet6
set apply-groups GROUP_CORE-IF
set protocols ospf3 area 0.0.0.0 interface all interface-type p2p
set interfaces lo0 unit 0 family inet6 address 2001:db8::10/128
set routing-options router-id 10.0.0.10
Edge-20
set groups GROUP_CORE-IF interfaces <ge-0/0/[0-1]> unit <*> family inet6
set apply-groups GROUP_CORE-IF
set protocols ospf3 area 0.0.0.0 interface all interface-type p2p
set interfaces lo0 unit 0 family inet6 address 2001:db8::20/128
set routing-options router-id 10.0.0.20
表2:設定の抜粋(オーバーレイ)
Core-01
set protocols bgp group BGP type internal
set protocols bgp group BGP local-address 2001:db8::1
set protocols bgp group BGP family evpn signaling
set protocols bgp group BGP cluster 10.0.0.1
set protocols bgp group BGP allow ::/0
set routing-options autonomous-system 65001
Core-02
set protocols bgp group BGP type internal
set protocols bgp group BGP local-address 2001:db8::2
set protocols bgp group BGP family evpn signaling
set protocols bgp group BGP cluster 10.0.0.2
set protocols bgp group BGP allow ::/0
set routing-options autonomous-system 65001
Edge-10
set interfaces ae0 unit 2 encapsulation vlan-bridge
set interfaces ae0 unit 2 vlan-id 2
set protocols bgp group BGP type internal
set protocols bgp group BGP local-address 2001:db8::10
set protocols bgp group BGP family evpn signaling
set protocols bgp group BGP neighbor 2001:db8::1
set protocols bgp group BGP neighbor 2001:db8::2
set routing-instances MAC-VRF-0002 vtep-source-interface lo0.0
set routing-instances MAC-VRF-0002 vtep-source-interface inet6
set routing-instances MAC-VRF-0002 instance-type evpn
set routing-instances MAC-VRF-0002 vlan-id 2
set routing-instances MAC-VRF-0002 interface ae0.2
set routing-instances MAC-VRF-0002 vxlan vni 2
set routing-instances MAC-VRF-0002 vxlan ingress-node-replication
set routing-instances MAC-VRF-0002 vrf-target target:65001:2
set routing-instances MAC-VRF-0002 protocols evpn encapsulation vxlan
set routing-options route-distinguisher-id 10.0.0.10
set routing-options autonomous-system 65001
Edge-20
set interfaces ae0 unit 2 encapsulation vlan-bridge
set interfaces ae0 unit 2 vlan-id 2
set protocols bgp group BGP type internal
set protocols bgp group BGP local-address 2001:db8::20
set protocols bgp group BGP family evpn signaling
set protocols bgp group BGP neighbor 2001:db8::1
set protocols bgp group BGP neighbor 2001:db8::2
set routing-instances MAC-VRF-0002 vtep-source-interface lo0.0
set routing-instances MAC-VRF-0002 vtep-source-interface inet6
set routing-instances MAC-VRF-0002 instance-type evpn
set routing-instances MAC-VRF-0002 vlan-id 2
set routing-instances MAC-VRF-0002 interface ae0.2
set routing-instances MAC-VRF-0002 vxlan vni 2
set routing-instances MAC-VRF-0002 vxlan ingress-node-replication
set routing-instances MAC-VRF-0002 vrf-target target:65001:2

 
設定後、テスターより印加されたVLAN 2のサブネット内通信が対向で受信される様になりました。

表1・表2の設定を見ると、リーフ機器同士・スパイン機器同士の設定は、ノード単位で割り当てるIPv6アドレスとルータIDの値を除き、共通化されていることが窺えます。このように構成した場合、例えばトランスポートの帯域増強用にリーフ・スパイン間のリンクを追加する際には当該のインタフェースに対してIPv6 Routingを有効にする共通の設定を投入すれば良く、また事前に未使用ポートの設定を行っておくことも容易です。収容ポートの増設に応じてリーフ機器を追加する際は、同じ階層の機器から前述の固有箇所のみを個別の値に変更するだけで、サービスを提供可能な設定となります。併せて、設定を自動生成する際のロジックもそれだけシンプルなものとなります。

またBGPに関してはオーバーレイ・アンダーレイ問わずEBGPで構成することも可能です。この場合、リーフレイヤ・スパインレイヤといった階層の単位でASNを割り当てることによって、ピアとして指定するASNを各階層で共通化することが可能になります。上記試験の過程においても、ASNを再利用するEBGP構成でも疎通可能となることを確認しています。オーバーレイとアンダーレイ双方にBGPを適用する場合はその間で利用するASNを変更する手法も挙げられ、特にEBGPで構成する際には、設計上の選択肢は対象の機器でサポートされるBGP機能へとりわけ依存することになります。
 

EVPN-VXLAN IPv6 Underlay:補足

前項の例でVLAN 3を追加する際の設定は表3になります。

表3:VLANの追加に対する設定
Edge-10 / Edge-20
set interfaces ae0 unit 3 encapsulation vlan-bridge
set interfaces ae0 unit 3 vlan-id 3
set routing-instances MAC-VRF-0003 vtep-source-interface lo0.0
set routing-instances MAC-VRF-0003 vtep-source-interface inet6
set routing-instances MAC-VRF-0003 instance-type evpn
set routing-instances MAC-VRF-0003 vlan-id 3
set routing-instances MAC-VRF-0003 interface ae0.3
set routing-instances MAC-VRF-0003 vxlan vni 3
set routing-instances MAC-VRF-0003 vxlan ingress-node-replication
set routing-instances MAC-VRF-0003 vrf-target target:65001:3
set routing-instances MAC-VRF-0003 protocols evpn encapsulation vxlan

この時必要となる設定は、当該VLANを収容するリーフ機器を対象として、共通の設定となっていました。なおEVPNによるマルチホーミングを行う場合、ポート単位でユニークなESIを必要とするため、利用ポートの追加に対する固有の設定項目となり得ます。ESIは仕様として自動生成が可能な項目であり、この場合ESIの自動生成機能がサポートされていれば、固有となる値の指定を省くことができます。
 
また、設定のシンプル化とは別の観点で、SRv6の利用を見据えてトランスポートネットワークにIPv6を利用するという視点もあります。例えば以前のコラムを流用した環境で図6の様に構成したところ、Segment Listで指定するSRv6 SIDはLoopbackに対するIPv6アドレスだけであっても、冗長性を提供しながら通信に応じて経由スパインを選択することが可能になりました。このケースで平常時(図7)に対してノード障害時(図8)およびリンク障害時(図9)の状態を比較すると、利用されるSegment List(赤色部)に変化は無く、Active Segmentを解決する経路(黄色部)のネクストホップが有効なものに変更されていました。
 

a06
図6:VLAN単位で経由スパインを選択し且つ片系の障害時は縮退運転する構成の例

 

a07図7:平常時

 

a08図8:プライマリのノード障害時

 

a09図9:セカンダリのリンク障害時

 
上記の例では、最長一致によって平常時は参照されないバックアップ相当の経路もFIBにインストールされており、トランスポートネットワークにトポロジの変化があってもSegment Listを更新することなく通信を復旧させることが可能です。Segment Routingおよびその関連機能の利用可否は機器の対応状況次第となり、実際に利用される形態はBGP SRv6-based EVPNの様に今回とは異なる方式が主流となるかもしれませんが、実装が揃えばPure IPのFabricにTE機能を付与する用途においてもIPv6を活用できることが窺える結果となりました。
 

まとめ

IP Fabricはオープン性などの利点を有する選択肢となる一方で、利用に際しては、設計や設定の面で課題となることがあります。この点のシンプル化を図る手段として、IPv6の活用が挙げられます。

試験構成としてJuniper Network社のvMXを用いOSPFv3によるIPv6ルーティングとIPv6アンダーレイのEVPN-VXLANを適用したところ、各階層における機器固有の設定情報は「自身のルータIDなどに用いる32ビットの値」および「自身のLoopbackに対するIPv6アドレス」の2種類となる状態で、レイヤ2の接続性を提供することが可能となりました。

補足としてLinux kernel 4.10の環境を対象に、Segment ListがLoopbackに対するSRv6 SIDだけで構成される状態においても、SRv6がTE機能の提供に活用できることを確認できました。
 

関連記事

Experiences with BGP in large Scale Data Centers
なぜデータセンタースイッチでないといけないのか?
大規模DCのネットワークデザイン
ヤフーのIP CLOS ネットワーク
IDCフロンティア”データ集積地構想/Data Centric Cloud”を支えるネットワークのアーキテクチャクラウドの基盤を支える、データセンター接続とその運用管理の技術

(続き)
Address Resolution Problems in Large Data Center Networks(+
Pain Points of Various Data Center Network Designs
Building Scalable Data Centers: BGP is the Better IGP
Use of BGP for Routing in Large-Scale Data Centers(+
Datacenter Networking @ Facebook
Multi-Stage Clos Architectures
Introducing data center fabric, the next-generation Facebook data center network
いかにしてGoogleは他の企業では成し得ないような驚くべきデータセンターネットワークを作り上げたか

(DCROUTING関連)
interim-2017-rtgwg-01 : rtgwga
LinkedIn OpenFabric Project – Interop 2017
Lost in Fat Tree forest and route out
IETF-100 : dcrouting(+
 

執筆者プロフィール

平河内 竜樹
ネットワンシステムズ株式会社 ビジネス推進本部
応用技術部 コアネットワークチーム
所属

ルータ分野を核とした新旧技術の調査・検証と共に、エンタープライズ・パブリック・サービスプロバイダのネットワーク提案および導入を支援する業務に、10年以上にわたり従事
・CCIE RS
・CCIE SP



イベント/レポート

pagetop