EVPNの仕様と実験的検討②

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

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

連載インデックス

 

bridge domainに対する設定の簡素化:実現例

EVPNでは、従来の技術と同様に、初期の構築時だけでなく運用においても設定作業の発生を考慮する必要があります。典型的には、収容対象となるEthernet Tag(以下、VLAN)を単位としたbridge domainへの関連付けが挙げられ、利用するVLANの追加は往々にして発生することから、これに関する対応方法は検討すべき点としてよく挙がります。また、ネットワークの接続性をサービスとして提供するケースなどでは、サービスの仕様や開通時間に影響する要素となります。

bridge domainの形成に関しては設定の自動化などで対応する他()、例えばVPLSの実装では、VLAN IDに基づいた一括設定やフレーム受信時の動的な生成に対応した製品が存在しています。このような実装では「対象VLANの指定に連動してPseudowireも生成される」もしくは「確立された一組のPseudowire上に複数のVLAN通信が重畳される」といった動作が行われ、少量の事前設定によって、VLAN毎に独立したMAC学習が行われます。

図1は上記の例となるJuniper Network社のMXシリーズを用いた際のVPLS構成です。表1・表2は該当部の設定になります。

表1:設定の抜粋(VPLS構成パターン1:VPN関連))
PE-1
set chassis aggregated-devices ethernet device-count 2
set interfaces ae0 flexible-vlan-tagging
set interfaces ae0 encapsulation flexible-ethernet-services
set interfaces ae0 unit 0 encapsulation vlan-vpls
set interfaces ae0 unit 0 vlan-id-range 1-1000
set routing-options autonomous-system 65001
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.1
set protocols bgp group VPN family l2vpn signaling
set protocols bgp group VPN neighbor 10.0.0.2
set routing-instances VSI-0001 instance-type vpls
set routing-instances VSI-0001 vlan-id all
set routing-instances VSI-0001 interface ae0.0
set routing-instances VSI-0001 route-distinguisher 10.0.0.1:1
set routing-instances VSI-0001 vrf-target target:65001:1
set routing-instances VSI-0001 protocols vpls no-tunnel-services
set routing-instances VSI-0001 protocols vpls site SITE site-identifier 1
PE-2
set chassis aggregated-devices ethernet device-count 2
set interfaces ae0 flexible-vlan-tagging
set interfaces ae0 encapsulation flexible-ethernet-services
set interfaces ae0 unit 0 encapsulation vlan-vpls
set interfaces ae0 unit 0 vlan-id-range 1-1000
set routing-options autonomous-system 65001
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.2
set protocols bgp group VPN family l2vpn signaling
set protocols bgp group VPN neighbor 10.0.0.1
set routing-instances VSI-0001 instance-type vpls
set routing-instances VSI-0001 vlan-id all
set routing-instances VSI-0001 interface ae0.0
set routing-instances VSI-0001 route-distinguisher 10.0.0.2:1
set routing-instances VSI-0001 vrf-target target:65001:1
set routing-instances VSI-0001 protocols vpls no-tunnel-services
set routing-instances VSI-0001 protocols vpls site SITE site-identifier 2
表2:設定の抜粋(VPLS構成パターン2:VPN関連)
PE-1
set chassis aggregated-devices ethernet device-count 2
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-1000
set routing-options autonomous-system 65001
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.1
set protocols bgp group VPN family l2vpn signaling
set protocols bgp group VPN neighbor 10.0.0.2
set routing-instances VSI-0001 instance-type virtual-switch
set routing-instances VSI-0001 interface ae0.0
set routing-instances VSI-0001 route-distinguisher 10.0.0.1:1
set routing-instances VSI-0001 vrf-target target:65001:1
set routing-instances VSI-0001 protocols vpls no-tunnel-services
set routing-instances VSI-0001 protocols vpls site SITE site-identifier 1
set routing-instances VSI-0001 bridge-domains BRIDGE-DOMAIN vlan-id-list 1-1000
PE-2
set chassis aggregated-devices ethernet device-count 2
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-1000
set routing-options autonomous-system 65001
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.2
set protocols bgp group VPN family l2vpn signaling
set protocols bgp group VPN neighbor 10.0.0.1
set routing-instances VSI-0001 instance-type virtual-switch
set routing-instances VSI-0001 interface ae0.0
set routing-instances VSI-0001 route-distinguisher 10.0.0.2:1
set routing-instances VSI-0001 vrf-target target:65001:1
set routing-instances VSI-0001 protocols vpls no-tunnel-services
set routing-instances VSI-0001 protocols vpls site SITE site-identifier 2
set routing-instances VSI-0001 bridge-domains BRIDGE-DOMAIN vlan-id-list 1-1000

図1:試験の構成図(VPLS構成)

 
表1(パターン1)および表2(パターン2)の設定を終えた後に、同一のMACアドレスが異なるVLAN且つ異なるサイト上に複数存在する様にテスターの設定を行いサブネット内のIP通信を印加したところ、両パターンで全ての通信が成立しました。図2はパターン2を対象に通信のキャプチャを行った結果・図3は同じタイミングで取得した機器上のテーブルに関する出力です。各VLAN通信のVPNラベルは同一の値となっていること、また機器上ではMACアドレスの学習はVLAN毎に個別で行われていることが窺えます。本環境では、一組のPseudowire上で複数のVLAN通信がそれぞれ独立した状態で行われていることを確認できました。


図2:単一のVPNラベル上で複数のVLANが伝送

 


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

 
またこれらの構成では、以降のVLAN ID 4から1000までの全VLANに対し、それぞれサブネット内通信が疎通することを別途確認しています。VLAN空間の中で利用する可能性のある部位を事前に全て指定することによって、極端には4094個全てのVLANに対して転送が可能となる様にすれば、収容するVLANが増加した際もエッジ機器には手を加えることなく接続性を提供することができます。接続のポリシーや機器のリソース消費などを踏まえると常に利用可能な手法とは限りませんが、要件に応じて活用すれば、レイヤ2 VPNのVLAN追加における設定作業の発生そのものを排除することが可能になります。

なお、bridge domainの一括設定や動的な生成の可否は、プロトコルではなく機器内部の実装に関わる要素となります。図4はVLAN-awareなレイヤ2 VPNを実現するためのプロトコル要求に関するドキュメントの引用となりますが()、この中でもbridge domainに関わる部分はVendor Specific Implementationの箇所としてスコープ外となっています。特定のInternet-DraftやRFCへの準拠では対応の判断が困難な箇所であるため、利用を検討する場合は製品の対応状況を確認する必要があります。


図4:bridge domainに関して実装の依存性が示唆される例

 
上記の追加試験として、VLAN変換が必要とされるレイヤ2接続の併存パターンを実施しました。図5は今回対象となる変換のルールを表したもので、表3はその際の設定となります。

表3:設定の抜粋(VLAN変換を伴うVPLS構成:VPN関連)
PE-1
set chassis aggregated-devices ethernet device-count 2
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 8
set interfaces ae0 unit 0 family bridge vlan-id-list 10-1000
set interfaces ae0 unit 0 family bridge vlan-id-list 2000
set interfaces ae0 unit 0 family bridge vlan-rewrite translate 6 2000
set interfaces ae0 unit 1 encapsulation vlan-vpls
set interfaces ae0 unit 1 vlan-id 4
set routing-options autonomous-system 65001
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.1
set protocols bgp group VPN family l2vpn signaling
set protocols bgp group VPN neighbor 10.0.0.2
set routing-instances VSI-0001 instance-type virtual-switch
set routing-instances VSI-0001 interface ae0.0
set routing-instances VSI-0001 route-distinguisher 10.0.0.1:1
set routing-instances VSI-0001 vrf-target target:65001:1
set routing-instances VSI-0001 protocols vpls no-tunnel-services
set routing-instances VSI-0001 protocols vpls site SITE site-identifier 1
set routing-instances VSI-0001 bridge-domains BRIDGE-DOMAIN vlan-id-list 1-1000
set routing-instances VSI-0001 bridge-domains BRIDGE-DOMAIN vlan-id-list 2000
set routing-instances VSI-5001 instance-type vpls
set routing-instances VSI-5001 vlan-id 2000
set routing-instances VSI-5001 interface ae0.1
set routing-instances VSI-5001 route-distinguisher 10.0.0.1:5001
set routing-instances VSI-5001 vrf-target target:65001:5001
set routing-instances VSI-5001 protocols vpls no-tunnel-services
set routing-instances VSI-5001 protocols vpls site SITE site-identifier 1
PE-2
set chassis aggregated-devices ethernet device-count 2
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 8
set interfaces ae0 unit 0 family bridge vlan-id-list 10-1000
set interfaces ae0 unit 0 family bridge vlan-id-list 2000
set interfaces ae0 unit 0 family bridge vlan-rewrite translate 7 2000
set interfaces ae0 unit 0 family bridge vlan-rewrite translate 9 8
set interfaces ae0 unit 1 encapsulation vlan-vpls
set interfaces ae0 unit 1 vlan-id 5
set routing-options autonomous-system 65001
set protocols bgp group VPN type internal
set protocols bgp group VPN local-address 10.0.0.2
set protocols bgp group VPN family l2vpn signaling
set protocols bgp group VPN neighbor 10.0.0.1
set routing-instances VSI-0001 instance-type virtual-switch
set routing-instances VSI-0001 interface ae0.0
set routing-instances VSI-0001 route-distinguisher 10.0.0.2:1
set routing-instances VSI-0001 vrf-target target:65001:1
set routing-instances VSI-0001 protocols vpls no-tunnel-services
set routing-instances VSI-0001 protocols vpls site SITE site-identifier 2
set routing-instances VSI-0001 bridge-domains BRIDGE-DOMAIN vlan-id-list 1-1000
set routing-instances VSI-0001 bridge-domains BRIDGE-DOMAIN vlan-id-list 2000
set routing-instances VSI-5001 instance-type vpls
set routing-instances VSI-5001 vlan-id 2000
set routing-instances VSI-5001 interface ae0.1
set routing-instances VSI-5001 route-distinguisher 10.0.0.2:5001
set routing-instances VSI-5001 vrf-target target:65001:5001
set routing-instances VSI-5001 protocols vpls no-tunnel-services
set routing-instances VSI-5001 protocols vpls site SITE site-identifier 2

図5:本構成で実現するVLANマッピング

 
こちらは前項の試験内容であるVLAN IDに基づいたbroadcast domainの分離を基本とした状態で、異なるVLAN間を同一セグメントとして接続したい部位に関しては個別で指定を行っている格好です。異なるVLAN間でブリッジングが行われるケースにおいて転送フレームがPseudowireを通過する際には、Attachment CircuitのVLAN IDではなく、別途指定したVLAN情報でNormalizedされます。このNormalized VLANは、VLAN空間の中で各PEに跨って一意に利用できる部位が残されていればVLAN変換を行わない接続を基本的なポリシーとするVSI (Virtual Switch Instance) 上に併存させることが可能であり(本例におけるVSI-0001のVLAN 8およびVLAN 2000)、VSIを分離すればその間でVLAN IDが重複することも許容されます(VSI-0001のVLAN 2000に対するVSI-5002のVLAN 2000)。

図5のルールに従って通信を印加した結果、全て疎通することが確認できました。図6はその際のキャプチャ結果となり、必要とされるVLAN変換を実行していることが窺えます。加えてVLAN ID 10から1000までの全VLANに対しそれぞれサブネット内通信が疎通することを別途確認しており、VLAN IDが維持される範囲に関しては集約した指定を行った状態で、VLAN変換を伴うレイヤ2接続と併存できる結果となりました。


図6:VLAN変換を伴うレイヤ2 VPN接続

 
補足として、上記のようなVLAN変換時の挙動はEVPN-MPLSにおいても同様であり、各bridge domainに対して異なるVPN labelが割り当てられるVLAN-based serviceの場合データ転送時のタグ付与はMUSTとなっていません。一方VLAN変換を伴うVLAN-aware bundle serviceでは、シグナリングの際にNormalized Ethernet Tag がEthernet Tag IDにエンコーディングされ、転送時はこの値を基にVLANタグの編集とbridge domainの識別が行われます()。
 

bridge domainに対する設定の簡素化:bridge domainの分離省略

他に設定の簡素化が期待できる方法として、収容する複数のVLANを一面のbridge domainに集約するアプローチもあります。EVPNにおいてはVLAN bundle serviceと呼ばれる形態で、VLAN間でMACアドレスの重複を考慮する必要が無くまた受信したフレームのVLAN IDを変更する必要が無い環境では、適合する方式です。使われるbridge domainは一面となるため機器のリソース消費を抑制できる側面もあり、特に利用VLANに制約の無いテナントを多数収容する環境などでは、先の条件を利用の前提として提供することも選択肢の一つです。

一方、VLAN単位でアドレス空間の独立性を保証する要求がある際には、VLANとbridge domainが1対1でマッピングされる形態を採用する必要があります。この要求を満たすと同時に設定の簡素化を実現する場合、EVPNでは仕様に依存した特有のハードルが存在します。以降ではEVPN環境において、「利用するVLANの追加に応じた設定の変更」および「VLAN数に依存した設定量の増加」を排除した状態で、VLAN単位で個別のbridge domainを形成する方法について掘り下げていきます。

(後編へ続く)
 

執筆者プロフィール

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

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

イベント/レポート

pagetop