zoukankan      html  css  js  c++  java
  • vxlan简介2

    http://support.huawei.com/enterprise/zh/doc/DOC1100004219?section=k004

     

    1.2  VXLAN部署方案

    目前,设备支持通过单机方式控制器方式来部署VXLAN网络。

    • 单机方式:传统网络部署方式,按照网络规划登录到每台设备上进行配置。云计算数据中心中,此方式无法协同云平台实现网络的自动化部署。
    • 控制器方式:在大二层网络中,为了方便控制与部署引入了控制器。控制器是统一的网络控制平台,实现网络资源统一协调及管理,协同云平台实现业务和网络的自动化部署。

    AC控制器方式

    • AC控制器方式概述

      AC控制器方式是指通过AC控制器(Agile Controller-Enterprise)来动态建立VXLAN隧道。此时,AC控制器通过NETCONF协议控制设备VXLAN隧道的建立,通过OpenFlow协议控制报文在隧道中的转发。

      图1-2所示,AC控制器可直接管理用户虚拟网络也可直接通过Neutron获得用户虚拟网络的信息。控制器根据用户虚拟网络信息,进行动态计算生成网络相关配置信息,并自动映射到物理网络。

      图1-2  基于AC控制器+VXLAN解决方案网络框架示意图 
      基于AC控制器+VXLAN解决方案网络框架介绍如表1-1所示。
      表1-1  基于AC控制器+VXLAN解决方案网络框架介绍

      框架名称

      说明

      云平台

      实现对网络资源、计算资源和存储资源的按需调度,提供业务管理、运维界面。Neutron为云平台的组件,用于提供网络服务。

      网络控制器

      完成网络建模和网络实例化。

      AC控制器通过RESTful接口,接收来自云平台网络模型配置信息,并转化为相应的配置命令,并通过OpenFlow和NETCONF协议与网络设备对接建立的通道,将命令下发到基础网络层的网络设备。

      基础网络

      物理网络和虚拟网络统一规划。
      • 支持基于硬件的VXLAN网关提高业务性能。
      • 支持对传统VLAN网络的兼容。
    • AC控制器与设备之间通信通道的建立与维护

      通过云平台,控制器可及时感知终端租户的状态,获得用户虚拟网络的信息。如图1-3所示,终端租户上线后,通过云平台,控制器根据获得的用户虚拟网络信息进行动态计算,生成网络相关配置信息及流表信息,并自动映射到物理网络。

      图1-3  设备和AC控制器通道建立和维护示意图 
      图1-3所示,网络管理员需要先通过CLI或ZTP在设备上预先配置NETCONF并完成VXLAN的必要配置(如创建NVE接口、配置VTEP的IP地址等)。完成配置后,AC控制器可通过NETCONF自动管理设备。
      • AC控制器根据控制器集群的负载,自动为网络设备分配控制器节点,配置设备与该节点的OpenFlow。
      • AC控制器接收云平台的指令,并自动将其转化为网络设备的配置,完成业务的自动化部署。
      • AC控制器包含ARP协议栈,支持ARP的学习及报文处理。网络设备与AC控制器之间通过OpenFlow完成ARP报文的上送和发送。
      • AC控制器通过OpenFlow给设备下发ARP流表,指导设备报文转发。如果AC控制器与设备之间的OpenFlow中断,ARP流表不会立即老化,转发不会中断。AC控制器与设备之间的OpenFlow恢复后,AC控制器会与设备重新同步流表,保证表项一致。
     

    MAC地址动态学习

    在VXLAN网络中,为了实现终端租户的互通,支持MAC地址动态学习,不需要网络管理员手工维护,大大减少了维护工作量。下面结合图1-13,详细介绍一下同子网主机互通时,MAC地址动态学习的过程:

    图1-13  MAC地址动态学习 
    1. Host3发送源MAC为MAC3、目的MAC为全F、源IP为IP3、目的IP为IP2的ARP请求报文,请求Host2的MAC地址。

    2. Leaf1收到该ARP请求后,根据二层子接口上的配置判断该请求报文需进入VXLAN隧道,并确定报文所对应的VNI(20)。同时Leaf1学习到了Host3的MAC地址、BDID(二层广播域标识)和报文入接口(即二层子接口对应的物理接口Port1)的对应关系,并在本地MAC表中生成Host3的MAC表项,其出接口为Port1。

    3. Leaf1对该ARP请求报文进行VXLAN封装,如图1-14所示,封装的VNI是绑定当前BD的VNI,封装的外层源IP地址为Leaf1的VTEP IP地址,外层目的IP地址为Leaf2的VTEP IP地址,外层源MAC地址为Leaf1的NVE1接口MAC地址,外层目的MAC地址为去往目的IP的网络下一跳的MAC地址。封装后的报文根据外层MAC和IP信息在IP网络中传输,送达Leaf2。

      图1-14  VXLAN报文 
    4. Leaf2收到报文后进行解封装,得到Host3发送的原始ARP请求报文,同时Leaf2学习到Host3的MAC地址、BDID和Leaf1上VTEP IP地址的对应关系,并在本地的MAC表中生成Host3的MAC表项,其出接口需根据下一跳(即Leaf1的VTEP IP地址)进行迭代,最终迭代结果是指向Leaf1的VXLAN隧道。

    5. Leaf2在对应的二层域内广播ARP请求。Host2收到ARP请求后,比较报文中的目的IP是否为本机的IP地址,如果是,则将Host3的MAC地址保存到本地的MAC表中,并进行ARP应答。

    由于此时Host2已经学习到了Host3的MAC地址,所以ARP应答报文为单播报文,后续的ARP应答报文发送过程与上述过程类似,这里不再赘述。Host3和Host2互相学习到对方的MAC地址之后,双方将采用单播通信。

    同子网已知单播报文转发

    同子网已知单播报文转发只在VXLAN二层网关之间进行,三层网关无需感知。报文转发流程如图1-15所示。

    图1-15  同子网已知单播报文转发示意图 
    1. Leaf1收到来自Host3的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域,并在该二层广播域内查找出接口和封装信息。
    2. Leaf1上VTEP根据查找到的封装信息对数据报文进行VXLAN封装,然后根据查找到的出接口进行报文转发。
    3. Leaf2上VTEP收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。然后依据VNI获取对应的二层广播域,进行VXLAN解封装,获取内层的二层报文。
    4. Leaf2根据内层二层报文的目的MAC,从本地MAC表找到对应的出接口和封装信息,为报文添加VLAN Tag,转发给对应的主机Host2。

    Host2向Host3发送报文的过程类似,这里不再赘述。

    同子网BUM报文转发

    同子网BUM报文转发只在VXLAN二层网关之间进行,三层网关无需感知。同子网BUM报文转发可以采用头端复制方式、集中复制方式和组播复制方式

    头端复制
    头端复制是指,当BUM报文进入VXLAN隧道时,接入端VTEP根据头端复制列表进行报文的VXLAN封装,并将报文发送给头端复制列表中的所有出端口VTEP。BUM报文出VXLAN隧道时,出口端VTEP对报文解封装。BUM报文采用头端复制的转发流程如图1-16所示。
    图1-16  同子网BUM报文采用头端复制转发示意图 
    1. Leaf1收到来自终端A的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域。
    2. Leaf1上VTEP根据对应的二层广播域获取对应VNI的头端复制隧道列表,依据获取的隧道列表进行报文复制,并进行VXLAN封装。然后将封装后的报文从出接口转发出去。
    3. Leaf2/Leaf3上VTEP收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。然后依据VNI获取对应的二层广播域,进行VXLAN解封装,获取内层二层报文。
    4. Leaf2/Leaf3检查内层二层报文的目的MAC,发现是BUM MAC,在对应的二层广播域内的非VXLAN隧道侧进行广播处理,即:Leaf2/Leaf3分别从本地MAC表中找到非VXLAN隧道侧的所有出接口和封装信息,为报文添加VLAN Tag,转发给对应的终端B/C

    集中复制

    当BUM报文进入VXLAN隧道时,如果接入端VTEP采用头端复制方式进行报文的VXLAN封装。此时接入端VTEP需要往每一个远端VTEP发送一份报文,造成流量泛洪。此时可以配置集中复制。集中复制是指,在接入端VTEP上配置集中复制功能,在集中复制点上配置泛洪代理IP地址,当接入端VTEP封装报文进VXLAN隧道时,只需要发送一份报文到集中复制点,可以减少网络中的泛洪流量,所以集中复制点也可以称为泛洪网关,之后集中复制点进行VXLAN报文的解封装和封装,发送报文到各个出口端VTEP。出口端VTEP对报文再次解封装出VXLAN隧道。BUM报文采用集中复制的转发流程如图1-17所示。

    图1-17  同子网BUM报文采用集中复制转发示意图 
    1. Leaf1收到来自终端A的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域。
    2. Leaf1上VTEP根据对应的二层广播域获取对应VNI的对应的集中复制隧道,并进行VXLAN封装。然后将封装后的报文从出接口转发出去。
    3. Leaf4作为集中复制节点接收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。然后依据VNI获取对应的二层广播域,进行VXLAN解封装,获取内层二层报文,再根据二层广播域对应VNI的头端复制列表进行VXLAN封装,此时外层的源IP地址为leaf1的VTEP地址,不会影响VTEP间的MAC地址学习。
    4. Leaf2/Leaf3上VTEP收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。然后依据VNI获取对应的二层广播域,进行VXLAN解封装,获取内层二层报文。
    5. Leaf2/Leaf3检查内层二层报文的目的MAC,发现是BUM MAC,在对应的二层广播域内的非VXLAN隧道侧进行广播处理,即:Leaf2/Leaf3分别从本地MAC表中找到非VXLAN隧道侧的所有出接口和封装信息,为报文添加VLAN Tag,转发给对应的终端B/C。
     
    组播复制
    为了减少BUM报文采用头端复制方式引起的流量洪泛,还可以配置组播复制。组播复制是指,同一个VNI的所有VTEP都加入同一个组播组,利用组播路由协议(如PIM)为该组播组建立组播转发表项,当源端VTEP收到BUM报文后,为该BUM报文封装组播目的IP地址(例如225.0.0.1),封装后的报文根据已建立的组播转发表项转发到远端VTEP,从而减少流量洪泛。最后远端VTEP再对VXLAN报文解封装。BUM报文采用组播复制的转发流程如图1-18所示。
    图1-18  同子网BUM报文采用组播复制转发示意图 
    1. Leaf1收到来自终端A的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域。
    2. Leaf1上VTEP根据对应的二层广播域获取对应VNI的组播复制地址,并进行VXLAN封装。封装后的VXLAN报文对外表现为一个组播报文,然后根据组播转发表项发送给Leaf4。
    3. Leaf4接收到组播报文后,直接根据组播转发表项,将报文转发给Leaf2和Leaf3。
       说明:

      这里Leaf4作为非网关节点,只进行组播报文的转发。Leaf4也可以配置为网关节点,这样Leaf4既要转发组播报文,又要解封装VXLAN报文,并在VLAN网络广播BUM报文,此时Leaf4节点称为BUD节点。

    4. Leaf2/Leaf3收到组播报文后,根据组播转发表项中的出接口(NVE接口)判断该报文是VXLAN报文,此时Leaf2/Leaf3上的VTEP根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。然后依据VNI获取对应的二层广播域,进行VXLAN解封装,获取内层二层报文。
    5. Leaf2/Leaf3检查内层二层报文的目的MAC,发现是BUM MAC,在对应的二层广播域内的非VXLAN隧道侧进行广播处理,即:Leaf2/Leaf3分别从本地MAC表中找到非VXLAN隧道侧的所有出接口和封装信息,为报文添加VLAN Tag,转发给对应的终端B/C。

    跨子网报文转发

    跨子网报文转发需要通过三层网关实现。在集中式网关场景中,跨子网报文转发的流程如图1-19所示。

    图1-19  跨子网报文转发示意图 
        1. Leaf1收到来自Host1的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域,在对应的二层广播域内查找出接口和封装信息。
        2. Leaf1上VTEP根据查找到的出接口和封装信息进行VXLAN封装,向Spine转发报文。
        3. Spine收到VXLAN报文后进行解封装,发现内层报文中的目的MAC是三层网关接口VBDIF10的MAC地址MAC3,判断需要进行三层转发。
        4. Spine剥除内层报文的以太封装,解析目的IP。根据目的IP查找路由表,找到目的IP的下一跳地址,再根据下一跳地址查找ARP表项,获取目的MAC、VXLAN隧道出接口及VNI等信息。
        5. Spine重新封装VXLAN报文,向Leaf2转发。其中内层报文以太头中的源MAC是三层网关接口VBDIF20的MAC地址MAC4。
        6. Leaf2上VTEP收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。依据VNI获取对应的二层广播域,然后进行VXLAN解封装,获取内层二层报文,并在对应的二层广播域内查找出接口和封装信息。
        7. Leaf2根据查找到的出接口和封装信息,为报文添加VLAN Tag,转发给对应的Host2。

    Host2向Host1发送报文的过程类似,这里不再赘述。

     

  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/soul-stone/p/8627557.html
Copyright © 2011-2022 走看看