vxlan

1、概述
(1)VXLAN是建立在物理IP(overlay)网络之上的虚拟以太网
使用UDP封装完整的内层以太帧,封装报文头共五十个字节
(2)VXLAN使用24位VXLAN网络标识符(VLAN为12位)
最大支持16,000,000个逻辑网络
(3)VXLAN可跨越物理三层网络
使用UDP封装能在三层物理网络上建立二层逻辑网络
(4)VXLAN利用ip多播封装广播和多播报文
在VXLAN网内广播或多播的报文被封装在ip多播中,如ARP报文
(5)VXLAN利用ECMP(等价多路径负载均衡)
对不同数据流使用不同UDP源端口
(6)VXLAN已提交到ITEF,启动标准化进程
与Cisco, Citrix, Red Hat, Broadcom,Arista等厂商协作
2、VXLAN解决的具体技术问题
(1)VLAN的数量限制:4094个VLAN远不能满足大规模云计算中心的需求,XVLAN最大支持 16,000,000个逻辑网络
(2)物理网络基础设施的限制:基于IP子网的区域划分限制了需要二层网络连通性的应用负载的部署
(3)ToR交换机MAC表耗尽:虚拟化以及东西向流量导致更多的MAC表项
(4)汇聚层STP(生成树协议)高负荷:由于大量VLAN配置在大量接口,汇聚层交换机的压力大增。
这里写图片描述

(1) vxlan header
共计8个字节,目前使用的是Flags中的一个8bit的标识位和24bit的VNI(Vxlan Network identifier),
其余部分没有定义,但是在使用的时候必须设置为0x0000。
(2) 外层的UDP报头
目的端口使用4798,但是可以根据需要进行修改。同事UDP的校验和必须设置成全0。
(3) IP报文头
目的IP地址可以是单播地址,也可以是多播地址。单播情况下,目的IP地址是Vxlan Tunnel End Point
(VTEP)的IP地址。在多播情况下引入VXLAN管理层,利用VNI和IP多播组的映射来确定VTEPs。
protocol:设置值为0x11,显示说明这是UDP数据包
Source ip: 源vTEP_IP;
Destination ip: 目的VTEP IP。
(4) Ethernet Header
Destination Address:目的VTEP的Mac 地址,即为本地下一跳的地址(通常是网关Mac 地址);

VLAN: VLAN Type被设置为0x8100, 并可以设置Vlan Id tag(这就是vxlan的vlan 标签)。

Ethertype:设置值为0x8000,指明数据包为IPv4的。

补充:VTEP的作用
用于对VXLAN报文进行封装/解封装,包括ARP请求报文和正常的VXLAN数据报文,在一段封装报文后通过隧道向另一端VTEP发送封装报文,另一端VTEP接收到封装的报文解封装后根据封装的MAC地址进行装法。VTEP可由支持VXLAN的硬件设备或软件来实现。

从封装的结构上来看,VXLAN提供了将二层网络overlay在三层网络上的能力,VXLAN Header中的VNI有24个bit,数量远远大于4096,并且UDP的封装可以穿越三层网络,比VLAN有更好的扩展性。

2 Vxlan的数据和控制平面

(1) 数据平面—隧道机制
已经知道,VTEP为虚拟机的数据包加上了层包头,这些新的报头之有在数据到达目的VTEP后才会被去掉。
中间路径的网络设备只会根据外层包头内的目的地址进行数据转发,对于转发路径上的网络来说,一个Vxlan
数据包跟一个普通IP包相比,出了个头大一点外没有区别。
由于VXLAN的数据包在整个转发过程中保持了内部数据的完整,因此VXLAN的数据平面是一个基于隧道
的数据平面。

(2) 控制平面—-改进的二层协议
VXLAN不会在虚拟机之间维持一个长连接,所以VXLAN需要一个控制平面来记录对端地址可达情况。控制
平面的表为(VNI,内层MAC,外层vtep_ip)。Vxlan学习地址的时候仍然保存着二层协议的特征,节点之间不会
周期性的交换各自的路由表,对于不认识的MAC地址,VXLAN依靠组播来获取路径信息(如果有SDN Controller,
可以向SDN单播获取)。
另一方面,VXLAN还有自学习的功能,当VTEP收到一个UDP数据报后,会检查自己是否收到过这个虚拟机的
数据,如果没有,VTEP就会记录源vni/源外层ip/源内层mac对应关系,避免组播学习。

1) VM1以广播的形式发送ARP请求
2) VTEP1封装报文。打上VXLAN标识为100,外层IP头DA为IP多播组(239.119.1.1),SA为IP_VTEP1.
3) VTEP1在多播组内进行多播;
4) VTEP2解析接收到多播报文。填写流表(VNI, 内层mac地址,外层Ip地址),并在本地VXLAN标识为100的范围内广播(是VXLAN的用武之地)。
5) VM2对接收到的ARP请求进行响应;

1) VM2准备ARP响应报文后向VM1发送响应报文
2)VTEP2接收到VM2的响应报文后把它封装在ip单播报文中(VXLAN标识依然为100),然 后向VM1发送单播
3)VTEP1接收到单播报文后,学习内层MAC到外层ip地址的映射,解封装并根据被封装内容的目的MAC地址转发给VM1
4)VM1接收到ARP应答报文,ARP交互结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值