原来二层网络可以这么玩 网络工程师你真的理解VxLAN技术吗?

VxLAN概念

  • VxLAN(Virtual eXtensible Local Area Network):虚拟扩展LAN网络 , 将VLAN技术进行了延伸 。
VxLAN术语VNI(VXLAN Network Identifier ):用于区分VXLAN段 , 不同VXLAN段的租户不能直接进行二层通信 。一个租户可以有一个或多个VNI , VNI由24比特组成 , 支持多达16M的租户 。
BD(Bridge Domain): 类似传统网络中采用VLAN划分广播域方法 , 在VXLAN网络中通过BD划分广播域 。在VXLAN网络中 , 将VNI以1:1方式映射到广播域BD , 一个BD就表示着一个广播域 , 同一个BD内的主机就可以进行二层互通 。
【原来二层网络可以这么玩 网络工程师你真的理解VxLAN技术吗?】VTEP(Vxlan Tunnel End Point):VXLAN Tunnel Endpoints 对VXLAN报文进行封装和解封装 。VXLAN报文中源IP地址为源端VTEP的IP地址 , 目的IP地址为目的端VTEP的IP地址 。一对VTEP地址就对应着一条VXLAN隧道 。在源端封装报文后通过隧道向目的端VTEP发送封装报文 , 目的端VTEP对接收到的封装报文进行解封装 。VTEP可以是服务器也可以是网络交换设备 。
VAP(Virtual Access Point): 是VXLAN业务接入点 , 可以基于VLAN或报文流封装类型接入业务:
1、 基于VLAN接入业务
2、 基于报文流封装类型接入业务
NVE(Network Virtrualization Edge网络虚拟边缘节点): 是实现网络虚拟化功能的网络实体 。报文经过NVE封装转换后 , NVE间就可基于三层基础网络建立二层虚拟化网络 。
二层网关:类似传统网络的二层接入设备 , 在VXLAN网络中通过二层网关解决租户接入VXLAN虚拟网络 , 也可用于同一VXLAN虚拟网络的子网通信 。
VxLAN出现的原因一项新技术的兴起和发展肯定是有原因的 , 为了解决当下的哪些问题?
  • 我们都知道传统VLAN最大支持4096个(在Ethernet中插入4个字节的VLAN TAG , VLAN ID只有12bit) , 为了扩充VLAN资源同时保障不产生大的广播域 , 运营商采用QinQ(802.1q in 802.1q),变向的扩充VLAN资源 。而对于大型虚拟化云计算这种动辄上万甚至更多租户的场景 , VLAN的隔离能力无法满足 。而VxLAN进一步扩充了VLAN资源 , 因为8个字节的VxLAN Header , 其中24bit的VLAN ID(VNI)用来标识不同的二层网络 , 可以标识16M约1600万个不同的二层网络(租户) , 有效地解决了云计算中海量租户隔离的问题 。
  • 随着IDC的发展 , 一个物理接口可能挂上百个VM , 这样大量的mac表项是小型交换机难以承受的(MAC地址学习是flood-learn方式 , 是消耗交换机内存的 , 容易导致MAC地址表溢出 , 新MAC无法学习到) , 通过VxLAN技术将这些MAC虚拟封装后就大大缩减了MAC表项(虚拟机的Ethernet Frame被VTEP封装在UDP里面 , 一个VTEP可以被一个物理主机上的所有虚拟机共用 。从交换机的角度 , 交换机看到的是VTEP之间在传递UDP数据 。通常一个物理主机对应一个VTEP , 所以交换机的MAC地址表 , 只需要记录与物理主机数量相当条目就可以了 , 虚拟化带来的MAC地址表暴增的问题也不存在了 。) 。
  • 现在不少数据中心IDC(随着公有云服务的兴起) , 都需要提供多租户的功能(也即-不同用户之间需要保证独立地分配IP和 MAC 地址) 。
  • 数据中心大量虚拟机的部署及迁移 , 需要保证迁移过程不中断业务(IP与MAC绑定保持不变) , 这就是大二层解决的问题 , Vxlan就很好的实现了大二层网络的通信需求(通过overlay技术实现了在L3网络里传输L2数据 , 使得虚机迁移中不改变IP地址也即迁移不影响业务) 。
 
原来二层网络可以这么玩 网络工程师你真的理解VxLAN技术吗?

文章插图
数据中心中虚拟机迁移是常态工作
   VxLAN报文 
原来二层网络可以这么玩 网络工程师你真的理解VxLAN技术吗?

文章插图
(MAC in UDP也即L2 over L4) , 二层报文用三层协议进行封装 , 可实现二层网络在三层范围
   VxLAN是基于IP网络之上 , 它采用的是MAC in UDP技术 , 其实它与GRE/IPSEC等tunnel技术类似 , 这种封装技术对中间网络没有特殊要求 , 只要可以识别IP报文就可以传送 。
VTEP对VM发送的原始以太帧进行“封装” , 从上至下封装如下所示:


推荐阅读