1.VXLAN产生背景
传统三层网络架构下虚拟机动态迁移带来的问题
- 动态迁移就是让虚拟机搬家,但是要求搬家的时候,虚拟机上运行的业务还不会中断,最终用户察觉不到。
- 虚拟机迁移要求二层可达
- 变更虚拟机IP地址业务造成业务中断。
- 而且相关的服务器也要进行相应的配置变更
需求背景:虚拟机迁移需求
服务器规模增长
- ScaleUP大容量: 服务器IO性能增长,10G/40G端口应用
- ScaleOut交互多:分布式业务大量应用,交互大幅增长。
资源灵活调度
- 服务器虚拟化后,需要网络提供更大范围二层域,适应虚拟机的灵活迁移和IT资源整合。
因此,实现虚拟机的大范围甚至跨地域的动态迁移,就要求相关服务器都纳入同一个二层网络,形成一个更大范围的二层网络,即大二层网络。
实现大二层网络,相关技术有:
- 网络设备虚拟化:堆叠、VSS、CSS
- TRIL
- VXLAN
- EVN
当前的一些解决方案:拓扑简化思想
- 通过css、istack技术简化拓扑
- 服务器处于扁平网络架构。
- VM在同一个二层网络中,迁移过程无需修改IP
- 服务不受影响,可无障碍灵活迁移。
网络设备虚拟化存在的问题
- MAC地址数量陡增,接入设备压力较大
- 多租户隔离环境中设备VLAN资源紧张
- 二层网络范围过大,影响网络通信效率
- 传统解决方案较适用于DC内部大二层互联应用
网络设备虚拟化、TRILL、EVN,难免需要对原来的网络做较大的改动,并且大二层网络的范围依然会受到种种条件的限制。
2.VXLAN简介
- 2011年,由VMWare等IT厂商和Cisco为代表的CT厂商共同向IETF发起VXLAN的草案
- 2014年8月VXLAN基础协议正式发布为RFC7348
- VXLAN技术支持厂商多,技术较成熟
VXLAN:Virtual eXtensible Local Area Network,虚拟扩展局域网
- 由IETF定义的NVO3标准技术之一
- 采用L2 over L4 (MAC-in-UDP) 的报文封装模式
- 本质上属于一种VPN技术,在任意路由可达的网络上叠加二层虚拟网络
NVO3: Network Virtualization Over Layer 3,基于三层网络构建虚拟网络
- 目前比较有代表性的有:VXLAN、NVGRE、STT。
3.VXLAN网络架构
4.VXLAN的特点
“明”里传输的是跨越三层网络的UDF报文,“暗”里却已经悄悄将源VM的原始报文送达目的VM。
5.VXLAN工作机制
1)确定哪些VTEP间需要建立VXLAN隧道:
- 连接在不同VTEP上的VM之间如果有“大二层”互通的需求,这两个VTEP之间就需要建立 VXLAN 隧道。
- 即,同一大二层域内的VTEP之间都需要建立VXLAN隧道。
2)标识同一个大二层域
- BD,与VNI存在1: 1的映射关系
- 有了映射后,进入VTEP的报文就可以根据自己所属的BD来确定报文封装时该添加哪个VNI
bridge-domain 101 //表示创建一个“大二层广播域”BD,其编号为10
vxlan vni 5000 //表示在BD 10下,指定与之关联的VNI为5000
<HUAWEI> display vxlan vni Number of vxlan vni : 1 VNI BD-ID State ------------------------- 5000 10 up
3)确定报文属于哪个BD
- 基于VLAN方式:在VTEP上建立VLAN与BD的一对一或多对一的映射。
- 基于报文流封装类型: 在VTEP连接下行业务的物理接口上创建二层子接口
基于二层物理接口 10GE 1/0/1,分别创建二层子接口 10GE 1/0/1.1和10GE 1/0/1.2,且分别配置其流封装类型为 dot1g 和untag。配置如下: interface 10GE1/0/1.1 mode12 //创建二层子接口10GE1/0/1.1 encapsulation dotlq vid 10 //只允许携带VLAN Tag 10的报文进入VXLAN 隧道 bridqe-domain 10 //报文进入的是BD 10 # interface 10GE1/0/1.2 mode 12 //创建二层子接口10GE1/0/1.2 encapsulation untag //只允许不携带VLANTag 的报文进入VXLAN隧道 bridge-domain 20 //报文进入的是BD 20
基于二层物理接口 10GE 1/0/2,创建二层子接口 10GE 1/0/2.1,且流封装类型为 default。配置如下: interface 10GE1/0/2.1 mode 12 //创建二层子接口10GE1/0/2.1 encapsulation default //允许所有报文进入VXLAN 隧道 bridqe-domain 30 //报文进入的是BD 30
4)建立VXLAN隧道:VXLAN隧道由一对VTEP IP地址确定
- 静态VXLAN隧道:通过手工配置源端和目的端的VNI与VTEP的IP地址,只要VXLAN隧道两端VTEP IP是路由可达的,VXLAN隧道就可以建立成功
- 动态VXLAN隧道:需要借助于其他协议,如BGP,主要应用在EVN和VXLAN的分布式网关场景中。
interface Nvel //创建逻辑接口NVE 1 source 1.1.1.1 //配置源VTEP的IP 地址(推荐使用 Loopback 接口的 IP 地址) vni 5000 head-end peer-list 2.2.2.2 vni 5000 head-end peer-list 2.2.2.3
<HUAWEI> display vxlan vni 5000 verbose BD ID :10 State :up NVE :288 Source : 1.1.1.1 UDP Port :4789 BUM Mode : head-end Group Address .- Peer List : 2.2.2.2 2.2.2.3
6.VXLAN报文转发流程
1)MAC地址学习
2)VXLAN网关
- 二层网关:用于同一网段的终端用户通信。
- 三层网关:用于非同一网段或VXLAN和非VXLAN间的通信。
同子网报文转发:只在VXLAN二层网关之间进行,三层网关无需感知。
跨子网报文转发:需要部署VXLAN三层网关,创建VBDIF接口。
7.VXLAN部署方式:集中式网关部署和分式网关部署
相同部门互通方案:
不同部门互通方案,集中式网关:
- 将三层网关集中部署在一台设备上,所有跨子网的流量都经过三层网关进行转发,实现流量的集中管理。
- 优点:对跨子网流量进行集中管理,网关的部署和管理比较简单
- 缺点: 转发路径不是最优、ARP表项规格瓶颈。
不同部门互通方案,分布式式网关:
- Spine节点:关注于高速IP转发,强调的是设备的高速转发能力。
- Lea节点:
作为二层网关设备,与物理服务器或VM对接,用于解决终端租户接入VXLAN虚拟网络的问题。
作为三层网关设备,进行VXLAN报文封装/解封装,实现跨子网的终端租户通信以及外部网络的访问。
同一个Leaf节点既可以做二层网关,也可以做三层网关,部署灵活
只需要学习自身连接服务器的ARP表项,网络规模扩展能力强。
8.VXLAN应用场景