CML2でVXLAN/EVPNを検証してみる Part3(構築編)

Cisco
スポンサーリンク
スポンサーリンク

はじめに

次の記事の続きとなります。

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を全て掲載しています。

コメント

タイトルとURLをコピーしました