本文将介绍以下内容:
(因为 virtual private network =VNP)
BGP EVNP VXLAN下,为实现BUM流量转发,通常有两种方式处理方式,一种是在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,就会将该数据包丢弃。
组播方式下需要underlay 支持组播,提高了对设备的要求和以及运维的复杂度,另一个解决方案是使用头部复制
如果使用头端复制技术,源VTEP会将收到的BUM数据包复制,使用单播发送给每个和该VNI相关的的VTEP。
头端复制需要解决的问题是VTEP如何获知其他VTEP所关注的VNI,如何知道要发送给哪个VTEP。
这个问题可以通过静态配置或BGP EVNP 方式的type 3 路由解决,type 3携带了本端VTEP IP和VNI信息,可以用于建立复制转发列表。
主机ARP 请求发送到VTEP时,如果ARP所请求的地址已经在在VTEP中已经存在,VTEP直接会将IP和MAC地址映射回应给主机,ARP就不会泛洪到网络中。
如果ARP请求的地址在本地VTEP中还没有,VTEP就会将ARP请求进行封装后泛洪。如图:
虽然也是使用泛洪的方式,和传统以太网对比,好处就是只要一个VTEP知道了IP 和MAC地址映射,就会通过BGP eVNP将信息传递到全网。
对于未知单播的抑制(无IP地址的二层数据包,普通查询DMAC数据包)需要启用一个额外的未知单播抑制特性。特性启用后,未知单播流量泛洪只会在本地进行泛洪,不会传递到VXLAN中。
多播抑制指的是VLXAN 网络中host使用多播,如何避免不必要的多播在网络中传播,通过IGMP snooping来实现。
未启用IGMP snooping时,可能会出现RCVR接收到了不感兴趣的多播流量。
启用IGMP snooping后,减少了多播流量在VXLAN中的传播。
分布式IP任播网关是指在所有VTEP上配置网段的任播网关地址,这样主机就能够就近选择网关设备。在配置分布式任播网关时,需要为所有同网段的任播网关配置相同的MAC地址。这一点在主机迁移的场景中显得尤为重要,因为迁移完成后主机还保留着原有的默认网关IP地址和MAC地址的映射,如果迁移后,网关的MAC地址不一致,就会产生丢包问题,保持同一子网所有任播地址的MAC地址一致,可以确保迁移后,主机和外部通信不受影响。
配置了分布式任播网关后,如果一个数据包需要前往另一个网段未被发现的主机,会进行一下过程:
传统方式下,跨网段通信必须到集中式三层网关后才能进行跨网段的交换。当同一个PE下不同网段的租户想要通信时,就必须到网关进行交换后再回到PE,这就导致了次优路径。因此提出了IRB概念,使得同一个PE下不同网段可以进行路由和桥接。
非对称IRB对数据包采用交换-路由-交换的方式进行处理,本端进行MAC和路由查找,远端进行MAC查找。来回数据包使用的VNI不一致。图中host A和hostB需要进行跨网段的通信,将经过以下流程:
同理,在回城数据包时,数据包也先从VLAN 20路由到VLAN10后使用VNI 30001进行VXLAN封装,到达VTEP1解封装后完成ARP请求后转发。
非对称IRB所有的VTEP必须配置一致的VNI,避免流量黑洞。上一个例子中,如果VTEP2没有配置VNI30001,在VTEP2就会导致流量丢弃。
非对称式的IRB对设备要求较高,可扩展性不佳,因此出现了对称性IRB,如图:
主机迁移后,整个网络中会有两条该主机的路由,必须通过一定的机制来决定哪个路由更新。目前通过在type 2路由增加MAC迁移序列号这个BGP 的扩展属性属性来确定哪条路由更新,每当发生一次迁移,序列好就会增加1.
如图,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。
在vPC domain两台交换机所接的主机不是严格对称的情况下,有可能因为数据包到达VTEP不是目的地址所在的VTEP而导致数据包丢失,这种情况下需要启用新特性advertise-pip。如图:
每一个交换机都有一个唯一的PIP和一个共享的VIP。在通告路由时,如果一条路由只出现在其中一个vPC交换机上,那么在通告这条路由时,下一跳就的地址就是PIP地址。