EVPNで利用されるVXLANやMPLSを相互に接続してみたく、ネットワークシミュレータを使って動作確認したメモ
今回は、Arista の vEOS-lab を利用して確認してみました。
※自分で調べた内容をもとにまとめています。誤りが含まれている可能性がありますので、参考程度にご覧いただき、正確な情報は公式ドキュメント等をご確認ください!
なぜEVPN-MPLSとVXLANの相互接続が必要なのか
EVPN-MPLSとVXLANの相互接続の必要性についてChatGPTさんに聞くと、異なるネットワークドメイン(たとえば WAN と DC)を一貫して接続・統合するためとのことで、ユースケースとしては以下があるそうです。
ユースケース | 説明 |
---|---|
DC間接続(DCI) | 拠点ごとに VXLAN を使っていて、MPLS コア経由でつなぎたい |
サービスプロバイダの MPLS 網とDC の統合 | プロバイダの MPLS EVPN と、エンタープライズの VXLAN を直接つなげる |
クラウドとオンプレミスのハイブリッド化 | オンプレ DC は VXLAN、WAN や支社網は MPLS の構成で EVPN に統一 |
構成概要
今回は以下の2パターンの構成をネットワークシミュレータで確認しました
① EVPN-MPLS と EVPN-VXLAN を1台の機器で相互接続
② さらに GW となる機器を2台にして EVPN マルチホーミングで装置冗長
MPLS と VXLAN ともに L2VPN とし、両端の PC を同じ IP セグメントで通信できることを確認しました。
利用した Arista の vEOS のバージョンは以下の通りです
- Arista vEOS-lab version: 4.34.0F
vEOS-lab のダウンロードやネットワークシミュレータでの利用は以下が参考になりました
https://changineer.info/network/arista_eos/arista_eos_veos_basic.html
https://www.eve-ng.net/index.php/documentation/howtos/howto-add-arista-veos/
① EVPN-MPLSとEVPN-VXLANを1台の機器で相互接続
①-0 全コンフィグ一覧
はじめに、このあとに説明する今回行った全設定を記載します。
vEOS-MPLS-1 : 全設定
! ホストネームを設定
hostname vEOS-MPLS-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! VLAN100を作成
vlan 100
name USER_100
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-GW-1
no switchport
ip address 10.9.1.1/31
ip ospf cost 100
ip ospf network point-to-point
! Ethernet8にアクセスポートとしてVLAN100を設定
interface Ethernet8
description to_USER_VLAN_100
switchport access vlan 100
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.11/32
! ルーティング機能を有効化
ip routing
! MPLSフォワーディング機能を有効化
mpls ip
! SRGBで利用したい16000-23999をデフォルトでstaticで利用されているため別の場所に移動する
mpls label range static 16 15984
! SRGBを16000-23999で設定
mpls label range ospf-sr 16000 8000
! BGP設定
router bgp 65000
router-id 10.0.0.11
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor 10.0.0.1 peer group MP_BGP_EVPN_MPLS
!
! BGP内の設定で、MAC VRFとしてVLAN100を作成し、RDとRTを設定
vlan 100
rd 10.0.0.11:100
route-target both 65000:100
! CE側から学習しているMACアドレスをBGPで広報する
redistribute learned
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
! MPLSでカプセル化することを指定
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
! OSPF設定
router ospf 1
router-id 10.0.0.11
passive-interface default
no passive-interface Ethernet1
network 0.0.0.0/0 area 0.0.0.0
!
! OSPFでSR-MPLSを有効にしNode-SIDを指定する
segment-routing mpls
no shutdown
prefix-segment 10.0.0.11/32 index 11
vEOS-VXLAN-1 : 全設定
! ホストネームを設定
hostname vEOS-VXLAN-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! VLAN900を作成
vlan 900
name USER_900
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-GW-1
no switchport
ip address 10.9.11.1/31
ip ospf cost 100
ip ospf network point-to-point
! Ethernet8にアクセスポートとしてVLAN900を設定
interface Ethernet8
description to_USER_VLAN_900
switchport access vlan 900
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.12/32
! VXLANの設定、VLAN:900をVNI:1100にする
interface Vxlan1
vxlan source-interface Loopback0
vxlan vlan 900 vni 1100
! ルーティング機能を有効化
ip routing
! BGP設定
router bgp 65000
router-id 10.0.0.12
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
neighbor MP_BGP_EVPN_VXLAN update-source Loopback0
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
! VXLANのMP-BGPのネイバーには、GW の Loopback1 のアドレスを指定する
neighbor 10.100.0.1 peer group MP_BGP_EVPN_VXLAN
!
! BGP内の設定で、MAC VRFとしてVLAN900を作成し、RDとRTを設定
vlan 900
rd 10.0.0.12:900
route-target both 65000:900
! CE側から学習しているMACアドレスをBGPで広報する
redistribute learned
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_VXLAN activate
! VXLANでカプセル化することを指定
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
! OSPF設定
router ospf 1
router-id 10.0.0.12
passive-interface default
no passive-interface Ethernet1
network 0.0.0.0/0 area 0.0.0.0
vEOS-GW-1 : 全設定
! ホストネームを設定
hostname vEOS-GW-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! VLAN100を作成
vlan 100
name USER_100
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-MPLS-1
no switchport
ip address 10.9.1.0/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet2
description to_vEOS-VXLAN-1
no switchport
ip address 10.9.11.0/31
ip ospf cost 100
ip ospf network point-to-point
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.1/32
! Loopback1 の作成
interface Loopback1
ip address 10.100.0.1/32
! VXLANの設定、VLAN:100をVNI:1100にする、またsource-interface Loopback1にする
interface Vxlan1
vxlan source-interface Loopback1
vxlan vlan 100 vni 1100
! ルーティング機能を有効化
ip routing
! MPLSフォワーディング機能を有効化
mpls ip
! SRGBで利用したい16000-23999をデフォルトでstaticで利用されているため別の場所に移動する
mpls label range static 16 15984
! SRGBを16000-23999で設定
mpls label range ospf-sr 16000 8000
! BGP設定
router bgp 65000
router-id 10.0.0.1
!
! BGP EVPN-MPLS側の設定
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
! GWは、EVPN-MPLSはupdate-source Loopback0 にする
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor 10.0.0.11 peer group MP_BGP_EVPN_MPLS
!
! BGP EVPN-VXLAN側の設定
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
! GWは、EVPN-VXLANはupdate-source Loopback1 にする
neighbor MP_BGP_EVPN_VXLAN update-source Loopback1
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
neighbor 10.0.0.12 peer group MP_BGP_EVPN_VXLAN
!
! BGP内の設定で、MAC VRFとしてVLAN100を作成
vlan 100
! EVPN-MPLS側のRDとRTを設定
rd 10.0.0.1:100
route-target both 65000:100
! 同じVLAN100の中にリモートドメインとして、EVPN-VXLAN側のRDとRTを設定し、EVPN-MPLSとEVPN-VXLANを紐づける
rd evpn domain remote 10.100.0.1:100
route-target import export evpn domain remote 65000:900
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
! MPLSでカプセル化することを指定
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
!
neighbor MP_BGP_EVPN_VXLAN activate
! VXLANでカプセル化することを指定
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
! ドメインをRemoteに指定
neighbor MP_BGP_EVPN_VXLAN domain remote
! OSPF設定
router ospf 1
router-id 10.0.0.1
passive-interface default
no passive-interface Ethernet1
no passive-interface Ethernet2
network 0.0.0.0/0 area 0.0.0.0
!
! OSPFでSR-MPLSを有効にしNode-SIDを指定する
segment-routing mpls
no shutdown
prefix-segment 10.0.0.1/32 index 1
①-1 初期設定・IP・OSPFの設定
初期設定と各 IF の IP アドレスを設定し、OSPF で経路交換を行います。
- router-id は Loopback0 のアドレスを利用
- Area はすべてバックボーンエリア (0.0.0.0)
- 装置間は point-to-point でコストは 100
3つの機器の設定は以下です。
vEOS-MPLS-1
! ホストネームを設定
hostname vEOS-MPLS-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! ルーティング機能を有効化
ip routing
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.11/32
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-GW-1
no switchport
ip address 10.9.1.1/31
ip ospf cost 100
ip ospf network point-to-point
! OSPF設定
router ospf 1
router-id 10.0.0.11
passive-interface default
no passive-interface Ethernet1
network 0.0.0.0/0 area 0.0.0.0
vEOS-VXLAN-1
! ホストネームを設定
hostname vEOS-VXLAN-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! ルーティング機能を有効化
ip routing
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.12/32
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-GW-1
no switchport
ip address 10.9.11.1/31
ip ospf cost 100
ip ospf network point-to-point
! OSPF設定
router ospf 1
router-id 10.0.0.12
passive-interface default
no passive-interface Ethernet1
network 0.0.0.0/0 area 0.0.0.0
vEOS-GW-1
! ホストネームを設定
hostname vEOS-GW-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! ルーティング機能を有効化
ip routing
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.1/32
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-MPLS-1
no switchport
ip address 10.9.1.0/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet2
description to_vEOS-VXLAN-1
no switchport
ip address 10.9.11.0/31
ip ospf cost 100
ip ospf network point-to-point
! OSPF設定
router ospf 1
router-id 10.0.0.1
passive-interface default
no passive-interface Ethernet1
no passive-interface Ethernet2
network 0.0.0.0/0 area 0.0.0.0
①-2 SR-MPLSの設定
vEOS-MPLS-1 と vEOS-GW-1 に MPLS とセグメントルーティングを設定します。
vEOS-MPLS-1
! MPLSフォワーディング機能を有効化
mpls ip
! SRGBで利用したい16000-23999をデフォルトでstaticで利用されているため別の場所に移動する
mpls label range static 16 15984
! SRGBを16000-23999で設定
mpls label range ospf-sr 16000 8000
! OSPFでSR-MPLSを有効にしNode-SIDを指定する
router ospf 1
segment-routing mpls
no shutdown
prefix-segment 10.0.0.11/32 index 11
vEOS-GW-1
! MPLSフォワーディング機能を有効化
mpls ip
! SRGBで利用したい16000-23999をデフォルトでstaticで利用されているため別の場所に移動する
mpls label range static 16 15984
! SRGBを16000-23999で設定
mpls label range ospf-sr 16000 8000
! OSPFでSR-MPLSを有効にしNode-SIDを指定する
router ospf 1
segment-routing mpls
no shutdown
prefix-segment 10.0.0.1/32 index 1
参考:mpls label range
の設定順序
mpls label range
の設定順序に注意が必要です。
たとえば以下のように show running-config
に表示されていても、
mpls label range ospf-sr 16000 8000
mpls label range static 16 15984
実際には static
のデフォルトのラベル範囲と重複しているため、先に static
を設定しないと、ospf-sr
の設定が重複エラーで失敗します。
% Label range ospf-sr overlaps with mpls label range static
#show mpls label ranges
Start End Size Usage
------------------------------------------------
0 15 16 reserved
16 99999 99984 static mpls <====== ★staticがSRで設定したい16000~を含んでいる
100000 362143 262144 free (dynamic)
362144 899999 537856 unassigned
900000 965535 65536 isis-sr
900000 965535 65536 bgp-sr
900000 965535 65536 ospf-sr
965536 1031071 65536 srlb
1031072 1032095 1024 l2evpn shared ethernet-segment
1032096 1036287 4192 unassigned
1036288 1048575 12288 l2evpn
そのため、次のように設定順を入れ替える必要があります。
mpls label range static 16 15984
mpls label range ospf-sr 16000 8000
show running-config
の表示順がそのまま設定順とは限らないため、ラベル範囲が重複しないよう注意して設定しましょう。
①-3 MP-BGP:EVPNの設定
EVPNでルート交換するMP-BGPの設定を行いますが、今回は、下の絵のように中心のGWはMPLS側とVXLAN側でLoopbackアドレスを変えてBGPのピアをはります
また、EVPN-MPLS と EVPN-VXLAN のマルチドメインで、EVPN-VXLAN 側を remote として設定していきます
後のVPNの設定際に EVPN-MPLS(local) と EVPN-VXLAN(remote) を紐づける設定を行います
EVPN-MPLS側の設定
まずはEVPN-MPLS側の設定を以下の通り行います
! BGP設定
router bgp 65000
router-id 10.0.0.11
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor 10.0.0.1 peer group MP_BGP_EVPN_MPLS
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
! MPLSでカプセル化することを指定
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
! BGP設定
router bgp 65000
router-id 10.0.0.1
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
! GWは、EVPN-MPLSはupdate-source Loopback0 にする
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor 10.0.0.11 peer group MP_BGP_EVPN_MPLS
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
! MPLSでカプセル化することを指定
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
EVPN-VXLAN側の設定
次にEVPN-VXLAN側の設定を行います、GWについては、Loopback1 を利用するため、新規にLoopback1 の作成も行います。また、neighbor MP_BGP_EVPN_VXLAN domain remote
で EVPN-VXLAN側のドメインを remote と指定します
! BGP設定
router bgp 65000
router-id 10.0.0.12
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
neighbor MP_BGP_EVPN_VXLAN update-source Loopback0
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
! VXLANのMP-BGPのネイバーには、GW の Loopback1 のアドレスを指定する
neighbor 10.100.0.1 peer group MP_BGP_EVPN_VXLAN
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_VXLAN activate
! VXLANでカプセル化することを指定
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
! Loopback1 の作成
interface Loopback1
ip address 10.100.0.1/32
! BGP EVPN-VXLAN側の設定
router bgp 65000
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
! GWは、EVPN-VXLANはupdate-source Loopback1 にする
neighbor MP_BGP_EVPN_VXLAN update-source Loopback1
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
neighbor 10.0.0.12 peer group MP_BGP_EVPN_VXLAN
!
address-family evpn
neighbor MP_BGP_EVPN_VXLAN activate
! VXLANでカプセル化することを指定
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
! ドメインをRemoteに指定
neighbor MP_BGP_EVPN_VXLAN domain remote
①-4 VPNの設定
VPN の設定は以下のようなイメージにしています。
EVPN-MPLS と EVPN-VXLAN のそれぞれの Route-Target を vEOS-GW の Vlan100 で紐づけて相互接続させています
vEOS-MPLS-1 の設定は以下のとおりです。
EVPN-MPLS の VPN 用のラベルは、機器が自動で決めて BGP で対向機器へ BGP で広報するので、特に VPN に紐づくラベルの設定はありません。
! VLAN100を作成
vlan 100
name USER_100
! Ethernet8にアクセスポートとしてVLAN100を設定
interface Ethernet8
description to_USER_VLAN_100
switchport access vlan 100
router bgp 65000
! BGP内の設定で、MAC VRFとしてVLAN100を作成し、RDとRTを設定
vlan 100
rd 10.0.0.11:100
route-target both 65000:100
! CE側から学習しているMACアドレスをBGPで広報する
redistribute learned
vEOS-VXLAN-1 の設定は以下のとおりです。VLAN:900を作成して、VXLANの設定としてVLAN:900をVNI:1100にします。BGP内の route-target については vEOS-MPLS-1 で使用した値と別の route-target にします
! VLAN900を作成
vlan 900
name USER_900
! Ethernet8にアクセスポートとしてVLAN900を設定
interface Ethernet8
description to_USER_VLAN_900
switchport access vlan 900
! VXLANの設定、VLAN:900をVNI:1100にする
interface Vxlan1
vxlan source-interface Loopback0
vxlan vlan 900 vni 1100
router bgp 65000
! BGP内の設定で、MAC VRFとしてVLAN900を作成し、RDとRTを設定
vlan 900
rd 10.0.0.12:900
route-target both 65000:900
! CE側から学習しているMACアドレスをBGPで広報する
redistribute learned
最後に vEOS-GW-1 の設定になります。最後の2行の domain remote
を含んだEVPN-VXLAN用のRDとRoute-Targetのコンフィグ部分があることで、vEOS-GW-1 の VLAN100 についてはEVPN-MPLSとEVPN-VXLANが相互接続することになります。
! VLAN100を作成
vlan 100
name USER_100
! VXLANの設定、VLAN:100をVNI:1100にする、またsource-interface Loopback1にする
interface Vxlan1
vxlan source-interface Loopback1
vxlan vlan 100 vni 1100
router bgp 65000
! BGP内の設定で、MAC VRFとしてVLAN100を作成
vlan 100
! EVPN-MPLS側のRDとRTを設定
rd 10.0.0.1:100
route-target both 65000:100
! 同じVLAN100の中にリモートドメインとして、EVPN-VXLAN側のRDとRTを設定し、EVPN-MPLSとEVPN-VXLANを紐づける
rd evpn domain remote 10.100.0.1:100
route-target import export evpn domain remote 65000:900
①-5 動作確認
上記設定で正常に動作するか動作確認します
疎通確認
PC 間で PING を打って疎通することを確認します。
参考に vEOS-GW-1 の MPLS 側と VXLAN 側の IF を同時にパケットキャプチャした結果の画像を貼り付けます
ICMP の request に対して reply が返ってきていることと、それぞれ MPLS と VXLAN でカプセル化されていることがわかります。
MACアドレス学習状態確認
show mac address-table
で確認すると、MPLS 側は Mt1
、VXLAN 側は Vx1
になることがわかります
vEOS-MPLS-1#show mac address-table
Mac Address Table
------------------------------------------------------------------
Vlan Mac Address Type Ports Moves Last Move
---- ----------- ---- ----- ----- ---------
100 0050.7966.6853 DYNAMIC Et8 1 0:25:27 ago
100 0050.7966.6854 DYNAMIC Mt1 1 0:24:53 ago
Total Mac Addresses for this criterion: 2
Multicast Mac Address Table
------------------------------------------------------------------
Vlan Mac Address Type Ports
---- ----------- ---- -----
Total Mac Addresses for this criterion: 0
vEOS-VXLAN-1#show mac address-table
Mac Address Table
------------------------------------------------------------------
Vlan Mac Address Type Ports Moves Last Move
---- ----------- ---- ----- ----- ---------
900 0050.7966.6853 DYNAMIC Vx1 1 0:19:41 ago
900 0050.7966.6854 DYNAMIC Et8 1 0:19:07 ago
Total Mac Addresses for this criterion: 2
Multicast Mac Address Table
------------------------------------------------------------------
Vlan Mac Address Type Ports
---- ----------- ---- -----
Total Mac Addresses for this criterion: 0
vEOS-GW-1#show mac address-table
Mac Address Table
------------------------------------------------------------------
Vlan Mac Address Type Ports Moves Last Move
---- ----------- ---- ----- ----- ---------
100 0050.7966.6853 DYNAMIC Mt1 1 0:25:48 ago
100 0050.7966.6854 DYNAMIC Vx1 1 0:25:14 ago
Total Mac Addresses for this criterion: 2
Multicast Mac Address Table
------------------------------------------------------------------
Vlan Mac Address Type Ports
---- ----------- ---- -----
Total Mac Addresses for this criterion: 0
EVPNのルート広報
show bgp evpn
で EVPN で広報しているルート一覧を確認できます。
mac-ip
と記載されたものが、Route-Type: 2 として MAC アドレスのルートになります。
GW のルートを確認すると、VXLAN 側は remote として表示されます。
例えば、MPLS 側から学習した 0050.7966.6853
の MAC アドレスのルートは、VXLAN 側に自身から remote として広報していることがわかります。
vEOS-GW-1#show bgp evpn
BGP routing table information for VRF default
Router identifier 10.0.0.1, local AS number 65000
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
Network Next Hop Metric LocPref Weight Path
* > RD: 10.0.0.11:100 mac-ip 0050.7966.6853
10.0.0.11 - 100 0 i
* > RD: 10.0.0.1:100 mac-ip 0050.7966.6854
- - 100 0 i
* > RD: 10.100.0.1:100 mac-ip 0050.7966.6853 remote
- - 100 0 i
* > RD: 10.0.0.12:900 mac-ip 0050.7966.6854 remote
10.0.0.12 - 100 0 i
* > RD: 10.0.0.1:100 imet 10.0.0.1
- - - 0 i
* > RD: 10.0.0.11:100 imet 10.0.0.11
10.0.0.11 - 100 0 i
* > RD: 10.0.0.12:900 imet 10.0.0.12 remote
10.0.0.12 - 100 0 i
* > RD: 10.100.0.1:100 imet 10.100.0.1 remote
- - - 0 i
VPN単位でルートを見たい場合は、Route-Targetを指定した show bgp evpn extcommunity rt 65000:100
や show bgp evpn extcommunity rt 65000:900
で絞って確認できました。VPNの数が多い場合などはこちらで絞ってみた方が切り分けしやすいと思います。
② GWを2台にしてEVPN マルチホーミングで装置冗長
次に、GW を2台構成し、EVPN マルチホーミング で装置冗長をさせます。
②-0 全コンフィグ一覧
こちらもこのあと追加の設定の説明をしますが、最初に最終的な全設定のコンフィグを記載しておきます。
vEOS-MPLS-1 : 全設定
! ホストネームを設定
hostname vEOS-MPLS-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! VLAN100を作成
vlan 100
name USER_100
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-GW-1
no switchport
ip address 10.9.1.1/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet2
description to_vEOS-GW-2
no switchport
ip address 10.9.2.1/31
ip ospf cost 100
ip ospf network point-to-point
! Ethernet8にアクセスポートとしてVLAN100を設定
interface Ethernet8
description to_USER_VLAN_100
switchport access vlan 100
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.11/32
! ルーティング機能を有効化
ip routing
! MPLSフォワーディング機能を有効化
mpls ip
! SRGBで利用したい16000-23999をデフォルトでstaticで利用されているため別の場所に移動する
mpls label range static 16 15984
! SRGBを16000-23999で設定
mpls label range ospf-sr 16000 8000
! BGP設定
router bgp 65000
router-id 10.0.0.11
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor 10.0.0.1 peer group MP_BGP_EVPN_MPLS
neighbor 10.0.0.2 peer group MP_BGP_EVPN_MPLS
!
! BGP内の設定で、MAC VRFとしてVLAN100を作成し、RDとRTを設定
vlan 100
rd 10.0.0.11:100
route-target both 65000:100
! CE側から学習しているMACアドレスをBGPで広報する
redistribute learned
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
! MPLSでカプセル化することを指定
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
! OSPF設定
router ospf 1
router-id 10.0.0.11
passive-interface default
no passive-interface Ethernet1
no passive-interface Ethernet2
network 0.0.0.0/0 area 0.0.0.0
!
! OSPFでSR-MPLSを有効にしNode-SIDを指定する
segment-routing mpls
no shutdown
prefix-segment 10.0.0.11/32 index 11
vEOS-VXLAN-1 : 全設定
! ホストネームを設定
hostname vEOS-VXLAN-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! VLAN900を作成
vlan 900
name USER_900
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-GW-1
no switchport
ip address 10.9.11.1/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet2
description to_vEOS-GW-2
no switchport
ip address 10.9.12.1/31
ip ospf cost 100
ip ospf network point-to-point
! Ethernet8にアクセスポートとしてVLAN900を設定
interface Ethernet8
description to_USER_VLAN_900
switchport access vlan 900
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.12/32
! VXLANの設定、VLAN:900をVNI:1100にする
interface Vxlan1
vxlan source-interface Loopback0
vxlan vlan 900 vni 1100
! ルーティング機能を有効化
ip routing
! BGP設定
router bgp 65000
router-id 10.0.0.12
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
neighbor MP_BGP_EVPN_VXLAN update-source Loopback0
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
! VXLANのMP-BGPのネイバーには、GW の Loopback1 のアドレスを指定する
neighbor 10.100.0.1 peer group MP_BGP_EVPN_VXLAN
neighbor 10.100.0.2 peer group MP_BGP_EVPN_VXLAN
!
! BGP内の設定で、MAC VRFとしてVLAN900を作成し、RDとRTを設定
vlan 900
rd 10.0.0.12:900
route-target both 65000:900
! CE側から学習しているMACアドレスをBGPで広報する
redistribute learned
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_VXLAN activate
! VXLANでカプセル化することを指定
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
! OSPF設定
router ospf 1
router-id 10.0.0.12
passive-interface default
no passive-interface Ethernet1
no passive-interface Ethernet2
network 0.0.0.0/0 area 0.0.0.0
vEOS-GW-1 : 全設定
! ホストネームを設定
hostname vEOS-GW-1
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! VLAN100を作成
vlan 100
name USER_100
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-MPLS-1
no switchport
ip address 10.9.1.0/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet2
description to_vEOS-VXLAN-1
no switchport
ip address 10.9.11.0/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet8
description to_vEOS-GW-2
no switchport
ip address 10.9.99.0/31
ip ospf cost 100
ip ospf network point-to-point
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.1/32
! Loopback1 の作成
interface Loopback1
ip address 10.100.0.1/32
! VXLANの設定、VLAN:100をVNI:1100にする、またsource-interface Loopback1にする
interface Vxlan1
vxlan source-interface Loopback1
vxlan vlan 100 vni 1100
! ルーティング機能を有効化
ip routing
! MPLSフォワーディング機能を有効化
mpls ip
! SRGBで利用したい16000-23999をデフォルトでstaticで利用されているため別の場所に移動する
mpls label range static 16 15984
! SRGBを16000-23999で設定
mpls label range ospf-sr 16000 8000
! BGP設定
router bgp 65000
router-id 10.0.0.1
! D-PATH(Domain Path)属性 がいちばん短い経路を優先させる
bgp bestpath d-path
!
! BGP EVPN-MPLS側の設定
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
! GWは、EVPN-MPLSはupdate-source Loopback0 にする
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor 10.0.0.11 peer group MP_BGP_EVPN_MPLS
neighbor 10.0.0.2 peer group MP_BGP_EVPN_MPLS
!
! BGP EVPN-VXLAN側の設定
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
! GWは、EVPN-VXLANはupdate-source Loopback1 にする
neighbor MP_BGP_EVPN_VXLAN update-source Loopback1
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
neighbor 10.0.0.12 peer group MP_BGP_EVPN_VXLAN
neighbor 10.100.0.2 peer group MP_BGP_EVPN_VXLAN
!
! BGP内の設定で、MAC VRFとしてVLAN100を作成
vlan 100
! EVPN-MPLS側のRDとRTを設定
rd 10.0.0.1:100
route-target both 65000:100
! 同じVLAN100の中にリモートドメインとして、EVPN-VXLAN側のRDとRTを設定し、EVPN-MPLSとEVPN-VXLANを紐づける
rd evpn domain remote 10.100.0.1:100
route-target import export evpn domain remote 65000:900
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
! MPLSでカプセル化することを指定
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
!
neighbor MP_BGP_EVPN_VXLAN activate
! VXLANでカプセル化することを指定
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
! ドメインをRemoteに指定
neighbor MP_BGP_EVPN_VXLAN domain remote
!
! ドメインidentifierを分ける
domain identifier 1:1
domain identifier 2:2 remote
!
! EVPNマルチホーミングのためのドメインlocal側のESI設定(実際はremote側のPEで見えるESI)
evpn ethernet-segment domain local
identifier 0011:1111:1111:1111:1111
route-target import 11:11:11:11:11:99
!
! EVPNマルチホーミングのためのドメインremote側のESI設定(実際はlocal側のPEで見えるESI)
evpn ethernet-segment domain remote
identifier 0022:2222:2222:2222:2222
route-target import 22:22:22:22:22:99
! OSPF設定
router ospf 1
router-id 10.0.0.1
passive-interface default
no passive-interface Ethernet1
no passive-interface Ethernet2
no passive-interface Ethernet8
network 0.0.0.0/0 area 0.0.0.0
!
! OSPFでSR-MPLSを有効にしNode-SIDを指定する
segment-routing mpls
no shutdown
prefix-segment 10.0.0.1/32 index 1
vEOS-GW-2 : 全設定
! ホストネームを設定
hostname vEOS-GW-2
! 初期状態で動作しているLLDPとSTPを無効化
no lldp run
spanning-tree mode none
! VLAN100を作成
vlan 100
name USER_100
! OSPFを利用するIFにIPアドレス設定とOSPFでのコストとネットワークタイプを設定
interface Ethernet1
description to_vEOS-MPLS-1
no switchport
ip address 10.9.2.0/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet2
description to_vEOS-VXLAN-1
no switchport
ip address 10.9.12.0/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet8
description to_GW-1
no switchport
ip address 10.9.99.1/31
ip ospf cost 100
ip ospf network point-to-point
! Loopback0 にアドレス設定
interface Loopback0
ip address 10.0.0.2/32
! Loopback1 の作成
interface Loopback1
ip address 10.100.0.2/32
! VXLANの設定、VLAN:100をVNI:1100にする、またsource-interface Loopback1にする
interface Vxlan1
vxlan source-interface Loopback1
vxlan vlan 100 vni 1100
! ルーティング機能を有効化
ip routing
! MPLSフォワーディング機能を有効化
mpls ip
! SRGBで利用したい16000-23999をデフォルトでstaticで利用されているため別の場所に移動する
mpls label range static 16 15984
! SRGBを16000-23999で設定
mpls label range ospf-sr 16000 8000
! BGP設定
router bgp 65000
router-id 10.0.0.2
! D-PATH(Domain Path)属性 がいちばん短い経路”を優先させる
bgp bestpath d-path
!
! BGP EVPN-MPLS側の設定
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
! GWは、EVPN-MPLSはupdate-source Loopback0 にする
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor 10.0.0.11 peer group MP_BGP_EVPN_MPLS
neighbor 10.0.0.1 peer group MP_BGP_EVPN_MPLS
!
! BGP EVPN-VXLAN側の設定
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
! GWは、EVPN-VXLANはupdate-source Loopback1 にする
neighbor MP_BGP_EVPN_VXLAN update-source Loopback1
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
neighbor 10.0.0.12 peer group MP_BGP_EVPN_VXLAN
neighbor 10.100.0.1 peer group MP_BGP_EVPN_VXLAN
!
! BGP内の設定で、MAC VRFとしてVLAN100を作成
vlan 100
! EVPN-MPLS側のRDとRTを設定
rd 10.0.0.2:100
route-target both 65000:100
! 同じVLAN100の中にリモートドメインとして、EVPN-VXLAN側のRDとRTを設定し、EVPN-MPLSとEVPN-VXLANを紐づける
rd evpn domain remote 10.100.0.2:100
route-target import export evpn domain remote 65000:900
!
! BGPでEVPNを利用する設定
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
! MPLSでカプセル化することを指定
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
!
neighbor MP_BGP_EVPN_VXLAN activate
! VXLANでカプセル化することを指定
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
! ドメインをRemoteに指定
neighbor MP_BGP_EVPN_VXLAN domain remote
!
! ドメインidentifierを分ける
domain identifier 1:1
domain identifier 2:2 remote
!
! EVPNマルチホーミングのためのドメインlocal側のESI設定(実際はremote側のPEで見えるESI)
evpn ethernet-segment domain local
identifier 0011:1111:1111:1111:1111
route-target import 11:11:11:11:11:99
!
! EVPNマルチホーミングのためのドメインremote側のESI設定(実際はlocal側のPEで見えるESI)
evpn ethernet-segment domain remote
identifier 0022:2222:2222:2222:2222
route-target import 22:22:22:22:22:99
!
! OSPF設定
router ospf 1
router-id 10.0.0.2
passive-interface default
no passive-interface Ethernet1
no passive-interface Ethernet2
no passive-interface Ethernet8
network 0.0.0.0/0 area 0.0.0.0
!
! OSPFでSR-MPLSを有効にしNode-SIDを指定する
segment-routing mpls
no shutdown
prefix-segment 10.0.0.2/32 index 2
②-1 2台目のGWコンフィグとその他機器の設定追加
以下の内容で設定をします。
- vEOS-GW-2 は、先ほど vEOS-GW-1 をベースにコンフィグ作成
- 他の機器は vEOS-GW-2 と OSPF・BGP が接続できるようにインターフェースや OSPF・BGP の設定追加を行います
vEOS-GW-2 : 初期設定
hostname vEOS-GW-2
no lldp run
spanning-tree mode none
!
vlan 100
name USER_100
!
interface Ethernet1
description to_vEOS-MPLS-1
no switchport
ip address 10.9.2.0/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Ethernet2
description to_vEOS-VXLAN-1
no switchport
ip address 10.9.12.0/31
ip ospf cost 100
ip ospf network point-to-point
!
! GW間の接続用インターフェース
interface Ethernet8
description to_GW-1
no switchport
ip address 10.9.99.1/31
ip ospf cost 100
ip ospf network point-to-point
!
interface Loopback0
ip address 10.0.0.2/32
!
interface Loopback1
ip address 10.100.0.2/32
!
interface Vxlan1
vxlan source-interface Loopback1
vxlan vlan 100 vni 1100
!
ip routing
!
mpls ip
!
mpls label range static 16 15984
mpls label range ospf-sr 16000 8000
!
router ospf 1
router-id 10.0.0.2
passive-interface default
no passive-interface Ethernet1
no passive-interface Ethernet2
! GW-1ともOSPFネイバー接続
no passive-interface Ethernet8
network 0.0.0.0/0 area 0.0.0.0
!
segment-routing mpls
no shutdown
prefix-segment 10.0.0.2/32 index 2
!
router bgp 65000
router-id 10.0.0.2
neighbor MP_BGP_EVPN_MPLS peer group
neighbor MP_BGP_EVPN_MPLS remote-as 65000
neighbor MP_BGP_EVPN_MPLS update-source Loopback0
neighbor MP_BGP_EVPN_MPLS send-community standard extended
neighbor MP_BGP_EVPN_VXLAN peer group
neighbor MP_BGP_EVPN_VXLAN remote-as 65000
neighbor MP_BGP_EVPN_VXLAN update-source Loopback1
neighbor MP_BGP_EVPN_VXLAN send-community standard extended
neighbor 10.0.0.11 peer group MP_BGP_EVPN_MPLS
neighbor 10.0.0.12 peer group MP_BGP_EVPN_VXLAN
! GW-1ともBGPピアをはる、MPLS側とVXLAN側で別アドレスで設定
neighbor 10.0.0.1 peer group MP_BGP_EVPN_MPLS
neighbor 10.100.0.1 peer group MP_BGP_EVPN_VXLAN
vlan 100
rd 10.0.0.2:100
rd evpn domain remote 10.100.0.2:100
route-target both 65000:100
route-target import export evpn domain remote 65000:900
!
address-family evpn
neighbor MP_BGP_EVPN_MPLS activate
neighbor MP_BGP_EVPN_MPLS encapsulation mpls next-hop-self source-interface Loopback0
neighbor MP_BGP_EVPN_VXLAN activate
neighbor MP_BGP_EVPN_VXLAN encapsulation vxlan
neighbor MP_BGP_EVPN_VXLAN domain remote
vEOS-GW-1 : 追加設定
! GW間の接続用インターフェース
interface Ethernet8
description to_vEOS-GW-2
no switchport
ip address 10.9.99.0/31
ip ospf cost 100
ip ospf network point-to-point
router ospf 1
! GW-2とOSPFネイバー接続するための設定
no passive-interface Ethernet8
router bgp 65000
! GW-2とBGPピアをはる、MPLS側とVXLAN側で別アドレスで設定
neighbor 10.0.0.2 peer group MP_BGP_EVPN_MPLS
neighbor 10.100.0.2 peer group MP_BGP_EVPN_VXLAN
vEOS-MPLS-1 : 追加設定
! GW-2接続用インターフェース
interface Ethernet2
description to_vEOS-GW-2
no switchport
ip address 10.9.2.1/31
ip ospf cost 100
ip ospf network point-to-point
router ospf 1
! GW-2とOSPFネイバー接続するための設定
no passive-interface Ethernet2
router bgp 65000
! GW-2とBGPピアをはるための設定
neighbor 10.0.0.2 peer group MP_BGP_EVPN_MPLS
vEOS-VXLAN-1 : 追加設定
! GW-2接続用インターフェース
interface Ethernet2
description to_vEOS-GW-2
no switchport
ip address 10.9.12.1/31
ip ospf cost 100
ip ospf network point-to-point
router ospf 1
! GW-2とOSPFネイバー接続するための設定
no passive-interface Ethernet2
router bgp 65000
! GW-2とBGPピアをはるための設定
neighbor 10.100.0.2 peer group MP_BGP_EVPN_VXLAN
②-2 EVPNマルチホーミングのための設定
以下の絵のとおり、MPLS側と VXLAN 側でそれぞれ EVPN マルチホーミングを設定するために、ESI を設定します。
設定は以下のとおりです。vEOS-GW-1 と vEOS-GW-2 に追加してください。
router bgp 65000
! D-PATH(Domain Path)属性 がいちばん短い経路を優先させる
bgp bestpath d-path
!
address-family evpn
! ドメインidentifierを分ける
domain identifier 1:1
domain identifier 2:2 remote
!
! EVPNマルチホーミングのためのドメインlocal側のESI設定(実際はremote側のPEで見えるESI)
evpn ethernet-segment domain local
identifier 0011:1111:1111:1111:1111
route-target import 11:11:11:11:11:99
!
! EVPNマルチホーミングのためのドメインremote側のESI設定(実際はlocal側のPEで見えるESI)
evpn ethernet-segment domain remote
identifier 0022:2222:2222:2222:2222
route-target import 22:22:22:22:22:99
②-3 動作確認
EVPNのルート状態の確認
以下のとおり、vEOS-MPLS-1 から見て ESI 0022:2222:2222:2222:2222
で 2 台の GW から受け取っていることと、さらに対向の MAC アドレスを指定すると 2 台の GW 向けに経路がある状態(=2 台で冗長している)ことが確認できました。
vEOS-MPLS-1# show bgp evpn extcommunity rt 65000:100
BGP routing table information for VRF default
Router identifier 10.0.0.11, local AS number 65000
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
Network Next Hop Metric LocPref Weight Path
* > RD: 10.0.0.1:100 auto-discovery 0 0022:2222:2222:2222:2222
10.0.0.1 - 100 0 i
* > RD: 10.0.0.2:100 auto-discovery 0 0022:2222:2222:2222:2222
10.0.0.2 - 100 0 i
* > RD: 10.0.0.1:1 auto-discovery 0022:2222:2222:2222:2222
10.0.0.1 - 100 0 i
* > RD: 10.0.0.2:1 auto-discovery 0022:2222:2222:2222:2222
10.0.0.2 - 100 0 i
* > RD: 10.0.0.11:100 mac-ip 0050.7966.6853
- - - 0 i
* > RD: 10.0.0.1:100 mac-ip 0050.7966.6854
10.0.0.1 - 100 0 i
* > RD: 10.0.0.2:100 mac-ip 0050.7966.6854
10.0.0.2 - 100 0 i
* > RD: 10.0.0.1:100 imet 10.0.0.1
10.0.0.1 - 100 0 i
* > RD: 10.0.0.2:100 imet 10.0.0.2
10.0.0.2 - 100 0 i
* > RD: 10.0.0.11:100 imet 10.0.0.11
- - - 0 i
vEOS-MPLS-1#
!------------------------------
! MACアドレスを指定して経路確認
!------------------------------
vEOS-MPLS-1# show bgp evpn extcommunity rt 65000:100 route-type mac-ip 0050.7966.6854 detail
BGP routing table information for VRF default
Router identifier 10.0.0.11, local AS number 65000
BGP routing table entry for mac-ip 0050.7966.6854, Route Distinguisher: 10.0.0.1:100
Paths: 1 available
Local
10.0.0.1 from 10.0.0.1 (10.0.0.1)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, best
Extended Community: Route-Target-AS:65000:100 TunnelEncap:tunnelTypeMpls
MPLS label: 1047390 ESI: 0022:2222:2222:2222:2222
D-PATH: 2:2:EVPN
BGP routing table entry for mac-ip 0050.7966.6854, Route Distinguisher: 10.0.0.2:100
Paths: 1 available
Local
10.0.0.2 from 10.0.0.2 (10.0.0.2)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, best
Extended Community: Route-Target-AS:65000:100 TunnelEncap:tunnelTypeMpls
MPLS label: 1047390 ESI: 0022:2222:2222:2222:2222
D-PATH: 2:2:EVPN
vEOS-MPLS-1#
vEOS-VXLAN-1 側も同じように確認ができます
vEOS-VXLAN-1# show bgp evpn extcommunity rt 65000:900
BGP routing table information for VRF default
Router identifier 10.0.0.12, local AS number 65000
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
Network Next Hop Metric LocPref Weight Path
* > RD: 10.100.0.1:100 auto-discovery 0 0011:1111:1111:1111:1111
10.100.0.1 - 100 0 i
* > RD: 10.100.0.2:100 auto-discovery 0 0011:1111:1111:1111:1111
10.100.0.2 - 100 0 i
* > RD: 10.100.0.1:1 auto-discovery 0011:1111:1111:1111:1111
10.100.0.1 - 100 0 i
* > RD: 10.100.0.2:1 auto-discovery 0011:1111:1111:1111:1111
10.100.0.2 - 100 0 i
* > RD: 10.100.0.1:100 mac-ip 0050.7966.6853
10.100.0.1 - 100 0 i
* > RD: 10.100.0.2:100 mac-ip 0050.7966.6853
10.100.0.2 - 100 0 i
* > RD: 10.0.0.12:900 mac-ip 0050.7966.6854
- - - 0 i
* > RD: 10.0.0.12:900 imet 10.0.0.12
- - - 0 i
* > RD: 10.100.0.1:100 imet 10.100.0.1
10.100.0.1 - 100 0 i
* > RD: 10.100.0.2:100 imet 10.100.0.2
10.100.0.2 - 100 0 i
vEOS-VXLAN-1#
!------------------------------
! MACアドレスを指定して経路確認
!------------------------------
vEOS-VXLAN-1# show bgp evpn extcommunity rt 65000:900 route-type mac-ip 0050.7966.6853 detail
BGP routing table information for VRF default
Router identifier 10.0.0.12, local AS number 65000
BGP routing table entry for mac-ip 0050.7966.6853, Route Distinguisher: 10.100.0.1:100
Paths: 1 available
Local
10.100.0.1 from 10.100.0.1 (10.0.0.1)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, best
Extended Community: Route-Target-AS:65000:900 TunnelEncap:tunnelTypeVxlan
VNI: 1100 ESI: 0011:1111:1111:1111:1111
D-PATH: 1:1:EVPN
BGP routing table entry for mac-ip 0050.7966.6853, Route Distinguisher: 10.100.0.2:100
Paths: 1 available
Local
10.100.0.2 from 10.100.0.2 (10.0.0.2)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, best
Extended Community: Route-Target-AS:65000:900 TunnelEncap:tunnelTypeVxlan
VNI: 1100 ESI: 0011:1111:1111:1111:1111
D-PATH: 1:1:EVPN
vEOS-VXLAN-1#
疎通確認
以下の4パターンで機器間のリンクダウンを起こして PC 間の PING 疎通を確認しましたが、すべてのパターンで PING が一時的に停止し、しばらくすると復旧することが確認できました。
各機器の Loopback アドレスをベースに MP-BGP を利用しているため、OSPF で Loopback アドレスのルートが見えていれば 2 台の EVPN マルチホーミング構成が継続利用可能な状態となります。そのため、
- ③ の GW 間が停止しても 2 台の EVPN マルチホーミング構成のまま
- ④ のように 2 台目の全 OSPF ネイバーがダウンすると 2 台から 1 台の状態になる
という動作になります。
最後に
EVPN-MPLS と VXLAN の相互接続や冗長化構成を vEOS-lab で検証しました。柔軟な接続が可能であることを確認できました。
- 参考にしたリンク
- セグメントルーティング設定参考
- マルチドメイン設定参考
- EVPN 間接続参考