前回から引き続き、EVE-NG上でvJunos-SwitchとvJunos-Routerを使ってIP-Closなネットワークを検証したいと思います。
ちなみに前回の記事はこちらです。
yokohama539.hatenablog.com
今回はEVPN Multihomigについて検証したいと思います。
Multihomigというのはホストのリンクを冗長化して耐障害性を高める技術です。
異なるデバイスを跨いでLAGを組んで運用する感じです。
過去、各メーカーが独自の技術を出しまくって業を煮やしたのかEVPNは標準技術としてMultihomigの仕様をRFC7432にて定めてます。
その辺の詳しい話はNTTリミテッド(当時)のJANOGの発表資料をご覧ください。
流れとしては、まずMultihomigの設定(と確認)をして、リンク障害が発生してもホスト間の通信は継続される動作を確認したいと思います。
- 1. Multihomig設定
- 2. Multihomig設定確認
- 3. 動作確認その1 (vRouter側 通信断)
- 4. 動作確認その2 (spine側 通信断 (Core Isolation))
- 5. 参考資料
1. Multihomig設定
まず構成とパラメーターを考えます。
前回の記事での構成を元にして、Multihomig構成となるようvRouterとleaf間の構成を変更します(対向leafが足りないので1台増やします)
そしてESI(Ethernet Segment ID)の値を決めます。ESIはMultihomigを行うリンク1対の識別子になります。
フォーマットは「xx:xx:xx:xx:xx:xx:xx:xx:xx:xx」(10octet)となります。
手動で設定する際はRFC7432にて最初の1octet目は00にする決まりらしいので「00:01:02:03:04:05:06:07:08:09」にします。
必須ではないですが、わかりやすくleaf側のLACP System ID(LACPのMACアドレス)も「00:00:00:00:00:12」で定義します。
また、今回、冗長モードはデフォルトの「All-Active」で、DF選出アルゴリズムは「Preference based」を使いたいと思います。
DF(Designated forwarder)とはBroadcastやMulticastパケットなどを転送する役目を指します。よくわからん人はググってください(投げやり)
以上を踏まえると、今回の検証環境は以下の図のようになります。

それでは実際に設定をしていきます。
leaf-1とleaf-2についてはUplink側(Underlay/Overlayネットワーク)の設定は前回の記事から変わりません。
ge-0/0/6をae1にバンドルするようにし、ae1にトランクポートとESI周りの設定をするイメージです。
vRouter1についてはMultihomigできるよう物理IFを増やしLAG設定をします(EVPN Multihomig特有の設定とかはありません)
あと新規に増やすleaf-3の設定がありますが、前回の記事のleaf-1、leaf-2と(パラメーターが異なるだけで)一緒なので省略します。
//leaf-1 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 single-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
//leaf-2 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 single-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
//vRouter-1 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.1/24
2. Multihomig設定確認
確認をしていきます。
まずはLACPでLAGが組めているか確認します。
//leaf-1
lab@leaf-1# run show lacp interfaces ae1 extensive
Aggregated interface: ae1
LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
ge-0/0/6 Actor No No Yes Yes Yes Yes Fast Active
ge-0/0/6 Partner No No Yes Yes Yes Yes Fast Active
LACP protocol: Receive State Transmit State Mux State
ge-0/0/6 Current Fast periodic Collecting distributing
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:da:79:c0 127 1 2//leaf-2
lab@leaf-2# run show lacp interfaces ae1 extensive
Aggregated interface: ae1
LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
ge-0/0/6 Actor No No Yes Yes Yes Yes Fast Active
ge-0/0/6 Partner No No Yes Yes Yes Yes Fast Active
LACP protocol: Receive State Transmit State Mux State
ge-0/0/6 Current Fast periodic Collecting distributing
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:da:79:c0 127 2 2//vRouter-1
lab@vRouter-1# run show lacp interfaces ae1 extensive
Aggregated interface: ae1
LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
ge-0/0/0 Actor No No Yes Yes Yes Yes Fast Active
ge-0/0/0 Partner No No Yes Yes Yes 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 Collecting distributing
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:da:79: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:da:79:c0 127 2 2
ge-0/0/1 Partner 127 00:00:00:00:00:12 127 1 2各物理IFのStateがCollecting distributingなのでLAGが正常に組めてるのが確認できます。
また、leaf側のLACP System IDが設定通り「00:00:00:00:00:12」となっているのが確認できます。
次にMultihomigの状態を確認します。まずleaf-1の状態から確認します。
//leaf-1
lab@leaf-1# run show evpn instance default-switch 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 0 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 03 00:57:23
Router-ID: 172.16.0.11
Source VTEP interface IP: 172.16.0.11
SMET Forwarding: Disabled設定通り、(Redundancy)Modeが「all-active」となっています。
また、「Status: Up/Forwarding」より正常にパケット転送が可能な状態になっています。
そしてDesignated forwarderのPreferenceが150でleaf-1(172.16.0.11)になっており、Backup forwarderもleaf-2(172.16.0.12)が選出され、設定通りに動作してそうです。
次にleaf-2の状態を確認します。
//leaf-2
lab@leaf-2# run show evpn instance default-switch extensive | no-more
<snip>
Number of ethernet segments: 1
ESI: 00:01:02:03:04:05:06:07:08:09
Status: Configuration Error
Local interface: ae1.0, Status: Up/Forwarding
Number of remote PEs connected: 1
Remote-PE MAC-label Aliasing-label Mode
172.16.0.11 10012 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 03 00:57:23
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabledleaf-1と同様に、「all-active」と「Status: Up/Forwarding」が表示されています。
また、自身(172.16.0.12)はBackup forwarderとなっています。leaf-2も設定通りに動作してそうですね。
もう少し詳しく見ていきます。
//leaf-1
lab@leaf-1# run show interfaces ae1 extensive | no-more
<snip>
Mesh Group: __all_ces__, EVPN multi-homed status: Forwarding,
EVPN multi-homed ESI Split Horizon Label: 0, Next-hop: 591, vpls-status: up
Local Bias Logical Interface Name: vtep.32770, Index: 347, VXLAN Endpoint Address: 172.16.0.12
Flags: Is-Primary, Trunk-Mode, 0x4000000//leaf-2
lab@leaf-2# run show interfaces ae1 extensive | no-more
<snip>
Mesh Group: __all_ces__,
EVPN multi-homed status: Blocking BUM Traffic to ESI,
EVPN multi-homed ESI Split Horizon Label: 0, Next-hop: 590, vpls-status: up
Local Bias Logical Interface Name: vtep.32770, Index: 349, VXLAN Endpoint Address: 172.16.0.11
Flags: Is-Primary, Trunk-Mode, 0x4000000「EVPN multi-homed status」がleaf-1とleaf-2で状態が異なっていることが確認できます。
leaf-1はDFなので「Forwarding,」となっており、leaf-2はnon-DF(Backup forwarder)なので「Blocking BUM Traffic to ESI,」となっています。
これによってホストが(ARP Reqなどの)ブロードキャストパケットなどを二重に受け取る問題がなくなります。
続いてルーティングテーブルを詳しく見ていきます。
MultihomingではEVPN Route-type1と4のエントリーが非常に重要になります。
まずはleaf-1にてRoute-type1について確認していきます。
//leaf-1
lab@leaf-1# run show route table bgp.evpn.0 match-prefix 1:*
bgp.evpn.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1:172.16.0.11:0::010203040506070809::FFFF:FFFF/192 AD/ESI
*[EVPN/170] 00:12:23
Indirect
1:172.16.0.11:1::010203040506070809::0/192 AD/EVI
*[EVPN/170] 00:12:24
Indirect
1:172.16.0.12:0::010203040506070809::FFFF:FFFF/192 AD/ESI
*[BGP/170] 00:12:22, localpref 100, from 172.16.0.1
AS path: 4200000001 4200001002 I, validation-state: unverified
> to 10.1.1.0 via ge-0/0/0.0
1:172.16.0.12:1::010203040506070809::0/192 AD/EVI
*[BGP/170] 00:12:23, localpref 100, from 172.16.0.1
AS path: 4200000001 4200001002 I, validation-state: unverified
> to 10.1.1.0 via ge-0/0/0.0四つのエントリーが載っており、上二つが自生成した経路情報、下二つが受信した経路情報となっています。
詳しい説明は省略しますが、末尾が「AD/ESI」の方は冗長モードなどの情報があり、「AD/EVI」はVTEPのリスト作成のための情報があります。
詳しい内容を知りたい方はRFC7432のSection 8.2.1と8.4.1に書いてますので、そちらをご覧ください。
とりあえずRoute-type1はこの2種のエントリーを生成および受信してれば大丈夫…って感じです。
続いてEVPN Route-type4について確認していきます。
//leaf-1
lab@leaf-1# run show route table bgp.evpn.0 match-prefix 4:*
bgp.evpn.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
4:172.16.0.11:0::010203040506070809:172.16.0.11/296 ES
*[EVPN/170] 00:53:07
Indirect
4:172.16.0.12:0::010203040506070809:172.16.0.12/296 ES
*[BGP/170] 00:53:06, localpref 100, from 172.16.0.1
AS path: 4200000001 4200001002 I, validation-state: unverified
> to 10.1.1.0 via ge-0/0/0.0こちらは二つのエントリーが載っており、上が自生成した経路情報、下が受信した経路情報となってます。
Route-type4はDFの選出に使われる情報になります。
Route-type1、4どちらも設定した通りのESI value「010203040506070809」の9octetの情報があるので大丈夫そうです(設定した最初の1octetは省略されます)
leaf-2側のルーティングテーブルも見ておきましょう。
//leaf-2
lab@leaf-2# run show route table bgp.evpn.0 match-prefix 1:*
bgp.evpn.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1:172.16.0.11:0::010203040506070809::FFFF:FFFF/192 AD/ESI
*[BGP/170] 01:16:12, localpref 100, from 172.16.0.1
AS path: 4200000001 4200001001 I, validation-state: unverified
> to 10.1.1.2 via ge-0/0/0.0
1:172.16.0.11:1::010203040506070809::0/192 AD/EVI
*[BGP/170] 01:16:13, localpref 100, from 172.16.0.1
AS path: 4200000001 4200001001 I, validation-state: unverified
> to 10.1.1.2 via ge-0/0/0.0
1:172.16.0.12:0::010203040506070809::FFFF:FFFF/192 AD/ESI
*[EVPN/170] 01:16:11
Indirect
1:172.16.0.12:1::010203040506070809::0/192 AD/EVI
*[EVPN/170] 01:16:12
Indirect
lab@leaf-2# run show route table bgp.evpn.0 match-prefix 4:*
bgp.evpn.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
4:172.16.0.11:0::010203040506070809:172.16.0.11/296 ES
*[BGP/170] 01:16:30, localpref 100, from 172.16.0.1
AS path: 4200000001 4200001001 I, validation-state: unverified
> to 10.1.1.2 via ge-0/0/0.0
4:172.16.0.12:0::010203040506070809:172.16.0.12/296 ES
*[EVPN/170] 01:16:29
Indirectleaf-1の経路情報を受信してますね。問題なさそうです。
以上で設定の確認は終わりになります。
3. 動作確認その1 (vRouter側 通信断)
通信断を起こしても、もう一方のリンクで通信(経路収束)できるか動作確認してみたいと思います。
今回は尺の都合でDF(leaf-1)側のリンクダウンの検証のみとさせてください…。
まず、leaf-1とvRouter-1間のリンクをダウンさせてみます。
リンクダウン契機でDFがleaf-2となり、vRouter間の通信が継続されるか確認します。
概要はこんな感じです。

まずはリンクダウン前の状態を確認します。
まだ何もしてないので、leaf-1、leaf-2のDF選出状況は先の確認時と変わってないことを確認します。
//leaf-1
lab@leaf-1# run show evpn instance default-switch 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 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 04 22:39:06
Router-ID: 172.16.0.11
Source VTEP interface IP: 172.16.0.11
SMET Forwarding: Disabled//leaf-2
lab@leaf-2# run show evpn instance default-switch 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.11 10012 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 04 22:39:06
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled
そして、leaf-3にて「show ethernet-switching vxlan-tunnel-end-point esi」コマンドで各ESIにおけるVTEPマッピング状況を確認します。
//leaf-3
lab@leaf-3# run show ethernet-switching vxlan-tunnel-end-point esi
ESI RTT VLNBH INH ESI-IFL LOC-IFL #RVTEPs
00:01:02:03:04:05:06:07:08:09 default-switch 590 1048574 esi.590 2 Aliasing
RVTEP-IP RVTEP-IFL VENH MASK-ID FLAGS MAC-COUNT
172.16.0.11 vtep.32770 589 1 18 1
172.16.0.12 vtep.32769 586 0 18 1ESI「00:01:02:03:04:05:06:07:08:09」に対してleaf-1(172.16.0.11)とleaf-2(172.16.0.12)がマッピングされています。
ではleaf-1のge-0/0/6をdisableにします。show | compareで振り返らずcommitします。
//leaf-1 lab@leaf-1# set interfaces ge-0/0/6 disable [edit] lab@leaf-1# commit commit complete [edit] lab@leaf-1# run show interfaces ge-0/0/6 Physical interface: ge-0/0/6, Administratively down, Physical link is Down <snip>
では確認していきます。
まず、DF選出状況を確認します。
//leaf-1
lab@leaf-1# run show evpn instance default-switch 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.12 10012 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 04 22:46:18
Router-ID: 172.16.0.11
Source VTEP interface IP: 172.16.0.11
SMET Forwarding: Disabled//leaf-2
lab@leaf-2# run show evpn instance default-switch 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.12, Preference: 100
Last designated forwarder update: Feb 04 22:46:18
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabledleaf-1とleaf-2にて、leaf-2がDFに昇格されているのが確認できます。
また、leaf-1にてLocal InterfaceがDownとなっており、検知されているのが確認できます。
//leaf-3
lab@leaf-3# run show ethernet-switching vxlan-tunnel-end-point esi
ESI RTT VLNBH INH ESI-IFL LOC-IFL #RVTEPs
00:01:02:03:04:05:06:07:08:09 default-switch 590 1048574 esi.590 1 Aliasing
RVTEP-IP RVTEP-IFL VENH MASK-ID FLAGS MAC-COUNT
172.16.0.12 vtep.32769 586 0 18 1リンクダウン契機にてマッピングされているVTEPがleaf-2のみになりました。
なので、leaf-3から通信する際はleaf-2のみの経路になります。
この間、vRouter-1とvRouter-2間でPingを飛ばしてましたが、timeoutはありませんでしたので、速やかに経路収束は行われてそうですね。
さて、leaf-1とvRouter-1間のリンクダウン後、なぜ「leaf-2のDFの昇格」と「leaf-3のVTEPマッピング状況の更新」が速やかに行われてるかが気になります。
仕組みとしては、leaf-1はリンクダウン検知後、速やかにMP-BGPでwithdrawなUPDATEメッセージをspine-1へ広報します。
当然、spine-1はleaf-2とleaf-3にもUPDATEメッセージを送るので、leaf-1がリンクダウンしたら他のleafにもすぐ広報される流れ…って感じです。
下記が実際にリンクダウン時に送出されたUPDATEメッセージのパケットキャプチャーになります。
Withdrawn Routesを通知しているのが確認できますね。

リンクを復旧させて、DF選出状況やVTEPマッピング状況が元に戻るか確認します。
//leaf-1 lab@leaf-1# show | compare [edit interfaces ge-0/0/6] - disable; [edit] lab@leaf-1# commit commit complete [edit] lab@leaf-1# run show interfaces ge-0/0/6 Physical interface: ge-0/0/6, Enabled, Physical link is Up <snip>
//leaf-1
lab@leaf-1# run show evpn instance default-switch 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 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 04 23:24:31
Router-ID: 172.16.0.11
Source VTEP interface IP: 172.16.0.11
SMET Forwarding: Disabled//leaf-2
lab@leaf-2# run show evpn instance default-switch 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.11 10012 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 04 23:24:31
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled//leaf-3
lab@leaf-3# run show ethernet-switching vxlan-tunnel-end-point esi
ESI RTT VLNBH INH ESI-IFL LOC-IFL #RVTEPs
00:01:02:03:04:05:06:07:08:09 default-switch 590 1048574 esi.590 2 Aliasing
RVTEP-IP RVTEP-IFL VENH MASK-ID FLAGS MAC-COUNT
172.16.0.11 vtep.32770 592 1 18 1
172.16.0.12 vtep.32769 586 0 18 1DFはleaf-1になり、(leaf-3からみて)VTEPはleaf-1とleaf-2にマッピングされたので元に戻りました!!
4. 動作確認その2 (spine側 通信断 (Core Isolation))
最後に「Core Isolation」の機能を確認します。
Core IsolationとはleafのUplink(spine間)とのBGP Peer down契機でDownlink(vRouter間)のLAGインターフェイスをダウンさせてブラックホール化を回避する技術です。
Junosはデフォルトで有効になっていますので、設定追加はしなくとも動作します。
今回はspine-1とleaf-1間でBGP Peer Down状態にして動作を確認したいと思います。
概要はこんな感じです。

まずはPeer Down前の状態を確認します。
まだ何もしてないので、DF選出状況やVTEPマッピング状況は先の確認時と変わってないことを確認します。
//leaf-1
lab@leaf-1# run show evpn instance default-switch 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 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 04 23:24:31
Router-ID: 172.16.0.11
Source VTEP interface IP: 172.16.0.11
SMET Forwarding: Disabled//leaf-2
lab@leaf-2# run show evpn instance default-switch 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.11 10012 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 04 23:24:31
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled//leaf-3
lab@leaf-3# run show ethernet-switching vxlan-tunnel-end-point esi
ESI RTT VLNBH INH ESI-IFL LOC-IFL #RVTEPs
00:01:02:03:04:05:06:07:08:09 default-switch 590 1048574 esi.590 2 Aliasing
RVTEP-IP RVTEP-IFL VENH MASK-ID FLAGS MAC-COUNT
172.16.0.11 vtep.32770 592 1 18 1
172.16.0.12 vtep.32769 586 0 18 1
併せて、BGP Peering状況を確認します。
//leaf-1
lab@leaf-1# run show bgp summary
Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 2 Peers: 2 Down peers: 0
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.0 4200000001 203 203 0 0 1:30:06 Establ
inet.0: 3/3/3/0
172.16.0.1 4200000001 10 8 0 0 57 Establ
bgp.evpn.0: 9/9/9/0
default-switch.evpn.0: 8/8/8/0
__default_evpn__.evpn.0: 1/1/1/0//spine-1 lab@spine-1# run show bgp summary | grep 172.16.0.11 172.16.0.11 4200001001 9 8 0 2 30 Establ
leaf-1とspine-1間のPeeringが確認できます。
ではleaf-1にて、Overlayでのspine-1とのPeerをdownします。今回もshow | compareで振り返らずcommitします。
//leaf-1 [edit] lab@leaf-1# deactivate protocols bgp group OVERLAY neighbor 172.16.0.1 [edit] lab@leaf-1# commit commit complete
BGP Peering状況を確認します。
//leaf-1
lab@leaf-1# run show bgp summary
Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 1 Peers: 1 Down peers: 0
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.0 4200000001 197 197 0 0 1:27:40 Establ
inet.0: 3/3/3/0
//172.16.0.1のPeerがなくなっている。//spine-1 [edit] lab@spine-1# run show bgp summary | grep 172.16.0.11 172.16.0.11 4200001001 0 0 0 2 1:25 Active
Peer down状態になりました。
では確認していきます。
まず、leaf-1とvRrouter-1間のae1インターフェイス状態を確認します。
//leaf-1
lab@leaf-1# run show lacp interfaces ae1
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//vRouter-1
lab@vRouter-1# run show lacp interfaces ae1
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 distributingleaf-1側のstateが「Waiting」となり、vRouter-1側のge-0/0/0のLAGがダウンしているのが確認できます。
この時のleaf-1とvRouter-1間パケットキャプチャーを見てみましょう。
leaf-1から送信される、LACPのsyncフラグのbitが0へと変更となり、ae1インターフェイスをダウンさせているようです。

続いてDF選出状況やVTEPマッピング状況を見ていきましょう。一気に見ます。
//leaf-1
lab@leaf-1# run show evpn instance default-switch 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: Feb 05 00:26:59
Router-ID: 172.16.0.11
Source VTEP interface IP: 172.16.0.11
SMET Forwarding: Disabled//leaf-2
lab@leaf-2# run show evpn instance default-switch 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.12, Preference: 100
Last designated forwarder update: Feb 05 00:27:02
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled//leaf-3
lab@leaf-3# run show ethernet-switching vxlan-tunnel-end-point esi
ESI RTT VLNBH INH ESI-IFL LOC-IFL #RVTEPs
00:01:02:03:04:05:06:07:08:09 default-switch 590 1048574 esi.590 1 Aliasing
RVTEP-IP RVTEP-IFL VENH MASK-ID FLAGS MAC-COUNT
172.16.0.12 vtep.32769 586 0 18 1spine-1から見てleaf-1がdownしているので、当然leaf-2がDFへ昇格しています。
また、leaf-3にてマッピングされているVTEPがleaf-2のみになりました。
この間、vRouter-1とvRouter-2間でPingを飛ばしてましたが、timeoutはありませんでした。いい感じに経路収束されてそうですね。
ではBGP Peerを復旧させます。
//leaf-1
lab@leaf-1# show | compare
[edit protocols bgp group OVERLAY]
! active: neighbor 172.16.0.1 { ... }
[edit]
lab@leaf-1# commit
commit complete
lab@leaf-1# run show bgp summary
Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 2 Peers: 2 Down peers: 0
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet.0
3 3 0 0 0 0
bgp.evpn.0
7 7 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.1.1.0 4200000001 275 275 0 0 2:03:10 Establ
inet.0: 3/3/3/0
172.16.0.1 4200000001 10 7 0 0 42 Establ
bgp.evpn.0: 7/7/7/0
default-switch.evpn.0: 6/6/6/0
__default_evpn__.evpn.0: 1/1/1/0
//Overlayでspine-1とPeerが張れている。//spine-1 lab@spine-1# run show bgp summary | grep 172.16.0.11 172.16.0.11 4200001001 11 11 0 6 1:42 Establ //Overlayでleaf-1とPeerが張れている。
leaf-1とvRouter-1間のLAGが復旧したか確認します。
//leaf-1
lab@leaf-1# run show lacp interfaces ae1
Aggregated interface: ae1
LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
ge-0/0/6 Actor No No Yes Yes Yes Yes Fast Active
ge-0/0/6 Partner No No Yes Yes Yes Yes Fast Active
LACP protocol: Receive State Transmit State Mux State
ge-0/0/6 Current Fast periodic Collecting distributing//vRouter-1
lab@vRouter-1# run show lacp interfaces ae1
Aggregated interface: ae1
LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
ge-0/0/0 Actor No No Yes Yes Yes Yes Fast Active
ge-0/0/0 Partner No No Yes Yes Yes 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 Collecting distributing
ge-0/0/1 Current Fast periodic Collecting distributingleaf-1、vRouter-1ともにCollecting distributingになり、復旧されてますね。
最後にDF選出状況やVTEPマッピング状況が元に戻っているか確認します。
//leaf-1
lab@leaf-1# run show evpn instance default-switch 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 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 05 00:41:26
Router-ID: 172.16.0.11
Source VTEP interface IP: 172.16.0.11
SMET Forwarding: Disabled//leaf-2
lab@leaf-2# run show evpn instance default-switch 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.11 10012 0 all-active
DF Election Algorithm: Preference based
Designated forwarder: 172.16.0.11, Preference: 150
Backup forwarder: 172.16.0.12, Preference: 100
Last designated forwarder update: Feb 05 00:41:26
Router-ID: 172.16.0.12
Source VTEP interface IP: 172.16.0.12
SMET Forwarding: Disabled//leaf-3
lab@leaf-3# run show ethernet-switching vxlan-tunnel-end-point esi
ESI RTT VLNBH INH ESI-IFL LOC-IFL #RVTEPs
00:01:02:03:04:05:06:07:08:09 default-switch 590 1048574 esi.590 2 Aliasing
RVTEP-IP RVTEP-IFL VENH MASK-ID FLAGS MAC-COUNT
172.16.0.11 vtep.32770 598 1 18 1
172.16.0.12 vtep.32769 586 0 18 1DFはleaf-1になり、(leaf-3からみて)VTEPはleaf-1とleaf-2にマッピングされたので元に戻りました!!
という訳でめちゃくちゃ長くなりましたが、EVPN Multihomingの検証は以上になります!!
ここまでお読みいただき、ありがとうございました!!!!
5. 参考資料
書籍「Deploying Juniper Data Centers with EVPN VXLAN」