今回は過去3回やっているvJunos-Switchを使ったIP-Closなネットワークをまた検証したいと思います。
ちなみに過去3回の記事はこちらです。
yokohama539.hatenablog.com
yokohama539.hatenablog.com
yokohama539.hatenablog.com
今回はMAC-VRF形式でのEVPN-VXLANを構築したいと思います。
「MAC-VRF形式」とはJunosにおいてEVPN-VXLANを設定する際、新しいconfig形式となるcommand群になります。
Junos 20.4R1以降より追加され、旧形式よりも各Service Type(Vlan-Based、Vlan-Aware、Vlan-Bundle)のconifgが統一されており、大変わかりやすくなっています。
過去3回では旧形式のconfigで構築していたので、今回はMAC-VRF形式のconfigでちゃんと機能するか検証したいと思います。
- 1. EVPN-VXLAN 構成
- 2. EVPN-VXLAN 設定
- 3. EVPN-VXLAN 正常時動作確認
- 4. EVPN-VXLAN 経路切り替わり動作確認その1 (vRouter側 通信断)
- 5. EVPN-VXLAN 経路切り替わり動作確認その2 (spine側 通信断)
- 6. 参考資料
1. EVPN-VXLAN 構成
基本的には過去構築したのと同様のトポロジーを組みます。
Multihomingでの経路切り替え動作まで確かめたいので、leafは3台構成とします。
物理構成は以下になります。

2. EVPN-VXLAN 設定
ではまず(IP-Fabric部分の)各機器のLoopbackアドレスを学習するUnderlayを構築していきます。
とは言っても過去検証したトポロジーと一緒なのでサラッと論理構成とconfigを載せます。

//spine-01 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.0/31 set interfaces ge-0/0/1 unit 0 family inet address 10.1.1.2/31 set interfaces ge-0/0/2 unit 0 family inet address 10.1.1.4/31 set interfaces lo0 unit 0 family inet address 172.16.0.1/32 set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 from route-filter 172.16.0.0/24 prefix-length-range /32-/32 set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 then accept set policy-options policy-statement EXPORT_BGP_UNDERLAY term 9999 then reject set routing-options router-id 172.16.0.1 set routing-options autonomous-system 4200000001 set protocols bgp group UNDERLAY type external set protocols bgp group UNDERLAY family inet unicast set protocols bgp group UNDERLAY export EXPORT_BGP_UNDERLAY set protocols bgp group UNDERLAY neighbor 10.1.1.1 peer-as 4200001001 set protocols bgp group UNDERLAY neighbor 10.1.1.3 peer-as 4200001002 set protocols bgp group UNDERLAY neighbor 10.1.1.5 peer-as 4200001003
//leaf-01 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/31 set interfaces lo0 unit 0 family inet address 172.16.0.11/32 set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 from protocol direct set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 from route-filter 172.16.0.11/32 exact set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 then accept set policy-options policy-statement EXPORT_BGP_UNDERLAY term 9999 then reject set routing-options router-id 172.16.0.11 set routing-options autonomous-system 4200001001 set protocols bgp group UNDERLAY type external set protocols bgp group UNDERLAY family inet unicast set protocols bgp group UNDERLAY export EXPORT_BGP_UNDERLAY set protocols bgp group UNDERLAY neighbor 10.1.1.0 peer-as 4200000001
//leaf-02 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.3/31 set interfaces lo0 unit 0 family inet address 172.16.0.12/32 set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 from protocol direct set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 from route-filter 172.16.0.12/32 exact set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 then accept set policy-options policy-statement EXPORT_BGP_UNDERLAY term 9999 then reject set routing-options router-id 172.16.0.12 set routing-options autonomous-system 4200001002 set protocols bgp group UNDERLAY type external set protocols bgp group UNDERLAY family inet unicast set protocols bgp group UNDERLAY export EXPORT_BGP_UNDERLAY set protocols bgp group UNDERLAY neighbor 10.1.1.2 peer-as 4200000001
//leaf-03 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.5/31 set interfaces lo0 unit 0 family inet address 172.16.0.13/32 set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 from protocol direct set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 from route-filter 172.16.0.13/32 exact set policy-options policy-statement EXPORT_BGP_UNDERLAY term 0011 then accept set policy-options policy-statement EXPORT_BGP_UNDERLAY term 9999 then reject set routing-options router-id 172.16.0.13 set routing-options autonomous-system 4200001003 set protocols bgp group UNDERLAY type external set protocols bgp group UNDERLAY family inet unicast set protocols bgp group UNDERLAY export EXPORT_BGP_UNDERLAY set protocols bgp group UNDERLAY neighbor 10.1.1.4 peer-as 4200000001
続いて各機器間でEVPN Routeを学習するOverlay Networkを構築します。
ここも過去検証したトポロジーと一緒なのでサラッと論理構成とconfigを載せます。

//spine-01 set protocols bgp group OVERLAY type external set protocols bgp group OVERLAY multihop no-nexthop-change set protocols bgp group OVERLAY local-address 172.16.0.1 set protocols bgp group OVERLAY family evpn signaling set protocols bgp group OVERLAY neighbor 172.16.0.11 peer-as 4200001001 set protocols bgp group OVERLAY neighbor 172.16.0.12 peer-as 4200001002 set protocols bgp group OVERLAY neighbor 172.16.0.13 peer-as 4200001003
//leaf-01 set protocols bgp group OVERLAY type external set protocols bgp group OVERLAY multihop set protocols bgp group OVERLAY local-address 172.16.0.11 set protocols bgp group OVERLAY family evpn signaling set protocols bgp group OVERLAY peer-as 4200000001 set protocols bgp group OVERLAY neighbor 172.16.0.1
//leaf-02 set protocols bgp group OVERLAY type external set protocols bgp group OVERLAY multihop set protocols bgp group OVERLAY local-address 172.16.0.12 set protocols bgp group OVERLAY family evpn signaling set protocols bgp group OVERLAY peer-as 4200000001 set protocols bgp group OVERLAY neighbor 172.16.0.1
//leaf-03 set protocols bgp group OVERLAY type external set protocols bgp group OVERLAY multihop set protocols bgp group OVERLAY local-address 172.16.0.13 set protocols bgp group OVERLAY family evpn signaling set protocols bgp group OVERLAY peer-as 4200000001 set protocols bgp group OVERLAY neighbor 172.16.0.1
UnderlayおよびOverlayでBGP Peeringできているか確認します。
//leaf-01
lab@spine-01# run show bgp summary | no-more
<snip>
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet.0
3 3 0 0 0 0
bgp.evpn.0
9 9 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.1.1.1 4200001001 78 77 0 0 33:32 Establ
inet.0: 1/1/1/0
10.1.1.3 4200001002 79 78 0 0 33:35 Establ
inet.0: 1/1/1/0
10.1.1.5 4200001003 78 77 0 0 33:38 Establ
inet.0: 1/1/1/0
172.16.0.11 4200001001 78 87 0 0 33:24 Establ
bgp.evpn.0: 1/1/1/0
172.16.0.12 4200001002 83 81 0 0 33:28 Establ
bgp.evpn.0: 4/4/4/0
172.16.0.13 4200001003 84 82 0 0 33:36 Establ
bgp.evpn.0: 4/4/4/0//leaf-01
lab@leaf-01# run show bgp summary | no-more
<snip>
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet.0
3 3 0 0 0 0
bgp.evpn.0
8 8 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.1.1.0 4200000001 83 81 0 0 35:26 Establ
inet.0: 3/3/3/0
172.16.0.1 4200000001 93 81 0 0 35:18 Establ
bgp.evpn.0: 8/8/8/0//leaf-02
lab@leaf-02# run show bgp summary | no-more
<snip>
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet.0
3 3 0 0 0 0
bgp.evpn.0
5 5 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.1.1.2 4200000001 92 90 0 0 39:29 Establ
inet.0: 3/3/3/0
172.16.0.1 4200000001 96 95 0 0 39:23 Establ
bgp.evpn.0: 5/5/5/0//leaf-03
lab@leaf-03# run show bgp summary | no-more
<snip>
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet.0
3 3 0 0 0 0
bgp.evpn.0
5 5 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.1.1.4 4200000001 95 93 0 0 40:46 Establ
inet.0: 3/3/3/0
172.16.0.1 4200000001 99 98 0 0 40:44 Establ
bgp.evpn.0: 5/5/5/0
そして今回のキモとなるVXLAN周りの設定を行います。
まずは論理構成を載せます。構成自体は過去やったのと一緒です。
leaf-01はSingle-home、leaf-02とleaf-03はMulti-home構成とします。

で具体的なconfigですが、今回、Service TypeはVlan-Basedとします。
EVPNに関わるcommandは全てrouting-instance配下となります。
旧方式の場合は、Service Typeによってinstance-typeが"default-switch"だったり"evpn"だったりでした。
が、MAC-VRF形式はinstance-typeは"mac-vrf"に統一されているのでわかりやすいです!
//leaf-01 set routing-instances MAC-VRF-VLAN0012 instance-type mac-vrf set routing-instances MAC-VRF-VLAN0012 protocols evpn encapsulation vxlan set routing-instances MAC-VRF-VLAN0012 protocols evpn extended-vni-list 10012 set routing-instances MAC-VRF-VLAN0012 vtep-source-interface lo0.0 set routing-instances MAC-VRF-VLAN0012 service-type vlan-based set routing-instances MAC-VRF-VLAN0012 interface ge-0/0/6.0 set routing-instances MAC-VRF-VLAN0012 route-distinguisher 172.16.0.11:1 set routing-instances MAC-VRF-VLAN0012 vrf-target target:539:539 set routing-instances MAC-VRF-VLAN0012 vlans VLAN0012 vlan-id 12 set routing-instances MAC-VRF-VLAN0012 vlans VLAN0012 vxlan vni 10012 set interfaces ge-0/0/6 unit 0 family ethernet-switching interface-mode trunk set interfaces ge-0/0/6 unit 0 family ethernet-switching vlan members all
//leaf-02 set chassis aggregated-devices ethernet device-count 1 set interfaces ge-0/0/6 gigether-options 802.3ad ae1 set interfaces ae1 esi 00:01:02:03:04:05:06:07:08:09 set interfaces ae1 esi all-active set interfaces ae1 esi df-election-type preference value 150 set interfaces ae1 aggregated-ether-options lacp active set interfaces ae1 aggregated-ether-options lacp system-id 00:00:00:00:00:12 set interfaces ae1 unit 0 family ethernet-switching interface-mode trunk set interfaces ae1 unit 0 family ethernet-switching vlan members all set routing-instances MAC-VRF-VLAN0012 instance-type mac-vrf set routing-instances MAC-VRF-VLAN0012 protocols evpn encapsulation vxlan set routing-instances MAC-VRF-VLAN0012 protocols evpn extended-vni-list 10012 set routing-instances MAC-VRF-VLAN0012 vtep-source-interface lo0.0 set routing-instances MAC-VRF-VLAN0012 service-type vlan-based set routing-instances MAC-VRF-VLAN0012 interface ae1.0 set routing-instances MAC-VRF-VLAN0012 route-distinguisher 172.16.0.12:1 set routing-instances MAC-VRF-VLAN0012 vrf-target target:539:539 set routing-instances MAC-VRF-VLAN0012 vlans VLAN0012 vlan-id 12 set routing-instances MAC-VRF-VLAN0012 vlans VLAN0012 vxlan vni 10012
//leaf-03 set chassis aggregated-devices ethernet device-count 1 set interfaces ge-0/0/6 gigether-options 802.3ad ae1 set interfaces ae1 esi 00:01:02:03:04:05:06:07:08:09 set interfaces ae1 esi all-active set interfaces ae1 esi df-election-type preference value 100 set interfaces ae1 aggregated-ether-options lacp active set interfaces ae1 aggregated-ether-options lacp system-id 00:00:00:00:00:12 set interfaces ae1 unit 0 family ethernet-switching interface-mode trunk set interfaces ae1 unit 0 family ethernet-switching vlan members all set routing-instances MAC-VRF-VLAN0012 instance-type mac-vrf set routing-instances MAC-VRF-VLAN0012 protocols evpn encapsulation vxlan set routing-instances MAC-VRF-VLAN0012 protocols evpn extended-vni-list 10012 set routing-instances MAC-VRF-VLAN0012 vtep-source-interface lo0.0 set routing-instances MAC-VRF-VLAN0012 service-type vlan-based set routing-instances MAC-VRF-VLAN0012 interface ae1.0 set routing-instances MAC-VRF-VLAN0012 route-distinguisher 172.16.0.13:1 set routing-instances MAC-VRF-VLAN0012 vrf-target target:539:539 set routing-instances MAC-VRF-VLAN0012 vlans VLAN0012 vlan-id 12 set routing-instances MAC-VRF-VLAN0012 vlans VLAN0012 vxlan vni 10012
//vRouter-01 set interfaces ge-0/0/0 vlan-tagging set interfaces ge-0/0/0 unit 0 vlan-id 12 set interfaces ge-0/0/0 unit 0 family inet address 12.12.12.1/24
//vRouter-02 set chassis aggregated-devices ethernet device-count 1 set interfaces ge-0/0/0 gigether-options 802.3ad ae1 set interfaces ge-0/0/1 gigether-options 802.3ad ae1 set interfaces ae1 vlan-tagging set interfaces ae1 aggregated-ether-options lacp active set interfaces ae1 unit 0 vlan-id 12 set interfaces ae1 unit 0 family inet address 12.12.12.2/24
これでconfig投入は完了です。
3. EVPN-VXLAN 正常時動作確認
動作確認をしていきます。
まず、MP-BGP(bgp.evpn.0テーブル)でEVPN Route情報が学習されているか確認します。
leaf-02(172.16.0.12)とleaf-03(172.16.0.13)についてはRoute-Type1と4のentryが存在するか確認します。
(Routing Table entryの出力フォーマットの細かい見方はその1で説明してます)
//spine-01 lab@spine-01# run show route table bgp.evpn.0 | match :172.16.0.1 1:172.16.0.12:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.12:1::010203040506070809::0/192 AD/EVI 1:172.16.0.13:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.13:1::010203040506070809::0/192 AD/EVI 3:172.16.0.11:1::0::172.16.0.11/248 IM 3:172.16.0.12:1::0::172.16.0.12/248 IM 3:172.16.0.13:1::0::172.16.0.13/248 IM 4:172.16.0.12:0::010203040506070809:172.16.0.12/296 ES 4:172.16.0.13:0::010203040506070809:172.16.0.13/296 ES
//leaf-01 lab@leaf-01# run show route table bgp.evpn.0 | match :172.16.0.1 1:172.16.0.12:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.12:1::010203040506070809::0/192 AD/EVI 1:172.16.0.13:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.13:1::010203040506070809::0/192 AD/EVI 3:172.16.0.11:1::0::172.16.0.11/248 IM 3:172.16.0.12:1::0::172.16.0.12/248 IM 3:172.16.0.13:1::0::172.16.0.13/248 IM 4:172.16.0.12:0::010203040506070809:172.16.0.12/296 ES 4:172.16.0.13:0::010203040506070809:172.16.0.13/296 ES
//leaf-02 lab@leaf-02# run show route table bgp.evpn.0 | match :172.16.0.1 1:172.16.0.12:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.12:1::010203040506070809::0/192 AD/EVI 1:172.16.0.13:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.13:1::010203040506070809::0/192 AD/EVI 3:172.16.0.11:1::0::172.16.0.11/248 IM 3:172.16.0.12:1::0::172.16.0.12/248 IM 3:172.16.0.13:1::0::172.16.0.13/248 IM 4:172.16.0.12:0::010203040506070809:172.16.0.12/296 ES 4:172.16.0.13:0::010203040506070809:172.16.0.13/296 ES
//leaf-03 lab@leaf-03# run show route table bgp.evpn.0 | match :172.16.0.1 1:172.16.0.12:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.12:1::010203040506070809::0/192 AD/EVI 1:172.16.0.13:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.13:1::010203040506070809::0/192 AD/EVI 3:172.16.0.11:1::0::172.16.0.11/248 IM 3:172.16.0.12:1::0::172.16.0.12/248 IM 3:172.16.0.13:1::0::172.16.0.13/248 IM 4:172.16.0.12:0::010203040506070809:172.16.0.12/296 ES 4:172.16.0.13:0::010203040506070809:172.16.0.13/296 ES
各機器、EVPN Routeを学習していますね。
続いてVXLAN周りを確認します。
まず、各leafにてVTEPが検出できているか確認します。
showコマンドも20.4R1よりMAC-VRF形式に対応したcommandが追加されています。
なので、過去の検証で行った確認コマンドと少し異なります。
//leaf-01
lab@leaf-01# run show mac-vrf forwarding vxlan-tunnel-end-point remote
Logical System Name Id SVTEP-IP IFL L3-Idx SVTEP-Mode ELP-SVTEP-IP
<default> 0 172.16.0.11 lo0.0 0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.12 MAC-VRF-VLAN0012 346 vtep.32770 593 RNVE
VNID MC-Group-IP
10012 0.0.0.0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.13 MAC-VRF-VLAN0012 345 vtep.32769 589 RNVE
VNID MC-Group-IP
10012 0.0.0.0//leaf-02
lab@leaf-02# run show mac-vrf forwarding vxlan-tunnel-end-point remote
Logical System Name Id SVTEP-IP IFL L3-Idx SVTEP-Mode ELP-SVTEP-IP
<default> 0 172.16.0.12 lo0.0 0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.11 MAC-VRF-VLAN0012 347 vtep.32770 587 RNVE
VNID MC-Group-IP
10012 0.0.0.0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.13 MAC-VRF-VLAN0012 346 vtep.32769 586 RNVE
VNID MC-Group-IP
10012 0.0.0.0//leaf-03
lab@leaf-03# run show mac-vrf forwarding vxlan-tunnel-end-point remote
Logical System Name Id SVTEP-IP IFL L3-Idx SVTEP-Mode ELP-SVTEP-IP
<default> 0 172.16.0.13 lo0.0 0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.11 MAC-VRF-VLAN0012 346 vtep.32769 586 RNVE
VNID MC-Group-IP
10012 0.0.0.0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.12 MAC-VRF-VLAN0012 347 vtep.32770 592 RNVE
VNID MC-Group-IP
10012 0.0.0.0各leafでVTEPが検出できてますね。
次にleaf-02とleaf-03でMultihoming構成となっているか確認します。
//leaf-02
lab@leaf-02# run show mac-vrf routing instance MAC-VRF-VLAN0012 extensive | no-more
Instance: MAC-VRF-VLAN0012
<snip>
Number of ethernet segments: 1
ESI: 00:01:02:03:04:05:06:07:08:09
Status: Resolved by IFL ae1.0
Local interface: ae1.0, Status: Up/Forwarding
Number of remote PEs connected: 1
Remote-PE MAC-label Aliasing-label Mode
172.16.0.13 10012 10012 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.12, Preference: 150
Backup forwarder: 172.16.0.13, Preference: 100
Last designated forwarder update: Apr 14 00:09:02
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled//leaf-03
lab@leaf-03# run show mac-vrf routing instance MAC-VRF-VLAN0012 extensive | no-more
<snip>
Number of ethernet segments: 1
ESI: 00:01:02:03:04:05:06:07:08:09
Status: Resolved by IFL ae1.0
Local interface: ae1.0, Status: Up/Forwarding
Number of remote PEs connected: 1
Remote-PE MAC-label Aliasing-label Mode
172.16.0.12 10012 10012 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.12, Preference: 150
Backup forwarder: 172.16.0.13, Preference: 100
Last designated forwarder update: Apr 14 00:09:05
Router-ID: 172.16.0.13
Source VTEP interface IP: 172.16.0.13
SMET Forwarding: Disabledleaf-02、leaf-03ともにDF(Designated forwarder)、Backup forwarderが選出されてますね。
ではvRouter間で通信できるかPingを飛ばします。
//vRouter-01 lab@vRouter-01# run ping 12.12.12.2 PING 12.12.12.2 (12.12.12.2): 56 data bytes 64 bytes from 12.12.12.2: icmp_seq=0 ttl=64 time=21.779 ms 64 bytes from 12.12.12.2: icmp_seq=1 ttl=64 time=4.719 ms 64 bytes from 12.12.12.2: icmp_seq=2 ttl=64 time=5.994 ms
無事にPingが飛びました!!
一応、パケットキャプチャーをして中身を見ます。

ちゃんとEthernet Frameがencapされてますね。
4. EVPN-VXLAN 経路切り替わり動作確認その1 (vRouter側 通信断)
では次にMultihomigの確認として、その2で行ったリンク障害が発生してもホスト間の通信は継続される動作を見たいと思います。
まず、leaf-02とvRouter-02間のリンクをダウンさせてみます。
リンクダウン契機でDFがleaf-2となり、vRouter間の通信が継続されるか確認します。
概要はこんな感じです。

ではleaf-02のge-0/0/6をdisableにします。show | compareで振り返らずcommitします。
(既にその2で確認したので最低限の確認をして、切り替わるかだけ見ます)
//leaf-02 [edit] lab@leaf-02# set interfaces ge-0/0/6 disable [edit] lab@leaf-02# commit commit complete [edit] lab@leaf-02# run show interfaces ge-0/0/6 Physical interface: ge-0/0/6, Administratively down, Physical link is Down <snip>
では確認していきます。
まず、DF選出状況を確認します。
//leaf-02
lab@leaf-02# run show mac-vrf routing instance MAC-VRF-VLAN0012 extensive | no-more
<snip>
Number of ethernet segments: 1
ESI: 00:01:02:03:04:05:06:07:08:09
Status: Resolved
Local interface: ae1.0, Status: Down
Number of remote PEs connected: 1
Remote-PE MAC-label Aliasing-label Mode
172.16.0.13 10012 10012 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.13, Preference: 100
Last designated forwarder update: Apr 16 23:43:34
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled//leaf-03
lab@leaf-03# run show mac-vrf routing instance MAC-VRF-VLAN0012 extensive | no-more
<snip>
Number of ethernet segments: 1
ESI: 00:01:02:03:04:05:06:07:08:09
Status: Resolved by IFL ae1.0
Local interface: ae1.0, Status: Up/Forwarding
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.13, Preference: 100
Last designated forwarder update: Apr 16 23:43:34
Router-ID: 172.16.0.13
Source VTEP interface IP: 172.16.0.13
SMET Forwarding: Disabledleaf-02とleaf-03にて、leaf-03がDFに昇格されているのが確認できます。
また、leaf-02にてLocal InterfaceがDownとなっており、検知されているのが確認できます。
併せて、leaf-01でVTEPマッピング状況を確認します。
//leaf-01
lab@leaf-01# run show mac-vrf forwarding vxlan-tunnel-end-point remote
Logical System Name Id SVTEP-IP IFL L3-Idx SVTEP-Mode ELP-SVTEP-IP
<default> 0 172.16.0.11 lo0.0 0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.13 MAC-VRF-VLAN0012 345 vtep.32769 589 RNVE
VNID MC-Group-IP
10012 0.0.0.0リンクダウン契機にてマッピングされているVTEPがleaf-03のみになりました。
なので、leaf-01から通信する際はleaf-03のみの経路になります。
この間、vRouter-01とvRouter-02間でPingを飛ばしてましたが、timeoutはありませんでしたので、速やかに経路収束は行われてそうですね。
ちなみにspine-01のbgp.evpn.0テーブルを見るとleaf-02のEVPN Route情報はキレイに無くなってます。
(x:172.16.0.12:~の経路情報が全くない)
//spine-01 lab@spine-01# run show route table bgp.evpn.0 | match :172.16.0.1 1:172.16.0.13:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.13:1::010203040506070809::0/192 AD/EVI 2:172.16.0.11:1::0::50:01:00:03:00:01/304 MAC/IP 2:172.16.0.13:1::0::2c:6b:f5:c3:2e:c0/304 MAC/IP 2:172.16.0.11:1::0::50:01:00:03:00:01::12.12.12.1/304 MAC/IP 3:172.16.0.11:1::0::172.16.0.11/248 IM 3:172.16.0.13:1::0::172.16.0.13/248 IM 4:172.16.0.13:0::010203040506070809:172.16.0.13/296 ES
細かい動作確認は省略しますが、この後、leaf-02のge-0/0/6にてdisableを削除するとleaf-02がDFへ戻りました。
5. EVPN-VXLAN 経路切り替わり動作確認その2 (spine側 通信断)
最後にCore Isolation機能を確認します。機能の説明はその2に書いてあります。
今回はspine-01とleaf-02間でBGP Peer Down状態にして動作を確認したいと思います。
概要はこんな感じです。

ではleaf-02にて、Overlayでのspine-01とのPeerをdownします。show | compareで振り返らずcommitします。
(こちらも既にその2で確認したので最低限の確認をして、切り替わるかだけ見ます)
//leaf-02
[edit]
lab@leaf-02# deactivate protocols bgp group OVERLAY neighbor 172.16.0.1
[edit]
lab@leaf-02# commit
commit complete
[edit]
lab@leaf-02# run show bgp summary
Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 2 Peers: 3 Down peers: 2
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet.0
3 3 0 0 0 0
bgp.evpn.0
0 0 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.1.1.2 4200000001 74 71 0 0 31:16 Establ
inet.0: 3/3/3/0
//172.16.0.1のPeerがなくなっている。//spine-01 lab@spine-01# run show bgp summary | grep 172.16.0.12 172.16.0.12 4200001002 0 0 0 1 2:04 Active
Peer down状態になりました。
では確認していきます。
まず、leaf-02とvRouter-02間のae1インターフェイス状態を確認します。
//leaf-02
lab@leaf-02# run show lacp interfaces ae1 extensive | no-more
Aggregated interface: ae1
LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
ge-0/0/6 CDN Actor No No No No No Yes Fast Active
ge-0/0/6 CDN Partner No No No No Yes Yes Fast Active
LACP protocol: Receive State Transmit State Mux State
ge-0/0/6 Current Fast periodic Waiting
LACP info: Role System System Port Port Port
priority identifier priority number key
ge-0/0/6 Actor 127 00:00:00:00:00:12 127 1 2
ge-0/0/6 Partner 127 2c:6b:f5:c3:2e:c0 127 1 2//vRouter-02
lab@vRouter-02# run show lacp interfaces ae1 extensive | no-more
Aggregated interface: ae1
LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
ge-0/0/0 Actor No No No No Yes Yes Fast Active
ge-0/0/0 Partner No No No No No Yes Fast Active
ge-0/0/1 Actor No No Yes Yes Yes Yes Fast Active
ge-0/0/1 Partner No No Yes Yes Yes Yes Fast Active
LACP protocol: Receive State Transmit State Mux State
ge-0/0/0 Current Fast periodic Attached
ge-0/0/1 Current Fast periodic Collecting distributing
LACP info: Role System System Port Port Port
priority identifier priority number key
ge-0/0/0 Actor 127 2c:6b:f5:c3:2e:c0 127 1 2
ge-0/0/0 Partner 127 00:00:00:00:00:12 127 1 2
ge-0/0/1 Actor 127 2c:6b:f5:c3:2e:c0 127 2 2
ge-0/0/1 Partner 127 00:00:00:00:00:12 127 1 2leaf-02側のstateが「Waiting」となり、vRouter-02側のge-0/0/0のLAGがダウンしているのが確認できます。
続いてDF選出状況やVTEPマッピング状況を見ていきましょう。
//leaf-02
lab@leaf-02# run show mac-vrf routing instance MAC-VRF-VLAN0012 extensive | no-more
<snip>
Number of ethernet segments: 1
ESI: 00:01:02:03:04:05:06:07:08:09
Status: Resolved
Local interface: ae1.0, Status: Down
DF Election Algorithm: Preference based
Designated forwarder: DF not elected yet
Last designated forwarder update: Apr 17 00:08:16
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled//leaf-03
lab@leaf-03# run show mac-vrf routing instance MAC-VRF-VLAN0012 extensive | no-more
<snip>
Number of ethernet segments: 1
ESI: 00:01:02:03:04:05:06:07:08:09
Status: Resolved by IFL ae1.0
Local interface: ae1.0, Status: Up/Forwarding
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.13, Preference: 100
Last designated forwarder update: Apr 17 00:08:16
Router-ID: 172.16.0.13
Source VTEP interface IP: 172.16.0.13
SMET Forwarding: Disabled//leaf-01
lab@leaf-01# run show mac-vrf forwarding vxlan-tunnel-end-point remote
Logical System Name Id SVTEP-IP IFL L3-Idx SVTEP-Mode ELP-SVTEP-IP
<default> 0 172.16.0.11 lo0.0 0
RVTEP-IP L2-RTT IFL-Idx Interface NH-Id RVTEP-Mode ELP-IP Flags
172.16.0.13 MAC-VRF-VLAN0012 345 vtep.32769 589 RNVE
VNID MC-Group-IP
10012 0.0.0.0spine-01から見てleaf-02がdownしているので、当然leaf-03がDFへ昇格しています。
また、leaf-01にてマッピングされているVTEPがleaf-03のみになりました。
この間、vRouter-01とvRouter-02間でPingを飛ばしてましたが、timeoutはありませんでした。いい感じに経路収束されてそうですね。
この場合も当然、spine-01のbgp.evpn.0テーブルにおいてleaf-02のEVPN Route情報はキレイに無くなってます。
(x:172.16.0.12:~の経路情報が全くない)
//spine-01 lab@spine-01# run show route table bgp.evpn.0 | match :172.16.0.1 1:172.16.0.13:0::010203040506070809::FFFF:FFFF/192 AD/ESI 1:172.16.0.13:1::010203040506070809::0/192 AD/EVI 2:172.16.0.11:1::0::50:01:00:03:00:01/304 MAC/IP 2:172.16.0.13:1::0::2c:6b:f5:c3:2e:c0/304 MAC/IP 2:172.16.0.11:1::0::50:01:00:03:00:01::12.12.12.1/304 MAC/IP 3:172.16.0.11:1::0::172.16.0.11/248 IM 3:172.16.0.13:1::0::172.16.0.13/248 IM 4:172.16.0.13:0::010203040506070809:172.16.0.13/296 ES
細かい動作確認は省略しますが、この後、BGP Peer設定をactivateするとleaf-02がDFへ戻りました。
という訳で長くなりましたが、MAC-VRF形式設定で問題なく動きました!今回は以上になります!!
ここまでお読みいただき、ありがとうございました!!!
6. 参考資料
書籍「Deploying Juniper Data Centers with EVPN VXLAN」
Juniper Networks Documentation - EVPN User Guide - MAC-VRF Routing Instance Type Overview
www.juniper.net