在发布R2008版本之前,Tungsten Fabric无法同时提供南北向和东西向流量的快速收敛。
实际上,对于南北流量来说,是可以实现快速收敛的,但机制在Tungsten Fabric的逻辑之外:
- 一个解决方案是将overlay的control_node-sdn_gw的BGP会话分成两个会话,以解决在Tungsten
Fabric上缺乏BFD的问题(但这个问题无法完全解决)。包括一个iBGP会话,不含BGP,在Tungsten Fabric和IP
Fabric spine之间;一个eBGP会话,含BFD,在spine和SDN
GW之间。在这些会话中,交换了overlay路由。因此,一旦eBGP下线,所有指向SDN
GW的overlay路由都会从spine上被移除,而spine也会告诉TF控制节点移除这些路由。 - 另一个解决方案是在SDN网关上实现下一跳可达性检查,这样MPLSoUDP只有在计算节点还活跃/可达的情况下才会启动。如何实现?我们稍后再谈。
两种变通的方法都能为我们提供南北向的快速收敛。无论如何,东西向的流量仍然容易出现收敛缓慢的情况,因为它依靠的是XMPP timer(默认情况下非常缓慢)。
实现原理:下一跳的可达性
为了带来快速收敛,Tungsten Fabric在概念上实现了我们刚才提到的SDN网关的解决方案:下一跳的可达性。
背后的思路,就是利用过去已经使用过的相同构件来验证SDN GW计算节点是否活跃。
下图是总结的解决方案:
假设IP Fabric实现的是ERB模式(在VMTO的帮助下,CRB模式也是可以的),ERB是指叶子节点为L2/L3 GW,简单地说,就是在叶子节点上配置了VLAN IRB接口。
在这种模式下,一旦叶子节点学习到一个MAC:IP对,它就会为该IP在inet.0中安装一个/32路由,其下一跳是该IP所属VLAN的IRB逻辑接口。
在我的测试拓扑中,2个计算节点连接到leaf2。结果如下:
它们在这里了!每个连接的服务器都有一条/32路由!
现在,我们要通过u