精华内容
下载资源
问答
  • VXLAN
    2021-07-30 04:03:15

    VXLAN是一种网络虚拟化技术,可以改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。VXLAN是一种功能强大的工具,可以穿透三层网络对二层进行扩展。它可通过封装流量并将其扩展到第三层网关,以此来解决VMS(虚拟内存系统)的可移植性限制,使其可以访问在外部IP子网上的服务器。[1]

    中文名

    虚拟扩展局域网

    外文名

    Virtual Extensible Local Area Network

    简    称

    VXLAN实    质

    一种网络虚拟化技术

    特    性

    灵活性大等

    所属领域

    网络技术

    vxlan简述

    编辑

    语音

    VxLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)技术很好地解决了现有VLAN技术无法满足大二层网络需求的问题。VxLAN技术是一种大二层的虚拟网络技术,主要原理是引入一个UDP格式的外层隧道作为数据链路层,而原有数据报文内容作为隧道净荷加以传输。由于外层采用了UDP作为传输手段,净荷数据可以轻松地在二三层网络中传送。VxLAN已成为业界主流的虚拟网络技术之一,IETF正在制定相关标准。VxLAN技术的特点在于如下几个方面。[1]

    VXLAN主要解决现阶段大规模云计算数据中心虚拟网络不足的问题。VMware ESXi、Open vSwitch、当前主流的网络芯片均已支持VXLAN:它备受业界关注,未来有可能成为网络虚拟化技术当中的主流技术之一,如此看来,它的发展和应用前景还是值得期待的。

    vxlan基本原理

    编辑

    语音

    VXLAN(Virtual eXtensible Local Area Network)是一种隧道技术,能在三层网络的基础上建立二层以太网网络隧道,从而实现跨地域的二层互连。

    VXLAN采取了将原始以太网报文封装在UDP数据包里的封装格式。将原来的二层数据帧加上VXLAN头部一起封装在一个UDP数据包里。

    VXLAN头部包含有一个VXLAN标识(即VNI,VXLAN Network Identifier),只有在同一个VXLAN上的虚拟机之间才能相互通信。VNI在数据包之中占24比特,故可支持1600万个VXLAN的同时存在,远多于VLAN的4094个,因此可适应大规模租户的部署。

    VXLAN一般通过安装在服务器上的软件实现报文的封装与解封装,网络只要IP路由可达即可。VXLAN实现了应用与物理网络的解耦,但网络与虚拟机还是相互独立的。业界一般通过网络控制器(如SDN,Software Defined Network)实现VXLAN网络与云业务的联动。当虚拟机发生迁移后,虚机/存储控制器会把虚拟机迁移信息通知给网络控制器,网络控制器根据虚拟机迁移的新位置,重新调整网络配置,从而实现网络与云业务的联动。也就是说,物理网络可以是传统的三层IP网络,路由可达即可。虚拟机可跨三层IP网络远距离迁移,不再受限于二层技术。物理网络也无需允许所有VLAN通过。接入交换机需要学习的MAC地址的数量也大大减少,削弱了网络设备MAC地址表项规格对虚拟机规模的约束。[2]

    vxlan部署方法

    编辑

    语音

    VXLAN网络设备主要有三种角色,分别是VTEP(VXLAN Tunnel EndPoint)、VXLAN网关、VXLANIP网关。对于应用系统来说,只与这三种设备相关,而与底层传统三层IP网络无关。

    (1)VTEP是直接与终端连接的设备,负责原始以太报文的VXLAN封装和解封装。

    (2)VXLAN网关除了具备VTEP的功能外,还负责VLAN报文与VXLAN报文之间的映射和转发。VXLAN的虚拟机与传统VLAN的虚拟机之间互访,通过VXLAN网关来完成。

    (3)VXLANIP网关具有VXLAN网关的所有功能,此外,还负责处理不同VXLAN之间的报文通信。不同VXLAN的虚拟机之间需要互访,必须经过VXLANIP网关完成。

    VTEP、VXLAN网关、VXLAN IP网关、形态可以是虚拟交换机,也可以是物理交换机。根据VTEP、VXLAN网关、VXLAN IP网关是虚拟交换机还是物理交换机,VXLAN网络的部署方法主要分三种。

    (1)第一种是VTEP、VXLAN网关、VXLANIP网关均通过安装在服务器上的软件实现。

    (2)第二种是VTEP、VXLAN网关、VXLANIP网关均由物理交换机承担。物理服务器支持SR-IOV功能,使虚拟机通过SR-IOV技术直接与物理交换机相连,虚拟机的流量在接入交换机上进行VXLAN报文的封装和解封装。

    (3)第三种是VTEP由安装在服务器上的软件实现,VXLAN网关、VXLANIP网关由物理交换机承担。

    对于第一种部署方法,由于所有VXLAN报文的封装解封装都通过软件实现,会占用部分服务器资源,特别是VXLANIP网关,当访问量大时,将会成为系统瓶颈。对于第二种部署方法,由于需要通过一些特殊的要求或技术实现虚拟机与VTEP的对接,组网不够灵活。第三种部署方法通过安装在服务器上的软件实现虚拟机的VTEP,通过物理交换机实现物理服务器的VTEP,通过专业的硬件交换机实现VXLANIP网关,从而可承载超大规模的流量转发,避免成为系统瓶颈。也就是说,第三种部署方法结合了第一种和第二种方法的优势,是相对而言最优的部署方法,因此,一般推荐使用第三种部署方法。[2]

    vxlan特点

    编辑

    语音

    相对于VLAN,VXLAN具备以下的优势。

    (1)极大的扩充了二层网段的数量:VXLAN技术的24位VVNI标识符提供了1600万个VXLAN网段,远比VLAN的4094个要多。可以满足数据中心多租户的网段分隔的需求。

    (2)更大的灵活性:原来虚拟机的迁移只能在同网段的二层网络上进行,受到地理位置的严重限制。VXLAN通过隧道技术构建可以跨越多个三层网络的虚拟的二层网络,虚拟机可以在物理位置分散的数据

    中心之间进行迁移,这使得虚拟机的部署更加灵活和方便。

    (3)优化的网络操作:由于VXLAN在标准的第三层IP网络上运行,不再需要构建和管理庞大的第二层基础传输层。

    (4)经济性:VXLAN由物理服务器内部的虚拟机管理程序来管理,对虚拟机和普通的网络设备(如物理交换机、路由器)等透明,不需要对现有的物理交换机和路由器进行硬件方面的升级和改造。

    虽然VXLAN技术能满足未来云端大规模发展的需求,但作为一项新的技术,VXLAN仍有不少不足之处。

    (1)与提供网络服务的传统物理设备通信存在较大问题:VXLAN是一种隧道技术,由于在隧道的两端之间直接建立隧道,那么它是无法与途经的一些物理设备(如传统防火墙、传统负载均衡器)通信的。

    (2)影响报文转发效率:需要为每个报文封装与解封装隧道头,降低了报文的转发效率。[2]

    词条图册

    更多图册

    更多相关内容
  • 01 VXLAN典型组网配置案例2(单个VLAN经过交换机透传) 02 HCL模拟器模拟VXLAN头端复制典型组网配置 03 VXLAN典型组网配置案例3(多个VLAN经过交换机透传) 04 VBRAS与MSR 建立vxlan隧道穿越NAT公网做IPOE+WEB...
  • VXLAN技术介绍.pdf

    2021-10-20 19:37:06
    VXLAN技术介绍.pdf
  • 介绍了不依赖于任何控制器,直接在设备上配置VXLAN的方法。 1 VXLAN概述 2 VXLAN支持的License和配置注意事项 3 配置集中式网关部署方式的VXLAN(静态建立隧道) 4 配置集中式网关部署方式的VXLAN(BGP EVPN方式) 5...
  • VxLAN

    2022-05-28 17:16:22
    简单的说,vxlan就是一种封装方式,在本端将二层数据帧封装后,通过ip/ipv6网络传输到目的端,目的端解封装后,再将二层数据帧根据目的mac从相应端口转发出去,被视为l2vpn的一种。 一、VxLAN与其他L2VPN区别 ...

    简单的说,vxlan就是一种封装方式,在本端将二层数据帧封装后,通过ip/ipv6网络传输到目的端,目的端解封装后,再将二层数据帧根据目的mac从相应端口转发出去,被视为l2vpn的一种

    一、VxLAN与其他L2VPN区别

    使用gre隧道承载二层数据帧

    使用vxlan隧道承载二层数据帧

     

     使用lsp隧道或者TE隧道承载二层数据帧

    Label1:使标签报文在骨干网中,从PE1传输到PE2或者从PE2传输到PE1(lsp隧道使用LDP协议根据路由表生成和映射-label1也称为公网标签)
    Label2:根据标签找到相应的MAC表,根据MAC表找到出接口,将二层帧转发出去(各个PE生成label后,使用LDP或者bgp将此标签映射给对端PE.当对端PE给本端PE发送数据时,需要在数据帧前打上本端映射给对端的的标签。label2也称为私网标签)

    二、VxLAN报文格式

    根据原始报文中IP协议和外层IP协议的不同,可以分为以下四种:
    IPv4 over IPv4


    IPv6 over IPv4 


    IPv4 over IPv6


    IPv6 over IPv6

     本文主要介绍IPv4 over IPv4

     三、VxLAN隧道的建立方式

     host1与host3同属于一个子网,且需要相互通信,R1与R3之间需要建立vxlan隧道;

     host2与host4同属于一个子网,且需要相互通信,R2与R3之间需要建立vxlan隧道;

    同子网之间通信不需要三层网关,不同子网之间通信需要经过三层网关。

    host1访问host2就需经过三层网关的路由转发。

    隧道建立的包括:

    A、手动建立隧道

    B、使用BGP EVPN协议动态建立隧道

     根据网关部署的不同方式,网关又分为:

    A、静态集中式网关

    B、BGP EVPN集中式网关

    C、BGP EVPN分布式网关

     四、VxLAN网络分类

    1、无三层网关(同子网之间相互通信)

     只有同子网之间主机通信,无跨子网通信,因此无需部署三层网关。

    手动创建vxlan隧道。

    2、集中式网关-静态方式

     既有同子网之间主机通信,又有跨子网主机之间的通信,网关部署在spine上。

    手动创建vxlan隧道。

    3、集中式网关-BGP EVPN方式

    有同子网之间主机通信,又有跨子网主机之间的通信,网关部署在spine上

    leaf之间、leaf与spine之间使用BGP EVPN协议动态建立vxlan隧道。

    4、分布式网关-BGP EVPN方式

    既有同子网之间主机通信,又有跨子网主机之间的通信,网关部署在leaf上

    leaf之间使用BGP EVPN协议动态建立vxlan隧道。leaf与spine之间无需建立隧道,spine仅做普通的路由转发。

     五、VxLAN通信原理剖析

    1、无三层网关

    A、手工方式建立VxLAN隧道

    R1:

    int nve 1

       source 1.1.1.1---------------------------------------隧道的原端

       vni 10 head-end peer-list 3.3.3.3-------------隧道的目的端和该隧道承载的VNI

    R2:

    int nve 1

       source 2.2.2.2---------------------------------------隧道的原端

       vni 20 head-end peer-list 3.3.3.3-------------隧道的目的端和该隧道承载的VNI

    R3:

    int nve 1

       source 3.3.3.3---------------------------------------隧道的原端

       vni 10 head-end peer-list 1.1.1.1-------------隧道的目的端和该隧道承载的VNI

       vni 20 head-end peer-list 2.2.2.2-------------隧道的目的端和该隧道承载的VNI

    B、原始报文的封装

     

     R1:

    Int e0/0/0.10 mode l2 --------------连接VPN-A站点1的子接口,设定接口为二层子接口

         encapsulation dot1q vid 10----子接口封装类型(vid本地有效)

         rewrite pop single----------------去掉外层tag

         bridge-domain 10---------------绑定BD

    bridge-domain 10

        vxlan vni 10

    ///R2R3类似

    C、MAC地址学习-----换个网络结构来说明(同子网)

     

    R2收到报文,不会向R3转发;R3收到❸报文,不会向R2转发,水平分割原则。R2R3解封报文后,根据VNI绑定的BD域,将报文在BD域内(vni 10)广播​​​

     

     

    R2收到单播报文❶后根据MAC表,封装单播报文❶后生成单播报文❷
    根据路由表,将报文❷转发给下一跳
    R1收到报文❷后解封装得到报文❶,再根据自己的MAC表,将报文从port1转发出去 

     最后各R的mac表如下:

     D、已知单播报文转发流程-同子网 

     

     

     

     

      E、BUM(广播、未知单播、组播)报文转发流程-同子网  

     

     

    接收报文❶的端口绑定了BD域,该域又绑定了VNI,R1根据VNI查找所有可能出口,如有多个出口,则将原始报文复制,封装再分别转发
    R2 R3解封装后,在vni对应的BD域内广播发送报文❶
    返回报文为单播报文,过程参考前面<<已知单播报文转发流程>> 

    2、集中式网关

    A、手工方式建立VxLAN隧道--------隧道建立过程上一节一样

    B、原始报文的封装---------------------报文封装和上一节一样

    C、MAC地址学习

    同子网MAC地址学习和上一节一样

    跨子网,主机只需要学习网关的mac:

     在R3上部署集中式网关:

    int vbdif 10
    Ip add 192.168.10.254 24
    Int vbdif 20 
    Ip add 1921.68.20.254 24

     

    D、已知单播报文转发流程

    同子网已知单播报文转发流程与上一节一样。

    跨子网已知单播报文转发流程:以host1<----->host2为例

    经过ARP学习后,网关R3上的路由表:

     host1->host2跨子网访问

     

      

     返回报文host2->host1 

     

     

    BGP EVPN路由

    EVPN通过扩展BGP协议新定义了几种BGPEVPN路由,这些BGPEVPN路由可以用于传递VTEP地址和主机信息,因此EVPN应用于VXLAN网络中,可以把原本依赖数据平面的VTEP发现和主机信息学习从数据平面转移到控制平面。

    BGP EVPN路由之type2类型路由

     Type2路由MAC/IP路由VXLAN控制平面中的作用包括:

    1、主机MAC地址通告

    要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机MAC

    2、主机ARP通告

    MAC/IP路由可以同时携带主机MAC地址+主机IP地址,因此该路由可以用来在网关设备之间传递主机ARP表项,实现主机ARP通告。此时的MAC/IP路由也称为ARP类型路由

    3、主机IP路由通告

    在分布式网关场景中,要实现跨子网主机的三层互访,网关设备需要互相学习主机IP路由。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机IP路由。同时MPLS Label2字段必须携带三层VNI。此时的MAC/IP路由也称为IRBIntegrated Routing and Bridge)类型路由

    ARP类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNIIRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI。因此,IRB类型路由包含着ARP类型路由,不仅可以用于主机IP路由通告,也能用于主机ARP通告

    BGP EVPN路由之type3类型路由

     Type3路由Inclusive MulticastVXLAN控制平面中的作用包括:

    该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNIVTEP IP地址信息。其中,Originating Router's IP Address字段为本端VTEP IP地址,MPLS Label字段为二层VNI。如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制表,用于后续BUM报文转发。

    BGP EVPN路由之type5类型路由

     Type5路由—IP前缀路由VXLAN控制平面中的作用包括:

    该类型路由的IP Prefix LengthIP Prefix字段既可以携带主机IP地址,也可以携带网段地址

    1.当携带主IP地址时,该类型路由在VXLAN控制平面中的作用与IRB类型路由是一样的,主要用于分布式网关场景中的主机IP路由通告

    2.当携带网段地址时,通过传递该类型路由,可以实现VXLAN网络中的主机访问外部网络

     3、集中式网关-BGP EVPN方式

    在vxlan中引入BGP EVPN作为控制平面,通过在VTEP之间交换BGP EVPN路由实现VTEP的自动发现、主机信息相互通告等,从而动态建立vxlan隧道。

    控制平面的流程包括:

    A、VxLAN隧道的建立:在两端VTEP之间建立BGP EVPN对等体,然后对等体之间利用BGP EVPN路由来互相传递VNIVTEP IP地址信息,从而实现动态建立VXLAN隧道(相互发送type3路由---evpn实例)

    B、MAC地址学习:两端VTEP生成BGP EVPN路由并发送给对等体(相互发送type2路由)

    数据平面的流程包括:

    A、同子网已知单播报文转发

    B、同子网BUM报文转发

    C、跨子网报文转发

    网关集中部署在spine上。

    VXLAN隧道建立:

    Aleafspine建立BGP EVPN对等体

    BBGP EVPN对等体之间相互发送BGP EVPN路由

    路由包含type3路由(含有VTEP IPVNI)、下一跳属性和export RT属性

    C、对等体比较收到路由的 export RT值和自己的import RT值,相同则接收该路由,不相同则丢弃。

    D对等体接收路由后,从中找出VTEP IP,如果到VTEP IP三层可达,即建立隧道。

    E、根据VNI值,建立到对端的头端复制,用于BUN报文转发

    MAC地址动态学习:

    Aleaf生成主机的MAC表项,根据arp表项生成type2路由

    BBGP EVPN对等体之间发送type2路由、下一跳和export RT属性

    C、接收端对比export RT属性与本端的import RT属性,相同即接收该路由,否则丢弃

    D、获取路由中的MAC地址和vni,在本地构建MAC表项,出接口为Vxlan

     

     数据平面的报文转发流程和上节静态集中式网关报文转发流程一样,可以参考上节。

    4、分布式网关-BGP EVPN方式

     与集中式网关-BGP EVPN方式不同之处在于:网关部署在leaf上,而spine仅作为路由转发的一个节点。

    控制平面的流程包括:

    A、VxLAN隧道的建立

    B、MAC地址学习

    数据平面的流程包括:

    A、同子网已知单播报文转发

    B、同子网BUM报文转发

    C、跨子网报文转发

    VXLAN隧道建立:

    在两端VTEP之间建立BGP EVPN对等体,然后对等体之间利用BGP EVPN路由来互相传递VNIVTEP IP地址信息,从而实现动态建立VXLAN隧道

    子网互通-BGP EVPN对等体之间相互发送Inclusive Multicast路由(type3),获取vtep地址和vni,从而建立vxlan隧道。

    子网互通-网关需要发布下属主机的IP路由,又分以下两种:

    a.通过IRB类型路由发布主机IP路由-type2

         IRB类型路由只能发布32位主机IP路由

    b.通过IP前缀类型路由发布主机IP路由-type5

        IP前缀类型路由既能发布32位主机IP路由又能发布网段路由。

    MAC地址动态学习:

    VTEP根据ARP项生成BGP EVPN路由并发送给对BGP EVPN等(相互发送type2路由)

     在vxlan环境中,不同子网之间通信,需要分别在两端vtep上创建l3vpn实例,设定RD值和RT值,两端建立BGP对等体,然后相互发生路由(连同三层vni一起发送。在MPLSVPN中是私网标签)

    bgp对等体之间约定数据包的封装格式为vxlan(两端建立vxlan隧道)。

    最终结果是:本端vtep有对端子网的路由,接受本端主机对对端子网的数据请求后,vxlan封装后发送给路由下一跳。对端收到数据包后,解封装,根据三层vni,查找l3vpn是实例对应的路由表,根据目的ip找mac地址,根据mac表从相应端口转发出去。

    子网互通VxLAN隧道建立准备工作:

    1leaf上分别创建l3VPN实例,设定RD值和RT

    2、将L3VPN实例和BD域对应的接口(三层接口)绑定

    3、设置 BD域对应的接口即三层网关的地址。

    4leaf之间创建IBGP对等体,在l2vpn evpn地址族下使能对等体,使leaf之间能收发BGP evpn路由。

    5 BGP MPLS/IP VPN中,PE对等体之间发送VPNv4路由时,还会发送私网标签。公网为LSP或者TE隧道。在VxLan中,leaf对等体之间相互通告使用VxLAN封装

    6、既然是VxLAN封装,肯定要指定VNI。该值在第一步VPN实例中手工指定

    7、创建EVPN实例,设置RDRT值,然后将该EVPN实例绑定到BD域上,同时启用水平分割

    (VxLAN为点到多点结构,防止环路)

    8、在leaf上设能分布式网关功能。

    子网互通 VXLAN隧道建立方式一:通过IRB类型路由发布主机IP路由(type2)

    1leaf1根据PC1BD域,找到三层网关绑定的vni,然后根据EVPN实例生成IRB型路由

    (IRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI)

    2leaf1leaf2发送BGP EVPN路由,包括IRB路由、下一跳、扩展团体属性和Export RT属性。扩展团体属性约定隧道为vxlan封装。

    3leaf2收到路由后,做如下处理:

    A Export RT值与本端EVPNimport RT值相同,则接收该路由。

          提取到其中包含的ARP类型路由,用于实现主机ARP通告。

    B Export RT值与本l3VPNimport RT相同,则接收该路由。

          从中提取Host1的主机IP地址、三层VNI,在其路由表中保存Host1的主机IP路由

    C、在通过EVPN实例或L3VPN实例接收该路由后,Leaf2通过下一跳属性获取Leaf1VTEP IP地址,如果该VTEP IP地址是三层路由可达的,建立一条到Leaf1VXLAN隧道

     子网互通 VXLAN隧道建立方式二:通过IP前缀类型路由发布主机IP路由(type5)

     

    1leaf1上将Host1的主机IP地址生成直连路由,然后在leaf1 BGP l3vpn实例地址族下,import direct该直连路由.

    2L3VPN实例下Host1的主机IP路由将发布给EVPN实例。然后由EVPN实例生成IP前缀类型路由

    3Leaf1Leaf2发送BGP EVPN路由,该路由携带本端L3VPN实例的eERT扩展团体属性、路由下一跳属性以及IP前缀类型路由。其中,扩展团体属性携带的是隧道类型(取值是VXLAN隧道)、本端VTEPMAC地址;路由下一跳属性携带的是本端的VTEP IP地址

    4Leaf2收到Leaf1发来的BGP EVPN路由后,进行如下处理

    A、检查该路由携带的eERT,如果与本端L3VPN实例的elRT相同,则接收该路由,否则丢弃该路由。然后,L3VPN实例获取到该路由携带的IP前缀类型路由,从中提取Host1的主机IP地址、三层VNI,在其路由表中保存Host1的主机IP路由

    B、在通过L3VPN实例接收该路由后,Leaf2通过下一跳属性获取Leaf1VTEP IP地址,如果该VTEP IP地址是三层路由可达的,则建立一条Leaf1VXLAN隧道。

     MAC地址动态学习:

    同子网之间的mac地址学习与前面章节一样;

    跨子网之间,主机只需要学习网关的mac地址,详见前面章节。

     报文转发:

    同子网已知单播报文转发和同子网BUM报文转发流程将前面章节。

    跨子网报文转发流程:

    稍微复杂一点结构,无同子网:

     

     在没有同子网互相通,且公网支持vxlan不支持MPLS的情况下,才使用此方案。


     六、实验

    1、同子网-手动创建隧道

    host1->host3(192.168.10.1->192.168.10.2)

     arp请求报文(R1收到host1的arp请求报文)-原始报文

      arp应答报文(R1发送给host1的arp应答报文)--原始报文

     host1  ping host2  request报文-原始报文

     

      host1  ping host2  replyt报文-原始报文

     R1(VTEP1)封装后发送给R3(VTEP2)报文-vxlan报文

     

     

     将原始的arp请求报文(host1->host2)封装在vxlan报文中。隧道的起点为1.1.1.1,终点为2.2.2.2,vni为10

    R1(VTEP1) 收到的arp应答报文,被封装在vxlan报文中。隧道的起点为2.2.2.2,终点为1.1.1.1,vni为10

    ping request报文,被封装在vxlan报文中。隧道的起点为1.1.1.1,终点为2.2.2.2,vni为10

     

     ping reply报文,被封装在vxlan报文中。隧道的起点为2.2.2.2,终点为1.1.1.1,vni为10

    R1(VTEP1)BD域的MAC表

    host1arp表 

    以上就是同子网MAC地址学习和已知单播报文转发的过程。


    2、集中式网关-手动创建隧道

     网关部署在R3上
    int vbdif 10
    ip add 192.168.10.254 24
    int vbdif 20
    ip add 192.168.20.254 24

    跨子网通信:host1->host2(192.168.10.1->192.168.20.1)

     

     跨子网通信第一步就是获取网关MAC

    R1发给R2的arp报文-原始的host1发出的ARP请求报文经过vxlan封装

     host1 ping host2原始报文,(70:7b:e8:2d:1c:c1) 网关MAC

     host1 ping host2原始报文经过vxlan封装(R1->R3)。

     R3上: host1 ping host2原始报文vxlan重封装

    内层的源目的mac地址变了

    R3收到R1的vxlan报文:

    S-IP:192.168.10.1       D-IP:192.168.20.1

    S-MAC:(54:89:98:12:5f:f2),  D-MAC:(70:7b:e8:2d:1c:c1)-host1网关mac

    R3发送给R2的vxlan报文:

    S-IP:192.168.10.1       D-IP:192.168.20.1

    S-MAC:(70:7b:e8:2d:1c:c1)-host2网关mac,  D-MAC:(54:89:98:cf:79:b3)

     host2收到的报文(已经被R2解封装)

    host1 arp表

     host3 arp表

      host2 arp表

    host4  arp表

    R3(网关)arp表 

    注:网关部署在spine上

     

     

     

     以上为实际试验中通过抓包分析所得。

    虽然包3内层源MAC和包4源MAC均为0,但是不影响,数据包的返回。

    跨网段,返回的数据包直接丢给网关。


     3、集中式网关-BGP EVPN方式动态创建隧道

     网关部署在spine上
    int vbdif 10
    ip add 192.168.10.254 24
    int vbdif 20
    ip add 192.168.20.254 24

    和上节<<2、集中式网关-手动创建隧道>>唯一不同之处在于vxlan隧道的建立是动态的

     

     

    实际环境中:

    同子网互访没有问题;

    跨子网互访:host1->host3

    spine收到包2后,没有重新封装包3

     host3->host1:

    spine收到包2后,重新封装,构造包3后发送给下一跳。

    包3内层源MAC地址并非理论上的mac10,而是全0

     

     返回包2到了spine后,spine没有重新封装报文3。

     集中式网关-BGP EVPN方式动态创建隧道总结:

    同子网通信没有问题;跨子网通信失败。 

    不确定是软件版本问题还是bug。

    如果有人知道原因,还请不吝赐教。


    4、分布式网关-BGP EVPN方式动态创建隧道

     同子网动态创建隧道和前节一样。

    跨子网动态创建隧道分两种:

    A、动态建立VXLAN隧道方式1: 通过IRB类型路由发布主机IP路由(type2)

    leaf1:

    evpn vpn-instance evpn1 bd-mode

     route-distinguisher 100:1

     vpn-target 1:1 export-extcommunity

     vpn-target 1:1 import-extcommunity

    #

    evpn vpn-instance evpn2 bd-mode

     route-distinguisher 100:100

     vpn-target 100:100 export-extcommunity

     vpn-target 100:100 import-extcommunity

    #

    ip vpn-instance ABC

     ipv4-family

      route-distinguisher 100:1

      vpn-target 1:1 export-extcommunity evpn

      vpn-target 1:1 import-extcommunity evpn

     vxlan vni 5010

    #

    ip vpn-instance l3vpn2

     ipv4-family

      route-distinguisher 100:100

      vpn-target 100:100 export-extcommunity evpn

      vpn-target 100:100 import-extcommunity evpn

     vxlan vni 5050

    #

    bridge-domain 10

     vxlan vni 2010 split-horizon-mode

     evpn binding vpn-instance evpn1

    #

    bridge-domain 50

     vxlan vni 2050 split-horizon-mode

     evpn binding vpn-instance evpn2

    #

    interface Vbdif10

     ip binding vpn-instance ABC

     ip address 192.168.10.254 255.255.255.0

     arp distribute-gateway enable

     arp collect host enable

    #

    interface Vbdif50

     ip binding vpn-instance l3vpn2

     ip address 172.16.10.1 255.255.255.0

     arp distribute-gateway enable

     arp collect host enable

    #

    interface Ethernet1/0/1.1 mode l2

     encapsulation dot1q vid 10

     rewrite pop single

     bridge-domain 10

    #

    interface Ethernet1/0/3.1 mode l2

     encapsulation dot1q vid 50

     rewrite pop single

     bridge-domain 50

    #

    interface Nve1

     source 1.1.1.1

     vni 2010 head-end peer-list protocol bgp

    vni 2050 head-end peer-list protocol bgp

    #

    bgp 100

     router-id 1.1.1.1

     peer 3.3.3.3 as-number 100

     peer 3.3.3.3 connect-interface LoopBack0

     #

    ipv4-family vpn-instance ABC

    ipv4-family vpn-instance l3vpn2

    #

     l2vpn-family evpn

      undo policy vpn-target

      peer 3.3.3.3 enable

      peer 3.3.3.3 advertise irb

      peer 3.3.3.3 advertise encap-type vxlan

    #

    leaf2:

    evpn vpn-instance evpn1 bd-mode

     route-distinguisher 100:2

     vpn-target 1:1 export-extcommunity

     vpn-target 1:1 import-extcommunity

    #

    evpn vpn-instance evpn2 bd-mode

     route-distinguisher 100:100

     vpn-target 100:100 export-extcommunity

     vpn-target 100:100 import-extcommunity

    #

    ip vpn-instance ABC

     ipv4-family

      route-distinguisher 100:2

      vpn-target 1:1 export-extcommunity evpn

      vpn-target 1:1 import-extcommunity evpn

     vxlan vni 5010

    #

    ip vpn-instance l3vpn2

     ipv4-family

      route-distinguisher 100:100

      vpn-target 100:100 export-extcommunity evpn

      vpn-target 100:100 import-extcommunity evpn

     vxlan vni 5050

    #

    bridge-domain 100

     vxlan vni 2010 split-horizon-mode

     evpn binding vpn-instance evpn1

    #

    bridge-domain 50

     vxlan vni 2050 split-horizon-mode

     evpn binding vpn-instance evpn2

    #

    interface Vbdif100

     ip binding vpn-instance ABC

     ip address 192.168.20.254 255.255.255.0

     arp distribute-gateway enable

     arp collect host enable

    #

    interface Vbdif50

     ip binding vpn-instance l3vpn2

     ip address 172.16.20.1 255.255.255.0

     arp distribute-gateway enable

     arp collect host enable

    #

    interface Ethernet1/0/1.1 mode l2

     encapsulation dot1q vid 100

     rewrite pop single

     bridge-domain 100

    #

    interface Ethernet1/0/3.1 mode l2

     encapsulation dot1q vid 50

     rewrite pop single

     bridge-domain 50

    #

    interface Nve1

     source 3.3.3.3

     vni 2010 head-end peer-list protocol bgp

    vni 2050 head-end peer-list protocol bgp

    #

    bgp 100

     router-id 3.3.3.3

     peer 1.1.1.1 as-number 100

     peer 1.1.1.1 connect-interface LoopBack0

     #

     ipv4-family vpn-instance ABC

     ipv4-family vpn-instance l3vpn2

    #

     l2vpn-family evpn

      undo policy vpn-target

      peer 1.1.1.1 enable

      peer 1.1.1.1 advertise irb

      peer 1.1.1.1 advertise encap-type vxlan

    #

    B、动态建立VXLAN隧道方式2: 通过IP前缀类型路由发布主机IP路由(type5)

    leaf1:

    #

    bgp 100

     router-id 1.1.1.1

     peer 3.3.3.3 as-number 100

     peer 3.3.3.3 connect-interface LoopBack0

     #

    ipv4-family vpn-instance ABC

      import-route direct

      advertise l2vpn evpn

    ipv4-family vpn-instance l3vpn2

      import-route direct

      advertise l2vpn evpn

     #

     l2vpn-family evpn

      undo policy vpn-target

      peer 3.3.3.3 enable

      peer 3.3.3.3 advertise encap-type vxlan

    #

    leaf2:

    #

    bgp 100

     router-id 3.3.3.3

     peer 1.1.1.1 as-number 100

     peer 1.1.1.1 connect-interface LoopBack0

     #

    ipv4-family vpn-instance ABC

      import-route direct

      advertise l2vpn evpn

    ipv4-family vpn-instance l3vpn2

      import-route direct

      advertise l2vpn evpn

     #

     l2vpn-family evpn

      undo policy vpn-target

      peer 1.1.1.1 enable

      peer 1.1.1.1 advertise encap-type vxlan

    #

     动态建立VXLAN隧道方式1与动态建立VXLAN隧道方式2的主要区别:

    方式1:通过IRB类型路由发布主机IP路由(type2)

    IRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI

    方式2: 通过IP前缀类型路由发布主机IP路由(type5)

    IP前缀类型路由携带的有效信息有: 主机IP地址+三层VNI

    下面主要以方式2: 通过IP前缀类型路由发布主机IP路由为例,抓包分析跨子网通信时vxlan隧道的建立过程:

    host1->host3跨子网通信:(192.168.10.1->192.168.20.1)

     

     192.168.10.1->192.168.20.1原始报文。(70:7b:e8:2c:3e:cf)网关192.168.10.254MAC

     内层源目的MAC变化。

    (70:7b:e8:2c:3e:cf)网关192.168.10.254MAC

    (70:7b:e8:21:68:9e)网关192.168.20.254MAC

     

     leaf1公网接口MAC(vxlan报文外层源MAC)

    leaf1公网接口下一跳地址MAC(vxlan报文外层目的MAC) 

     

     host3收到的报文。 

     

     

    ///

     

     本例中没有同子网。

    MAC

    IP

    BD

    VNI

    EVPN实例

    l3vpn实例

    R1

    host1

    5489-98ae-5732

    192.168.10.1

    10

    2010

    evpn1

    vbdif10

    707b-e82c-3ecf

    192.168.10.254

    ABC

    host2

    5489-98de-5bbc

    172.16.10.2

    50

    2050

    evpn2

    vbdif50

    707b-e82c-3ecf

    172.16.10.1

    l3vpn2

    R2

    host3

    5489-9897-3109

    192.168.20.1

    100

    2010

    evpn1

    vbdif100

    707b-e821-689e

    192.168.20.254

    ABC

    host4

    5489-982c-4ad0

    172.16.20.2

    50

    2050

    evpn2

    vbdif50

    707b-e821-689e

    172.16.20.1

    l3vpn2

    R1

    R3

    192.168.12.1

    3801-f801-0100

    5489-980a-6e92

    192.168.12.2

    R2

    R3

    192.168.23.3

    3801-f802-0100

    5489-980a-6e93

    192.168.23.2


     VxLAN隧道建立过程中的抓包(leaf之间重建BGP peer):

     



    type3路由 

     

     

    07da(16进制)=2010(10进制) 


    type5路由

     

    1293(16进制)=5010(进制) 


    type2路由 

     

     

    07da(16进制)=2010(10进制)       

    type2路由通告host3的MAC地址


    type2路由

     type2路由通告vbdif100的MAC地址


    type3路由 

     

    0802(16进制)=2050(10进制) 


    type5路由 


    type2路由 

     

    0802(16进制)=2050(10进制) 

    type2路由通告host4的MAC地址


    type2路由

    type2路由通告vbdif50的MAC地址 


    消息

    EXTENDED COMMUNITIES

    PMSI TUNNEL ATTRIBUTE

    MP REACH NLRI

    UPDATE Message1

    RT: 1:1 /VXLAN Encapsulation

    2010 Ingress Replication

    type3 3.3.3.3 100:2

    UPDATE Message2

    RT: 1:1 /VXLAN Encapsulation

    type5 192.168.20.0/24 5010

    UPDATE Message3

    RT: 1:1 /VXLAN Encapsulation

    type2 mac3 2010

    UPDATE Message4

    RT: 1:1 /VXLAN Encapsulation

    type2 mac-vdif100 2010

    UPDATE Message5

    RT: 100:100/ VXLAN Encapsulation

    2050 Ingress Replication

    type3 3.3.3.3 100:100

    UPDATE Message6

    RT: 100:100/ VXLAN Encapsulation

    type5 172.16.20.0/24 5050

    UPDATE Message7

    RT: 100:100/ VXLAN Encapsulation

    type2 mac4 2050

    UPDATE Message8

    RT: 100:100/ VXLAN Encapsulation

    type2 mac-vdif100 20

    50



    分布式网关-BGP EVPN方式动态创建隧道总结:

    1、 在没有同子网互相通,且公网支持vxlan不支持MPLS的情况下,才使用此方案。

    2、同子网通信和跨子网通信都没有问题,和理论分析的一致。

    展开全文
  • 通过 Wireguard 网状 SD-WAN 配置生成 VXLAN 的实用程序
  • VxLAN技术实现现状、云数据中心底层承载网络现状等维度,多视角地对基于VxLAN组网的云数据中心之间的互联互通方案进行了研究与测试验证,并分析了各种方案的优缺点及适用场景。通过本文的研究,以期为运营商的云...
  • N9K上NX-OS的VxLAN设计与配置。N9K上NX-OS的VxLAN设计与配置。N9K上NX-OS的VxLAN设计与配置。N9K上NX-OS的VxLAN设计与配置。N9K上NX-OS的VxLAN设计与配置。N9K上NX-OS的VxLAN设计与配置。N9K上NX-OS的VxLAN设计与...
  • VXLAN 组策略扩展本教程介绍了启动和运行 VXLAN-GBP 测试平台以使用该技术所需的步骤。快速通道:流浪运行vagrant up将为两个名为kernel1和kernel2基于 Fedora 20 的 VM 提供启用 VXLAN-GBP 的内核、iproute2 和 ...
  • openstack使用openvswitch实现vxlan,分享给大家,具体如下: openstack环境: 1 版本:ocata 2 系统:ubuntu16.04.2 3 控制节点 1个 + 计算节点 1个 4 控制节点网卡为ens33,ip = 172.171.5.200 ens34 manual模式 ...
  • VxLAN 集中式模型介绍 VXLAN网络基础架构 基于VxLAN的OverLay网络模型 VXLAN网络构建 VXLAN二层转发配置 如果是Vxlan ip GW呢? 集中式VXLAN IP网关配置举例 转发流程是如何呢? 加入控制器后 OVSDB-VTEP泛洪代理...
  • H3C-VXLAN,H3设备的基础配置,其中里面有一部分扫盲配置,并带有相关基础配置,包括vxlan运行机制、配置vxlan
  • 基于vxlan的VLAN实验.zip

    2020-06-28 16:15:44
    使用vxlan用于不同区域的vlan内机器互访,实现大二层网络技术。使用的ensp软件为1.3.100,同时 需要能配置vxlan的设备,使用GRE12800交换机
  • VXLAN

    2020-12-31 05:05:16
    VXLAN通信模式: VXLAN_TUNNEL VTEP(VXLAN Tunnel Endpoints):VXLAN隧道端点,分配有具体的IP,对vxlan数据包的封装及解封装。既可以部署在交换机上,也可以部署在物理节点上。 VXLAN Tunnel:VXLAM隧道,虚拟...

    在传统的大二层网络里,实现二层网络隔离主要依赖于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网关分为集中式网关和分布式网关:

    集中式网关

    分布式网关

    展开全文
  • ​ 本实验使用的是eNSP v1.2.00.500,CE12800系统版本Version 8.130 (CE12800 V800R013C00SPC560B560),这个版本我已经测试可成功做VXLAN实验,其它版本做VXLAN可能会出现Ping不通的BUG,如果需要下载本实验所用eNSP...
  • nexus-9000-series-nx-os-vxlan-configuration-guide-93x.pdf
  • VXLAN技术是网络Overlay技术的一种实现,对于Overlay技术,笔者的理解是:在基于物理网络拓扑的基础上通过一定的技术来构建虚拟的、不同于物理网络拓扑的逻辑网络,而物理网络的拓扑结构对于Overlay终端而言是透明的...
  • vxlan 非常简单的覆盖网络提供程序,设计为docker容器。 用法 docker run -d \ --net=host \ --privileged=true \ --restart=always \ -e VIP=192.168.10.1/24 \ -e VNI=10 \ -e IF=eth1 \ -e "HOSTS=123....
  • openstack环境: 1 版本:ocata 2 系统:ubuntu16.04.2 3 控制节点 1个 + 计算节点 1个 4 控制节点网卡为ens33,ip = 172.171.5.200 ens34 ...配置tenant_network_types = vxlan。该配置意义是项目中创建的内部网络为v
  • 使用 Vagrant 部署 OpenStack Juno(Linux-Bridge + VXLAN)特征三个节点(控制器、网络、计算)- Ubuntu 14.04 带有 VXLAN 和 VLAN 租户网络的 Linux-Bridge 适用于 VMware Fusion 或 VirtualBox 网络节点包括...
  • H3C VXLAN详细配置知道

    2017-10-22 10:06:52
    详细介绍了 华三VXLAN的概念,配置指导,配置案例,以及使用场景,适合数据中心SDN虚拟化以及小型局域网整网设计应用的技术
  • 最好的VXLAN介绍.pdf

    2021-07-22 17:21:27
    最好的VXLAN介绍.pdf
  • 认识VXLAN - 云计算技术 - 深信服社区.pdf
  • 本文章为手工搭建的openstack 一、环境准备 1. 前提准备 安装vmware workstation12.5.0,虚拟出三台配置至少CPU 4c MEM 4G的虚拟机 Controller节点和Compute节点配置: CPU:4c MEM:4G Disk:200G ...
  • vxlan介绍.docx

    2019-09-30 23:04:06
    这是对互联网上对vxlan协议的介绍的总结,包括了vxlan背景介绍、vxlan转发机制和vxlan部署。
  • H3C基于多租户的云计算Overlay网络 VXLAN_IS-IS技术 VXLAN技术基础 VXLAN技术知识点梳理 数据中心Overlay解决方案汇报
  • 摘要:梳理了数据中心云化演进对新技术、新架构的需求,对当前VxLAN主流实现方案进行了分析。研究了VxLAN技术在云数据中心的几种典型组网应用,并总结了VxLAN在云数据中心规模商用尚需解决的问题。
  • VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP 网络、采用“MAC in UDP”封 装形式的二层VPN 技术。VXLAN 可以基于已有的服务提供商或企业IP 网络,为分散的物理站点 提供二层互联,并能够为不同的...
  • VxLAN-技术介绍及华为VxLAN方案,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,008
精华内容 5,603
关键字:

VXLAN