做完实验之后就要考虑实际的应用场景了,以头端复制实验为例,我们可以发现:VTEP负责复制报文,采用单播方式将复制后的报文通过本地接口发送给本地站点,并通过VXLAN隧道发送给VXLAN内的所有远端VTEP。

过程就像RFC7438中4.1节描述的那样:设想一台VXLAN overlay网络中的 VM,这台VM感知不到VXLAN。为了与不同主机上的虚拟机通信,它会像往常一样发送一个发往目标的 MAC 帧。物理主机上的 VTEP 查找与此 VM 关联的 VNI,然后确定目标 MAC 是否在同一网段上,以及目标 MAC 地址是否映射到远程 VTEP。如果是,则将包含外部 MAC、外部 IP 报头和 VXLAN 报头的外部报头添加到原始 MAC 帧之前,封装的数据包被转发到远程 VTEP。远程 VTEP收到后,使用与内部目标 MAC 地址匹配的 MAC 地址验证 VNI 的有效性以及该 VNI 上是否存在 VM。如果是,则数据包将剥离其封装标头并传递到目标 VM。目标 VM 永远不会知道 VNI的存在,也不知道数据是使用 VXLAN 封装传输的。

除了将数据包转发到目标 VM 之外,远程 VTEP 还会学习从内部源 MAC 到外部源 IP 地址的映射。它将此映射存储在一个表中,以便当目标 VM 发送响应数据包时,不需要响应数据包的“未知目标”泛洪。

简而言之:采用以单播路由进行头端复制的方式建立VXLAN隧道,类似于一个大的二层交换机,而接口下绑定的VSI就可以看成是VLAN隔离的标签。

这样一来,我们能不能用VXLAN来实现二层专线呢?

我在网上搜了一下价格,以天津地区为例:数字数据电路(DDN)应该算是最贵的,带宽上限2Mbps,价格为5400元/月;数字电路-光纤带宽范围为2Mbps-2.5Gbps,2.5Gbps带宽价格为309600元/月;裸纤租赁价格按距离计算,100公里以上单价最低,280元/月/公里;相比之下MV互联专线的价格要便宜一些,1Gbps独享+公网IP价格为30000元/月。

那今天就模拟一下用MV互联网专线代替电路或裸纤吧。

组网需求

VSR1、VSR2、VSR3、VSR4为某公司路由器设备,设备按组网图所示位置分布,其中VSR1和VSR2使用互联网专线连接公网。为方便内网通信,要将VSR1和VSR2作为VTEP设备建立VXLAN隧道,使VSR3和VSR4能够二层通信。

组网图

 

M地址指远程管理的带外管理口地址。新建一个vSwitch,所有线路均使用该vSwitch中端口组实现,建议将不同链路隔离进不同的VLAN,避免广播风暴。

实验环境

VMWare ESXi 6.7.0(ProLiant DL360 Gen9,48核心,128G内存)

H3C VSR1000(Version 7.1.064, Release 0621P18,4核心,8G内存)

H3C VFW1000(Version 7.1.064, ESS 1171P13,4核心,8G内存)

Windows 7旗舰版(测试用虚拟机,8核心,16G内存)

配置步骤

配置上整体和头端复制配置类似,直接贴出设备配置。

VSR1

#

 l2vpn enable

#

vsi vxlan

 vxlan 10

  tunnel 12

#

interface GigabitEthernet2/0

 ip address 15.1.1.1 255.255.255.0

#

interface GigabitEthernet3/0

 xconnect vsi vxlan

#

interface Tunnel12 mode vxlan

 source 15.1.1.1

 destination 25.1.1.2

#

 ip route-static 0.0.0.0 0 15.1.1.5

VSR2

#

 l2vpn enable

#

vsi vxlan

 vxlan 10

  tunnel 21

#

interface GigabitEthernet2/0

 ip address 25.1.1.2 255.255.255.0

#

interface GigabitEthernet3/0

 xconnect vsi vxlan

#

interface Tunnel21 mode vxlan

 source 25.1.1.2

 destination 15.1.1.1

#

 ip route-static 0.0.0.0 0 25.1.1.5

VSR3

#

ospf 1 router-id 3.3.3.3

 area 0.0.0.0

  network 172.16.214.0 0.0.0.255

  network 192.168.13.0 0.0.0.255

#

interface LoopBack0

 ip address 3.3.3.3 255.255.255.255

#

interface GigabitEthernet2/0

 ip address 172.16.214.3 255.255.255.0

#

interface GigabitEthernet3/0

 ip address 192.168.13.1 255.255.255.0

VSR4

#

ospf 1 router-id 4.4.4.4

 area 0.0.0.0

  network 172.16.214.0 0.0.0.255

  network 192.168.12.0 0.0.0.255

#

interface LoopBack0

 ip address 4.4.4.4 255.255.255.255

#

interface GigabitEthernet2/0

 ip address 172.16.214.4 255.255.255.0

#

interface GigabitEthernet3/0

 ip address 192.168.12.1 255.255.255.0

验证配置

1、验证设备

查看VSR1的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于UP状态。

display interface tunnel

 

查看VSR1学习到的MAC地址信息。

 

对比查看VSR3的接口G2/0信息,可以看到MAC地址是匹配的。

 

在VSR4上查看ARP信息,和二层互联学习到的相同。

 

检查OSPF状态,邻居建立正常,路由学习正常。

 

ping大包进行测试,1472字节是能通过的最大报文长度,1473字节的报文无法通过。

 

好像没有受VXLAN报文封装的影响,不走VXLAN封装,默认能通过的最大报文长度也是1472 bytes。先抓个包验证一下1472字节是怎么来的。

 

如图所示,可以看到数据段(Data)长度为1472字节,ICMP的数据前面加了8个字节的标志位,IP报文头长度为20字节,这里就已经是1500字节了,这是一般路由器出口允许的最大报文长度。出接口之后,又封装了14字节的以太网报文头。所以,从报文上看,长度为1514字节,实际有效数据长度为1472字节,受报文封装影响,无法再传输更大长度的报文,所以1473字节长度的数据无法传输。而VXLAN封装未对数据转发产生影响。

实际上,部分设备目前支持的MTU有些已经超过了1500,但是不建议在经过公网传输时修改接口MTU值,避免影响数据转发。

 

2、验证主机

测试连通性、tracert路径。可以看到,连通性正常,tracert显示和二层互联完全相同。

 

测试一下文件传输,因为1G带宽确实速度太快了,得找个大点的文件传一下测试。

 

用HFS配合浏览器进行下载,下载速度只能到22M左右,应该是软件问题。

 

直接使用NFS进行文件传输,发现能直接跑满接口带宽。看下前后两次测试的网卡流量监控对比,第二次直接打满。

 

总结

1、借助VXLAN将互联网专线变成伪数字电路的方法还是可行的,采用头端复制的方式,配置简单、扩展灵活,较传统的点对点专线相比组网更加灵活;

2、受互联网传输影响,实际链路稳定性可能比数字电路、裸纤等方式稍差,但是成本会有所降低,需要综合考虑;

3、从测试结果来看,带宽基本无影响,本次实验的端到端全千兆链路可以全部跑满,并且VXLAN封装对业务几乎无感知。

所以,省下来的钱不给我赞赏一下?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐