赞
踩
Vxlan用来在三层之上构建一个大二层网络
vxlan其实就是在三层物理网络上进行虚拟化处理构建自己的二层和三层虚拟网络
vxlan目的:
作为云计算的核心技术之一,服务器虚拟化凭借其大幅降低IT成本、提高业务部署灵活性、降低运维成本等优势已经得到越来越多的认可和部署。
如图所示,一台服务器可虚拟多台虚拟机,而一台虚拟机相当于一台主机。主机的数量发生了数量级的变化,这也为虚拟网络带来了如下问题:
1.虚拟机规模受网络规格限制
在传统二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而MAC地址表的容量限制了虚拟机的数量。
2.网络隔离能力限制
当前主流的网络隔离技术是VLAN,在大规模的虚拟化网络中部署存在如下限制:
(1)由于IEEE 802.1Q中定义的VLAN Tag域只有12比特,仅能表示4096个VLAN,无法满足大二层网络中标识大量租户或租户群的需求。
(2)传统二层网络中的VLAN无法满足网络动态调整的需求。
传统网络中一个物理接口只能对应一个vlan,如果网络拓扑发生变化,需要重新手工划分vlan,工作量大
3.虚拟机迁移范围受网络架构限制
虚拟机启动后,可能由于服务器资源等问题(如CPU过高,内存不够等),需要将虚拟机迁移到新的服务器上。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址保持不变,这就要求业务网络是一个二层网络,且要求网络本身具备多路径的冗余备份和可靠性。
热迁移:VM迁移的过程不会影响业务
热迁移条件:VM迁移过程中,VM的ip地址和mac地址是不允许发生变化
传统的vm迁移只能发生在同一个DC(数据中心)里面二层网络中。
A服务器和 B服务器同一个DC(数据中心)里面的二层网络中
针对大二层网络,VXLAN的提出很好地解决了上述问题:
1.针对虚拟机规模受网络规格限制
VXLAN将虚拟机发出的数据包
封装在UDP中,并使用物理网络的IP、MAC地址作为外层头进行封装,对网络只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。
2.针对网络隔离能力限制
VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M(1610241024=16777216个vni标识)的VXLAN段,从而满足了大量的用户标识。
3.针对虚拟机迁移范围受网络架构限制
VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,无需关注虚拟机的MAC地址。且路由网络无网络结构限制,具备大规模扩展能力、故障自愈能力、负载均衡能力。通过路由网络,虚拟机迁移不受网络架构限制。
Vxlan好处:
随着数据中心在物理网络基础设施上实施服务器虚拟化的快速发展,作为NVO3技术之一的VXLAN:
1.通过24比特的VNI可以支持多达16M的VXLAN段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户。
2.除VXLAN网络边缘设备(NVE),网络中的其他设备不需要识别虚拟机的MAC地址,减轻了设备的MAC地址学习压力,提升了设备性能。
3.通过采用MAC in UDP封装来延伸二层网络,实现了物理网络和虚拟网络解耦(物理网络打通之后在物理网络之上建立虚拟网络,虚拟网络不用考虑物理网络),租户可以规划自己的虚拟网络,不需要考虑物理网络IP地址和广播域的限制,大大降低了网络管理的难度。
Vxlan部署方案:
目前,设备支持通过单机方式和控制器方式来部署VXLAN网络。
AC-DCN控制器方式
如图所示
AC-DCN控制器与设备之间通信通道的建立与维护
通过云平台,控制器可及时感知终端租户的状态,获得用户虚拟网络的信息。如图2所示,终端租户上线后,通过云平台,控制器根据获得的用户虚拟网络信息进行动态计算,生成网络相关配置信息,并自动映射到物理网络。
如图2所示,网络管理员需要先通过CLI或ZTP在设备上预先配置NETCONF并完成VXLAN的必要配置(如创建NVE接口、配置VTEP的IP地址等)。完成配置后,AC-DCN控制器可通过NETCONF自动管理设备。
VNI相同,表示属于同一个租户,那么我们可以二层互访,如上图的VM1和VM3,相同VNI之间可以通过vxlan互访
VNI不同,表示属于不同的租户,那么我们无法二层互访,如上图的VM1和VM2,不同VNI之间默认(二层VNI)不能通过vxlan互访,可以通过三层VNI互访
Vxlan基本概念:
VXLAN是NVO3中的一种网络虚拟化技术,通过将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP、MAC作为outer-header进行封装,然后在IP网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标虚拟机。
Underlay网络(物理网络)和Overlay网络(vxlan技术构建的虚拟网络):
VXLAN技术将已有的物理网络作为Underlay网络,在其上构建出虚拟的二层或三层网络,即Overlay网络。Overlay网络通过封装技术、利用Underlay网络提供的三层转发路径,实现租户报文在不同站点间传递。对于租户来说,Underlay网络是透明的,只能感知到Overlay网络。
NVE(Network Virtualization Edge):vxlan进行封装和解封装的设备
网络虚拟边缘节点NVE,实现网络虚拟化功能的网络实体。报文经过NVE封装转换后,NVE间就可基于三层基础网络建立二层虚拟化网络。
按照NVE部署位置的不同,可以分为以下三种模式:
硬件模式:所有的NVE都部署在支持NVE的设备上,所有的VXLAN报文封装与解封装都在设备上进行。
软件模式:所有的NVE都部署在vSwitch(开放的虚拟交换机)上,所有的VXLAN报文封装与解封装都在vSwitch上进行。
混合模式:部分NVE部署在vSwitch上,部分NVE部署在支持NVE的设备上,在vSwitch和设备上都有可能会进行VXLAN报文封装与解封装。
说明:设备和服务器上的虚拟交换机VSwitch都可以作为NVE。
VTEP(VXLAN Tunnel Endpoints):用来标识NVE的IP(一般使用环回口地址,同时也作为隧道地址),比如ospf协议的路由器的router id
VTEP是VXLAN隧道端点,封装在NVE中,用于VXLAN报文的封装和解封装。
VTEP与物理网络相连,分配有物理网络的IP地址,该地址与虚拟网络无关。
VXLAN报文中源IP地址为本节点的VTEP地址,VXLAN报文中目的IP地址为对端节点的VTEP地址,一对VTEP地址就对应着一个VXLAN隧道。
VNI(VXLAN Network Identifier):
VXLAN网络标识VNI类似VLAN ID,用于区分VXLAN段,不同VXLAN段的虚拟机不能直接二层相互通信。
一个VNI表示一个租户,即使多个终端用户属于同一个VNI,也表示一个租户。VNI由24比特组成,支持多达16M的租户。
在分布式网关部署场景下,VNI分为二层VNI和三层VNI。
二层VNI是普通的VNI,以1:1方式映射到广播域BD,实现VXLAN报文同子网的转发。
三层VNI和VPN实例进行关联,用于VXLAN报文跨子网的转发。(EVPN的分布式网关里会出现三层VNI)
BD(Bridge Domain):BD域具有本地意义
BD是VXLAN网络中转发数据报文的二层广播域。
在VXLAN网络中,将VNI以1:1方式映射到广播域BD,BD成为VXLAN网络转发数据报文的实体。
比如PC1和PC2之间跨越vxlan隧道,PC1和PC2的VNI都是1,PC1的BD域是100,PC2的BD域不用必须设置为100(因为BD域具有本地意义)
VBDIF接口:类似于vlanif接口,实现不同VNI之间的通信(也就是基于3层VNI通信)
基于BD创建的三层逻辑接口。通过VBDIF接口配置IP地址可实现不同网段的VXLAN间,及VXLAN和非VXLAN的通信,也可实现二层网络接入三层网络。
VAP(Virtual Access Point):
虚拟接入点VAP,即VXLAN业务接入点,可以是二层子接口或VLAN:
当接入节点是二层子接口时,通过在二层子接口上配置流封装类型实现不同的接口接入不同的数据报文,将二层子接口关联广播域BD后,可实现数据报文通过BD转发。
当业务接入点是VLAN时,需要将VLAN绑定到广播域BD,也可以实现数据报文通过BD转发。
报文流封装类型
当业务接入点是二层子接口时,通过在二层子接口上配置不同的流封装类型以实现不同的接口接入不同的数据报文,将二层子接口关联广播域BD(Bridge-Domain)后,可实现数据报文通过BD转发,如表2所示。
网关(Gateway):
和VLAN类似,不同VNI之间的VXLAN,及VXLAN和非VXLAN之间不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,VXLAN引入了VXLAN网关。
VXLAN网关分为:
二层网关:用于解决租户接入VXLAN虚拟网络的问题,也可用于同一VXLAN虚拟网络的子网通信。(相同的VNI之间是二层,不用通过配置VBDIF地址就可以进行通信)
三层网关:用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。(不同VNI之间可以通过配置三层网关VBDIF地址进行通信,Vxlan用户和非Vxlan用户之间也可以通过三层网关互访)
Vxlan网关划分:
和VLAN类似,不同VNI之间的VXLAN,及VXLAN和非VXLAN之间不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,VXLAN引入了VXLAN网关。
VXLAN网关分为:
二层网关:用于解决租户接入VXLAN虚拟网络的问题,也可用于同一VXLAN虚拟网络的子网通信。
三层网关:用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。
根据三层网关部署方式的不同,VXLAN三层网关又可以分为集中式网关和分布式网关。
集中式网关部署:
集中式网关是指将三层网关集中部署在一台设备上,如图1所示,所有跨子网的流量都经过三层网关进行转发,实现流量的集中管理。
Spine:骨干设备
Leaf:叶子设备
Server1、Server2和Server3属于不同的VNI,Server1和Server2,Server1和Server3,Server2和Server3通信都需要经过Spine1
分布式网关部署:
可以解决集中式网关部署的缺点
Leaf设备既是二层网关,又是三层网关,Spine1只作为中转站,无法感知Vxlan隧道
Leaf1只知道Leaf2、Server1和Server2的VRP表项,Leaf2只知道Leaf1、Server3和Server4的VRP表项
Vxlan报文格式:
VXLAN是MAC in UDP的网络虚拟化技术,所以其报文封装是在原始以太报文之前添加了一个UDP封装及VXLAN头封装。
原始报文(虚拟机的mac和IP)外层封装Vxlan头部,在经过UDP封装,最外面是物理设备的IP和MAC头部
Vxlan header中的Vxlan Flags中第三比特位必须为1(从右往左数,第一位是第0比特位),标识VNI字段是有效的
Outer UDP header中的Destport标识目的端口是4789(固定的,IEEE分配的)的话,表示这是一个Vxlan报文,Source Port表示的是原始报文的源目MAC地址进行哈希计算得出的值
静态方式部署Vxlan集中式网关:
在静态方式部署集中式网关的场景中,控制平面的流程包括VXLAN隧道建立、MAC地址动态学习;转发平面的流程包括同子网已知单播报文转发、同子网BUM(Broadcast广播,Unknow unicast未知单播,Multicast组播)报文转发、跨子网报文转发。
静态方式部署集中式网关,手工配置工作量大,灵活性较差,不适合大规模的组网场景,如果在VXLAN网络中采用集中式网关,推荐使用BGP EVPN方式部署集中式网关。
VXLAN隧道建立:
VXLAN隧道由一对VTEP IP地址确定,静态VXLAN隧道的创建完全通过手工配置本端和远端的VNI、VTEP IP地址和头端复制列表来完成,只要VXLAN隧道的两端VTEP IP是三层路由可达的,VXLAN隧道就可以建立成功。
如图1所示,Leaf1上部署了Host1和Host3,Leaf2上部署了Host2,Spine上部署三层网关。
• 为了实现Host3和Host2之间的通信,需要分别在Leaf1和Leaf2上手动配置二层VNI,并在配置头端复制列表时指定对端VTEP IP地址。只要Leaf1和Leaf2上存在到对端VTEP IP地址的三层路由,就可以建立到对端的VXLAN隧道。(Host2和Host3之间是二层网关)
• 为了实现Host1和Host2之间的通信,需要分别在Leaf1和Spine、Spine和Leaf2上手动配置二层VNI,并在配置头端复制列表时指定对端VTEP IP地址。只要Leaf1和Spine上存在到对端VTEP IP地址的三层路由,就可以建立到对端的VXLAN隧道;同样的,只要Spine和Leaf2上存在到对端VTEP IP地址的三层路由,就可以建立到对端的VXLAN隧道。(Host1和Host2之间通过Spine的三层网关通信,Spine上通过配置两个VBDIF地址建立三层网关,Spine收到Leaf1的消息后解封装然后在进行封装将消息再传给Leaf2,Leaf2再交给Host2)
实验:
拓扑图:
SW和PC之间都是access接口,SW和CE交换机之间都是trunk接口,PC1和PC2属于同一个VNI,所以不用通过三层网关就可以通信(通过CE1和CE3之间建立一条虚拟的二层Vxlan隧道实现),如果要使PC1和PC3,PC2和PC3之间通信(跨子网通信),需要在CE2上配置三层网关VBDIF地址实现(PC3的三层网关VBDIF是10.10.10.254/24,PC1和PC2的三层网关VBDIF是192.168.1.254/24)
默认CE设备上的接口是二层口,默认是shutdown状态,需要在接口上配置undo portswitch和undo shutdown
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。