EVPNの仕様と実験的検討①

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

今回は特定のユースケースではなく、各種用途でEVPNの利活用を促進する仕様・実装について触れたいと思います。EVPNのエンハンスメントは継続して新たな仕様が提案されている状況ですが、筆者の体感として、注目度は高くないものの商用環境への導入に際してニーズが見込まれる項目を取り上げます。(第1回)

連載インデックス

 

ポート単位のSingle-Activeマルチホーム

EVPNで提供されるAll-Active redundancy modeは、LAG経由の接続によって、複数のPE/NVEに対しフローベースで負荷分散される点が特徴です。一方、経由するPEはフローベースで選択されるため、「伝送路が直ぐ解るようにしたい」「PEに問題が発生した際には影響を受ける範囲を明確にしたい」という要求がある場合には適用が難しい形態です。また、ネットワークサービスの基盤として採用する際にはVLANやポートに対して明確な帯域制限が要件として挙がることも多く、その制御のために伝送路は一意であることが求められます。EVPNの場合このような要件に対してはSingle-Active redundancy modeが適合するものの、レイヤ2トポロジ変更の反映がTCN (Topology Change Notification) に依存して行われるケースを中心に、エンドツーエンドの通信復旧が遅れる傾向にあります()。このような条件下では、比較すると、ポート単位で閉塞させたVPLSのPE冗長トポロジ(⇒以前のコラム:図1)の方が要求に沿う構成となることも考えられます。

EVPNにおいても例えばPort-based serviceの様にDesignated Forwarder(以下、DF)がポート単位で選出される形態を取る場合、Single-Active redundancy modeを適用すればPEとしてはポート単位でActive/Standby関係が構築されることになり、PE-CE間の制御が伴えばこの冗長グループに対しLAGで接続することが可能です(図1)。これが実現されれば、Single-Active redundancy modeの状態でCE/Hostから見てレイヤ2のトポロジを一本化することができ、伝送路の明確化とポート単位の収束が両立される構成となります。


図1:ポート単位でActiveのエッジ機器が一意となるEVPN冗長化構成

 
一方で、上記の点を明確化する仕様は長らく空白の状態が続いており、筆者の知る限りLACPなどと連動する独自の実装も登場していませんでした。その後、2017年の後半にこの構成に焦点を当てたInternet-Draftが登場し()、その中で実現に際してのPEの制御方法などが具体化されました。今後、この方式に沿った実装も登場するかもしれません。

またかなり荒削りなアプローチと言えますが、Single-Active redundancy modeではCEからnon-DFのPEに流れ込んできたトラフィックは破棄されることを利用して、CEの転送処理として冗長グループ内の全PE宛に通信を常時複製する形態でもレイヤ2プロトコルのTCNに依存しない収束を実現することは可能です(図2)。この方法であればVLAN単位でDFが分散する構成においても、通信は速やかに復旧することになります。


図2:通信の複製を利用したEVPN冗長化構成

 
例えばLinuxのBondingにはメンバーリンクに全て同一のフレームを送信するbroadcastモードが存在し、この処理をCEやホストに適用することができれば全PE宛の常時複製処理が実現されます。また、CEでの頻繁なフラッディングを許容できる環境であれば、CEにおいてPE接続インタフェースに対するMACエントリの生成を無効にするといった方法でも再現可能です。いずれにしても転送処理にフレームの複製を伴うため、「利用する機器の機能として実現可能であるか」「及ぼす影響が性能や運用の上で支障とならないか」等の点で注意する必要があります。動作の上では実現可能であるものの、利用の際は慎重に検討すべき形態と言えます。

今回はポート単位のSingle-Active構成の再現を念頭に、EVPNのマルチホーム機能に加えCE側でのバックアップインタフェースに類する機能の利用によって冗長化構成を組み、実験的に試験を行いました。PE側のLACP制御に代わりCE側のレイヤ2機能を併用することによって、PE-CE間接続におけるリンク単位のアクティブ選択を実現した格好です。この試験のエッジ機器にはJuniper Network社のMXシリーズを用いています。エッジ機器ではポート単位でDFが選出される様にSingle-Active redundancy modeとなるEVPN-MPLSの設定を行い、収容される側となるCEのレイヤ2機能によってポート単位のActive/Standby関係を有効にしました。図3は試験の構成図、表1は該当部の設定になります。

表1:設定の抜粋(VPN関連)
Edge-10
set interfaces ae0 flexible-vlan-tagging
set interfaces ae0 encapsulation flexible-ethernet-services
set interfaces ae0 esi 00:03:00:00:11:11:11:00:00:00
set interfaces ae0 esi single-active
set interfaces ae0 unit 0 encapsulation vlan-bridge
set interfaces ae0 unit 0 family bridge interface-mode trunk
set interfaces ae0 unit 0 family bridge vlan-id-list 2-3
set interfaces ae1 flexible-vlan-tagging
set interfaces ae1 encapsulation flexible-ethernet-services
set interfaces ae1 esi 00:03:00:00:11:11:66:00:00:00
set interfaces ae1 esi single-active
set interfaces ae1 unit 0 encapsulation vlan-bridge
set interfaces ae1 unit 0 family bridge interface-mode trunk
set interfaces ae1 unit 0 family bridge vlan-id-list 2-3
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.1
set protocols bgp group VPN family evpn signaling
set protocols bgp group VPN neighbor 10.0.0.2
set protocols bgp group VPN neighbor 10.0.0.3
set routing-instances MAC-VRF-0001 instance-type virtual-switch
set routing-instances MAC-VRF-0001 interface ae0.0
set routing-instances MAC-VRF-0001 interface ae1.0
set routing-instances MAC-VRF-0001 route-distinguisher 10.0.0.1:1
set routing-instances MAC-VRF-0001 vrf-target target:65001:1
set routing-instances MAC-VRF-0001 protocols evpn extended-vlan-list 2-3
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 domain-type bridge
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 vlan-id 2
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 no-arp-suppression
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 domain-type bridge
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 vlan-id 3
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 no-arp-suppression
Edge-15
set interfaces ae0 flexible-vlan-tagging
set interfaces ae0 encapsulation flexible-ethernet-services
set interfaces ae0 esi 00:03:00:00:11:11:11:00:00:00
set interfaces ae0 esi single-active
set interfaces ae0 unit 0 encapsulation vlan-bridge
set interfaces ae0 unit 0 family bridge interface-mode trunk
set interfaces ae0 unit 0 family bridge vlan-id-list 2-3
set interfaces ae1 flexible-vlan-tagging
set interfaces ae1 encapsulation flexible-ethernet-services
set interfaces ae1 esi 00:03:00:00:11:11:66:00:00:00
set interfaces ae1 esi single-active
set interfaces ae1 unit 0 encapsulation vlan-bridge
set interfaces ae1 unit 0 family bridge interface-mode trunk
set interfaces ae1 unit 0 family bridge vlan-id-list 2-3
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.2
set protocols bgp group VPN family evpn signaling
set protocols bgp group VPN neighbor 10.0.0.1
set protocols bgp group VPN neighbor 10.0.0.3
set routing-instances MAC-VRF-0001 instance-type virtual-switch
set routing-instances MAC-VRF-0001 interface ae0.0
set routing-instances MAC-VRF-0001 interface ae1.0
set routing-instances MAC-VRF-0001 route-distinguisher 10.0.0.2:1
set routing-instances MAC-VRF-0001 vrf-target target:65001:1
set routing-instances MAC-VRF-0001 protocols evpn extended-vlan-list 2-3
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 domain-type bridge
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 vlan-id 2
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 no-arp-suppression
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 domain-type bridge
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 vlan-id 3
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 no-arp-suppression
Edge-20
set interfaces ae0 flexible-vlan-tagging
set interfaces ae0 encapsulation flexible-ethernet-services
set interfaces ae0 unit 0 encapsulation vlan-bridge
set interfaces ae0 unit 0 family bridge interface-mode trunk
set interfaces ae0 unit 0 family bridge vlan-id-list 2-3
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.3
set protocols bgp group VPN family evpn signaling
set protocols bgp group VPN neighbor 10.0.0.2
set protocols bgp group VPN neighbor 10.0.0.1
set routing-instances MAC-VRF-0001 instance-type virtual-switch
set routing-instances MAC-VRF-0001 interface ae0.0
set routing-instances MAC-VRF-0001 route-distinguisher 10.0.0.3:1
set routing-instances MAC-VRF-0001 vrf-target target:65001:1
set routing-instances MAC-VRF-0001 protocols evpn extended-vlan-list 2-3
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 domain-type bridge
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 vlan-id 2
set routing-instances MAC-VRF-0001 bridge-domains VLAN0002 no-arp-suppression
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 domain-type bridge
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 vlan-id 3
set routing-instances MAC-VRF-0001 bridge-domains VLAN0003 no-arp-suppression

図3:試験の構成図

 

テスター間の通信が全VLANのDFとなったEdge-10を経由してフルメッシュで疎通することを確認した後に、改めてサイト2からサイト1のES-1およびES-2に対し片方向で通信を印加し、その状態でEdge-10のES-1収容リンクをダウンさせました。その結果、ES-2に対する通信のロスは無く、ES-1に対する通信も1秒ほどで速やかに復旧することが確認できました。リンクダウンの前後に着目してVPNの伝送状態を観察すると、ES-1に対する通信はフラッディングによってEdge-15経由で疎通する様になり、ES-2に対する通信は継続してEdge-10を経由するユニキャスト転送が行われていることが確認できました。併せてEdge-20の状態をイベントの前後で比較した結果としては、ES-1に対するMACエントリは削除され、同じVLAN上のES-2に対するMACエントリは維持される形となりました。

なお上記の試験に対しVPLSを適用した際も、必要な条件が揃えば、MACエントリのエージアウトを待たずに通信を復旧させることは可能です。VPLSを用いた際には、実現に対する実装の依存性に加えて、「切り替えが不要なMACエントリもFlushの対象になる(今回の試験においてはEdge-20上のES-2に対するMACエントリが該当)」「規模の影響を受けてサービス停止時間が長引く」といった形で影響を受けることが想定されます。

また、試験の過程では、切り戻りのタイミングで永続的な通信断が発生する現象を確認しています。これは、試験中に利用したCE側のアクティブリンク選択機能に関して、リンクの復旧に伴う切り戻りは手動にて行われるモードで動作していたことに起因していました。通常PEのDF再選出はリンク復旧に伴い自動で実行されるため()、CEとingress PEとの間でActive/Standby関係が不一致となる場合、通信断が生じる結果となります。経由するingress PEの選択をCEの機能に頼る際には、「CEがどのPE-CE間リンクを送出先として選択するか」と「PEはどのPEをDFとして選択するか」は独立して動作することを踏まえて、リンクの状態変更に伴い両端で不整合が発生しないことを確認する必要があります。

補足としてCE側の制御によってingress PEが選択される構成であれば、PEの冗長化機能は利用せずに、各PEがシングルホームのCE収容として振る舞う状態で、冗長トポロジに適用する形態でも障害時の迂回は実現することが可能です。レイヤ2 VPNにおいてCE相当の機器を含めて設計・管理できるケースでは、実際に採用され得る方式です。対してエッジ冗長にEVPNを適用した際には、Mass Withdrawを経由した切り替わりが実現され、切り替わりの動作に伴う影響範囲を小さく抑えることが可能になります。

 

今回のまとめ

EVPNは、マルチホームにおけるポート単位のSingle-Active構成において、標準化や実装がまだ不十分な状況です。現在は関連する仕様の具体化が始まった段階と言え、今後の進展が期待されます。

また収容される側での制御を併用することによって実現した場合の例として、バックアップインタフェースに類する機能を用いた構成で実験的に試験を行いました。結果、ポートを単位としたActive/Standby構成の成立が確認できました。この時、他技術と比較した際の利点として、Mass Withdrawを利用できることが挙げられます。

 

執筆者プロフィール

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

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

イベント/レポート

pagetop