在配置前了解一些基础理论
VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术。也就是在原有报文基础上,在外层再封装一层报文头。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。VXLAN主要应用于数据中心网络
VXLAN基本概念
VTEP:VXLAN Tunnel End Point,虚拟扩展本地网络隧道终结结点
- VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。
VNI:VXLAN Network Identifier,虚拟扩展本地网络标识符
- VXLAN通过VXLAN ID来标识,VXLAN ID又称VNI(VXLAN Network Identifier,VXLAN网络标识符),其长度为24比特
VSI(Virtual Switch Instance,虚拟交换实例)
- VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看作是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VSI与VXLAN一一对应
VXLAN隧道
- 在两个VTEP之间完成VXLAN封装报文传输的逻辑隧道。业务报文在进入隧道时进行VXLAN头、UDP头和IP头封装后,通过Underlay网络的三层转发透明地将封装后的报文传输给远端VTEP,再由远端VTEP对其进行出隧道解封装处理。
VXLAN网关
- VXLAN网关的功能是根据VXLAN报文内部的IP进行路由,充当VXLAN网络内虚拟机的网关。配置VXLAN网关之后,便可以构建Overlay层面的三层网络,实现VXLAN子网之间的跨网段通信。
VXLAN实例
- VXLAN实例是基于VXLAN的Overlay网络上的一个节点。该节点可以在Overlay网络实现MAC地址学习和泛洪等传统的二层交换功能,在被指定为VXLAN网关后也可以进行三层转发。在同一台设备上,VXLAN实例和VNI为一一对应关系
VXLAN的报文封装格式
VXLAN报文的封装格式为:在原始二层数据帧外添加8字节VXLAN头、8字节UDP头和20字节IPv4头/40字节IPv6头。其中,UDP头的目的端口号为VXLAN UDP端口号(缺省为4789)。VXLAN头主要包括两部分:
- 标记位:“I”位为1时,表示VXLAN头中的VXLAN ID有效;为0,表示VXLAN ID无效。其他位保留未用,设置为0。
- VXLAN ID:用来标识一个VXLAN网络,长度为24比特。虚拟机属于相同的VXLAN才能互相通信
外层UDP头:目的端口号,IANA分配端口号为4789。
外层IP头:源和目的虚拟机所属的VTEP的IP地址
外层以太网头:外层目的MAC是三层下一跳地址
转发模型
相同VNI(VXLAN ID)情况下
- VXLAN 实现通过以太网报文封装在 UDP 中在 IP 网络传输, 在接收方,对 VXLAN 报文进行解封装成以太网报文再进行转发
不同VNI(VXLAN ID)情况下
- VXLAN 之间通过 VXLAN IP 网关实现跨 VXLAN 的通信
创建VXLAN隧道
VXLAN隧道的建立方式有如下两种:
- 手工方式:手工配置Tunnel接口,并指定隧道的源和目的IP地址分别为本端和远端VTEP的IP地址。
- 自动方式:通过EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)发现远端VTEP后,自动在本端和远端VTEP之间建立VXLAN隧道
本次实验采用H3C官方模拟器HCL使用集中式VXLAN手工建立隧道方式。现在开始实验。
1.配置IP(省略)
2.R1的OSPF相关配置(R2、R3设备正常配置OSPF宣告环回口)
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.0.0.0 0.0.0.3
3.VXLAN相关配置
R1的VXLAN相关配置
l2vpn enable #开启L2二层隧道功能
interface Tunnel0 mode vxlan #创建VXLAN隧道
source 1.1.1.1 #源地址为R1设备环回口
destination 3.3.3.3 #目的地址为R3设备环回口
vsi vxlan #创建VSI取名为vxlan
vxlan 10 #设置VXLAN ID为10
tunnel 0 #绑定隧道0
interface GigabitEthernet0/1.10 #创建子接口绑定VID为100
vlan-type dot1q vid 100
xconnect vsi vxlan #将三层接口与VSI关联,VSI名称为vxlan
R3的VXLAN相关配置
l2vpn enable #开启L2二层隧道功能
interface Tunnel0 mode vxlan #创建VXLAN隧道
source 3.3.3.3 #源地址为R1设备环回口
destination 1.1.1.1 #目的地址为R3设备环回口
vsi vxlan #创建VSI取名为vxlan
vxlan 10 #设置VXLAN ID为10
tunnel 0 #绑定隧道0
interface GigabitEthernet0/1.10 #创建子接口绑定VID为100
vlan-type dot1q vid 100
xconnect vsi vxlan #将三层接口与VSI关联,VSI名称为vxlan
4.二层交换机配置
只需将PC加到vlan100中,上行接口修改trunk并放行vlan100
vlan 100
port gi1/0/2
int g1/0/1
port link-type trunk
port trunk permit vlan 100
5.实验测试
(1)pc之间互相ping测试
(2)抓包测试
可以看到在R1的gi0/0接口进行抓包IP层是1.1.1.1访问3.3.3.3,接下来是目的UDP端口是4789为VXLAN的端口号,接下来是VXLAN ID,接下来是原始报文的元源和目的MAC地址,接下来是原始报文的源和目的IP地址。
实验到此结束。