1 实验1:基于静态Ingress Replication实现Cisco VxLAN & 集中式网关

一、VxLAN简介

1.1、VxLAN简要说明

  • VxLAN是一种大二层网络技术,VxLAN也是SDN的基础;
  • VxLAN是网络Overlay技术的一种实现;
  • VxLAN具有良好的扩展性,支持数据中心多租户环境,解决了传统VLAN的局限性;
  • VxLAN更适合云环境,解耦了物理网络(Underlay)和虚拟网络(Overlay),将物理网络当作网络功能池,和服务器虚拟化资源池一样,可实现虚拟网络的按需交付,即由上层应用驱动虚拟网络;
  • VxLAN由RFC7348定义。

1.2、 VxLAN名词释义

  • VTEP(Virtual Tunnel End Point):作为VxLAN隧道的起始点或终结点,负责VXLAN报文的封装与解封装,每个VTEP应具备两个接口:一个是本地桥接接口,负责原始以太帧接收和发送,另一个是IP接口,负责VXLAN数据帧接收和发送。VTEP可以是物理交换机或软件交换机;
  • VxLAN Gateway:负责VXLAN和非VXLAN之间、不同VXLAN之间的网络通讯;
  • VNI(Virtual Network Identifier):虚拟网络标识符,即VxLAN ID,用于划分不同的租户,需要和租户的VLAN ID进行映射绑定。不同租户通过不同的VNI实现隔离,每个租户的设备可以位于同一数据中心,也可以位于不同的数据中心,VNI类似传统网络中的VLAN,但是VNI比传统的VLAN容量要大;
  • VTI(VxLAN Tunnel Interface):VxLAN隧道接口,思科叫NVE(Network Virtual Interface)接口,主要用于封装/解封装VxLAN的UDP头,还用于建立VxLAN的隧道;
  • VxLAN Segment:指VxLAN的网络,一个VNI就是一个VxLAN Segment,类似于传统VLAN的概念,可以类比为一个广播域,但它运行在三层网络之上。

二、VxLAN报文封装

image.png

image.png
  • 从以上两张图中可看出,VxLAN采用"MAC in UDP"的封装方式;
  • VxLAN在原始帧前添加了8个字节的VxLAN头,添加了8个字节的UDP头,加了20个字节的新IP头,加了14字节的新MAC头,共新加50字节;
  • VxLAN给原始帧新增了50字节的开销,所以在项目中使用VxLAN时应调整Underlay网络的MTU以减少报文分片;
  • VxLAN头中的"VxLAN"字段第5位(上图中红色箭头)如果为1,表示使用VxLAN;
  • VxLAN头中的"VNI"字段表示VxLAN ID,共24位(上图中红色箭头),所以VxLAN ID容量为:2^24=16,777,216个。

三、VxLAN的实现和部署方式

实现方式:

  • 单播:单播静态方式、BGP EVPN方式;
  • 组播:标准的组播方式。

部署方式:

  • 单机方式:传统网络部署方式,按照网络规划登录到每台设备上进行配置。云计算数据中心中,此方式无法协同云平台实现网络的自动化部署;
  • 控制器方式:在大二层网络中,为了方便控制与部署引入了控制器。控制器是统一的网络控制平台,实现网络资源统一协调及管理,协同云平台可实现业务和网络的自动化部署。

四、静态Ingress Replication实现VxLAN实验

4.1 实验环境

工具 版本 备注
EVE-NG 2.0.3-105 模拟器
Cisco Nexus 9000v 7.0.3.I7.8 支持VxLAN的交换机,拓扑中的N9K1和N9K-2
IOL 15.7.3 用于模拟路由器,拓扑中的DC1、SP和DC2
Wireshark 3.2.2 抓包软件

4.2 实验拓扑

image.png
  • Underlay:N9K-1的E1/1口、N9K-2的E1/1口、DC1、SP和DC2运行OSPF实现Underlay网络的互联互通;
  • Overlay:实现VPC6能ping通VPC7。

4.3 实验配置

4.3.1 配置Underlay

4.3.1.1 接口IP与VLAN配置

N9K-1配置:

vlan 10
interface Ethernet1/2
  switchport access vlan 10
  spanning-tree port type edge
interface Ethernet1/1
  no switchport
  ip address 20.1.1.1/30
  no shutdown
interface loopback0
  ip address 1.1.1.1/32

DC1配置:

interface Ethernet0/0
 ip address 20.1.1.2 255.255.255.252
 no shutdown
interface Ethernet0/1
 ip address 40.1.1.1 255.255.255.252
 no shutdown

SP配置:

interface Ethernet0/1
 ip address 40.1.1.2 255.255.255.252
 no shutdown
interface Ethernet0/2
 ip address 50.1.1.1 255.255.255.252
 no shutdown

DC2配置:

interface Ethernet0/2
 ip address 50.1.1.2 255.255.255.252
 no shutdown
interface Ethernet0/0
 ip address 30.1.1.2 255.255.255.252
 no shutdown

N9K-2配置:

vlan 10
interface Ethernet1/2
  switchport access vlan 10
  spanning-tree port type edge
interface Ethernet1/1
  no switchport
  ip address 30.1.1.1/30
  no shutdown
interface loopback0
  ip address 2.2.2.2/32

VPC6设置:

VPCS> ip  192.168.1.1/24
Checking for duplicate address...
PC1 : 192.168.1.1 255.255.255.0

VPC7设置:

VPCS> ip 192.168.1.2/24
Checking for duplicate address...
PC1 : 192.168.1.2 255.255.255.0

4.3.1.2 OSPF配置

N9K-1配置:

feature ospf
router ospf 1
  router-id 1.1.1.1
interface loopback0
  ip router ospf 1 area 0.0.0.0
interface Ethernet1/1
  ip router ospf 1 area 0.0.0.0

DC1配置:

router ospf 1
 network 20.1.1.0 0.0.0.3 area 0
 network 40.1.1.0 0.0.0.3 area 0

SP配置:

router ospf 1
 network 40.1.1.0 0.0.0.3 area 0
 network 50.1.1.0 0.0.0.3 area 0

DC2配置:

router ospf 1
 network 30.1.1.0 0.0.0.3 area 0
 network 50.1.1.0 0.0.0.3 area 0

N9K-2配置:

feature ospf
router ospf 1
  router-id 2.2.2.2
interface loopback0
  ip router ospf 1 area 0.0.0.0
interface Ethernet1/1
  ip router ospf 1 area 0.0.0.0

查看N9K-1 OSPF路由表:

N9K-1# show  ip route  ospf
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%' in via output denotes VRF 

2.2.2.2/32, ubest/mbest: 1/0
    *via 20.1.1.2, Eth1/1, [110/71], 00:02:15, ospf-1, intra
30.1.1.0/30, ubest/mbest: 1/0
    *via 20.1.1.2, Eth1/1, [110/70], 00:02:15, ospf-1, intra
40.1.1.0/30, ubest/mbest: 1/0
    *via 20.1.1.2, Eth1/1, [110/50], 00:04:59, ospf-1, intra
50.1.1.0/30, ubest/mbest: 1/0
    *via 20.1.1.2, Eth1/1, [110/60], 00:04:59, ospf-1, intra

查看N9K-2 OSPF路由表:

N9K-2# show  ip route  ospf
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%' in via output denotes VRF 

1.1.1.1/32, ubest/mbest: 1/0
    *via 30.1.1.2, Eth1/1, [110/71], 00:03:10, ospf-1, intra
20.1.1.0/30, ubest/mbest: 1/0
    *via 30.1.1.2, Eth1/1, [110/70], 00:03:10, ospf-1, intra
40.1.1.0/30, ubest/mbest: 1/0
    *via 30.1.1.2, Eth1/1, [110/60], 00:03:10, ospf-1, intra
50.1.1.0/30, ubest/mbest: 1/0
    *via 30.1.1.2, Eth1/1, [110/50], 00:03:10, ospf-1, intra

4.3.1.3 连通性测试

N9K-1# ping 2.2.2.2 source  1.1.1.1
PING 2.2.2.2 (2.2.2.2) from 1.1.1.1: 56 data bytes
64 bytes from 2.2.2.2: icmp_seq=0 ttl=251 time=11.635 ms
64 bytes from 2.2.2.2: icmp_seq=1 ttl=251 time=12.838 ms
64 bytes from 2.2.2.2: icmp_seq=2 ttl=251 time=15.182 ms
64 bytes from 2.2.2.2: icmp_seq=3 ttl=251 time=10.633 ms
64 bytes from 2.2.2.2: icmp_seq=4 ttl=251 time=10.743 ms

--- 2.2.2.2 ping statistics ---
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 10.633/12.206/15.182 ms
N9K-2# ping 1.1.1.1 source 2.2.2.2
PING 1.1.1.1 (1.1.1.1) from 2.2.2.2: 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=251 time=45.525 ms
64 bytes from 1.1.1.1: icmp_seq=1 ttl=251 time=14.746 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=251 time=11.07 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=251 time=10.871 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=251 time=11.149 ms

--- 1.1.1.1 ping statistics ---
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 10.871/18.672/45.525 ms

4.3.2 配置Overlay(static Ingress Replication VxLAN)

基于"Static Ingress Replication"实现的VxLAN,是流量驱动式的MAC地址泛洪和学习,没有控制层面。

4.3.2.1 配置VTEP(N9K1和N9K-2)

N9K-1配置:

N9K-1(config)# feature nv overlay 
N9K-1(config)# feature vn-segment-vlan-based 
N9K-1(config)# vlan 10 
N9K-1(config-vlan)# vn-segment 10010
N9K-1(config-if-nve)#interface nve1
  no shutdown
  source-interface loopback0
  member vni 10010
    ingress-replication protocol static
      peer-ip 2.2.2.2

N9K-2配置:

N9K-2(config)# feature nv overlay 
N9K-2(config)# feature vn-segment-vlan-based 
N9K-2(config)# vlan 10 
N9K-2(config-vlan)# vn-segment 10010
N9K-2(config-if-nve)#interface nve1
  no shutdown
  source-interface loopback0
  member vni 10010
    ingress-replication protocol static
      peer-ip 1.1.1.1

连通性测试:
从VPC6 ping VPC7

VPCS> ping  192.168.1.2

84 bytes from 192.168.1.2 icmp_seq=1 ttl=64 time=52.581 ms
84 bytes from 192.168.1.2 icmp_seq=2 ttl=64 time=38.518 ms
84 bytes from 192.168.1.2 icmp_seq=3 ttl=64 time=34.455 ms
84 bytes from 192.168.1.2 icmp_seq=4 ttl=64 time=39.765 ms
84 bytes from 192.168.1.2 icmp_seq=5 ttl=64 time=35.878 ms

从VPC7 ping VPC6

VPCS> ping  192.168.1.1

84 bytes from 192.168.1.1 icmp_seq=1 ttl=64 time=36.590 ms
84 bytes from 192.168.1.1 icmp_seq=2 ttl=64 time=34.301 ms
84 bytes from 192.168.1.1 icmp_seq=3 ttl=64 time=40.432 ms
84 bytes from 192.168.1.1 icmp_seq=4 ttl=64 time=50.963 ms
84 bytes from 192.168.1.1 icmp_seq=5 ttl=64 time=34.739 ms

4.3.2.2 状态查看

查看NVE接口状态

N9K-1# show nve interface 
Interface: nve1, State: Up, encapsulation: VXLAN
 VPC Capability: VPC-VIP-Only [not-notified]
 Local Router MAC: 5000.0001.0007
 Host Learning Mode: Data-Plane
 Source-Interface: loopback0 (primary: 1.1.1.1, secondary: 0.0.0.0)

查看NVE下的VNI状态,其中"DP"为数据层面

N9K-1# show nve vni 
Codes: CP - Control Plane        DP - Data Plane          
       UC - Unconfigured         SA - Suppress ARP        
       SU - Suppress Unknown Unicast 
       Xconn - Crossconnect      
       MS-IR - Multisite Ingress Replication
 
Interface VNI      Multicast-group   State Mode Type [BD/VRF]      Flags
--------- -------- ----------------- ----- ---- ------------------ -----
nve1      10010    UnicastStatic     Up    DP   L2 [10] 

查看NVE邻居、NVE数据层面、NVE Ingress-replication信息

N9K-1# show nve peers 
Interface Peer-IP          State LearnType Uptime   Router-Mac       
--------- ---------------  ----- --------- -------- -----------------
nve1      2.2.2.2          Up    DP        00:17:33 n/a              

N9K-1# 
N9K-1# show nve vni data-plane 
Codes: CP - Control Plane        DP - Data Plane          
       UC - Unconfigured         SA - Suppress ARP        
       SU - Suppress Unknown Unicast 
       Xconn - Crossconnect      
       MS-IR - Multisite Ingress Replication
 
Interface VNI      Multicast-group   State Mode Type [BD/VRF]      Flags
--------- -------- ----------------- ----- ---- ------------------ -----
nve1      10010    UnicastStatic     Up    DP   L2 [10]                 
N9K-1#         
N9K-1# show nve vni ingress-replication 
Interface VNI      Replication List  Source  Up Time      
--------- -------- ----------------- ------- -------      

nve1      10010    2.2.2.2           CLI     00:17:52 

查看N9K-1的VxLAN MAC地址表
N9K-1的VxLAN MAC地址表中,0050.7966.6806为VPC6的MAC地址,0050.7966.6807为VPC7的MAC地址。

N9K-1# show  system internal l2fwder  mac 
Legend: 
        * - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
        age - seconds since last seen,+ - primary entry using vPC Peer-Link,
        (T) - True, (F) - False, C - ControlPlane MAC
   VLAN     MAC Address      Type      age     Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
*    10    0050.7966.6806   dynamic   00:00:20   F     F     Eth1/2  
*    10    0050.7966.6807   dynamic   00:00:20   F     F  (0x47000001) nve-peer1
 2.2.2.2 

查看VPC6和VPC7的MAC地址

VPC6
VPCS> show ip
NAME        : VPCS[1]
IP/MASK     : 192.168.1.1/24
GATEWAY     : 0.0.0.0
DNS         : 
MAC         : 00:50:79:66:68:06
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPC7
VPCS> show ip 
NAME        : VPCS[1]
IP/MASK     : 192.168.1.2/24
GATEWAY     : 0.0.0.0
DNS         : 
MAC         : 00:50:79:66:68:07
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

4.3.3 数据转发流程

验证:从VPC6 ping VPC7,即从192.168.1.1 ping 192.168.1.2

  1. VPC6发出ARP请求报文,报文中源MAC为VPC6的MAC,目的MAC为广播MAC即FF:FF:FF:FF:FF:FF,ARP协议中源IP为192.168.1.1,目的IP为192.168.1.2;
  2. VTEP N9K-1收到VPC6的ARP请求报文,除了转发给本地的Trunk(已放行VLAN 10)和Access Vlan10接口外,还要对ARP请求进行VxLAN的封装,封装后VxLAN头部中VNI值为10010,外层新帧头源MAC为N9K-1 E1/1口的MAC,目的MAC为DC1 E0/0口的MAC,新IP包头即外层源IP为1.1.1.1,目的IP为2.2.2.2,被封装的原始数据包中源目MAC和源目IP不变(BUM流量,即广播、未知单播和组播流量会发给这个VNI下的所有peer)
  3. 通过Underlay网络数据包抵达VTEP N9K-2,N9K-2收到后解封装VxLAN报文,然后检查报文中的VxLAN ID:10010是否有本地的VLAN与其匹配,N9K-2发现VxLAN ID:10010对应本地的VLAN 10,这时N9K-2将原始ARP广播报文发送至VPC7,N9K-2同时也会记录报文中的VxLAN ID、原始报文的源MAC、外层的源IP信息,以构建VxLAN MAC地址表;
  4. VPC7收到ARP请求报文后,开始以单播发送ARP回复报文;
  5. N9K-2收到来自VPC7的单播报文后,由于之前构建的VxLAN MAC地址表中含有VPC6的MAC信息,N9K-2了解到去往VPC6的MAC下一跳为VTEP N9K-1即1.1.1.1,这时单播ARP回复报文被VxLAN封装后通过Underlay网络到达VTEP N9K-1(N9K-2发出报文时:报文的外层源IP为2.2.2.2,目的IP为1.1.1.1,外层源MAC为N9K-2 E1/1口的MAC,目的MAC为DC2的E0/0口的MAC。内层源IP为192.168.1.2,目的IP为192.168.1.1,内层源MAC为VPC7的MAC,目的MAC为VPC6的MAC);
  6. VTEP N9K-1收到单播ARP回复报文进行VxLAN解封装,找到报文中VxLAN ID与本地VLAN对应关系并转发报文,N9K-1同时也会记录报文中的VxLAN ID、原始报文的源MAC、外层的源IP信息,以构建VxLAN MAC地址表;
  7. 此时VTEP N9K-1和VTEP N9K-2完成控制层面的VxLAN MAC地址表构建,后续的ICMP报文均开始采用单播传输。

4.3.4 抓包分析

4.3.4.1 设备MAC信息表

下表中的MAC地址对应报文中的MAC地址。

设备 接口 MAC地址
N9K-1 E1/1 50:00:00:01:00:07
DC1 E0/0 aa:bb:cc:0030:00
N9K-2 E1/1 50:00:00:02:00:07
DC2 E0/0 aa:bb:cc:00:50:00
VPC6 Eth0 00:50:79:66:68:06
VPC7 Eth0 00:50:79:66:68:07

4.3.4.2 VPC6 Eth0口抓包

  1. ARP请求报文


    image.png
  2. ARP回复报文


    image.png

4.3.4.3 N9K-1 E1/1口抓包

  1. 使用icmp ping
VPCS> ping 192.168.1.2
84 bytes from 192.168.1.2 icmp_seq=1 ttl=64 time=51.790 ms
84 bytes from 192.168.1.2 icmp_seq=2 ttl=64 time=33.325 ms
84 bytes from 192.168.1.2 icmp_seq=3 ttl=64 time=39.743 ms
84 bytes from 192.168.1.2 icmp_seq=4 ttl=64 time=34.220 ms
84 bytes from 192.168.1.2 icmp_seq=5 ttl=64 time=44.490 ms

报文分析,可看出VxLAN采用"MAC in UDP"封装,UDP中源端口根据Hash随机,目的端口为4789。


image.png
  1. 使用TCP ping
VPCS> ping 192.168.1.2 -3
Connect   [email protected] seq=1 ttl=64 time=36.241 ms
SendData  [email protected] seq=1 ttl=64 time=44.041 ms
Close     [email protected] seq=1 ttl=64 time=46.372 ms
Connect   [email protected] seq=2 ttl=64 time=48.133 ms
SendData  [email protected] seq=2 ttl=64 time=34.389 ms
Close     [email protected] seq=2 ttl=64 time=58.858 ms
Connect   [email protected] seq=3 ttl=64 time=49.761 ms
SendData  [email protected] seq=3 ttl=64 time=35.541 ms
Close     [email protected] seq=3 ttl=64 time=57.278 ms
Connect   [email protected] seq=4 ttl=64 time=37.148 ms
SendData  [email protected] seq=4 ttl=64 time=34.683 ms
Close     [email protected] seq=4 ttl=64 time=50.096 ms
Connect   [email protected] seq=5 ttl=64 time=36.775 ms
SendData  [email protected] seq=5 ttl=64 time=37.062 ms
Close     [email protected] seq=5 ttl=64 time=50.684 ms

报文分析,可看出VxLAN采用"MAC in UDP"封装,UDP中源端口根据Hash随机,目的端口为4789。


image.png
  1. 使用UDP ping
VPCS> ping  192.168.1.2 -2
84 bytes from 192.168.1.2 udp_seq=1 ttl=64 time=48.823 ms
84 bytes from 192.168.1.2 udp_seq=2 ttl=64 time=56.103 ms
84 bytes from 192.168.1.2 udp_seq=3 ttl=64 time=34.814 ms
84 bytes from 192.168.1.2 udp_seq=4 ttl=64 time=37.074 ms
84 bytes from 192.168.1.2 udp_seq=5 ttl=64 time=34.839 ms

报文分析同上


image.png

4.3.4.4 SP E0/2口抓包

  1. 使用icmp ping
VPCS> ping  192.168.1.2   
84 bytes from 192.168.1.2 icmp_seq=1 ttl=64 time=38.286 ms
84 bytes from 192.168.1.2 icmp_seq=2 ttl=64 time=34.641 ms
84 bytes from 192.168.1.2 icmp_seq=3 ttl=64 time=36.486 ms
84 bytes from 192.168.1.2 icmp_seq=4 ttl=64 time=35.365 ms
84 bytes from 192.168.1.2 icmp_seq=5 ttl=64 time=38.622 ms

报文抓取,分析同上


image.png

4.3.5 VxLAN网关

4.3.5.1 集中式网关配置说明

通过三层网关能实现不同子网之间的互通。

基于泛洪学习(非BGP EVPN)的VxLAN网关配置注意:

image.png

  • NX-OS版本7.0(3)I1(2)或之前,集中式网关必须在外部路由设备上配置;
  • NX-OS版本7.0(3)I2(1)或之后,为保障可靠性,集中式网关建议配置在一对运行了vPC+FHRP(HSRP/VRRP)协议的设备上;
  • NX-OS版本7.0(3)I2(1)或之后,仅支持集中式3层网关,不支持任播网关;
  • 需配置"hardware access-list tcam region arp-ether size double-wide"命令以使保障正常的L3泛洪和学习,使用此命令之前,必须释放现有TCAM区域的空间占用;
    a,通过"show hardware access-list tcam region"命令查看当前TCAM的分配情况;
    b,举例:通过"hardware access-list tcam region racl 512"命令释放"racl"占用的TCAM空间;
    c,举例:通过"hardware access-list tcam region arp-ether 256 double-wide"命令为"arp-ether"分配TCAM空间;
    d,配置完毕后保存并重启设备生效;
    e,注:本实验未配置"hardware access-list tcam region arp-ether size double-wide"命令。
  • 基于BGP EVPN实现的VxLAN,建议在所有VTEP上配置分布式任播网关。

参考链接:

https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7-x/vxlan/configuration/guide/b_Cisco_Nexus_9000_Series_NX-OS_VXLAN_Configuration_Guide_7x/b_Cisco_Nexus_9000_Series_NX-OS_VXLAN_Configuration_Guide_7x_chapter_011.html

4.3.5.2 在VTEP上配置集中式三层网关

由于本实验未规划vPC环境,所以不在本篇展示vPC环境下的VxLAN配置,vPC环境下的VxLAN将在另外一篇中展示。
N9K-1变更后的配置:

vlan 20
  vn-segment 10020
interface nve1
  no shutdown
  source-interface loopback0
  member vni 10010
    ingress-replication protocol static
      peer-ip 2.2.2.2
  member vni 10020
    ingress-replication protocol static
      peer-ip 2.2.2.2
feature interface-vlan
interface Vlan10
  no shutdown
  ip address 192.168.1.254/24
interface Vlan20
  no shutdown
  ip address 192.168.2.254/24

N9K-2变更后的配置:

vlan 20
  vn-segment 10020
interface nve1
  no shutdown
  source-interface loopback0 
 member vni 10020
    ingress-replication protocol static
      peer-ip 1.1.1.1
interface Ethernet1/2
  switchport access vlan 20

VPC7变更后的配置:

VPCS> show ip all
NAME   IP/MASK              GATEWAY           MAC                DNS
VPCS1  192.168.2.1/24       192.168.2.254     00:50:79:66:68:07  

连通性测试:
VPC6 ping VPC7:

VPCS> ping  192.168.2.1
84 bytes from 192.168.2.1 icmp_seq=1 ttl=63 time=71.132 ms
84 bytes from 192.168.2.1 icmp_seq=2 ttl=63 time=41.996 ms
84 bytes from 192.168.2.1 icmp_seq=3 ttl=63 time=44.948 ms
84 bytes from 192.168.2.1 icmp_seq=4 ttl=63 time=113.173 ms
84 bytes from 192.168.2.1 icmp_seq=5 ttl=63 time=40.646 ms

VPC7 ping VPC6:

VPCS> ping  192.168.1.1
84 bytes from 192.168.1.1 icmp_seq=1 ttl=63 time=42.753 ms
84 bytes from 192.168.1.1 icmp_seq=2 ttl=63 time=45.416 ms
84 bytes from 192.168.1.1 icmp_seq=3 ttl=63 time=38.233 ms
84 bytes from 192.168.1.1 icmp_seq=4 ttl=63 time=45.141 ms
84 bytes from 192.168.1.1 icmp_seq=5 ttl=63 time=39.792 ms

数据流分析:

  • 当VPC7 ping VPC6时,VPC7发现目的IP为非本地直连网段,所以会将流量通过VxLAN隧道交由网关即192.168.2.254处理;
  • 由于VPC7并不知道网关的MAC地址,所以需发起ARP请求以获取网关的MAC,在N9K-2的E1/1口抓包,可看到数据包内层二层帧头源MAC为00:50:79:66:68:07,目的MAC为ff:ff:ff:ff:ff:ff,此ARP请求(属于BUM中的广播)报文会被封装进VxLAN然后被泛洪到N9K-1;
  • N9K-1收到VxLAN报文并解封装后,N9K-1的SVI 20以单播回复来自VPC7的ARP请求,至此第一个ICMP包结束,由于ping第一个ICMP包ARP请求的时间超过了ping ICMP包连续发送的间隔时间,通常跨网段ping测试时第一个包会丢包;
  • 第二个ICMP包,N9K-1解封装后发现报文中目标IP为192.168.1.1,查询路由表后发现为本地直连路由,N9K-1将直接进行ARP/MAC地址表查询,然后将流量从E1/2口发出,此时流量到达VPC6;
  • VPC6回复报文原理同上,此处不再赘述。

N9K-1 SVI 20的MAC地址:

N9K-1# show interface  vlan 20
Vlan20 is up, line protocol is up, autostate enabled
  Hardware is EtherSVI, address is 5000.0001.0007
  Internet Address is 192.168.2.254/24
  MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
   reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive not supported
  ARP type: ARPA
  Last clearing of "show interface" counters never
  L3 in Switched:
    ucast: 0 pkts, 0 bytes

N9K-2 E1/1口抓包:
ARP请求报文:

image.png

ARP回复报文:
image.png

4.3.5.3 在外部路由设备上配置集中式网关

本实验采用单臂路由方式,SW3作为外部路由设备。
N9K-1变更后的配置:

N9K-1(config)# no interface vlan 10
N9K-1(config)# no interface vlan 20
N9K-1(config)# no feature interface-vlan 
interface nve1
  no shutdown
  source-interface loopback0
  member vni 10010
    ingress-replication protocol static
      peer-ip 2.2.2.2

N9K-2变更后的配置:

interface nve1
  no shutdown
  source-interface loopback0
  member vni 10010
    ingress-replication protocol static
      peer-ip 1.1.1.1
  member vni 10020
    ingress-replication protocol static
      peer-ip 1.1.1.1
interface Ethernet1/3
  switchport mode trunk
  switchport trunk allowed vlan 10,20

SW1配置:

ip routing
interface Ethernet0/0
 no ip address
interface Ethernet0/0.1
 encapsulation dot1Q 10
 ip address 192.168.1.254 255.255.255.0
interface Ethernet0/0.2
 encapsulation dot1Q 20
 ip address 192.168.2.254 255.255.255.0

连通性测试:
VPC6 ping VPC7:

VPCS> ping  192.168.2.1
84 bytes from 192.168.2.1 icmp_seq=1 ttl=63 time=59.828 ms
84 bytes from 192.168.2.1 icmp_seq=2 ttl=63 time=83.546 ms
84 bytes from 192.168.2.1 icmp_seq=3 ttl=63 time=60.527 ms
84 bytes from 192.168.2.1 icmp_seq=4 ttl=63 time=63.410 ms
84 bytes from 192.168.2.1 icmp_seq=5 ttl=63 time=61.804 ms

VPC7 ping VPC6:

VPCS> ping  192.168.1.1
84 bytes from 192.168.1.1 icmp_seq=1 ttl=63 time=131.247 ms
84 bytes from 192.168.1.1 icmp_seq=2 ttl=63 time=61.279 ms
84 bytes from 192.168.1.1 icmp_seq=3 ttl=63 time=102.038 ms
84 bytes from 192.168.1.1 icmp_seq=4 ttl=63 time=63.945 ms
84 bytes from 192.168.1.1 icmp_seq=5 ttl=63 time=65.245 ms
  • 以上在VTEP上配置集中式网关和在外部路由设备上配置集中式网关时,应注意VTEP上NVE接口下VNI的映射关系;
  • 在一个VTEP上配置集中式网关或外部路由设作为网关连接到这个VTEP,那么这个Ingress VTEP上应有完整的VNI,否则流量无法被封装进VxLAN隧道!

你可能感兴趣的:(1 实验1:基于静态Ingress Replication实现Cisco VxLAN & 集中式网关)