简介
本文档介绍如何在Nexus 9000交换机上配置和验证VXLAN Xconnect的快速参考。
先决条件
要求
思科建议您了解VXLAN EVPN。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- N9K-C93180YC-EX
- NXOS 9.2(1)
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
概述
VXLAN Xconnect是点对点隧道的机制,用于将数据包从一个枝叶传输到另一个枝叶。内部Dot1q标记保留,VXLAN封装在外部VNID中,该VNID被指定为Xconnect VNID。第2层控制帧(如链路层发现协议(LLDP)、思科发现协议(CDP)、生成树协议(STP))是VXLAN封装的,并发送到隧道的其他端。
拓扑
VTEP1、VTEP2、VTEP3和VTEP4是两个vPC VTEP对,这样,来自下游交换机的内部dot1q标记将保留,并且当VXLAN封装时,使用外部VLAN ID的VXLAN VNID将其发送到远程VTEP。 所有VTEP均为N9K-C93180YC-EX。
下游交换机是Nexus 3k,在各自的VLAN中配置了交换机虚拟接口(SVI)来模拟主机。
配置
1.此Xconnect拓扑中使用的外部VLAN是3000。这将是VNID和Xconnect配置。
VTEP1# sh run vlan 3000
vlan 3000
vn-segment 1003000
xconnect
2.必须启用功能NGOAM,并需要此配置。
VTEP1# sh run ngoam
feature ngoam
ngoam install acl
ngoam xconnect hb-interval 5000
3.指向下游交换机的Dot1q隧道配置。
VTEP1# sh run int po10
interface port-channel10
switchport
switchport mode dot1q-tunnel
switchport access vlan 3000
speed 40000
no negotiate auto
vpc 10
仅当VTEP部署为vPC时,才需要vPC配置。否则,请跳过本文档中提到的vPC配置。VXLAN Xconnect也可在独立VTEP上配置。
4.必须在NVE接口下定义组播组以处理转发。请注意,在相关上行链路上启用ip pim sparse-mode,并定义PIM RP,以便正确交换组播路由和PIM消息。通常,PIM RP在主干层定义。
VTEP1# sh run int nve1
no shutdown
host-reachability protocol bgp
source-interface loopback1
member vni 1003000 mcast-group 239.30.30.30
5.需要指定基础设施VLAN并允许其作为对等链路中的本征VLAN。vPC VTEP需要此步骤。
VTEP1# sh run span|infra
no spanning-tree vlan 3000
system nve infra-vlans 999
VTEP1# sh run int po1
interface port-channel1
switchport
switchport mode trunk
switchport trunk native vlan 999
spanning-tree port type network
vpc peer-link
6. BGP/EVPN配置:枝叶/主干之间需要L2VPN EVPN邻居关系来交换建立VXLAN Xconnect所需的第3类路由。
- 此处,IP地址192.168.100.1和192.168.100.2是拓扑中的主干。通常,L2VPN EVPN邻居关系会形成到主干。主干在iBGP方案中将所有枝叶交换机配置为路由反射器客户端。
- 建议使用单独的环回用于BGP/OSPF和NVE。
feature bgp
router bgp 65000
router-id 192.168.100.3
neighbor 192.168.100.1
remote-as 65000
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
neighbor 192.168.100.2
remote-as 65000
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
evpn
vni 1003000 l2
rd auto
route-target import auto
route-target export auto
注意:必须在Xconnect VLAN中禁用STP。MAC学习不会在Xconnect VLAN内发生,这实质上意味着MAC地址没有第2类bgp l2vpn evpn更新。因此,来自一个vtep的流量将使用为Xconnect VLAN定义的Mcast组(239.30.30.30)的外部目标IP地址进行封装。
验证
使用本部分可确认配置能否正常运行。
1. BGP邻居关系。
VTEP1# sh bgp l2vpn evpn sum
BGP summary information for VRF default, address family L2VPN EVPN
BGP router identifier 192.168.100.3, local AS number 65000
BGP table version is 14, L2VPN EVPN config peers 2, capable peers 1
4 network entries and 5 paths using 756 bytes of memory
BGP attribute entries [3/492], BGP AS path entries [0/0]
BGP community entries [0/0], BGP clusterlist entries [2/8]
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.100.1 4 65000 92 90 14 0 0 01:21:41 2
2.接收第3类前缀。
VTEP1# sh bgp l2vpn evpn
BGP routing table information for VRF default, address family L2VPN EVPN
BGP table version is 14, Local Router ID is 192.168.100.3
Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best
Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-injected
Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 192.168.100.3:35767 (L2VNI 1003000)
*>l[3]:[0]:[32]:[172.16.1.100]/88
172.16.1.100 100 32768 i
* i[3]:[0]:[32]:[172.17.1.100]/88 <<< bgp type 3
172.17.1.100 100 0 i
*>i 172.17.1.100 100 0 i
Route Distinguisher: 192.168.100.5:35767
*>i[3]:[0]:[32]:[172.17.1.100]/88
172.17.1.100 100 0 i
Route Distinguisher: 192.168.100.6:35767
*>i[3]:[0]:[32]:[172.17.1.100]/88
172.17.1.100 100 0 i
3. NVE对等。
VTEP1# sh nve peer
Interface Peer-IP State LearnType Uptime Router-Mac
--------- --------------- ----- --------- -------- -----------------
nve1 172.17.1.100 Up CP 00:58:06 n/a
VTEP1# show nve vni
Codes: CP - Control Plane DP - Data Plane
UC - Unconfigured SA - Suppress ARP
SU - Suppress Unknown Unicast
Interface VNI Multicast-group State Mode Type [BD/VRF] Flags
--------- -------- ----------------- ----- ---- ------------------ -----
nve1 1003000 239.30.30.30 Up CP L2 [3000] Xconn <<<
4. 恩戈姆检查。
VTEP1# show ngoam xconnect sess all
States: LD = Local interface down, RD = Remote interface Down
HB = Heartbeat lost, DB = Database/Routes not present
* - Showing Vpc-peer interface info
Vlan Peer-ip/vni XC-State Local-if/State Rmt-if/State
===============================================================================
3000 172.17.1.100 / 1003000 Active Po10 / UP Po10 / UP
VTEP1# show ngoam xconnect sess 3000
Vlan ID: 3000
Peer IP: 172.17.1.100 VNI : 1003000
State: Active <<< State should be active
Last state update: 12/10/2018 17:13:45.337
Local interface: Po10 State: UP
Local vpc interface Po10 State: UP
Remote interface: Po10 State: UP
Remote vpc interface: Po10 State: UP
NGOAM会话启动后,N3k将在CDP中看到彼此。STP BPDU也通过隧道传输,以便交换机也同意根网桥的放置。
5.验证下游交换机。
SW1(config)# sh span vl 10
VLAN0010
Spanning tree enabled protocol rstp
Root ID Priority 32778
Address 7079.b348.6cb7
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 7079.b348.6cb7
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Po10 Desg FWD 1 128.4105 P2p
SW2(config)# sh span vl 10
VLAN0010
Spanning tree enabled protocol rstp
Root ID Priority 32778
Address 7079.b348.6cb7
Cost 1
Port 4105 (port-channel10)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 707d.b964.9441
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Po10 Root FWD 1 128.4105 P2p
SW1(config)# show ip int b
IP Interface Status for VRF "default"(1)
Interface IP Address Interface Status
Vlan10 192.168.10.100 protocol-up/link-up/admin-up
Vlan20 192.168.20.100 protocol-up/link-up/admin-up
Vlan30 192.168.30.100 protocol-up/link-up/admin-up
SW2(config)# show ip int b
IP Interface Status for VRF "default"(1)
Interface IP Address Interface Status
Vlan10 192.168.10.200 protocol-up/link-up/admin-up
Vlan20 192.168.20.200 protocol-up/link-up/admin-up
Vlan30 192.168.30.200 protocol-up/link-up/admin-up
SW1(config)# ping 192.168.10.200
PING 192.168.10.200 (192.168.10.200): 56 data bytes
64 bytes from 192.168.10.200: icmp_seq=0 ttl=254 time=0.826 ms
64 bytes from 192.168.10.200: icmp_seq=1 ttl=254 time=0.531 ms
64 bytes from 192.168.10.200: icmp_seq=2 ttl=254 time=0.54 ms
64 bytes from 192.168.10.200: icmp_seq=3 ttl=254 time=0.522 ms
64 bytes from 192.168.10.200: icmp_seq=4 ttl=254 time=0.571 ms
故障排除
目前没有针对此配置的故障排除信息。
注意事项
1.如果vPC交换机内的配置不一致,则在Xconnect VXLAN设置中,dot1q隧道接口将陷入错误禁用状态。以下是某些接口将错误禁用的情况;
- 如果两台vPC交换机上未定义VLAN到VN网段。
- 如果两个vPC交换机上未定义到组播组的NVE。
- 如果未收到NGOAM心跳(使用ethanalyzer with filter=cfm捕获NGOAM心跳数据包)。
- 即使dot1q隧道接口在vPC设置中是孤立连接的,仍需要在NVE接口下为VN网段配置组播组,VN网段是两台交换机Xconnect的一部分。
- NGOAM心跳由vPC主交换机处理/发送。登录vPC辅助的心跳消息将同步到主
2.在VLAN中配置Xconnect时,从一个站点到另一个站点的流量将使用在特定vn网段的NVE接口下定义的外部目标地址=组播地址进行封装。建议为Xconnect VLAN使用唯一组播组。核心/主干中的组播必须正常运行。
3.组播流量可能会同时到达Xconnect远端的vPC框;但是,Decap获胜者(可解封BUM的盒子)将只是vPC对中的一台交换机。这可以使用命令 — show forwarding multicast route group <Group address> source <SRC IP>来验证。如果此处显示的标志是小写v,则表示该框是小写V,如果它是大写V,则该框是小写赢,因此可以解封组播流量并进一步向下转发。
4.在基于93180YC的平台上,当主机孤立地连接到9k1,且9k1上没有S、G的OIL时,使用源IP-> 127.0.0.1和目标IP->共享NVE IP的特殊封装将组播数据包的副本发送到vPC对等体,如果9k2具有S、G条目的OIL,然后9k2将负责到远程站点的流量转发。
数据包捕获
以下是在主干交换机上捕获的数据包截图:
- 保留内部dot1q报头=10
- 使用的VNI是1003000(即外部VLAN的VNID)
- 目的IP地址是在NVE接口下定义的组播组