“当前已有100+用户参与分享,共计发放奖励60000+“
既然提到vxlan,我们就先讨论一下传统vlan网络。传统vlan网络最广泛使用的封装协议为802.1Q协议,802.1q 是在以太网帧格式里,在MAC地址源与以太网类型/长度的原始帧里添加一个vlan标签,格式如图 那么即然是插入标签,也就是说对数据帧进行了改变,对比vxlan网络,这就是802.1Q vlan部署中受限的主要因素。还有一点请看最后VID字段,只有12位,换算成10进制位0-4095,这也就是802.1Q最大的vlan数量了。 上面提到了对数据帧插入标签的,这就要求802.1Q数据帧在传输的过程中,中间设备都要能够识别标签并能够正确转发。 如图所示,如果我管理的是交换机A和D,那么每次我新建vlan的时候都需要通知B和C的管理员也在交换机上创建vlan,只有这样当带有新vlan标签的数据帧传输到B、C设备上时才能够被识别和转发。 现在总结一下802.1Q vlan的主要三点不足: 1. 插入标签,需要trunk链路上所有设备都能识别标签。 2. Vlan数量只有4094个。 3. 802.1Q属于二层封装协议,所以必须部署在二层网络中。
带着802.1Q vlan的三个不足我们来说一下vxlan吧 Vxlan又叫“mac in IP”,顾名思义,它可以把二层网络数据帧封装到三层数据包中,传输层使用的是UDP协议(目的端口4789)封装格式如图 所以说只要三层可达的网络就可以承载vxlan,它就像使用VPN隧道把几个不直接相连的二层网络融合在了一起,所以它还有一个名字——l2vpn。 承载vxlan封装数据传输的网络不需要运行任何相关协议,只需要保证建立vxlan隧道的站点三层可达,如下图 所以只要B、C设备的管理员保证我A、D两台交换机建立隧道的地址1.1.1.1和2.2.2.2能够互访即可,后续我在A、D两台交换机两端变更二层网络使都不需要B、C设备配合变更,因为任何vxlan的数据都可以在源目IP地址为1.1.1.1和2.2.2.2的隧道中传输。 所以有了vxlan,你的二层网络可以是这样 上图如果在传统vlan网络,所有交换机必须二层互联,这就又需要用到生成树协议去消除环路,然而消除环路以后中间的可用线路就只剩下了一条,浪费线路。但是在vxlan模型下,所有交换机三层互联即可,不需要考虑环路,又可以通过源目IP地址和源端口等因素将vxlan隧道做负载分担,充分利用带宽。 甚至还可以这样——穿越一切三层可达
接着说,在vxlan报文封装中,vxlanid为24位,也就是说最大vxlan数量位2的24次方(总之很多很多)
总结 802.1Q vlan和vxlan对比
Vxlan的应用方面可以先从虚拟化上说起,正是因为有了vxlan,我们的超融合中有了虚拟交换机的。如下图,比如我在超融合内拉出一个虚拟交换机10,其实是在所有实体机上都创建了虚拟交换机10,每台虚拟交换机10通过vxlan网络三层互联,这样不管各个连接在虚拟交换机10上的虚拟机运行在哪台实体机上,就都能够互访了。 有了虚拟交换机,对于虚拟化管理员来说,虚拟机、虚拟网络设备之间的互访完全可以在超融合平台内完成,不需要借助于物理出口和物理网络的配合,这就实现了超融合内的网络虚拟化。 再往大了说,某公司等等各种云平台中,租户使用的虚拟网络也是借助于这种方式实现的,每个租户自己的平台中随意的新建vlan,互联设备虚拟机等,底层都是跑在一条条vxlan隧道当中……
还有一种vxlan的应用方案就是现在很火的分部署网关解决方案,有时间再和大家讨论吧。
最后,需要说的是文章中提到的都是vxlan模型的数据层面,然而vxlan隧道是如何建立、二层网络中mac地址的相互学习等,都需要控制层面来完成。就像路由协议,虽然最后得到的就是一条条路由表而已,但整个控制层面的设计规划才是重点。 |