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 )和链路聚合协议。

2.1 应用灵活部署

如图 1-1 所示,在 VXLAN环境中应用部署不受物理位置和3层网络边界限制,例如某应用的地址段为 192.168.1.0/24,在传统网络中所有该应用服务器或者虚拟机必须在同一 3层网络内部署,否则会产生路由或者地址冲突问题。

2.2 更好的扩展性

传统网络通过 VLAN将客户网络逻辑隔离, VLAN ID字段为 12-bit ,VLAN数量最大为 4096;VXLAN使用 24-bit VNID ( VXLAN network identifier ),最大支持16,000,000 逻辑网络,扩展性得到极大增强。

2.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请求过程如下:

1、终端设备 A 发送 ARP请求,请求终端设备 B 的 MAC地址;

2、VTEP-1收到终端设备 A发送的 ARP请求,此时 VTEP-1还没有终端设备 B对应的地址映射表项, VTEP-1将 ARP请求进行 VXLAN封装, VNI 设置为10,outer-src-ip 是 VTEP-1的 IP ,outer-dst-ip 是加入的组播组地址,封装完成后转发至 VXLAN组播组;

3、VTEP-2、VTEP3加入相同的组播组,所有组成员都会收到 VTEP-1发送的组播报文,解封装后检查 VNI 与本地 VNI 是否匹配,如匹配将 ARP请求发送至本地网络,同时记录 VNI、inner MAC、outer IP 的对应关系,构建控制平面地址映射表项。如 VNI 不匹配则丢弃数据包。

4、终端设备 B 收到 ARP请求后以单播方式发送 ARP响应;

5、VTEP-2收到终端设备 B 的 ARP响应后进行 VXLAN封装,此时 VTEP-2已经构建控制平面地址映射表项,通过 VXLAN封装后以单播方式发送。

Outer-src-ip 是 VTEP-2的 IP 地址,outer-dst-ip 是 VTEP-1的 IP 地址;

6、VTEP-1收到封装后的 ARP响应后,解封装比对 VNI,如匹配将 ARP响应发送至终端设备 A,同时记录 VNI、inner MAC、 outer IP 的对应关系,构建控制平面表项;

7、 此时 VTEP-1、VTEP-2均已成功构建控制平面地址映射信息,后续 VXLAN数据使用单播在 VTEP-1和 VTEP-2之间传输。

4 VXLAN 数据传输

1、ARP请求完成后,终端设备 A 向终端设备 B 发送数据, VTEP-1收到数据中查找地址映射表项,将原始数据进行 VXLAN封装后转发至 VTEP-2;

2、VTEP-2收到 VXLAN数据包后检查 VNI 是否与本地 VNI 匹配, 如匹配则解封装后将原始以太网帧转发至终端设备 B。

补充

1、在进行 ARP处理时,为了将广播通过多播进行传输,必须要设置VNI 到多播组的映射,这种映射属于管理层,用于建立VTEP之间的管理通道。未知的目的 MAC(unknown MAC destination )同样会进行组播封装,处理方式和广播相同。

2、VXLAN报文不能进行分片处理,中间的设备可能会将 VXLAN报文分片,但是VTEP会将分片后的报文丢弃,为了确保 VXLAN报文不被分片处理,需要修改沿途所以设备的 MTU。RFC文档没有阐述为什么 VTEP必须丢弃分片后的报文。

3、在封装和解封装时 VLAN TAG信息都会被剥离,除非另有特殊配置。

本文来源于“ 思科CCIE俱乐部”

若有侵权请联系删除.


你的每一次“在看”,对我来说都是最大的鼓励

3层vni vxlan_VXLAN技术:三层网络构建虚拟的二层网络相关推荐

  1. 3层vni vxlan_VXLAN

    在传统的大二层网络里,实现二层网络隔离主要依赖于vlan技术.但是在目前云计算的环境下,基于vlan的二层网络存在很多问题,如下: 虚拟机规模受网络设备表项规格的限制 二层转发基于mac转发表.在云领 ...

  2. 数据中心网络架构 — 云数据中心网络 — 新型叶脊二层网络架构

    目录 文章目录 目录 Spine Leaf 二层网络架构 Spine Switch Leaf Switch Spine Leaf 的组网规模 Spine Leaf 的特性 Spine Leaf 的不足 ...

  3. 案例精解企业网络构建读书笔记之网络故障排除案例

    案例: 中铁集团某分公司进行了一次网络改造,分公司的用户报告说其中有一台客户端在调整办公室后无法访问总部的服务器. 故障解决思路与步骤: 从osi模型底层开始,从下而上来检查: 1.物理层检查: 可查 ...

  4. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

    作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明: 一.OSI七层网络协议 OSI是Open System I ...

  5. OSI七层网络、TCP/IP五层网络架构、二层/三层网络

    一.OSI七层网络协议 OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI参考模型各个层次的划分遵循下列原则: 1)根据不同层次的抽象分层 2)每层应当有一个 ...

  6. 《企业网络构建与安全管理教程》上册

    <企业网络构建与安全管理项目教程>上册 近些年来,职业教育工作坚持"以服务为宗旨,以就业为导向"的办学方针,面向社会.面向市场办学,转变传统的以课堂和学校为中心的人才培 ...

  7. 数据中心网络架构 — 云数据中心网络 — 大二层网络技术

    目录 文章目录 目录 大二层网络诞生的背景 数据中心的东西流量成为了主流 服务器虚拟化带来的虚拟机迁移问题 大二层网络 大二层网络的问题 大二层网络诞生的背景 数据中心的东西流量成为了主流 早期数据中 ...

  8. VMware NSX 原理与实践----逻辑路由以及二层网络

    前序:前面的文章中已经从NSX的基本架构讲到了逻辑交换,讲了什么是逻辑交换机,什莫是组播,什么是单播,讲了很多很多.希望大家能时常去复习,今天给大家讲一讲逻辑路由,也就是我们平时所说的三层通信. 一. ...

  9. 4|无线传感器网络与应用|无线传感器网络原理及方法-许毅版|考试知识点

    <无线传感器网络原理及方法> 第1章无线传感器网络概述 1.1无线传感器网络的基本概念 1.2无线传感器网络的特征 1.2.1与现有无线网络的区别 1.2.2与现场总线的区别 1.2.3传 ...

最新文章

  1. ZeroMQ实例-使用ZeroMQ进行windows与linux之间的通信
  2. 人工智能三大驱动力背后的CMOS传感器
  3. 【git效率篇】在window上面的git bash 配置永久别名 快捷方式
  4. 代码重构(五):继承关系重构规则
  5. Windows 10下,anaconda (conda) 虚拟环境的创建,jupyter notebook如何使用虚拟环境
  6. 今年最有档次的9个词!(不看后悔)
  7. [转]可伸缩系统的架构经验
  8. java题霸_牛客题霸每日一题 + NC50 + Java题解
  9. [转载] Java8新特性-003-Java8接口中的default修饰符
  10. 金字塔原理读书笔记 一 为什么使用金字塔结构
  11. 计算机网络中职试题,中职计算机网络基础试题
  12. 8. 机器人正运动学---DH坐标系建立技巧
  13. 微软ios服务器,iOS 客户端入门
  14. 浅谈不动产登记中的区块链应用 |《超话区块链》83期回顾
  15. 如何挑选童书《神奇的校车》
  16. 模电——三极管各个引脚之间的电压关系
  17. 由一道简单的图片隐写题总结思路
  18. 数据结构与算法---均摊时间复杂度
  19. springboot服务器没响应,记一次springboot 故障:接口无响应--》CPU 100%---》log无法写入---》磁盘满了...
  20. php做照片墙,照片墙作业练习

热门文章

  1. WebStorm 2017.1增加对Vue.js的支持
  2. 开启win7 FTP 服务 无法登陆的原因
  3. RHEL MRTG 系统流量监测的安装和配置
  4. .net 内嵌 GeckoWebBrowser (firefox) 核心浏览器
  5. 清除webbrowser cookie/session的6种方法
  6. 学习SpringMVC——从HelloWorld开始
  7. Asp.net MVC中的ViewData与ViewBag
  8. WF:要想绑到两个活动的属性值---依赖属性的定义方法
  9. Java Zip压缩实现(亲测)
  10. SpringBoot的配置详解application