华为HCIE课堂笔记第九章 VXLAN技术

第九章  VXLAN技术

9.1背景:

VXLAN(虚拟扩展局域网),本质上是一个隧道技术,采用MAC in UDP的方式封装,用于数据中心,用于园区网的虚拟化(网络虚拟化)。

9.2 网络的新需求

为什么要使用VXLAN:

  1. 二层扩展:随着网络规模的扩大,物理服务器在不同的地理位置,服务器之间需要进行三层互联,但是服务器因为虚拟机迁移需要满足虚拟机在同一个广播域,所以需要使用到VXLAN的L2VPN的技术。网络规模的扩大,VLAN ID 资源有限,需要扩展广播域的数量,VXLAN通过VNI标识 广播域,VNI取值范围24bit
  2. 租户的隔离:传统网络使用VLAN不携带租户信息。VXLAN使用 VPN实例隔离租户。

9.3 VXLAN的应用

  1. 数据中心:采用spine-leafe的架构。
    1. Spine节点负责报文的路由
    2. Leaf节点负责VXLAN报文的封装和解封装
  2. 在园区网中的应用:使用VXLAN实现网络虚拟化,“一网多用”
    1. Underlay:物理设备组成的网络拓扑
    2. Overlay:在Underlay上配置VXLAN从而虚拟出来的网络的逻辑拓扑。园区网中可以通过在相同的Underlay中虚拟出多个不同功能的Overlay网络,从而实现“一网多用”。

9.4 VXLAN报文

原始报文=原始帧头+原始IP头部+载荷部分,是VXLAN两端PC之间互相访问产生的原始的报文:

  1. 原始帧头包含PC1和PC2的MAC地址
  2. 原始IP地址是PC1和PC2的IP地址
  3. 载荷部分是PC1与PC2互访的携带的信息

通过VXLAN网关形成,进行封装或者是解封装:

封装形成VXLAN报文:外层的帧头+外层的IP头部+UDP头部+VXLAN头部+原始报文

  1. VXLAN头部包含以下字段:
    1. VXLAN Flags:8bit,取值是00001000
    2. 保留字段:24bit,华为部分设备已利用,具体需要参考不同设备的产品文档。如果未利用,取值为0
    3. VNI:24bit,VXLAN网络标识符,类似VLAN ID,相同的VNI标识相同的广播域。
    4. 保留字段:8bit,保留字段,取值为0。
  2. UDP头部:
    1. 源端口号:由内层数据帧hash计算得来。
    2. 目的端口号:为4789
  3. 外层的IP头部,其中包含的IP地址如下:
    1. 源IP地址为隧道本端的IP地址,VTEP IP地址
    2. 目的IP地址为隧道对端的IP地址,VTEP IP地址
  4. 外层帧头:
    1. 目的MAC地址:根据目的 VTEP IP地址查找路由下一跳的MAC地址。
    2. 源MAC地址:本端VTEP IP地址的 MAC地址。

9.5 概念

NVE(Network Virtualization Edge,网络虚拟边缘):用于VXLAN报文的封装和解封装。

VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点):位于NVE中,用于VXLAN报文的封装和解封装,用IP地址标识,本端的VTEP地址是隧道的源地址,对端的VTEP是本端访问对端的目的VTEP IP地址。

VNI:可以用于租户隔离,一个租户可以有多个VNI,通信双方的VNI相同,则可以进行二层通信。分为二层VNI和三层VNI,二层VNI用于二层通信,三层VNI是用于不同子网的三层之间通信。

BD(桥域):在VXLAN网络中用于标识一个大二层网络中的广播域,VNI与BD是1:1的映射关系。BD概念本地有效。

VAP:虚拟接入点,IP报文接入到VXLAN网络的接口(点)

  1. 配置接口的子接口,与BD域绑定,流量进入到对应的子接口,则注入到对应的BD域中,进行相应的VXLAN封装,实现VXLAN接入。
  2. 配置VLAN与BD绑定,收到的数据报文带VLAN ID,注入对应的BD域中,并进行相应的VXLAN封装,实现VXLAN接入。

VBDIF:BD域对应的三层接口,类似VLANIF

Border和Edge设备:

  1. Border设备是连接外部网络的设备
  2. Edge VXLAN的边缘设备,负责将传统网络的报文进行VXLAN封装转发进入到VXLAN网络。

二层网关:VXLAN实现接入设备,同时不部署VBDIF接口(通过二层网关实现相同子网之间的通信)

三层网关:设备上部署VBDIF接口通过路由进行不同的BD广播域之间的通信(不同子网之间的通信)

VXLAN的封装过程:子接口收到报文,根据子接口绑定的BD域,查找BD绑定的对应的VNI,封装对应的VNI到VXLAN报文的头部,根据VNI查找NVE的对应的头端复制列表,进一步封装NVE中的原IP地址和目的IP地址,转给对端的VTEP。

9.6 VXLAN的接入

  1. 基于VLAN ID与BD域绑定
  2. 基于子接口与BD与绑定,子接口根据接收到的流量的不同,进行不同处理方式。
    1. 子接口的类型是dot1q类型:
      1. 封装:从终端接收到报文必须要携带VLAN ID,且VLAN ID必须与子接口指定的VLAN ID相同,进行VXLAN封装:先剥离掉报文中的VLAN ID(与子接口VLAN ID相同),如果是双层 VLAN ID,则剥离最外层的VLAN ID,然后进行VXLAN封装
      2. 解封装:从VXLAN网络侧收到一个VXLAN报文,根据该VXLAN报文中的VNI,查找该VNI绑定的对应的BD域,从对应的子接口进行转发(转发前,先要解封装,会还成原始的数据帧,并且添加该子接口指定的VLAN ID)
    2. 子接口的封装类型QinQ类型,必须收到指定的两层VLAN tag标签的报文。
      1. 封装VXLAN报文:收到指定两层报文,进行VXLAN报文的封装
        1. 配置了剥离标签,则剥离两层标签进行VXLAN封装
        2. 不配置剥离标签,则不剥离标签进行VXLAN封装
      2. 解封装VXLAN报文:
        1. 配置了剥离标签,解封装VXLAN报文的时候,在原报文中添加指定的两层标签。
        2. 不配置剥离标签,则解封装VLXAN报文的时候,不添加指定的两层标签。
    3. 子接口的封装类型untag类型
      1. 封装:必须收到的不带VLAN标签的报文,进行VXLAN的封装,不进行任何VXLAN Tag的添加。
      2. 解封装:收到VXLAN报文,解封装,移除最外层VLAN Tag发送。
    4. 子接口的封装类型default类型
      1. 封装:接受到任何报文,属于该子接口,不修改原始报文中的VLAN Tag
      2. 解封装:解封装VXLAN 报文,不修改报文中的任何VLAN Tag
      3. 注意:该子接口只能创建一个,不能在创建任何其他类型的子接口,同时主接口必须不能加入任何VLAN

9.7同子网之间的互访

直接通过隧道,实现相同VNI(相同广播域之间的终端互访),Mac地址表通过泛洪-学习的方式进行学习:

  1. 当VXLAN接入设备收到BUM帧的时候,向相同VNI对应的头端复制列表中的所有对端的VTEP地址复制一份BUM帧并进行VXLAN封装,泛洪进入VNI相同的所有对端VTEP IP地址。
  2. BUM帧的转发方式:
    1. 头端复制
    2. 集中复制
    3. 组播复制
  3. 当VXLAN接入设备收到已知单播帧,按照MAC地址表指定对端VTEP单播发送(封装VXLAN报文)。

9.8 EVPN在VXLAN的应用

9.8.1 BGP EVPN NLRI和扩展团体属性

通过扩展BGP协议,新增几个EVPN路由,使用NLRI携带。

NLRI中携带地址簇25,代表L2VPN

NLRI中携带子地址簇70,代表EVPN

VXLAN中也存在EVPN实例的概念,通过扩展团体属性,携带路由的RT值,MAC Mobility、EVPN Router’s MAC Extended Community。

9.8.2 BGP EVPN的3类路由

3类路由:用于VTEP IP地址的自动发现,携带二层VNI,以便自动构建VXLAN隧道。

BGP Update报文中路由的详细内容:

  1. NLRI:携带部分字段如下
    1. RD值字段,是本地EVPN配置的RD值
    2. 本端的VTEP IP地址
    3. IP地址的前缀长度
  2. PMSI:携带部分字段如下
    1. 隧道的类型字段:6,表示头端复制
    2. MPLS Label字段:二层VNI

9.8.3 EVPN 2类路由

2类路由MAC/IP路由,通告主机的MAC地址、ARP信息IP路由条目(主机路由)。分类2类:VXLAN设备收到ARP报文(访问自己的ARP报文)产生2类路由。

  1. IRB路由:主机路由,分布式网关,只有该类型的路由携带三层VNI
  2. ARP路由:通告ARP信息、主机的MAC ,分布式网关,携带二层VNI

路由格式:携带了RD值(EVPN实例配置)、MAC地址、MAC地址长度、IP前缀、前缀长度、二层VNI、三层VNI

9.8不同子网之间的互访

9.8.1 通过集中式网关实现

将不同子网的网关放在一个设备上面,该设备作为Border设备与所有的其他的Edge节点,建立隧道。所有的Edge设备连接的终端设备通过隧道访问Border上的网关地址,并在Border设备上进行路由转发。

9.8.2 分布式网关路由交叉

将子网的网关部署在不同的Leaf设备上,设备相互之间通过EVPN路由通告ARP、IP主机路由等信息。

EVPN实例:需要设置ERT值和IRT

  1. 当接入设备(Leaf节点)从主机方向学习到对应的ARP表项,自动生成EVPN的2类路由,通告给所有的对等体:携带EVPN中的ERT值
  2. 对端接收到该EVPN路由,进行路由交叉,比较路由中携带的ERT值和本地EVPN实例中的IRT值,如果相同,则接受,放入到对应的EVPN实例路由表中。

IP VPN实例:接收2类路由形成32掩码主机路由需要配置IRT值,称eIRT值。

  1. 当接入设备收到从其他的EVPN对等体发来的2类EVPN路由,根据路由携带ERT值与本端配置IP VPN实例中的eIRT值进行比较,相同,则接受该路由,并加入到IP VPN实例的路由表中,形成主机路由条目
  2. 如果2类EVPN路由中的ERT与本端的EVPN实例的IRT和IP VPN实例中eIRT值都不相同,则丢弃该路由不接受。

9.8.3 分布式网关的不同子网之间通信

  1. 非对称IRB转发:本端VTEP查找路由表,再查找MAC地址表,对端VTEP仅查找MAC表进行转发。
  2. 对称IRB转发:本端VTEP和对端VTEP都需要查找L3(路由表)。

9.9 VXLAN网络与外部网络互联

9.9.1 接入外部网络的方式:

1、将外部网络接入到VXLAN网络中,作为VXLAN网络的一部分(一个主机)

2、集中式网关中,集中式网关接受所有子网的报文,并进行解封装和路由,此时外部网络连接在集中式网关上,不需要其他配置,按照传统网络配置接口(IGP配置或者是静态路由配置)。

3、将外部路由引入到BGP IPv4地址簇 VPN实例视图下,形成5类EVPN路由(前缀路由),通告给其他的节点,其他节点收到按照IP VPN实例中的eIRT决定是否接受该路由。

参考命令:

Bgp 100                       //进入BGP视图

ipv4-family -instance VPNA    //进入VPN实例视图

  import-route static             //引入静态路由

  advertise l2 e           //向EVPN对等体通告EVPN路由(产生5类路由进行通告)

9.9.2 EVPN 5类路由

和其他路由一样,携带在BGP MP-reachable NLRI中,主要内容如下:

  1. 前缀和前缀长度:外部路由的前缀和前缀长度
  2. 网关地址:VTEP地址
  3. Label字段:携带的三层VNI

9.10 EVPN的应用功能

9.10.1 ARP抑制功能

VXLAN的接入设备开启使能分布式网关,开启ARP拟制功能后,从其他的VTEP收到的2类路由,形成ARP广播抑制表项。当接入设备收到终端发来的ARP广播请求报文。查看ARP的广播抑制表项:

  1. 如果存在对应的ARP表项,则修改ARP的目的地址从广播改为单播,从单一的VXLAN隧道进行转发。
  2. 如果不存在对应的ARP表项,仍然进行BUM帧转发(通过头端复制列表,对所有的VTEP进行转发。)

9.10.2 ARP代理

作用:减少VXLAN网络中的ARP广播报文泛洪

  1. 本端的VTEP进行ARP代理,将本地VBDIF接口(router MAC)发送给终端。
  2. 删除从网络侧学习到的ARP表项,通过路由表项确定下一跳。

9.10.3 MAC Mobility属性

作用:用于虚拟机迁移,通过BGP扩展团体属性承载

迁移后,向迁移后所属的VTEP发送免费ARP报文,VTEP收到报文之后产生对应的MAC/IP路由(新的),携带MAC Mobility属性(序列号1),发送给虚拟机原来所属的VTEP(也发送给其他的VTEP)。原来的VTEP收到该2类的MAC/IP路由,向原虚拟机接口发送探测报文,探测是否发生迁移,如无人回应,则认为虚拟机发生了迁移,从而产生一个路由撤销报文,用于撤销网络中原2类的MAC/IP路由。

你可能感兴趣的:(网络,笔记,运维,服务器,智能路由器)