Agile Controller vxlan

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解决方案网络框架示意图 
    Agile Controller vxlan_第1张图片
    基于AC控制器+VXLAN解决方案网络框架介绍如 表1-1所示。
    表1-1  基于AC控制器+VXLAN解决方案网络框架介绍

    框架名称

    说明

    云平台

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

    网络控制器

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

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

    基础网络

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

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

    图1-3  设备和AC控制器通道建立和维护示意图 
    Agile Controller vxlan_第2张图片
    如 图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地址动态学习 
Agile Controller vxlan_第3张图片
  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报文 
    Agile Controller vxlan_第4张图片
  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  同子网已知单播报文转发示意图 
Agile Controller vxlan_第5张图片
  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报文采用头端复制转发示意图 
Agile Controller vxlan_第6张图片
  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报文采用集中复制转发示意图 
Agile Controller vxlan_第7张图片
  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报文采用组播复制转发示意图 
Agile Controller vxlan_第8张图片
  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  跨子网报文转发示意图 
Agile Controller vxlan_第9张图片
  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发送报文的过程类似,这里不再赘述。

你可能感兴趣的:(Agile Controller vxlan)