在传统的大二层网络里,实现二层网络隔离主要依赖于vlan技术。但是在目前云计算的环境下,基于vlan的二层网络存在很多问题,如下:

虚拟机规模受网络设备表项规格的限制

二层转发基于mac转发表。在云领域,虚机的规模很大,导致mac表的规模很大,接入层设备的压力较大。

网络隔离能力有限

公有云中,租户较多,vpc的数目也较多。VLAN只有12bit的标示位,最多能够4096 个 VLAN 网络。对于公有云场景也是无法满足那么多租户的网络需求。

虚机迁移的需求受限

云中,虚机的迁移是较为频繁的需求。虚机的迁移需要保证,虚机的IP及MAC地址不变,因此,无论虚机迁移至何处,都需要保证虚机在原来的子网内。在vlan模式下,这就要求迁移的目标宿主机在同一个二层网络下,这就限制了虚机迁移的范围。

针对VLAN上述存在的问题,因此VXLAN被提出用于实现网络隔离。同样GRE也是同样功能。

VXLAN协议

VXLAN:Virtual eXtensible Local Area Network,虚拟扩展局域网。基于UDP实现跨三层网络的二层网络,MAC-IN-UDP。

VXLAN报文架构:

VXLAN报文

如上报文格式:

VXLAN头部封装的是原始的二层报文,VXLAN头部则封装在UDP报文中。

Inner:

内部报文,分别是内部目的地址MAC及IP地址。

VXLAN Header:

共 8 个字节,目前使用的是 Flags 中的一个 8bit 的标识位和 24bit 的VNI(Vxlan Network identifier) ,其余部分没有定义,但是在使用的时候必须设置为 0x0000。

Outer UDP:

共8个字节,IANA分配的标准目的端口使用 4798,但是各厂商可以根据需要进行修改,同时UDP的校验和必须设置成全 0。

Outer IP:

共20个字节,目的IP地址可以是单播地址,也可以是多播地址。 单播情况下,目的IP地址是目的VTEP的 IP地址;当用于VXLAN控制平面时会使用多播地址。

VNI:

用于标记逻辑网络,实现网络隔离的唯一标示。

VXLAN通信模式:

VXLAN_TUNNEL

VTEP(VXLAN Tunnel Endpoints):VXLAN隧道端点,分配有具体的IP,对vxlan数据包的封装及解封装。既可以部署在交换机上,也可以部署在物理节点上。

VXLAN Tunnel:VXLAM隧道,虚拟概念,只需要三层互通即可。

VXLAN通信流程:

ARP请求过程

server1 -> server3,发送ARP请求,查询server3的mac地址。

server1发送源mac:vm1_mac,目的mac: FFFF:FFFF:FFFF:FFFF,源IP: vm1_ip,目的IP: vm3_ip,广播报文,请求vm3的mac地址;

vm1的arp广播包到达Device1 VTEP1,VTEP1学习了VM1的{mac,vni,Interface},添加对应的表项。查询本地mac表,若查询到,则直接应答vm1。若未查询,在根据vni,将ARP广播包通过组播发送至其余的VTEP。在隧道中,ARP包封装为一个普通的UDP包;

VTEP1发送的组播包到达Device2 VTEP2, Device VTEP3后。对vxlan包进行解封装,得到vm1的原始报文。根据这些报文,VTEP2,VTEP3学习记录mac表信息,{vni,内层mac,vtep_port}(实际在ovs中,{vni,mac,vtep_port}通过流表学习并动态插入的);具有ARP代理功能的vtep中,也会记录mac ip的对应关系。

VTEP2 VTEP3解封数据包,继续广播ARP报文。

ARP应答

ARP的应答为一个单播过程,VM3收到ARP的广播包,目的IP,目的MAC为VM1_ip,VM1_mac;应答包到达VTEP3,VTEP3学习{vm3_mac,vm3_vni,interface};同时由于在ARP广播包中学习到VM1的{mac,vni,vtep_port},所以VTEP3封装arp应答包,直接发送给VTEP1;

VTEP1收到VTEP3发送的UDP包,解封装获得原始包,同时学习了VM3的{mac,vni,vtep_port};由于VTEP中有VM1的mac关系表,因此,直接根据{VM1_mac,vni,interface}进行数据包的转发。

数据的传输,参考ARP的应答过程。

ARP洪泛流量抑制

此功能主要VTEP能够学习记录ARP的表项,在收到ARP的查询时,能够无需广播,根据已有的表项进行ARP应答。

如上图所示结构:

VM1->VM3,发送ARP请求时,ARP包到达VTEP1时,学习记录VM1的{mac,ip}信息。VTEP1将ARP请求广播至VTEP2,VTEP3时,VTEP{2,3}也会学习记录VM1的{mac,ip}信息。

VM3->VM1,应答时,应答包到达VTEP3时,VTEP3可以学习到VM3的{mac,ip}信息;数据包到达VTEP1是,VTEP1同时也能够学习到VM3的{mac,ip}信息;

因此当VTEP1下另有虚机需要arp vm3的信息时,VTEP1在本地直接查询到VM3的mac,并arp的应答,避免了广播。

VXLAN网关

VXLAN网关分为集中式网关和分布式网关:

集中式网关

分布式网关

3层vni vxlan_VXLAN相关推荐

  1. 3层vni vxlan_VXLAN技术:三层网络构建虚拟的二层网络

    VXLAN概述 1  什么是 VXLAN  VXLAN(Virtual Extensible LAN)虚拟可扩展局域网,是一种 overlay网络技术,将原始2层以太网帧进行UDP封装 (MAC-in ...

  2. 3层vni vxlan_VLAN和VXLAN,两者有何区别?VXLAN运用场景有哪些?

    随着网络技术的发展,云计算凭借其系统利用率高.人力/管理成本低以及灵活性/扩展性方面展现的优势,已经成为目前各大行业IT建设的新趋势.而服务器的虚拟化作为云计算的核心技术之一,也得到了越来越多的应用, ...

  3. 3层vni vxlan_什么是VXLAN 三层网络搭建二层网络的设计方案

    一.VXLAN概述 1. 什么是 VXLAN VXLAN(Virtual Extensible LAN)虚拟可扩展局域网,是一种 overlay 网络技术,将原始2层以太网帧进行UDP封装 (MAC- ...

  4. 3层vni vxlan_方便业务迁移,大型企业数据中心VXLAN大二层基础,一分钟了解下

    一.VXLAN 简介 (1)定义 RFC7348 定义了 VLAN 扩展方案 VXLAN(Virtual eXtensible Local Area Network).VXLAN 采 用 MAC in ...

  5. 看完这篇,别说你还不懂Hinton大神的胶囊网络,capsule network

    from:https://www.sohu.com/a/226611009_633698 倒计时 2 天 来源 | 王的机器(公众号ID:MeanMachine1031) 作者 | 王圣元 0 引言 ...

  6. 1、EVPN(Ethernet VPN)技术

    这是一个全新栏目的第一篇文章,后续我将持续更新此章节.是的...这段话是不是很熟悉...这说明该栏目将又是一个挖坑栏目...哈哈哈 这个栏目主要为大家介绍什么是EVPN,以及EVPN基础概念的导入.E ...

  7. vxlan 分布式网关(evpn 带RR场景)

    拓扑: 规划: leaf和RR设备均有loopback0地址,按设备编号区分,如server-leaf1 loopback0 地址为1.1.1.1/32,server-leaf2 loopback0 ...

  8. 华为Vxlan原理及配置

    Vxlan用来在三层之上构建一个大二层网络 vxlan其实就是在三层物理网络上进行虚拟化处理构建自己的二层和三层虚拟网络 vxlan目的: 作为云计算的核心技术之一,服务器虚拟化凭借其大幅降低IT成本 ...

  9. 胶囊网络(Capsule Network)

    胶囊网络有意思的解析 1.传统的CNN 2.胶囊 2.1 向量神经元和标量神经元(普通人工神经元)对比 2.2 工作原理 2.3 动态路由 1.传统的CNN CNN中包含一个很重要的概念--池化(po ...

最新文章

  1. Intersection of Two Linked Lists——经典问题
  2. C++ 20的悲叹,未出世就被群嘲“劝退”
  3. 62. Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 (二分查找-局部有序)
  4. 数模学习笔记——微分方程
  5. 实战SSM_O2O商铺_37【商品】商品列表之View层的实现
  6. systemtap mysql_使用systemtap调试工具分析MySQL的性能
  7. NOIP2017普及组翻车记
  8. /proc/kcore失效,调试其文件系统相关模块,使重新正常工作
  9. 为什么要用nodejs做中间层
  10. 微信小程序获取用户信息以及唯一openid
  11. Eclipse中使用Checkstyle,checkstyle插件检查java代码的自定义配置文件:
  12. Facebook陷入史上最大危机;华为5G设备欧洲大卖,美国指责欧盟;红帽宣布OpenShift可用于AWS中国……...
  13. oracle将千万行查询优化到一秒内,oracle下一条SQL语句的优化过程(比较详细)
  14. 吴恩达深度学习神经网络基础编程作业Building your Deep Neural Network Step by Step
  15. 开发者论坛一周精粹(第十四期):CVE-2017-7529:Nginx敏感信息泄露
  16. 设计模式 - Prototype模式(原型模式)
  17. 什么原数据更容易平稳_为什么老年人更容易患上艾滋病?
  18. VisualStudio2005英文版被SQL2005简体中文版汉化
  19. JAVA学习笔记之J2SDK主要包介绍 (马士兵 教学视频)
  20. 锐捷交换机VRRP配置

热门文章

  1. OpenCV教程指南
  2. python学习总结一(快速入门)
  3. OpenBlas编译方法
  4. stm32成长记之滴答时钟
  5. 用特种兵椰子汁替代酒水,这次新人训练营完美收官
  6. 健身教练月薪过万 北京持证仅1000人[组图
  7. vue開發-prxy server setting
  8. My love, you are always in my heart
  9. Element中Upload上传组件的http-request方法
  10. idea 项目结构后面显示0%classes,0% lines covered