BGP EVNP VXLAN流量转发特性

本文将介绍以下内容:
(因为 virtual private network =VNP)

  • 增强BGP EVNP特性例如:arp 抑制,未知单播抑制,多播抑制 ;
  • VXLAN EVNP中的分布式网关;
  • 双宿主环境下VTEP 任播部署;
  • 对称和非对称IRB

1 多个目的地址流量处理

BGP EVNP VXLAN下,为实现BUM流量转发,通常有两种方式处理方式,一种是在underlay部署组播,另一种是使用头端复制,将流量复制多分,发送多个目的。

1.1在underlay 中利用组播

这种情况下,一个二层VNI对应一个组播组,必须在VNI对应的VTEP上配置映射关系。配置完成后,VTEP就会加入对应的组播树,接受组播流量。由于VNI有16m个,远多于组播地址,因此需要将多个VNI映射到一个组播地址上,这种情况下,会出现VTEP收到本地没有VNI的组播包,VTEP会将该数据包丢弃。例如,VNI 3000,VNI 2000映射的组播地址是239.1.1.1,VTEP A上配置了VNI 2000和239.1.1.1的映射关系,当VTEP A收到来自239.1.1.1 的组播包,如果数据包的VNI是3000,就会将该数据包丢弃。

1.2使用头端复制

组播方式下需要underlay 支持组播,提高了对设备的要求和以及运维的复杂度,另一个解决方案是使用头部复制
如果使用头端复制技术,源VTEP会将收到的BUM数据包复制,使用单播发送给每个和该VNI相关的的VTEP。
头端复制需要解决的问题是VTEP如何获知其他VTEP所关注的VNI,如何知道要发送给哪个VTEP。
这个问题可以通过静态配置或BGP EVNP 方式的type 3 路由解决,type 3携带了本端VTEP IP和VNI信息,可以用于建立复制转发列表。

2 VXLAN BGP EVNP 增强

2.1 ARP抑制

主机ARP 请求发送到VTEP时,如果ARP所请求的地址已经在在VTEP中已经存在,VTEP直接会将IP和MAC地址映射回应给主机,ARP就不会泛洪到网络中。
如果ARP请求的地址在本地VTEP中还没有,VTEP就会将ARP请求进行封装后泛洪。如图:
BGP EVNP VXLAN流量转发特性_第1张图片
虽然也是使用泛洪的方式,和传统以太网对比,好处就是只要一个VTEP知道了IP 和MAC地址映射,就会通过BGP eVNP将信息传递到全网。

2.1.1 未知单播抑制

对于未知单播的抑制(无IP地址的二层数据包,普通查询DMAC数据包)需要启用一个额外的未知单播抑制特性。特性启用后,未知单播流量泛洪只会在本地进行泛洪,不会传递到VXLAN中。

2.1.2 多播抑制

多播抑制指的是VLXAN 网络中host使用多播,如何避免不必要的多播在网络中传播,通过IGMP snooping来实现。
未启用IGMP snooping时,可能会出现RCVR接收到了不感兴趣的多播流量。
BGP EVNP VXLAN流量转发特性_第2张图片
启用IGMP snooping后,减少了多播流量在VXLAN中的传播。
BGP EVNP VXLAN流量转发特性_第3张图片

2.2 分布式任播网关

分布式IP任播网关是指在所有VTEP上配置网段的任播网关地址,这样主机就能够就近选择网关设备。在配置分布式任播网关时,需要为所有同网段的任播网关配置相同的MAC地址。这一点在主机迁移的场景中显得尤为重要,因为迁移完成后主机还保留着原有的默认网关IP地址和MAC地址的映射,如果迁移后,网关的MAC地址不一致,就会产生丢包问题,保持同一子网所有任播地址的MAC地址一致,可以确保迁移后,主机和外部通信不受影响。
配置了分布式任播网关后,如果一个数据包需要前往另一个网段未被发现的主机,会进行一下过程:

  • 查找会查找路由表,因为配置了分布式任播网关,源VTEP会收到其他VTEP关于该网段的路由信息。
  • 根据选路原则选择最佳的下一跳,对数据包进行VXLAN封装后送往目的VTEP;
  • 目的VTEP收到数据包,进行解封装后,发送ARP请求到本地网络,同时该将ARP请求进行VXLAN分装后,根据头端复制列表,发送到VXLAN网络中。
  • 如果目的VTEP不是主机所在的VTEP,主机所在的VTEP收到数据包后,进行解封装,发送给主机,主机进行回应。IP/MAC地址信息就通过BGP EVNP进行传播。

2.2 集成路由和桥接(IRB)

传统方式下,跨网段通信必须到集中式三层网关后才能进行跨网段的交换。当同一个PE下不同网段的租户想要通信时,就必须到网关进行交换后再回到PE,这就导致了次优路径。因此提出了IRB概念,使得同一个PE下不同网段可以进行路由和桥接。

2.2.1 IRB模型

BGP EVNP VXLAN流量转发特性_第4张图片

  • IP-VRF表代表一个IPVNP的实例;
  • MAC-VRF 代表EVNP实例的转发表。一个EVNP实例由一个或多个bridge table(BT),每一个BT对应一个VLAN;
  • 每个BT通过IRB接口连接到IP-VRF;
  • IP-VRF和MAC-VRF都通过各自的RT和RD来区分;

2.2.2 非对称IRB

非对称IRB对数据包采用交换-路由-交换的方式进行处理,本端进行MAC和路由查找,远端进行MAC查找。来回数据包使用的VNI不一致。图中host A和hostB需要进行跨网段的通信,将经过以下流程:BGP EVNP VXLAN流量转发特性_第5张图片

  1. Host A的数据包到达VTEP1后,VTEP1根据AC ID(VLAN)确认相应的MAC-VRF,然后进行MAC地址查找;
  2. 如果MAC地址指向IRB 接口,说明是跨网段通信;
  3. 在相应的IP-VRF 进行查找,确定了到一个IRB接口的本地邻接关系,该IRB接口和出方向子网MAC-VRF关联;
  4. VTEP从ARP表中获取Host C 的MAC地址,对数据包进行封装,内层地址DMAC地址为Host C Mac地址,SMAC为IRB 接口MAC地址;
  5. 根据MAC地址查找MAC-VRF,得出BGP下一跳和相应的VNI标签,PE进行封装后转发;
  6. 到达VTEP2后解封装,VNI 30002映射到VLAN 20,在VLAN 20内进行ARP请求后转发到本地;

同理,在回城数据包时,数据包也先从VLAN 20路由到VLAN10后使用VNI 30001进行VXLAN封装,到达VTEP1解封装后完成ARP请求后转发。
非对称IRB所有的VTEP必须配置一致的VNI,避免流量黑洞。上一个例子中,如果VTEP2没有配置VNI30001,在VTEP2就会导致流量丢弃。

2.2.3 对称IRB

非对称式的IRB对设备要求较高,可扩展性不佳,因此出现了对称性IRB,如图:

BGP EVNP VXLAN流量转发特性_第6张图片

  1. Host A的数据包到达VTEP1后,VTEP1根据AC ID(VLAN)确认相应的MAC-VRF,然后进行MAC地址查找;
  2. 如果MAC地址指向IRB 接口,说明是跨网段通信;
  3. 进行IP-VRF查找,确定出方向PE地址和封装类型,标签;
  4. 如果是VXLAN封装,需要为数据包添加以太网头部,内层MAC源地址为入方向PE,目的地址为出方向PE;外层MAC源地址为PE的出接口,目的MAC为下一跳的入接口;

2.3 主机迁移

主机迁移后,整个网络中会有两条该主机的路由,必须通过一定的机制来决定哪个路由更新。目前通过在type 2路由增加MAC迁移序列号这个BGP 的扩展属性属性来确定哪条路由更新,每当发生一次迁移,序列好就会增加1.
BGP EVNP VXLAN流量转发特性_第7张图片
如图,VTEP3在本地接收到Host A的IP/MAC地址信息时,就知道原本位于VTEP1的主机迁移到了本地。因此VTEP3将host A type 2 路由seq 加1 ,然后通告给RR,再由RR添加通告给其他客户端。

如果ARP,MAC,BGP table中的IP/MAC地址信息超时,seq同样会被设置为0;超时后再次出现,会被认为时新学习的,seq会被设置为0。

VXLAN BGP EVNP中部署 vPC

典型VXLAN VPC拓扑如下:BGP EVNP VXLAN流量转发特性_第8张图片

  • 首先需要开启vPC特性,配置VPC peer link和vPC peer keepalive link,VPC keepalive link可以使用VXLAN网络实现,vPC peer link使用直连线。当前Cisco Nexus 9000 CloudScale ASICs已经可以实现使用VXLAN Fabic作为VPC Peer link,无需再使用物理接口。
  • 两台vPC 交换机配置一个共同的虚拟任播IP,该任播IP作为连接到vPC domain endpoint 的BGP 下一跳。图中VTEP1的地址是10.200.200.1/32,VTEP2的地址是10.200.200.2/32,两个VTEP都配置了一个虚拟的地址10.200.200.254,在向VXLAN fabric 通告host A 路由时,路由属性的下一跳时10.200.200.254.
  • 其他VTEP收到host A路由后,就可以通过ECMP的到达10.200.200.254;
  • Vxlan vPC中,无论时Host B,还是Host A的路由,在通告给VXLAN fabric时,下一跳都是VIP。为避免VTP2上行中断导致Host B中断,建议在VTEP1,VTEP2之间的vPC peer link部署路由协议作为备份路径。
  • vPC domain中的交换机会忽略来自同一个domain交换机端 BGP VNP路由更新(根据BGP soo属性),因为它们之间的更新已经通过vPC peer link发送;

在vPC domain两台交换机所接的主机不是严格对称的情况下,有可能因为数据包到达VTEP不是目的地址所在的VTEP而导致数据包丢失,这种情况下需要启用新特性advertise-pip。如图:

BGP EVNP VXLAN流量转发特性_第9张图片
每一个交换机都有一个唯一的PIP和一个共享的VIP。在通告路由时,如果一条路由只出现在其中一个vPC交换机上,那么在通告这条路由时,下一跳就的地址就是PIP地址。

你可能感兴趣的:(VXLAN)