随着企业IT的“互联网+“化,为了控制成本并提高生产效率,越来越多的企业选择了云化。大量的VM迁移导致东西向流量越来越大,为了满足VM在相同数据中心之间进行跨三层迁移,以及不同数据中心之间跨三层迁移,有人就提出了满足此场景的解决方案并产生了vxlan、ev*n等大二层技术。
我们知道在二层网络中vlan是为了进行隔离广播域,也就是说vlan是把一个物理的二层网络虚拟成多个不同的二层逻辑网络。而vxlan我们可以理解为把多个不同的物理二层网络虚拟成一个逻辑的二层网络,从而实现跨三层跨数据中心的二层通信--这就是我们说的大二层。
目前vxlan实现方式主要有四种:端到端vxlan方式实现数据中心互联、VLANhand-off方式实现数据中心互联、三段式VXLAN实现数据中心三层互联和三段式VXLAN实现数据中心二层互联。为了让大家方便、快捷的了解到vxlan技术的实现,我们本篇文章就以最简单的同数据中心同子网同vlan的列子来简单的实现vxlan。
如下图所示,我们的CE3就是此数据中心的核心交换机,CE4和CE5都是汇聚交换机,我们用两台pc机充当两个不同的VM(华为模拟器Ensp中的CE交换机才可以实现vxlan,我采用的都是CE12800)。
首先进行设备的基础配置,我们三台交换机之间使用ospf协议进行互联互通,具体配置如下:
CE3#
interface GE1/0/0
undo portswitch
undo shutdown
ip address 10.1.1.254 255.255.255.0
#
interface GE1/0/1
undo portswitch
undo shutdown
ip address 10.2.2.254 255.255.255.0
#
interface LoopBack0
ip address 10.3.3.3 255.255.255.255
#
ospf 10
area 0.0.0.0
network 10.1.1.0 0.0.0.255
network 10.2.2.0 0.0.0.255
network 10.3.3.3 0.0.0.0
CE4:
vlan batch 10
#
bridge-domain 10
l2 binding vlan 10
vxlan vni 100
#
interface GE1/0/0
undo portswitch
undo shutdown
ip address 10.1.1.1 255.255.255.0
#
interface GE1/0/1
shutdown
port default vlan 10
#
interface LoopBack0
ip address 10.1.1.2 255.255.255.255
#
ospf 10
area 0.0.0.0
network 10.1.1.0 0.0.0.255
network 10.1.1.2 0.0.0.0
CE5:
#
vlan batch 10
#
interface GE1/0/0
undo portswitch
undo shutdown
ip address 10.2.2.1 255.255.255.0
#
interface GE1/0/1
shutdown
port default vlan 10
#
interface LoopBack0
ip address 10.2.2.2 255.255.255.255
#
ospf 10
area 0.0.0.0
network 10.2.2.0 0.0.0.255
network 10.2.2.2 0.0.0.0
#
注意:华为CE系列交换机输入命令之后必须要commit才能生效,此系列交换机端口都是默认shutdown的,所以必须将相关端no shut才能正常通信。
基础的配置已经完成我们可以用dis命令看一下相关信息以及ospf是否建立成功:
CE3上dis ospf peer如下:
ospf建立成功,两台汇聚交换机可以正常通信。接下来我们就要进行关于vxlan的相关配置了。
首先在VTEP上建立bridge-domain以及vni,首先给大家介绍一下什么是bridge-domain和vni。
由于我们要实现大二层网络中不同VTEP所属的VM之间通信,所以这两个VTEP之间就要建立VXlan隧道,也就是说同一大二层域之间的VTEP都要建立VXLAN的隧道。那么我们这里所说的同一大二层域就是我们的bridge-domain,简称为BD。我们知道在传统的二层网络中我们用vlan id来区分不同的VLAN,在VXLAN中我们的vni就相当于我们VLAN中的vlan id,而我们的vni和BD之间是1:1的映射关系,这种映射关系是我们自己通过命令行进行配置的。
CE4:
bridge-domain 10 建立bridge-domain
l2 binding vlan 10 在bridge-domain下将相应的vlan进行绑定
vxlan vni 100 手动映射vni和bridge-domain的关系
#
interface Nve1
source 10.1.1.2 源地址建议就使用此设备的loopback地址
vni 100 head-end peer-list 10.2.2.2 指向对端VTEP设备的loopback端口地址
CE5:
#
bridge-domain 10
l2 binding vlan 10
vxlan vni 100
#
interface Nve1
source 10.2.2.2
vni 100 head-end peer-list 10.1.1.2
两台VTEp配置完毕,接下来我们就可以看到VXLAN的 tunnel已经建立成功:
通过dis VXLAN vni、dis vxlan peer、dis vxlan tunnel可以看到如下结果:
我们可以看到两边VTEP的VXLAN的隧道已经建立成功,流量走向流程为:当vm1(pc 1)需要访问vm2(pc2)时,VTEP1会将来自vlan10 的流量通过对应关系vlan10----BD 10----VNI100的关系将流量通过vxlan隧道到达VTEP2,然后VTEP2会根据目的ip寻址,到达vm2后将对应的mac地址进行封装,返回给vm1。
这次是最简单的实现方式,后面会依次给大家分享vxlan的不通实现方式。大家可以一起探讨!