はじめに
次の記事の続きとなります。
CML2でVXLAN/EVPNを検証してみる Part2(座学編)
わかりずらいVXLAN/EVPNについて技術要素の解説をしています。
目的
- 物理図を参照しながら、VXLAN/EVPNを構築するまでの一連のconfig作成方法を理解する。
物理図
configの作成
前提として、Spineスイッチ並びにLeafスイッチの任意の1台のconfigを用いて解説します。可変部分は緑色にしておきます。
アンダーレイの構築。OSPFで疎通ができるようにする
- ルータIDはloopback1を指定
- OSPFを使用
- RD/BDRの選定を省くためpoint-to-pointを設定
- VXLANのオーバーヘッド(50bytes)によるIPフラグメンテーションを防止するため、MTUサイズを最大サイズに変更。サーバ側のNICが9216byteまで対応している前提。
SpineSW
feature ospf router ospf UNDERLAY-NET router-id 2.2.2.2 interface loopback1 ip ospf network point-to-point ip router ospf UNDERLAY-NET area 0.0.0.0 ip address 2.2.2.2/32 interface Ethernet1/1 no shut ip ospf network point-to-point no ip ospf passive-interface ip router ospf UNDERLAY-NET area 0.0.0.0 mtu 9216 ip address 10.1.2.1/30 interface Ethernet1/2 no shut ip ospf network point-to-point no ip ospf passive-interface ip router ospf UNDERLAY-NET area 0.0.0.0 mtu 9216 ip address 10.1.2.5/30 interface Ethernet1/3 no shut ip ospf network point-to-point no ip ospf passive-interface ip router ospf UNDERLAY-NET area 0.0.0.0 mtu 9216 ip address 10.1.2.9/30 interface Ethernet1/4 no shut ip ospf network point-to-point no ip ospf passive-interface ip router ospf UNDERLAY-NET area 0.0.0.0 mtu 9216 ip address 10.1.2.13/30 copy running-config startup-config show ip int b show ip ospf neighbor show ip route
LeafSW
feature ospf router ospf UNDERLAY-NET router-id 6.6.6.6 interface loopback1 ip ospf network point-to-point ip router ospf UNDERLAY-NET area 0.0.0.0 ip address 6.6.6.6/32 interface Ethernet1/1 no shut ip ospf network point-to-point no ip ospf passive-interface ip router ospf UNDERLAY-NET area 0.0.0.0 mtu 9216 ip address 10.1.1.14/30 interface Ethernet1/2 no shut ip ospf network point-to-point no ip ospf passive-interface ip router ospf UNDERLAY-NET area 0.0.0.0 mtu 9216 ip address 10.1.2.14/30 copy running-config startup-config show ip int b show ip ospf neighbor show ip route
SpineSWとLeafSW間をiBGPでネイバー関係にする
- iBGPはフルメッシュ型にする必要があるため、台数が増えるほどネイバーコマンドの投入数が多くなり管理も大変なので、ルートリフレクターを使用する
- ルートリフレクターの役割はSpineSWが担う
- BGPタイマーを短めにした
SpineSW
feature bgp
router bgp 65000
timers bgp 5 15
router-id 2.2.2.2
address-family ipv4 unicast
template peer LEAF-PEER
remote-as 65000
update-source loopback1
address-family ipv4 unicast
send-community
send-community extended
route-reflector-client
neighbor 3.3.3.3
inherit peer LEAF-PEER
neighbor 4.4.4.4
inherit peer LEAF-PEER
neighbor 5.5.5.5
inherit peer LEAF-PEER
neighbor 6.6.6.6
inherit peer LEAF-PEER
copy running-config startup-config
LeafSW
feature bgp
router bgp 65000
router-id 6.6.6.6
address-family ipv4 unicast
neighbor 1.1.1.1
remote-as 65000
update-source loopback1
address-family ipv4 unicast
send-community
send-community extended
neighbor 2.2.2.2
remote-as 65000
update-source loopback1
address-family ipv4 unicast
send-community
send-community extended
copy running-config startup-config
確認
show ip bgp summary Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 3.3.3.3 4 65000 8 8 5 0 0 00:02:49 0 4.4.4.4 4 65000 8 8 5 0 0 00:02:32 0 5.5.5.5 4 65000 8 8 5 0 0 00:02:11 0 6.6.6.6 4 65000 8 8 5 0 0 00:02:06 0
BUMtrafficの転送方法でマルチキャストを利用
- スパースモードを使用
- RPとしてAnycast-Gatewayを使用
SpineSW
feature pim interface loopback11 ip address 11.11.11.11/32 ip pim sparse-mode ip ospf network point-to-point ip router ospf UNDERLAY-NET area 0.0.0.0 ip pim rp-address 11.11.11.11 group-list 224.0.0.4/4 ※全てのマルチキャストグループのRPとする。 ip pim anycast-rp 11.11.11.11 1.1.1.1 ip pim anycast-rp 11.11.11.11 2.2.2.2 interface Ethernet1/1 ip pim sparse-mode interface Ethernet1/2 ip pim sparse-mode interface Ethernet1/3 ip pim sparse-mode interface Ethernet1/4 ip pim sparse-mode interface loopback1 ip pim sparse-mode copy running-config startup-config
LeafSW
feature pim interface loopback16 ip ospf network point-to-point ip address 16.16.16.16/32 ip pim sparse-mode ip router ospf UNDERLAY-NET area 0.0.0.0 ip pim rp-address 11.11.11.11 interface Ethernet1/1 ip pim sparse-mode interface Ethernet1/2 ip pim sparse-mode interface loopback1 ip pim sparse-mode copy running-config startup-config
確認
SpineSW1(config-if)# show ip pim neighbor PIM Neighbor Status for VRF "default" Neighbor Interface Uptime Expires DR Bidir- BFD ECMP Redirect Priority Capable State Capable 10.1.1.2 Ethernet1/1 00:01:42 00:01:30 1 yes n/a no 10.1.1.6 Ethernet1/2 00:01:02 00:01:41 1 yes n/a no 10.1.1.10 Ethernet1/3 00:00:37 00:01:39 1 yes n/a no 10.1.1.14 Ethernet1/4 00:00:13 00:01:34 1 yes n/a no
VXLAN / EVPN機能を有効化。VLANとVXLANの紐づけ
LesfSW
赤字の箇所はVXLAN間ルーティングを行うために必須となる設定です。
feature nv overlay
feature vn-segment-vlan-based
nv overlay evpn
spanning-tree vlan 1,140,141,999 priority 4096
vlan 140
name L2-VNI-140-Tenant1
vn-segment 50140
vlan 141
name L2-VNI-141-Tenant1
vn-segment 50141
vlan 999
vn-segment 50999 ※テナント用のVRFに紐づけるVNIと同一であることが必須
copy running-config startup-config
show vxlan
SVIの作成とanycast gatewayの設定
LeafSW
赤字の箇所はVXLAN間ルーティングを行うために必須となる設定です。
feature interface-vlan
vrf context Tenant-1 ※VXLAN間ルーティングを行うために必須
vni 50999 ※既に作成したL3 VNIと同一である必要がある
rd auto
address-family ipv4 unicast ※VXLANファブリック外へルーティングする時に必須
route-target both auto ※VXLANファブリック内へルーティングする時に必須
route-target both auto evpn ※VXLANファブリック内へルーティングする時に必須。EVPN用。
fabric forwarding anycast-gateway-mac 0000.2222.3333 ※エニキャストゲートウェイ用の仮想MACアドレス。全てのVTEPで1つのみ設定可能。
interface Vlan140
mtu 9216 ※アンダーレイのI/FのMTUサイズと一緒にする必要がある
no shutdown
vrf member Tenant-1
no ip redirects
ip address 172.21.140.1/24 tag 11111 ※エニーキャストIPアドレスの設定。 tag 11111はルートマップでマッチさせるために使用。prefilxリストでも良いがタグの方が簡単。
fabric forwarding mode anycast-gateway ※分散エニーキャストゲートウェイとする。同じセグメントで同一IPアドレスを設定していても、IPアドレス重複エラーが出ないようにする。
interface Vlan141
mtu 9216 ※アンダーレイのI/FのMTUサイズと一緒にする必要がある
no shutdown
vrf member Tenant-1
no ip redirects
ip address 172.21.141.1/24 tag 11111 ※エニーキャストIPアドレスの設定。 tag 11111はルートマップでマッチさせるために使用。prefilxリストでも良いがタグの方が簡単。
fabric forwarding mode anycast-gateway ※分散エニーキャストゲートウェイとする。同じセグメントで同一IPアドレスを設定していても、IPアドレス重複エラーが出ないようにする。
interface Vlan999
no shutdown
vrf member Tenant-1
ip forward ※このSVIはIPアドレスを設定していない。IPアドレスがない場合でもルーティングを可能とするために設定。
router bgp 65000
vrf Tenant-1
address-family ipv4 unicast
advertise l2vpn evpn ※Nexus5600のみ必須
redistribute direct route-map overlay_subnets
route-map overlay_subnets permit 10
match tag 11111
route-map overlay_subnets permit 10
match tag 11111
copy running-config startup-config
VTEPの設定
LeafSW
赤字の箇所はVXLAN間ルーティングを行うために必須となる設定です。
interface nve1 no shutdown host-reachability protocol bgp ※flood & pruneではなくBGP EVPNを使用することを知らせる。CiscoではBGPのみ対応していることから設定必須。 source-interface loopback14 ※これがVTEPのIPアドレスとなる。VXLANのOuterの送信元IPアドレスに使用される。 member vni 50140 mcast-group 239.0.0.140 ※BUMtrafficをMulticastでルーティングする場合は必須。ベストプラクティス。 member vni 50141 mcast-group 239.0.0.141 ※BUMtrafficをMulticastでルーティングする場合は必須。ベストプラクティス。 member vni 50999 associate-vrf copy running-config startup-config
L2 VNIでEVPNを有効化
- RDとRTはAutoで設定。ベストプラクティスです。
- iBGPの場合はAutoで問題ないです。iBGPの使用がベストプラクティスです。
SpineSW
nv overlay evpn
router bgp 65000
address-family l2vpn evpn
retain route-target all
template peer LEAF-PEER
address-family l2vpn evpn
send-community ※おそらく不要です。参考にしたブログでは設定していました。
send-community extended ※Route Targetの交換に必要
route-reflector-client
copy running-config startup-config
LeafSW
router bgp 65000 address-family l2vpn evpn retain route-target all neighbor 1.1.1.1 remote-as 65000 address-family l2vpn evpn send-community ※おそらく不要です。参考にしたブログでは設定していました。 send-community extended ※Route Targetの交換に必要 neighbor 2.2.2.2 remote-as 65000 address-family l2vpn evpn send-community ※おそらく不要です。参考にしたブログでは設定していました。 send-community extended ※Route Targetの交換に必要 # Difne the L2 VNIs under the EVPN configuration mode evpn vni 50140 l2 rd auto ※Router-ID : VRF-ID で自動的に識別される route-target import auto ※AS Number : VNI で自動的に識別 route-target export auto ※AS Number : VNI で自動的に識別 vni 50141 l2 rd auto ※Router-ID : VRF-ID で自動的に識別される route-target import auto ※AS Number : VNI で自動的に識別 route-target export auto ※AS Number : VNI で自動的に識別 copy running-config startup-config
スイッチポートへのVLANの紐づけ
LeafSW
int Ethernet1/11 no shut mtu 9216 ※アンダーレイのI/FのMTUサイズと同一にする必要がある switchport switchport mode access switchport access vlan 140 copy running-config startup-config int Ethernet1/10 no shut mtu 9216 ※アンダーレイのI/FのMTUサイズと同一にする必要がある switchport switchport mode access switchport access vlan 141 copy running-config startup-config
ARPの抑制
LeafSW
hardware access-list tcam region vpc-convergence 0 hardware access-list tcam region arp-ether 512 copy running-config startup-config Reload Y ※再起動で7分くらい待つ ter len 0 conf t interface nve1 source-interface loopback16 member vni 50140 suppress-arp ※これにより、EVPNで各VTEP配下のホストを学習している場合、LeafSWが代理でARP応答。プロキシARPとの差異は「LeafSWで各VTEP配下のMACアドレスとIPアドレス情報のバインディングを保持している場合に限り、ARP応答を代理することです。プロキシARPは必ず代理応答します。」 member vni 50141 suppress-arp ※これにより、EVPNで各VTEP配下のホストを学習している場合、LeafSWが代理でARP応答。プロキシARPとの差異は「LeafSWで各VTEP配下のMACアドレスとIPアドレス情報のバインディングを保持している場合に限り、ARP応答を代理することです。プロキシARPは必ず代理応答します。」 copy running-config startup-config
DesktopへのIPの設定
- CML2で利用可能なDesktopの設定となります
左端
cisco / cisco でログイン。 sudo ip addr add 172.21.140.100/24 dev eth0 sudo ip route add default via 172.21.140.1 ip addr show netstat -rn ping 172.16.140.1
右端(vlan140)
cisco / cisco でログイン。 sudo ip addr add 172.21.140.200/24 dev eth0 sudo ip route add default via 172.21.140.1 ip addr show netstat -rn ping 172.16.140.1
右端(vlan141)
cisco / cisco でログイン。 sudo ip addr add 172.21.141.200/24 dev eth0 sudo ip route add default via 172.21.141.1 ip addr show netstat -rn ping 172.16.141.1 ping 172.16.140.100 ping 172.16.140.200
次の記事
CML2でVXLAN/EVPNを検証してみる Part4(config一覧編)
わかりずらいVXLAN/EVPNについて物理構成図と実機のconfigを全て掲載しています。
コメント