你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

VLAN的扩展技术VxLAN,该怎么配置?如何实现跨三层广播报文传递?

2021/12/7 17:47:19

VLAN的扩展技术VxLAN,是用来解决什么问题的?

VxLAN如何实现跨三层广播报文传递的?

VxLAN相关的各种新概念都是什么意思?

VxLAN具体该怎么配置?

 ps:最后有惊喜~

一、vxlan技术背景

vxlan是vlan技术的扩展,那vxlan用在什么场景,在这些场景下,传统vlan存在哪些问题?

vxlan主要用在云数据中心,虚拟机跨三层迁移的场景,首先了解下什么叫虚拟机迁移。

虚拟机迁移,是指在一台物理服务器(server)上运行的虚拟机(vm),因为负载均衡或日常维护等原因,移动到另一台物理机,通俗点理解就是虚拟机搬家,如下图:

虚拟机迁移前

 

虚拟机迁移后

为了保证虚拟机在迁移的过程中,不中断业务,那就要保持IP地址不变,网关不变,TCP连接不变。这就限制了虚拟机迁移的范围,一定是在一个二层网络内,也就是在一个vlan内,如图:

为了保证网络的稳定性,一个vlan也就是一个广播域往往不会划的很大,这就极大的限制了虚拟机的迁移范围。

在上图中,如果vm迁移范围1的所有服务器都满载了,而vm迁移范围2的物理服务器还有很多空闲算力,就不能合理的利用迁移范围2的算力。

这时就需要跨三层迁移技术,让虚拟机从迁移范围1,到迁移范围2,依然保持IP地址、网关、传输层连接等信息不变。

跨三层迁移技术,就是我们常说的大二层技术,而vxlan是使用最广的跨三层迁移技术,成为事实上的大二层技术标准。

二、Vxlan实现原理

Vxlan技术的原理,本质上是在一个三层互连的网络中,构建一个逻辑上的二层网络,这样就可以实现虚拟机的跨三层,甚至跨数据中心、跨地域的迁移。

如图,应用vxlan后,现在这些物理服务器,表面上是连接在不同的三层网络里,逻辑上是连接在一个相同的大二层交换机上。

那这个“大二层交换机”,是如何构建出来的呢?

三、Vxlan工作过程

如上图,怎么实现server1和server2两台服务器,连接在一个逻辑上的“大二层交换机”上,先看一个真正的二层网络,是如何转发数据的。

如图,10.1访问10.2,会用广播发送一个请求10.2 mac地址的arp报文,收到回应后完成arp解析,进而封装数据建立通信。

但是,在跨三层网络中,发出的广播arp会被三层设备隔离,无法到达目标主机。而vxlan解决这个问题的方案是隧道技术。

所谓的隧道技术,就是在原始的报文上,加一个新报头,靠新报头把数据包送到目的地。如下图:

 

     当NVE设备收到了server1发出的arp广播报文,会给这个广播报文加上新的头部,新头部的源IP是10.1.1.2,目标IP是10.2.2.2,这样就把广播变成了单播,然后就可以正常的送到对面的NVE设备。

对面的NVE设备收到报文后,拆除新头部,露出原始的ARP报文,就可以转发到Server2 了。同样的方法Server2给server1回包,就完成了mac地址的解析。

后续server1和server2之间的所有报文,就可以通过这种隧道的方式,实现通信,逻辑上server1和server2就连接在了一个“大二层交换机”上了。

四、Vxlan报文格式及关键概念

 

VxLAN报文分装

     关键概念如下

     NVE(Network Virtualization Edge):网络虚拟化边缘,也就是普通网络和vxlan网络的边界设备。

     VTEP(VxLAN Tunnel  EndPoint):VXLAN隧道端点,NVE以VTEP进行标识。类似运行了ospf的设备用router id进行标识,运行了vxlan的设备使用vtep进行标识。Ospf的router id我们常常使用loopback地址,vxlan的vtep也是使用loopback地址。

BD(bridge domain):桥域,做了vxlan后逻辑上的广播域,在上图中,server1和server2处在一个相同的BD中

VNI(VXLAN Network Identifier): VNI是VXLAN网络标识。类似每个VLAN有VLAN ID,每个VxLAN也有VNI,用于不同用户之间的隔离。和vlan不同的是,vlan只有4096个,而vni有1600万个,可以支持大规模云数据中心大量租户间的隔离。

VBDIF接口:VxLAN网关接口。类似于vlanif可以作为网关,实现不同vlan间的通信,vbdif也是用来做不同vxlan网络的网关,实现不同vxlan间的通信。

五、Vxlan配置实战

实验拓扑

 

实验需求:

Server1和server2上均有vm,要实现vm在两台服务器上的平滑迁移,要求两台server使用vxlan技术部署在一个大二层网络中,相关信息如下

设备

VXLAN隧道

BD

VNI

Source IP

Peer IP

VTEP1

VTEP1—>VTEP2

10

2010

10.1.1.2

10.2.2.2

VTEP2

VTEP2—>VTEP1

10

2010

10.2.2.2

10.1.1.2

配置步骤

  1. 分别在VTEP1、VTEP2、Switch1上配置路由协议,保证网络三层互通。
  2. 在Switch2、Switch3上配置VLAN。
  3. 分别在VTEP1、VTEP2上配置VXLAN接入业务,并打通VTEP1和VTEP2之间的VxLAN隧道

参考命令

 1.配置路由协议

配置路由协议的目的是实现各个VTEP之间连通性,只有VTEP之间通信正常才能实现VxLAN数据报文的传递。

本实验中,路由协议使用OSPF,在VTEP1、VTEP2、Switch1上配置

# 以VTEP1配置为例,另外两台设备配置类似

<HUAWEI> system-view

[HUAWEI] sysname VTEP1

[VTEP1] interface loopback 1

[VTEP1-LoopBack1] ip address 10.1.1.2 32

[VTEP1-LoopBack1] quit

[VTEP1] interface gigabitethernet 1/0/1

[VTEP1-GigabitEthernet1/0/1] undo portswitch

[VTEP1-GigabitEthernet1/0/1] ip address 192.168.2.1 24

[VTEP1-GigabitEthernet1/0/1] quit

[VTEP1] ospf router-id 10.1.1.2

[VTEP1-ospf-1] area 0

[VTEP1-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.0

[VTEP1-ospf-1-area-0.0.0.0] network 192.168.2.0 0.0.0.255

[VTEP1-ospf-1-area-0.0.0.0] quit

[VTEP1-ospf-1] quit

2.配置vlan

常规vlan配置,本实验中在switch2和switch3上做vlan配置

<HUAWEI> system-view

[HUAWEI] sysname Switch2

[Switch2] vlan 10

[Switch2-vlan10] quit

[Switch2] interface gigabitethernet 1/0/2

[Switch2-GigabitEthernet1/0/2] port link-type access

[Switch2-GigabitEthernet1/0/2] port default vlan 10

[Switch2-GigabitEthernet1/0/2] quit

[Switch2] interface gigabitethernet 1/0/1

[Switch2-GigabitEthernet1/0/1] port link-type trunk

[Switch2-GigabitEthernet1/0/1] port trunk allow-pass vlan 10

[Switch2-GigabitEthernet1/0/1] quit

# 配置Switch3。

<HUAWEI> system-view

[HUAWEI] sysname Switch3

[Switch3] vlan 10

[Switch3-vlan10] quit

[Switch3] interface gigabitethernet 1/0/2

[Switch3-GigabitEthernet1/0/2] port link-type access

[Switch3-GigabitEthernet1/0/2] port default vlan 10

[Switch3-GigabitEthernet1/0/2] quit

[Switch3] interface gigabitethernet 1/0/1

[Switch3-GigabitEthernet1/0/1] port link-type trunk

[Switch3-GigabitEthernet1/0/1] port trunk allow-pass vlan 10

[Switch3-GigabitEthernet1/0/1] quit

3.配置vxlan接入

VTEP1和VTEP2作为VxLAN网络和和普通网络相连的设备,需要做VxLAN接入配置。详细步骤和说明如下

[VTEP1] bridge-domain 10  创建BD

[VTEP1-bd10] quit

[VTEP1] interface gigabitethernet 1/0/2

[VTEP1-GigabitEthernet1/0/2] port link-type trunk

[VTEP1-GigabitEthernet1/0/2] quit

[VTEP1] interface gigabitethernet 1/0/2.1 mode l2  创建子接口

[VTEP1-GigabitEthernet1/0/2.1] encapsulation dot1q vid 10  子接口和vlan 10关联

[VTEP1-GigabitEthernet1/0/2.1] bridge-domain 10  子接口和BD关联

[VTEP1-GigabitEthernet1/0/2.1] quit

含义,G1/0/2收到vlan 10的报文,则将报文关联到bd 10

# 配置VTEP2,操作类似。

[VTEP2] bridge-domain 10

[VTEP2-bd10] quit

[VTEP2] interface gigabitethernet 1/0/2

[VTEP2-GigabitEthernet1/0/2] port link-type trunk

[VTEP2-GigabitEthernet1/0/2] quit

[VTEP2] interface gigabitethernet 1/0/2.1 mode l2

[VTEP2-GigabitEthernet1/0/2.1] encapsulation dot1q vid 10

[VTEP2-GigabitEthernet1/0/2.1] bridge-domain 10

[VTEP2-GigabitEthernet1/0/2.1] quit

4.配置VXLAN隧道

# 配置VTEP1。

[VTEP1] bridge-domain 10   进入bd 10配置视图

[VTEP1-bd10] vxlan vni 2010   将bd 10和vni 2010进行关联

[VTEP1-bd10] quit

[VTEP1] interface nve 1    创建vxlan隧道,编号为1

[VTEP1-Nve1] source 10.1.1.2

[VTEP1-Nve1] vni 2010 head-end peer-list 10.2.2.2   隧道的源目标ip

[VTEP1-Nve1] quit

含义,属于bd 10的报文,将打上vni 2010的vxlan标识,并且封装上源地址为10.1.1.2目标地址为10.2.2.2的新ip头部,发到对端VTEP2

# 配置VTEP2。

[VTEP2] bridge-domain 10

[VTEP2-bd10] vxlan vni 2010

[VTEP2-bd10] quit

[VTEP2] interface nve 1

[VTEP2-Nve1] source 10.2.2.2

[VTEP2-Nve1] vni 2010 head-end peer-list 10.1.1.2

[VTEP2-Nve1] quit

5.结果验证

[VTEP1] display vxlan tunnel

 Tunnel ID       Source              Destination         State     Type         

4026531841      10.1.1.2             10.2.2.2             up        

看到vxlan隧道状态up,代表vxlan配置成功

小思考:

在真正的生产环境中,vtep数量众多,vxlan数量也众多,而且处于频繁的变化中。

手动配置的话,好像工作量和人工成本太高昂了,有什么解决方法呢?

   当然,如果你需要更多网工资料,可以私我哦~