ネットワーク相互接続例~PBB-EVPN~②

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

本コラムでは、異なるOS間が接続される相互接続環境を対象に、具体的な試験結果を交えてネットワークの技術情報を紹介したいと思います。

今回は『PBB-EVPN』を対象とし、後編となる本ページには、下記の情報が含まれています。

●PBB-EVPNの設定例:IOS-XRとJUNOSの相互接続
 -2サイト間のレイヤ2接続:マルチホームサイト*2
●PBB-EVPNの状態確認に便利なshowコマンド

連載インデックス

マルチホーム構成:試験の環境

次いで、図6で示される冗長化トポロジにおいて接続が可能であるか、また障害発生時における挙動に課題が無いか確認します。本試験では、以下の製品を用いて環境を構築しました。

<マルチホーム構成>
●Cisco Systems ASR 9000 Series / IOS-XR 5.3.2
●Juniper Network MX Series / JUNOS 16.1R3.10

最終的に投入された設定情報の抜粋は表2の様になります。

a06
図6:PBB-EVPNの冗長化に関する試験の構成図

 

表2:設定の抜粋(VPN関連)
ASR9000#1
redundancy
 iccp
  group 1
   mlacp node 1
   mlacp system mac 0000.0001.0101
   mlacp system priority 1
   mode singleton
   backbone
    interface GigabitEthernet0/0/0/0
    interface GigabitEthernet0/0/0/1 
interface Bundle-Ether1
 mlacp iccp-group 1
interface Bundle-Ether1.2 l2transport
 encapsulation dot1q 2
interface Bundle-Ether1.3 l2transport
 encapsulation dot1q 3
router bgp 65001
 bgp router-id 10.0.0.10
 address-family l2vpn evpn
 neighbor 10.0.0.15
  remote-as 65001
  update-source Loopback0
  address-family l2vpn evpn
 neighbor 10.0.0.20
  remote-as 65001
  update-source Loopback0
  address-family l2vpn evpn
 neighbor 10.0.0.25
  remote-as 65001
  update-source Loopback0
  address-family l2vpn evpn
evpn
 interface Bundle-Ether1
  ethernet-segment
   identifier system-priority 0 system-id 0300.0000.0001 port-key 0
   load-balancing-mode per-service 
l2vpn
 pbb
  backbone-source-mac 0000.0000.0010
 bridge group BRIDGE-GROUP
  bridge-domain BRIDGE-DOMAIN-B
   pbb core
    evpn evi 1
  bridge-domain BRIDGE-DOMAIN-I-05002
   interface Bundle-Ether1.2
   pbb edge i-sid 5002 core-bridge BRIDGE-DOMAIN-B
  bridge-domain BRIDGE-DOMAIN-I-05003
   interface Bundle-Ether1.3
   pbb edge i-sid 5003 core-bridge BRIDGE-DOMAIN-B
ASR9000#2
redundancy
 iccp
  group 1
   mlacp node 2
   mlacp system mac 0000.0001.0101
   mlacp system priority 1
   mode singleton
   backbone
    interface GigabitEthernet0/0/0/0
    interface GigabitEthernet0/0/0/1
interface Bundle-Ether2
 mlacp iccp-group 1
interface Bundle-Ether2.2 l2transport
 encapsulation dot1q 2
interface Bundle-Ether2.3 l2transport
 encapsulation dot1q 3
router bgp 65001
 bgp router-id 10.0.0.15
 address-family l2vpn evpn
 neighbor 10.0.0.10
  remote-as 65001
  update-source Loopback0
  address-family l2vpn evpn
 neighbor 10.0.0.20
  remote-as 65001
  update-source Loopback0
  address-family l2vpn evpn
 neighbor 10.0.0.25
  remote-as 65001
  update-source Loopback0
  address-family l2vpn evpn
evpn
 interface Bundle-Ether2
  ethernet-segment
   identifier system-priority 0 system-id 0300.0000.0001 port-key 0
   load-balancing-mode per-service
l2vpn
 pbb
  backbone-source-mac 0000.0000.0015
 bridge group BRIDGE-GROUP
  bridge-domain BRIDGE-DOMAIN-B
   pbb core
    evpn evi 1
  bridge-domain BRIDGE-DOMAIN-I-05002
   interface Bundle-Ether2.2
   pbb edge i-sid 5002 core-bridge BRIDGE-DOMAIN-B
  bridge-domain BRIDGE-DOMAIN-I-05003
   interface Bundle-Ether2.3
   pbb edge i-sid 5003 core-bridge BRIDGE-DOMAIN-B
MX#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:00:00:02:00:00:00
set interfaces ae0 esi single-active
set interfaces ae0 esi source-bmac 00:00:00:00:00:02
set interfaces ae0 aggregated-ether-options lacp active
set interfaces ae0 aggregated-ether-options lacp system-priority 1
set interfaces ae0 aggregated-ether-options lacp system-id 00:00:00:02:02:02
set interfaces ae0 unit 2 encapsulation vlan-bridge
set interfaces ae0 unit 2 vlan-id 2
set interfaces ae0 unit 3 encapsulation vlan-bridge
set interfaces ae0 unit 3 vlan-id 3
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 routing-options autonomous-system 65001
set protocols bgp group IBGP type internal
set protocols bgp group IBGP local-address 10.0.0.20
set protocols bgp group IBGP family evpn signaling
set protocols bgp group IBGP neighbor 10.0.0.10
set protocols bgp group IBGP neighbor 10.0.0.15
set protocols bgp group IBGP neighbor 10.0.0.25 
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.20: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 5002
set routing-instances B-COMPONENT protocols evpn extended-isid-list 5003
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 5002
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B isid-list 5003
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 pip0.1
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05002 vlan-id 2
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05002 interface ae0.2
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05003 vlan-id 3
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05003 interface ae0.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 5002 vlan-id-list 2
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options isid 5003 vlan-id-list 3
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options source-bmac 00:00:00:00:00:20
MX#2
set chassis aggregated-devices ethernet device-count 2
set chassis network-services enhanced-ip
set interfaces ae1 flexible-vlan-tagging
set interfaces ae1 encapsulation flexible-ethernet-services
set interfaces ae1 esi 00:03:00:00:00:00:02:00:00:00
set interfaces ae1 esi single-active
set interfaces ae1 esi source-bmac 00:00:00:00:00:02
set interfaces ae1 aggregated-ether-options lacp active
set interfaces ae1 aggregated-ether-options lacp system-priority 1
set interfaces ae1 aggregated-ether-options lacp system-id 00:00:00:02:02:02
set interfaces ae1 unit 2 encapsulation vlan-bridge
set interfaces ae1 unit 2 vlan-id 2
set interfaces ae1 unit 3 encapsulation vlan-bridge
set interfaces ae1 unit 3 vlan-id 3
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 routing-options autonomous-system 65001
set protocols bgp group IBGP type internal
set protocols bgp group IBGP local-address 10.0.0.25
set protocols bgp group IBGP family evpn signaling
set protocols bgp group IBGP neighbor 10.0.0.10
set protocols bgp group IBGP neighbor 10.0.0.15
set protocols bgp group IBGP neighbor 10.0.0.20
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.25: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 5002
set routing-instances B-COMPONENT protocols evpn extended-isid-list 5003
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 5002
set routing-instances B-COMPONENT bridge-domains BRIDGE-DOMAIN-B isid-list 5003
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 pip0.1
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05002 vlan-id 2
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05002 interface ae1.2
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05003 vlan-id 3
set routing-instances I-COMPONENT bridge-domains BRIDGE-DOMAIN-I-05003 interface ae1.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 5002 vlan-id-list 2
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options isid 5003 vlan-id-list 3
set routing-instances I-COMPONENT service-groups SERVICE-GROUP pbb-service-options source-bmac 00:00:00:00:00:25

マルチホーム構成:試験の結果

上記の冗長化構成においても、テスターからのトラフィック印加によって、疎通性を確認することができました。

この時、ASR9000がPEとなるサイト1およびMXがPEとなるサイト2の間で、Designated Forwarder(以下、DF)の選出結果に差が見られました。今回の環境では、サイト1ではI-SID 5002のDFはプライマリのPE・I-SID 5003のDFはセカンダリのPEとなり、対してサイト2ではI-SID 5002 / 5003共にDFはプライマリのPEとなっています(図7)。RFC7623にService Interfaceの記述はありませんが、DF 選出に関する参照先となっているRFC7432の記載と照らし合わせると、前者はVLAN-based service寄り・後者はVLAN-(aware) bundle service寄りの挙動と言えます。

a07
図7:選出されたDF(冗長グループ内のDFはセグメント単位で一意)

 
図8は、今回の冗長化構成において、I-SID 5002にマップされるセグメント内のARPをキャプチャした結果となります。ARPがローカルサイトのもう一方を含めた全PE宛に送信(対角線のPE宛は2ホップするため同一通信が2回観測)されているにも関わらず、VPN伝送後は1つのフレームだけが目的のCEへ到達していることが窺えます。また、CEからPEへの転送においてはFloodingにより両PEへ到達していることになりますが、VPNへの転送は片側のPEからの1回分しか観測されませんでした。これは、『Ingress PEはDFに選出されていないPEは CEから受信したBUMトラフィックをVPNに転送しない』『Egress PEは受信側のサイトでDFに選出されていないPEはIngress PEから受信したBUMトラフィックをPE-CE間リンクに転送しない』というDF Filteringの動作が実現された結果となります。

a08
図8:冗長化構成におけるBUMトラフィックの適切なブロック

  
この挙動はI-SID 5003にマップされたセグメント内の通信においても同様でした。DF Filteringの正常性と同時に、選出ルールがサイト間で異なった状態においても問題無く機能することが確認できたと言えます。

また同じく中継路上のキャプチャにより、印加したUnicastトラフィックは、全てDFを経由して転送されることが確認できました。『CEの送出先となるIngress PEはDFに選出されたPE』『Ingress PEが転送先として選択するEgress PEは対向サイトにてDFに選出されたPE』という状態となり、BUMトラフィックの転送と合わせ、伝送パスがSingle-Active redundancy modeの期待通りとなっていることを確認できました(図9)。

a09
図9:Single-Active Redundancy Mode: IngressおよびEgressのPEは常にDF

 
さらに図8で送信元のB-MACに着目すると、サイト間で挙動の違いがみられました。今回の環境下では、サイト1ではシングルホーム構成と同じB-MACを共用する動作であったことに対し、サイト2ではEthernet Segment(以下、ES)を単位として別途B-MACを設定しそれを利用する形となりました。RFC7623の記述を踏まえると、前者は「shared B-MAC address model」・後者は「dedicated B-MAC address model」と呼ばれる方式になり、どちらも想定された動作となります。互いに異なるB-MACアドレスの割り当て方式を採用している状態となりますが、この状態で疎通することが合わせて確認できました。

また本構成における最後の試験項目として、DF側のPE-CE間リンクに対し、トラフィックを印加した状態でリンクダウン/リンクアップを発生させました。結果、通信は問題無く復旧するケースが確認された一方で、何回か実施する中で、リンクダウンの後に通信断が継続する現象に遭遇しました。

この時の挙動を掘り下げて観察していくと、「サイト1のPE-CE間リンク障害が発生した直後」から「サイト2のPE上で既存MACエントリのエージアウトが発生する、もしくは対向からのトラフィックを受信する」までの間に発生していることが判明しました。RT-2の交換を経てFlushされているはずのMACエントリが残存している点が想定と異なります。次いで、イベント発生時のBGPアップデートに着目しました。図10・図11はこの時のキャプチャ結果となります。

a10
図10:PE-CE間リンクの障害に伴って送信されたRT-2(ASR9000側の送信)

 

a11
図11:PE-CE間リンクの障害に伴って送信されたRT-2(MX側の送信)

 
図10・図11より、RT-2の通知方式に差があることが窺えます。これは前述のB-MAC割り当て方式に関連する箇所であり、また送信内容はそれぞれの方式に沿っていることが確認できました。図12は、RFC7623で該当する記述を抜粋したものです。

a12 
図12:ES障害時におけるモデルごとの挙動の差異

 
PBB-EVPNのSingle-Active redundancy modeでは、RT-2の交換によってPE-CE間のリンク障害を対向のPEに通知し、関連するC-MACのFlushを実現します。この動作においては、送信側だけでなく受信側の対応も必要となります。一つの推察として、今回の環境ではshared B-MAC address modelの通知方法をdedicated B-MAC address modelの対向側が何かしらの経緯で解釈できずにMAC Flushが行われなかった結果、既存のMACエントリが削除されるまで通信断が継続してしまったと考えられます。

今回の構成には含まれていないAliasingなども含め、EVPNの冗長化構成における動作は、ローカルのPEとリモートのPEが協調して動作することによって実現されます。例えばシングルホームのサイトとマルチホームのサイトを接続する場合、ESに基づいた経路の生成はマルチホーム側のPEで行われますが、その経路を受けてリモートのPEを選択する動作はシングルホームサイト側のPEに要求されます。このため、シングルホームのサイトに配置されるPEもマルチホーム機能の一部に対応する必要があります。サイトやESの単位で異なる方式を選択できる点はEVPNの特徴と言えますが、対応機能が異なる可能性のあるPEを配置する場合、ローカル・リモート合わせた関連PE群が必要な動作に対応可能であるかという点に改めて注意が必要となります。

相互接続環境であったとしても必要な対応状況が噛み合えば、もしくはサイト間で共通の方式が選択されれば、今回確認された通信断が継続する現象は解消されると考えられます。なお、RFC7623の中では、どちらか一方の方式を選択することが示されています(図13)。

a13
図13:B-MAC割り当て方式の特徴と選択

 

マルチホーム構成:補足

なおSTPの設定を行わない本構成の状態では、リンクダウンからの復旧に伴いDFが当初のPEに遷移してもCE機器のMACエントリがFlushされず、無効なエントリがエージアウトするまで通信断が継続する現象を確認しました。これはPE-CE間でTCN (Topology Change Notification) が交換できない状態では想定された現象となり、実際にSingle-Active redundancy modeを適用する際には、各PE-CE間接続インタフェースでSTPの設定を行うなどしてTCNを送受信できる様にする必要があります。
 

参考情報

今回の試験において状態確認のためによく使っていたshowコマンドを図14にまとめました。

a14
図14:本試験でよく利用していたshowコマンド

 
各コマンドにおいては、OSのバージョンなどによって、シンタックスや出力情報で差異が発生する可能性にご留意頂ければと思います。
 

まとめ

Cisco Systems社のIOS-XRとJuniper Network社のJUNOSとの相互接続環境においてPBB-EVPNを適用した結果、基本的なレイヤ2の疎通性と共に、以下の動作を確認することができました。
●3つ以上のサイト間接続に起因するループ発生の排除
●同一PE間におけるマルチパス伝送

加えてSingle-Active redundancy modeのマルチホーム構成では、以下の動作が確認できました。
●PE冗長に起因するループおよび重複発生の排除
●DF に追従したingress PEおよびegress PEの選択

確認された設定上の留意点として、以下が挙げられます。
●自動生成が行われる際のRTの整合性
●C-tagおよびB-tagにおけるタギングの有無およびVLAN IDの整合性

最後に、製品間で動作が異なる点として、以下の項目が確認できました。
●DF選出のルール
●Single-Active redundancy modeにおけるB-MACの割り当て方式
 

執筆者プロフィール

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

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

関連記事

RFC 7623 – Provider Backbone Bridging Combined with Ethernet VPN (PBB-EVPN)
https://tools.ietf.org/html/rfc7623

RFC 7432 – BGP MPLS-Based Ethernet VPN
https://tools.ietf.org/html/rfc7432

Implementing IEEE 802.1ah Provider Backbone Bridge
http://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k_r4-3/lxvpn/configuration/guide/lesc43xbook/lesc43pbb.html

MPLS in the SDN Era
https://www.juniper.net/jp/jp/training/jnbooks/oreilly-juniper-library/mpls-sdn-era/
https://books.google.co.jp/books?id=OBsoCwAAQBAJ&hl=ja

イベント/レポート

pagetop