EVPNの仕様と実験的検討③

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

本連載では各種用途でEVPNの利活用を促進する仕様・実装について触れたいと思います。今回は、導入後に発生し得る設定変更の簡素化について取り上げます。(後編)

連載インデックス

 

bridge domainに対する設定の簡素化:EVPNのケース

まずEVPNでは、BUMトラフィックの伝播範囲はRoute Type 3 (Inclusive Multicast Ethernet Tag / IMET) route(以下、RT-3)によって規定されます。VLAN-based service・VLAN-aware bundle serviceどちらの形式においてもVLAN単位でRT-3が形成され、交換されなかったサイトはBUMトラフィックの配送対象となりません。これより受信フレームに応じてRT-3を生成するという動作では、フラッディングされるべき通信の未到達が発生し得るため、基本的な疎通性に影響を及ぼすことになります。製品によっては新規のVLANとなるフレームの受信を契機に、コントローラを経由して、関連するエッジ機器に必要な設定を動的に追加できるものも存在しています。一方ネットワークに閉じた方式で対象としたEVPNの設定簡素化を実現する際には、「利用される可能性がある全VLANに対しRT-3が生成される」もしくは「各VLAN / bridge domainを束ねた中間層に対しRT-3が生成される」ことにより、各VLANのフラッディング通信が全てのリモートエッジ機器に配送される形態を取ることになります。この場合、EVPNの特徴であるVLAN単位のBUM配送先選出の効果は得られませんが、リモートPEの自動発見機構は利点となります。

またEVPNの場合、MACエントリの生成にRoute Type 2 (MAC/IP) route(以下、RT-2)が利用されます。この時エントリ生成の対象となるbridge table(以下、MACテーブル)の識別には、VLAN-based serviceの場合はVLAN単位で生成されるRoute Targetが、VLAN-aware bundle serviceの場合はVLAN IDが反映されたEthernet Tag IDが利用されます。このため、RT-2経由でVLANが考慮されたMACテーブルを構築する場合は、EVPNコントロールプレーンとしてVLANを認識できている必要があります。したがって、EVPNの設定簡素化が実現された状態でレイヤ2のユニキャスト転送を行うためには、利用される可能性がある全VLANに対しRT-2が生成可能であることが要求されます。別の方策として一面のVPN上に複数のVLANを束ねて伝送する形態を適用する際には、RT-2を利用せずにMACエントリを生成することになります。例えば「中間層となるVPN識別子にはGlobally Uniqueな同一の値を常に利用・VLAN情報をフレーム内に保持したまま転送を行い、MACエントリはデータプレーンから学習した情報を基に生成する」という動作を前提とすることができれば、EVPNが認識する情報には変化のない状態で、個別のbridge domainにマッピングされたVLANを追加することが可能となります。またMACエントリがEthernet Segment(以下、ES)に関連付いた状態で登録されれば、冗長化構成におけるMass Withdrawを利用することができます。

上記よりEVPNの仕様に沿って「利用するVLANの追加に応じた設定の変更」および「VLAN数に依存した設定量の増加」を排除した状態でVLAN別のbridge domainを形成するためには、『各VLANに対してそれぞれ独立したVPNを形成するものとし、VLAN空間をbridge domainに射影する等のルールに基づいて、マッピング関係を一組の設定で事前に指定する』(図7)もしくは『収容するVLANがEVPNから意識されない状態となる様に一面のVPN上で複数のVLANを重畳し、利用VLANの範囲指定や動的な生成を行う』(図8)といった方式に対応する必要があります。またどちらも実現の可否に関してはbridge domainに纏わる実装の依存性が含まれます。


図7:収容VLAN数の追加に対して透過的なEVPN設定:一括指定

 


図8:収容VLAN数の追加に対して透過的なEVPN設定:VLAN重畳

 
前者では、EVPNが収容するホストの情報を認識するため、それに付随する最適化の恩恵を受けられることが利点となります。後者ではリソース消費やBGP経路数の抑制が特徴として挙げられ、またBGPの経路が収容するホストやネットワークの数に依存せず一定になる点も環境によってはメリットに映ります。

今回は前述した中の後者に類する例として、PBB-EVPNを用いて一面のI-Componentに複数のVLANを束ねて伝送し、VLAN単位で個別のbridge domainを形成するパターンのデータを紹介したいと思います。この試験のエッジ機器にはJuniper Network社のMXシリーズを用いています。また本例は、現在参照可能な資料を確認する限り製品として許容される使途であるかの判断が困難であったため、実験的検討の位置付けとして検証を行いました。図9は試験の構成図、表4は該当部の設定になります。

 

表4:設定の抜粋(PBB-EVPN構成:VPN関連)
PE-1
set chassis aggregated-devices ethernet device-count 2
set chassis network-services enhanced-ip
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 esi source-bmac 00:00:00:11:11:11
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 1-4094
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 esi source-bmac 00:00:00:11:11:66
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 1-4094
set interfaces cbp0 unit 1 family bridge interface-mode trunk
set interfaces cbp0 unit 1 family bridge bridge-domain-type bvlan
set interfaces cbp0 unit 1 family bridge isid-list all
set interfaces pip0 unit 1 family bridge interface-mode trunk
set interfaces pip0 unit 1 family bridge bridge-domain-type svlan
set interfaces pip0 unit 1 family bridge isid-list all-service-groups
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 B-COMPONENT instance-type virtual-switch
set routing-instances B-COMPONENT interface cbp0.1
set routing-instances B-COMPONENT route-distinguisher 10.0.0.1:1
set routing-instances B-COMPONENT vrf-target target:65001:1
set routing-instances B-COMPONENT protocols evpn control-word
set routing-instances B-COMPONENT protocols evpn pbb-evpn-core
set routing-instances B-COMPONENT protocols evpn extended-isid-list 5000
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B vlan-id 1
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B isid-list 5000
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B vlan-id-scope-local
set routing-instances I-COMPONENT instance-type virtual-switch
set routing-instances I-COMPONENT interface ae0.0
set routing-instances I-COMPONENT interface ae1.0
set routing-instances I-COMPONENT interface pip0.1
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0002 vlan-id 2
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0003 vlan-id 3
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0004 vlan-id 4
set routing-instances I-COMPONENT pbb-options peer-instance B-COMPONENT
set routing-instances I-COMPONENT service-groups SERVICE-GROUP service-type elan
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options isid 5000 vlan-id-list 1-4094
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options source-bmac 00:00:00:00:00:01
PE-2
set chassis aggregated-devices ethernet device-count 2
set chassis network-services enhanced-ip
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 esi source-bmac 00:00:00:11:11:11
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 1-4094
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 esi source-bmac 00:00:00:11:11:66
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 1-4094
set interfaces cbp0 unit 1 family bridge interface-mode trunk
set interfaces cbp0 unit 1 family bridge bridge-domain-type bvlan
set interfaces cbp0 unit 1 family bridge isid-list all
set interfaces pip0 unit 1 family bridge interface-mode trunk
set interfaces pip0 unit 1 family bridge bridge-domain-type svlan
set interfaces pip0 unit 1 family bridge isid-list all-service-groups
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 B-COMPONENT instance-type virtual-switch
set routing-instances B-COMPONENT interface cbp0.1
set routing-instances B-COMPONENT route-distinguisher 10.0.0.2:1
set routing-instances B-COMPONENT vrf-target target:65001:1
set routing-instances B-COMPONENT protocols evpn control-word
set routing-instances B-COMPONENT protocols evpn pbb-evpn-core
set routing-instances B-COMPONENT protocols evpn extended-isid-list 5000
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B vlan-id 1
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B isid-list 5000
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B vlan-id-scope-local
set routing-instances I-COMPONENT instance-type virtual-switch
set routing-instances I-COMPONENT interface ae0.0
set routing-instances I-COMPONENT interface ae1.0
set routing-instances I-COMPONENT interface pip0.1
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0002 vlan-id 2
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0003 vlan-id 3
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0004 vlan-id 4
set routing-instances I-COMPONENT pbb-options peer-instance B-COMPONENT
set routing-instances I-COMPONENT service-groups SERVICE-GROUP service-type elan
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options isid 5000 vlan-id-list 1-4094
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options source-bmac 00:00:00:00:00:02
PE-3
set chassis aggregated-devices ethernet device-count 2
set chassis network-services enhanced-ip
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 1-3
set interfaces ae0 unit 0 family bridge vlan-id-list 5-4094
set interfaces cbp0 unit 1 family bridge interface-mode trunk
set interfaces cbp0 unit 1 family bridge bridge-domain-type bvlan
set interfaces cbp0 unit 1 family bridge isid-list all
set interfaces pip0 unit 1 family bridge interface-mode trunk
set interfaces pip0 unit 1 family bridge bridge-domain-type svlan
set interfaces pip0 unit 1 family bridge isid-list all-service-groups
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 B-COMPONENT instance-type virtual-switch
set routing-instances B-COMPONENT interface cbp0.1
set routing-instances B-COMPONENT route-distinguisher 10.0.0.3:1
set routing-instances B-COMPONENT vrf-target target:65001:1
set routing-instances B-COMPONENT protocols evpn control-word
set routing-instances B-COMPONENT protocols evpn pbb-evpn-core
set routing-instances B-COMPONENT protocols evpn extended-isid-list 5000
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B vlan-id 1
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B isid-list 5000
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B vlan-id-scope-local
set routing-instances I-COMPONENT instance-type virtual-switch
set routing-instances I-COMPONENT interface ae0.0
set routing-instances I-COMPONENT interface pip0.1
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0002 vlan-id 2
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-0003 vlan-id 3
set routing-instances I-COMPONENT pbb-options peer-instance B-COMPONENT
set routing-instances I-COMPONENT service-groups SERVICE-GROUP service-type elan
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options isid 5000 vlan-id-list 1-3
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options isid 5000 vlan-id-list 5-4094
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options source-bmac 00:00:00:00:00:03

図9:試験の構成図(PBB-EVPN構成)

 

今回は同一のMACアドレスが異なるVLAN且つ異なるサイトに存在する様にテスターの設定を行い、配下のES / VLAN間でフルメッシュの通信を印加しました。全て疎通することを確認した後に、通信をキャプチャすると、VPNを経由するものは同一のI-SIDの中で複数のVLANタグが伝送されている様子を確認できました(図10)。この状態で機器内のMACテーブルを参照すると、単一のI-SID上でVLANを単位として個別のbridge domainが形成され、MACアドレスの学習はVLAN毎に独立して行われていることが窺えます(図11)。


図10:単一のI-SID上で複数のVLANが伝送

 


図11:同一のMACアドレスに対し各VLANで期待通りのエントリが形成

 
また図12は、あるサイト(サイト1)において、リモートのサイト(サイト2)では存在しないネットワーク(VLAN 4)上で発信されたARP通信をキャプチャした結果です。今回の環境では、サイト2のエッジ機器(PE-3)で対象ネットワークを明示的に除外し、VPN経由で通信が行われる機会は排除した状態であるにもかかわらずフラッディングされる通信は配送されていることが窺えます。本構成はVLAN単位でRT-3が生成される形態ではなく、この状態ではBUMトラフィックのプルーニングは行われないことが改めて確認できました。なお各エッジ機器で生成されるRT-3の数はI-SIDに対応した一つだけであり、収容VLAN数の増加によってBGPの経路数が変動しないことを試験の過程で確認しています。


図12:BUMトラフィックの転送:VLAN 4

 
最後にVLAN 2およびVLAN 3を対象として、Designated Forwarderに選出されているPE-1とPE-3に全てのMACエントリが登録された状態で、サイト2からサイト1のES-1およびES-2に対し片方向で通信を印加し、PE-1のES-1収容リンクをダウンさせました。キャプチャ結果およびテスターの受信レートよりリンクダウン前後の通信模様を観察した結果、ES-2宛のVPN通信はPE-1経由で維持され、ES-1宛のVPN通信はES-1のB-MACに対するRT-2の交換後にフラッディングされて疎通する様になりました。VLAN単位で個別のBGP Updateは交換されておらず、Mass Withdrawによって、無効になったMACエントリの削除は切り替えが必要な箇所に限定して行われていることが窺えます。

留意点として、表4に示される今回の設定例では、VLAN単位で個別にbridge domainの指定を行う部位が残されています。このため、主題とした「利用するVLANの増減に応じた設定の変更」および「VLAN数に依存した設定量の増加」は最後まで達成できていない状態となります。一方要求されるVPN関連の動作は実現可能なものであることが確認でき、別途bridge domainに関する実装が要求されることを前提として、本例の試験結果を紹介させて頂きました。

またVLANの重畳で実現した場合、EVPNでは標準的に提供されるVLAN単位のプルーニングやコントロールプレーン経由のMAC学習といった要素は利用されず、機能性はVPLSと似通ってきます。一方でMass Withdrawの様な内容は固有の利点となり、実装が揃えば、設定の簡素化が要求される際も場面に応じてEVPNは有用な選択肢となることが予想されます。
 

今回のまとめ

レイヤ2 VPNの構築および運用では、場面に応じて収容するVLANの単位でbridge domainへの関連付けが要求されます。EVPN環境でこれを集約された事前設定で実現する場合、ルールベースのマッピングやVLANの重畳など、実装の依存性を伴う仕組みが必要となります。

またVLANの重畳によって部分的に実現した場合の例として、PBB-EVPNを用い、単一のI-Component上で複数のVLANを取り扱う構成で実験的に試験を行いました。結果、収容するVLANの数に関わらずBGPの経路数は一定となり、同時に各VLAN間でMACアドレスが重複する環境下において通信の成立が確認できました。この時、他技術と比較した際の利点として、冗長化構成においてMass Withdrawを利用できることが挙げられます。

 

執筆者プロフィール

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

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

イベント/レポート

pagetop