一、vxlan概述
1. 什么是 vxlan
vxlan(virtual extensible lan)虚拟可扩展局域网,是一种 overlay 网络技术,将原始2层以太网帧进行udp封装 (mac-in-udp),增加8字节 vxlan头部,8字节 udp头部, 20字节 ip 头部和14字节以太网头部,共50字节。
2. vxlan优点
vxlan与vlan相比能够提供更好的扩展性和灵活性,主要有以下特点:
应用灵活部署: 通过vxlan封装后的2层以太网帧可以跨3层网络边界,让组网以及应用部署变得更加灵活,同时解决多租户网络环境中ip地址冲突问题。
更好的扩展性: 传统 vlanid字段为12-bit,vlan数量最大为4096;vxlan使用24-bit vnid (vxlan network identifier),最大支持 16,000,000 逻辑网络。
提高网络利用率: 传统以太网使用 stp预防环路, stp导致网络冗余路径处于阻塞状态, vxlan报文基于 3层 ip报头传输,能有效利用网络路径,支持 ecmp(equal-cost multipath )和链路聚合协议。
(1) 应用灵活部署
如图 1-1 所示,在 vxlan环境中应用部署不受物理位置和3层网络边界限制,例如某应用的地址段为 192.168.1.0/24,在传统网络中所有该应用服务器或者虚拟机必须在同一 3层网络内部署,否则会产生路由或者地址冲突问题。
(2) 更好的扩展性
传统网络通过 vlan将客户网络逻辑隔离, vlan id字段为 12-bit ,vlan数量最大为 4096;vxlan使用 24-bit vnid ( vxlan network identifier ),最大支持16,000,000 逻辑网络,扩展性得到极大增强。
(3) 提高网络利用率
图 1-3 使用 vxlan 后使用三层接口互联消除生成树阻塞端口
传统以太网帧无法穿越三层网络,部署 vxlan后, vtep之间数据基于三层寻址,网络互联接口不再是二层接口, 可以将交换机之间互联接口部署为三层模式,消除生成树阻塞端口,提高网络利用率,支持 ecmp(equal-cost multipath )和链路聚合协议。
二、vxlan术语
1. vtep
vxlan
tunnel endpoint (vtep)。vxlan使用vtep设备对vxlan报文进行封装与解封装,包括arp请求报文和正常的vxlan数据报文,vtep将原始以太网帧通过vxlan封装后发送至对端 vtep设备,对端vtep接收到 vxlan报文后解封装然后根据原始 mac进行转发,vtep可以是物理交换机、物理服务器或者其他支持 vxlan的硬件设备或软件来实现。
2. vni
virtual network id ( vni), vni封装在 vxlan头部,共 24-bit ,最大支持16,000,000 逻辑网络。
3. vxlan 网关
vxlan网关用于连接 vxlan网络和传统 vlan网络,vxlan网关实现 vni和vlan id 之间的映射, vxlan 网关实际上也是一台 vtep设备。
4. 组播组
vtep设备要加入相同的组播组,主要用于控制平面地址学习。
三、vxlan封装
vxlan使用 udp封装完整的以太网帧 (mac-in-udp),共 50 字节的封装报文头。具体的报文格式如下:
1. inner mac
inner mac,内层 mac是原始以太网帧的 mac地址。
2. vxlan header
共 8 个字节,目前使用的是 flags 中的一个 8bit 的标识位和 24bit 的vni(vxlan network identifier) ,其余部分没有定义,但是在使用的时候必须设置为 0x0000。
3. outer udp header
共8个字节,iana分配的标准目的端口使用 4798,但是各厂商可以根据需要进行修改,同时udp的校验和必须设置成全 0。
4. outer ip header
共20个字节,目的ip地址可以是单播地址,也可以是多播地址。 单播情况下,目的ip地址是目的vtep的 ip地址;当用于vxlan控制平面时会使用多播地址。
outer ip: 外层ip地址是经过vtep封装后的3层ip地址,源ip是本端vtep设备ip,用于控制平面时目的 ip 可以是多播地址,用于转发平面时目的 ip是远端 vtep设备 ip。
5. outer ethernet header
共计14个字节,外层以太网帧头部。outer mac,外层 mac是经过 vtep封装后的二层 mac,源 mac是本端 vtep设备mac,目的 mac可以是远端 vtep设备mac或者传输路径中间 3 层网络设备 mac。
四、vxlan数据转发
1. 控制平面
在 vxlan的实现中, 当通过组播实现控制平面路径发现时, vtep设备之间使用无状态 tunnel ,vtep设备之间不会维持状态化的长连接。 vxlan需要通过控制平面学习远端设备地址信息, 在本地构建控制平面表项。 控制平面表项由 vni、inner source mac 、outer source ip 三元组组成。
2. 转发平面
控制平面学习地址映射信息后, 转发平面负责实际数据的转发。 vtep为原始数据帧增加 udp报头,新的报头到达目的 vtep后才会被去掉,中间路径的网络设备只会根据外层包头内的目的地址进行数据转发。
3. vxlan arp请求
如上图所示,终端设备 a需要和终端设备 b通信, arp请求过程如下:
终端设备 a 发送 arp请求,请求终端设备 b 的 mac地址;
vtep-1收到终端设备 a发送的 arp请求,此时 vtep-1还没有终端设备 b对应的地址映射表项, vtep-1将 arp请求进行 vxlan封装, vni 设置为10,outer-src-ip 是 vtep-1的 ip ,outer-dst-ip 是加入的组播组地址,封装完成后转发至 vxlan组播组;
vtep-2、vtep3加入相同的组播组,所有组成员都会收到 vtep-1发送的组播报文,解封装后检查 vni 与本地 vni 是否匹配,如匹配将 arp请求发送至本地网络,同时记录 vni、inner mac、outer ip 的对应关系,构建控制平面地址映射表项。如 vni 不匹配则丢弃数据包。
终端设备 b 收到 arp请求后以单播方式发送 arp响应;
vtep-2收到终端设备 b 的 arp响应后进行 vxlan封装,此时 vtep-2已经构建控制平面地址映射表项,通过 vxlan封装后以单播方式发送。outer-src-ip 是 vtep-2的 ip 地址,outer-dst-ip 是 vtep-1的 ip 地址;
vtep-1收到封装后的 arp响应后,解封装比对 vni,如匹配将 arp响应发送至终端设备 a,同时记录 vni、inner mac、 outer ip 的对应关系,构建控制平面表项;
此时 vtep-1、vtep-2均已成功构建控制平面地址映射信息,后续 vxlan数据使用单播在 vtep-1和 vtep-2之间传输。
4. vxlan 数据传输
arp请求完成后,终端设备 a 向终端设备 b 发送数据, vtep-1收到数据中查找地址映射表项,将原始数据进行 vxlan封装后转发至 vtep-2;
vtep-2收到 vxlan数据包后检查 vni 是否与本地 vni 匹配, 如匹配则解封装后将原始以太网帧转发至终端设备 b。
五、vxlan部署
六、补充:
在进行 arp处理时,为了将广播通过多播进行传输,必须要设置vni 到多播组的映射,这种映射属于管理层,用于建立vtep之间的管理通道。未知的目的 mac(unknown mac destination )同样会进行组播封装,处理方式和广播相同。
vxlan报文不能进行分片处理,中间的设备可能会将 vxlan报文分片,但是vtep会将分片后的报文丢弃,为了确保 vxlan报文不被分片处理,需要修改沿途所以设备的 mtu。rfc文档没有阐述为什么 vtep必须丢弃分片后的报文。
在封装和解封装时 vlan tag信息都会被剥离,除非另有特殊配置。
楔形流量计的优点_楔形流量计的缺点
音频信号采集与AGC算法的DSP设计方案
如何更好地实施5G生态战略 打造更有竞争力的5G商业生态?
FORESEE微存储产品线推出的新品:SLC Parallel NAND
大咖论道产才融合!中国(苏州)集成电路产才融合发展大会暨金鸡湖科学家论坛18日召开!
什么是VXLAN 三层网络搭建二层网络的设计方案
一加将在2021年推首款智能手表
我国网民规模增加至9.89亿,互联网普及率达70.4%
科研级高智能土壤综合检测仪器如何解决施肥问题
渐变色的iPhone,你能接受吗?
至芯FPGA课程之综合理论分享
罗技推出众多新品亮相Macworld2013展会
EPC推出功率级集成电路,专为48V DC/DC转换而设计
触控一体机在医疗领域中具有着很大的市场潜力
一加5什么时候上市最新消息:一加5谍照现身,比魅族更漂亮!比小米更发烧!
特斯拉新软件版本,两个Autopilot功能升级
虚拟环境标志着ICE时代的结束
图形数据库是一种NoSQL数据库
配置2600上安装的FXO接口指南
驱动家居增长,兆威机电亮相SSHT