`

VXLAN学习整理

 
阅读更多

文章来自:http://blog.sina.com.cn/s/blog_6de3aa8a0101oisp.html

参考:

http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-08

http://events.linuxfoundation.org/sites/events/files/slides/2013-linuxcon.pdf

http://www.borgcube.com/blogs/2011/11/vxlan-primer-part-1/

http://blog.csdn.net/freezgw1985/article/details/16354897

http://ikimi.net/?tag=vxlan

http://www.doc88.com/p-1426197391054.html

 

 VXLAN能解决哪些问题

1、服务器虚拟化技术,允许在物理机上运行多个MAC地址各不相同的虚拟机,随着数量的增加,交换机上的MAC地址表将剧烈膨胀,甚至需要MAC覆盖。

2、数据中心多以VLAN为虚拟机划分网络,但是VLAN数量受制于VLAN(802.1Q)协议4096,这远远满足不了现实的需求。

3、多租户环境的要求,其每个租户都有自己隔离的网络环境,导致物理网络中每个租户所分配的MAC地址和VLAN ID会存在重叠的可能。

4、Spanning Tree Protocol (STP)算法会产生大量多路路径冗余。

5、支持远距离虚拟机迁移,避免处理复杂的L2 (VLAN)网络环境。

6ToR(Top of Rack) Switch链接着物理server,它记录着各个server/VM相连的MAC地址映射表。当地址映射表满时,ToR就会停止学习新的地址,这样就会导致网络泛洪,直到有记录过期被换出,腾出空闲表项。

 

     VXLAN介绍

VXLAN(Virtual eXtensible Local Area Network)是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。每个覆盖域被称为VXLAN segment,它的ID是由位于VXLAN数据包头中的VXLAN Network Identifier(VNI)标识的。VNI字段包含24 bits,故segments最大数量为224次方,约合16M个。并且只有在相同VXLAN segment内的虚拟机之间才可以相互通信。

根据VXLAN的封包方式,也可以将它看做一种隧道模式的网络覆盖技术,这种隧道是无状态的。隧道端点VTEP (VXLAN Tunnel End Point - an entity which originates and/or terminates VXLAN tunnels),它一般位于拥有虚拟机的hypervisor宿主机中,因此VNI(VXLAN Network Identifier or VXLAN Segment ID)VXLAN隧道只有VTEP可见,对于虚拟机是透明的,那么不同的VXLAN segment中就允许具有相同MAC地址的虚拟机。并且VTEP也可以位于物理交换机或物理主机中,甚至可以使用软件来定义。VTEP (单播时是两个VTEP或多播时是多个VTEP)之间完全是通过L3协议交互的,这也就意味着VTEP间可以由Router相连,而非类似于GRE模式的固定端到端隧道连接。

 

 VXLAN Frame Format

VXLAN学习整理

 

(1)     Inner Ethernet Header[8+8+4]20字节

        VXLAN学习整理

   Inner Dest MAC Address:目的虚拟机的MAC地址。

   Inner Source MAC Address:源虚拟机的MAC地址。

Optional Ethertype可选的VLAN tag

 

(2)VXLAN Header[1+3+3+1]8字节

VXLAN学习整理

Flags(8 bits) I标记位(从左到右第5bit)必须设置为1,其余7R标记位置0

    VXLAN Network Identifier(VNI) 24bit的值,用来标识VXLAN覆盖网络的编号。

    Reserved fields24 bits + 8 bits,置为0有效。

 

(3)Outer UDP Header[2+2+2+2]8字节

         VXLAN学习整理

     Source端口:由VTEP提供,端口值由hash算法计算所得。

     Dest端口:为了网络的交互特性,一般设置为4789

     UDP校验和:一般为0,非0则此包将会被丢弃。

 

(4)Outer IP Header[4+4+12]20字节

VXLAN学习整理

    Outer Source IPv4 Address:发送端VTEP(见上文介绍)IP地址。

    Protocl:置为0x11(17)表明包含UDP包。

Outer Dest IPv Address:可以是单播也可以是多播地址。大多数情况是目标接收端VTEPIP地址,如果没有则会执行ARP请求来获取,具体步骤如下:

        1:目标IP被替换为与源虚拟机具有相同VNI的多播组IP地址。

2:所有的VTEP端都接收此多播包,VTEP查找所在主机上的全部虚拟机来匹配源虚拟机的Inner Dest MAC Address

        3:目标VTEP上的虚拟机会回应这个多播包,从而获知目标VTEP IP地址。

4:发送端VTEP添加(VNI -- VTEP -- 虚拟机MAC地址)映射关系到自己的VXLAN表中,避免再次组播学习过程。

 

    (5)Outer Ethernet Header[6+6+4+2]18字节

VXLAN学习整理

          Outer Dest MAC Address:一般被设置为接收端VTEP设备的MAC地址,或者下一跳设备端口的MAC地 址。(纯粹的L3网络传输过程)

          Outer Source MAC Address:发送端VTEP设备的MAC地址。

          OptnlEthtype VLAN:指定Ethertype0x8100,并且指定VLAN tag

 

          VXLAN网络中VM间通信过程

VXLAN模式的网络环境中:源虚拟机发送出去的L2数据包(Inner Ethernet Header + Payload),由send VTEP使用VXLAN Header (VNI标识所属的segment)L2数据包封装,然后依次追加UDP Header + 标准IP Header + 标准MAC Header;发出后由L3协议通过标准IP Header转发;根据UDP目的端口发现VXLAN包头,匹配VNI找到receives VTEP;最后receives VTEP解包,由L2数据包头找到目标虚拟机,交互Payload数据。

VM间通信举例:

 

VXLAN学习整理

VM1要向VM2发送数据前,必须要知道VM2MAC地址,其获取过程如下:

         1VM1发送ARP请求包,请求192.168.0.101[VM2_IP]MAC地址;

         2ARP请求包被VTEP1封装成多播包,发给VNI=864的多播组;

         3、所有的VTEP接收此多播包,并添加(VNI–VTEP1–VM1_MAC Address)映射关系到自己的VXLAN表中;

         4、目的主机上的VTEP2接收到多播包后将其解开,并向本主机上VNI=864的所有虚拟机发送广播包;

         5VM2看到了ARP包后,回应了自己的MAC地址;

         6VTEP2再次封装回应的单播包,通过路由发给VTEP1

         7VTEP1解包,并将包传给VM1,则最终获取了VM2MAC地址;

         8VTEP1(VNI–VTEP2–VM2_MAC Address)映射关系添加到自己的VXLAN表中;

 

VM1获知VM2MAC地址后,发送数据包,过程如下:

1、  VM1发送IP数据包到VM2,即192.168.0.100  192.168.0.101

2、  VTEP1查找自己的VXLAN表知道要发给VTEP2,然后依次封装以下数据包头;

a)VXLAN包头,VNI=864

b)标准UDP包头,校验和checksum0x0000,目标端口号4789

c)标准IP包头,目标地址为VTEP2IP地址,协议号设为0x11表面为UDP包。

d)标准MAC数据包,目标地址为下一跳设备的MAC地址00:10:11:FE:D8:D2,可路由到目标隧道端VTEP2

3、  VTEP2接收数据包,根据UDPdestination端口找到VXLAN数据包。接着查找所有所在VXLANVNI864的端口组,找到VM2

4、  VM2接收并处理数据包,拿到Payload数据。

  

          VXLAN的部署场景

         VXLAN && VXLAN

VXLAN学习整理

         VXLAN多用于数据中心的虚拟机化环境中,可以穿越机架甚至是数据中心。如上图两个宿主机Server1Server2,它们可以位于同一个机架也可以位于不同机架,还可以位于不同的数据中心,只要直接由L3网络相连即可,其本质是VETP可以跨越L3

上图中有4VXLAN覆盖网络:

VNI=11表示为[{Server1[VM1-1]}, {Server2[VM2-4]}]

VNI=34表示为[{Server1[VM1-2]}, {Server2[VM2-1]}]

VNI=74表示为[{Server1[VM1-3]}, {Server2[VM2-2]}]

VNI=98表示为[{Server1[VM1-4]}, {Server2[VM2-3]}]

 

         VXLAN && non-VLXAN

VXLAN学习整理

         VXLAN网络和非VXLAN网络互连就得需要VXLAN gateway,非VXLAN一般为VLAN类型网络。VXLAN网关会剥去数据包的VXLAN包头,将数据包发送到端口MAC地址与Inner Destination MAC Address相同的端口完成数据传输。如果non-VXLAN网络环境使用的VLAN协议,则应该注意Inner Ethernet Header中的VLAN ID设置,总之无论数据是进还是出,VLAN ID不用时可以丢弃不管,使用时必须正确指定。值得说明的是:VXLAN网关可用硬件实现,也可以用软件实现。

 

 VXLAN的其它

         http://www.packetmischief.ca/2013/12/03/five-functional-facts-about-vxlan/

 

仅供参考,欢迎雅正!!!

分享到:
评论

相关推荐

    H3C VXLAN详细配置知道

    1.2.2 学习MAC地址:VXLAN使用动态学习或静态配置的方式学习主机的MAC地址,实现二层通信。 1.2.3 接入模式:包括集中式和分布式接入模式,不同模式下VTEP有不同的配置。 1.2.4 转发单播流量:VXLAN通过学习到的MAC...

    华为vxlan技术详解及配置手册

    VXLAN(Virtual eXtensible Local Area Network)是一种虚拟化网络技术,...通过深入学习华为的VXLAN技术详解及配置手册,网络管理员能够掌握如何在华为网络环境中设计、部署和管理VXLAN,提升数据中心的灵活性和效率。

    VxLAN-技术介绍及华为VxLAN方案

    VxLAN中的组播学习过程主要涉及到多播报文的处理,例如ARP请求的发送和接收。 1. **组网准备**:确保虚拟机加入到同一个VXLAN,并且VXLAN主机已经加入到多播组。 2. **ARP请求**:虚拟机VM1发出ARP请求,请求中包含...

    CISCO LIVE VXLAN 部署

    VXLAN的数据平面学习机制是通过多目标分发树实现的,其中所有边缘设备都加入了这一分布树。这种方法利用了协议学习,允许边缘设备之间通过协议广告主机信息。 另外,VXLAN数据包结构的设计是整个技术实现的关键。...

    华三H3C-VXLAN配置-扫盲必看

    - **学习MAC地址**:VTEP会记录接收到的数据包中的MAC地址和对应的VTEP地址,以便后续数据转发。 - **接入模式**:支持多种接入模式,如端口模式、VLAN模式等,以适应不同场景下的需求。 - **转发单播流量**:单播...

    VXLAN基础与配置指南.zip

    3. **设置VXLAN学习模式**:VXLAN有几种学习模式,如控制平面学习、数据平面学习等,根据网络规模和需求选择合适的学习方式。 4. **配置VXLAN Gateway**:VXLAN Gateway负责在VXLAN网络间转发流量,需要配置VTEP...

    VXLAN技术介绍.pdf

    VXLAN技术介绍 VXLAN(Virtual Extensible LAN)是一种overlay网络技术,将原始2层以太网帧进行UDP封装(MAC-in-UDP),增加8字节VXLAN头部、8字节UDP头部、20字节IP头部和14字节以太网头部,共50字节。 VXLAN技术...

    VXLAN详细的学习笔记

    VXLAN详细的学习笔记

    H3C VXLAN【Virtual eXtensible LAN】技术文档汇总集.rar

    4. VXLAN技术知识点梳理:学习VXLAN,需要理解以下几个关键概念: - VXLAN Gateway:作为VXLAN网络与其他传统网络之间的桥梁,VXLAN Gateway负责在VXLAN域间进行数据包的封装和解封装。 - VXLAN Tunnel End Point ...

    最好的VXLAN介绍.pdf

    但鉴于标题为“最好的VXLAN介绍.pdf”,我可以为您介绍VXLAN(虚拟可扩展局域网)相关的关键知识点。 VXLAN(Virtual Extensible LAN)是一种网络虚拟化技术,它允许通过现有的IP网络(通常是互联网)来扩展二层...

    H3C-VXLAN配置-扫盲必看.pdf

    以下是根据提供的文件内容整理的关于H3C-VXLAN配置的知识点。 一、VXLAN简介 VXLAN是一种网络虚拟化技术,它通过封装VLAN报文到UDP协议来扩展二层网络,使得在一个物理网络上可以虚拟出多个二层网络。VXLAN主要...

    思科Nexus9000试验配置VXLAN

    - **MP-BGP EVPN基础**:多协议边界网关协议扩展虚拟私有网络(MP-BGP EVPN)为VxLAN提供了控制平面机制,使得网络设备能够自动发现和学习远端设备的位置信息。 - **MP-BGP EVPN VxLAN介绍**:详细介绍如何利用MP-...

    基于cisco nxos的vxlan实验

    vxlan实验,cisco N9K vxlan实验,基于nxos,详细实验步骤

    Arista_Networks_VXLAN

    VXLAN(Virtual Extensible LAN)是一种网络虚拟化技术,旨在解决数据中心虚拟化环境中扩展性问题,特别是在大规模的虚拟机(VM)部署场景中。VXLAN允许跨越传统的IP子网限制,在数据中心的任何服务器上迁移虚拟机,...

    VXLAN基础配置(二层网关)【基于华为ensp】

    3. **设置VXLAN学习模式**:VXLAN支持两种学习模式,即集中式和分布式。集中式学习模式下,VXLAN流量通过一个中心控制器,如SDN控制器,进行MAC地址学习和泛洪。分布式模式下,每个VTEP都负责自己的MAC地址学习,更...

    Cisco-N9N-Vxlan配置手册(英文).pdf

    2. Cisco VXLAN 架构: Cisco VXLAN 架构由三个主要组件组成:VXLAN VTEP(VXLAN Tunnel End Point)、VXLAN Segment 和 VXLAN Gateway。 3. VXLAN 配置: 本手册详细介绍了如何在 Cisco Nexus 9000 系列交换机上...

    VXLAN数据中心应用

    ### VXLAN数据中心应用详解 #### 一、VXLAN概述 VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网)是一种网络虚拟化技术,它通过在网络层之上封装二层数据帧来实现跨三层网络的二层通信。这项...

    VXLAN基本概述.docx

    VXLAN 基本概述 VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)是一种网络虚拟化技术,定义在 RFC7348 中。它采用 MAC in UDP(User Datagram Protocol)封装方式,是 NVO3(Network ...

    vxlan数据包

    vxlan数据包

Global site tag (gtag.js) - Google Analytics