一、背景

  由于现网中涉及到了VXLAN,所以简单的了解了一下VXLAN,并将学习到的知识记录下来,以便后续查看。此实验部署的是集中式网关VXLAN,另外还有分布式网关VXLAN。现网环境中的主机为虚拟机,此处用物理机代替。实验环境:模拟器采用eNSP,用CE12808交换机实现VXLAN。

二、实验拓扑

  IP地址、VLAN以及VXLAN的规划如下图所示。

VXLAN的L2网关 vxlan 网关_交换机

三、配置文件

3.1基础配置

3.1.1核心交换机CE1

interface GE1/0/1
 undo portswitch                                //将接口模式转换为三层
 undo shutdown                                  //启用接口,CE12808的接口默认是shutdown的
 ip address 10.0.12.1 255.255.255.252                             
 
interface GE1/0/2
 undo portswitch
 undo shutdown
 ip address 10.0.13.1 255.255.255.252

interface LoopBack0
 ip address 1.1.1.1 255.255.255.255           //配置VTEP IP地址,用LoopBack的原因是为了VXLAN以及OSPF协议的稳定性

3.1.2汇聚交换机CE2

interface GE1/0/1
 undo portswitch
 undo shutdown
 ip address 10.0.12.2 255.255.255.252

interface LoopBack0
 ip address 2.2.2.2 255.255.255.255

3.1.3汇聚交换机CE3

interface GE1/0/2
 undo portswitch
 undo shutdown
 ip address 10.0.13.2 255.255.255.252

interface LoopBack0
 ip address 3.3.3.3 255.255.255.255

3.2配置OSPF

  在CE1,CE2,CE3上配置OSPF,使得VTPE IP地址三层互通、以便VXLAN隧道能正常建立。

3.2.1CE1

ospf 1                                  //创建OSPF进程
 area 0.0.0.0                           //创建OSPF区域
  network 1.1.1.1 0.0.0.0               //宣告VTEP IP地址
  network 10.0.12.0 0.0.0.3             //宣告互联地址网段,使得OSPF邻居能正常建立
  network 10.0.13.0 0.0.0.3             //宣告互联地址网段,使得OSPF邻居能正常建立

3.2.2CE2

ospf 1
 area 0.0.0.0
  network 2.2.2.2 0.0.0.0
  network 10.0.12.0 0.0.0.3

3.2.3CE3

ospf 1
 area 0.0.0.0
  network 3.3.3.3 0.0.0.0
  network 10.0.13.0 0.0.0.3

3.2.4配置情况查看

  当OSPF协议配置完成后,在交换机上查看一下路由表,看交换机是否已经学习到其他VTEP的IP地址。

VXLAN的L2网关 vxlan 网关_交换机_02


  可见,上图交换机已经学习到了其他交换机上所配置的VTEP IP地址。

3.3VXLAN配置

3.3.1CE1

  由于是配置集中式网关VXLAN,所以需要在核心交换机CE1上面配置VXLAN的网关,即PC的网关地址。

bridge-domain 10               //创建桥域BD,类似VLAN的广播域
 vxlan vni 10                  //创建VXLAN网络标识符VNI(可以与BD不同),类似VLAN ID

bridge-domain 20
 vxlan vni 20

interface Vbdif10                                 //创建VXLAN三层接口,类似vlanif接口
 ip address 192.168.10.254 255.255.255.0            //配置网关地址

interface Vbdif20
 ip address 192.168.20.254 255.255.255.0

interface Vbdif30
 ip address 192.168.30.254 255.255.255.0

interface Nve1                                     //创建NVE(网络虚拟化边缘)接口
 source 1.1.1.1                                    //VXLAN隧道封装的源地址
 vni 10 head-end peer-list 2.2.2.2               //配置头端复制列表,针对BUM报文
 vni 20 head-end peer-list 2.2.2.2
 vni 30 head-end peer-list 3.3.3.3

3.3.2CE2

  配置汇聚交换机,即VXLAN的接入点,此实验为以VLAN模式接入到VXLAN网络;

bridge-domain 10
 vxlan vni 10
 
bridge-domain 20
 vxlan vni 20

interface Nve1
 source 2.2.2.2
 vni 10 head-end peer-list 1.1.1.1
 vni 20 head-end peer-list 1.1.1.1

interface GE1/0/3
 undo shutdown                   //启用接口

interface GE1/0/3.10 mode l2                       //创建二层子接口
 encapsulation dot1q vid 10                        //只解封装携带vlan-tag 10的数据帧
 bridge-domain 10                                //将vlan10的数据帧封装到VXLAN隧道中

interface GE1/0/3.20 mode l2
 encapsulation dot1q vid 20
 bridge-domain 20

interface GE1/0/2
 undo shutdown

interface GE1/0/2.20 mode l2
 encapsulation dot1q vid 20
 bridge-domain 20

3.3.3 CE3

  配置与CE2类似

bridge-domain 30
 vxlan vni 30

interface Nve1
 source 3.3.3.3
 vni 30 head-end peer-list 1.1.1.1

interface GE1/0/1
 undo shutdown

interface GE1/0/1.30 mode l2
 encapsulation dot1q vid 30
 bridge-domain 30

3.3.4接入交换机配置:LWS1

  接入交换机需要创建相应的接入VLAN,并放通。

vlan batch 10 20        //同时创建VLAN 10和VLAN	20
 
interface Ethernet0/0/3
 port link-type trunk                           //将接口模式设置为Trunk,允许多个VLAN通过
 undo port trunk allow-pass vlan 1              //拒绝默认vlan通过
 port trunk allow-pass vlan 10 20               //允许指定vlan通过

interface Ethernet0/0/1
 port link-type access                       //将接口模式设置为access
 port default vlan 10                        //将接口模默认vlan设置为10

interface Ethernet0/0/2
 port link-type access
 port default vlan 20

3.3.5接入交换机配置:LWS2

vlan 20

interface Ethernet0/0/2
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 20

interface Ethernet0/0/1
 port link-type access
 port default vlan 20

3.3.6接入交换机配置:LWS3

vlan 30

interface Ethernet0/0/1
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 30

interface Ethernet0/0/2
 port link-type access
 port default vlan 30

3.3.7PC配置

  注意,配置PC之后,一定要点击“应用”,否则配置不生效。

VXLAN的L2网关 vxlan 网关_交换机_03


VXLAN的L2网关 vxlan 网关_交换机_04


VXLAN的L2网关 vxlan 网关_交换机_05


VXLAN的L2网关 vxlan 网关_交换机_06

四、验证

4.1测试PC到自己网关的连通性,并抓包查看

VXLAN的L2网关 vxlan 网关_交换机_07


  当用PC1ping网关的时候,用Wireshark在CE2的GE1/0/1上抓包,并分析抓包的结果。

VXLAN的L2网关 vxlan 网关_IP_08


  由抓包结果可见。PC1ping自己的网关的报文是经过VXLAN封装了的,也就是说原始MAC帧被封装到了VXLAN隧道中。隧道的源IP地址为CE2的VTEP IP地址,目的IP地址为CE1的VTEP IP地址,VNI为1010;原始数据帧的源IP地址为192.168.10.1,目的IP地址为192.168.10.254;抓包结果符合预期。

4.2测试PC与不同网段之间的通信

  PC1 ping PC3,并在CE2的GE1/0/1口抓包查看。

VXLAN的L2网关 vxlan 网关_抓包_09


  CE2的GE1/0/1接口抓包接口如下:可以看到此时的报文为VXLAN报文

VXLAN的L2网关 vxlan 网关_IP_10


  在CE2的GE1/0/2接口抓包如下:可以看到此时报文不是VXLAN报文,即交换机已经把VXLAN报文解封装了。

VXLAN的L2网关 vxlan 网关_OSPF_11

4.3测试PC与不同网段之间的通信

  PC1 ping PC4,并在CE2的GE1/0/1上和CE3的1/0/2接口抓包

VXLAN的L2网关 vxlan 网关_VXLAN的L2网关_12


CE2的GE1/0/1抓包如下:

VXLAN的L2网关 vxlan 网关_抓包_13


CE3的GE1/0/2

VXLAN的L2网关 vxlan 网关_VXLAN的L2网关_14


  可以看见,此时报文的原始MAC信息没有被改变,但是VXLAN的VTEP是经过了改变的,即原始MAC报文先被送到CE1(网关),VTEP IP为:2.2.2.2----1.1.1.1(VXLAN:10),然后CE1再转发给PC4,此时VTEP IP的源目IP地址为1.1.1.1----3.3.3.3(VXLAN:30)

五、总结

  1,相同VXLAN(VNI)的头端复制列表不能同时指向两个或多个VTEP。
如:
  vni 10 head-end peer-list 2.2.2.2
  vni 10 head-end peer-list 3.3.3.3
解决方法:注意VXLAN的组网

  2,由于eNSP的原因,设置vxlan vni的时候,一定不要超过100,否则会出现bug;如ping不通。