之前的《VXLAN篇之进阶》说到了multi-pod,multi-fabric,multi-site。这次,再把multi-pod给填上!
一、VXLAN multi-pod overview:
1/ VXLAN Multipod Design Interconnecting Leaf Nodes:
如上图所示,每个Pod通过Transit Leaf Node互连。Transit Leaf Node是纯三层设备,可以是computing leaf nodes (连接本地endpoints的leaf节点) ,也可以是border leaf nodes (连接external router的leaf节点).
2/ VXLAN Multipod Design Interconnecting Spine Nodes:
如上图所示,在每一个单独的pod里面,Spine除了保证可以路由leaf之间的VXLAN流量,不需要额外的功能。这是因为VXLAN隧道是在leaf之间建立,并且独立于其他pod。
3/ VXLAN Multipod M-Shaped Design:
如上图所示,在这种场景下,transit leaf node连接本地Spine和远端Pod里的Spine设备。Transit leaf node的数量,取决于两个Pod之间流量大小,以及未来的扩展性。
二、Multi-pod:when?why?
在相同数据中心,部署的pods之间的互连,比如同一个数据中心的不同机房:multi-pod设计就会很有用。考虑这样一种场景,基础布线已经完成了,而且是针对传统三层结构(接入、汇聚、核心)做的布线;这时就不太容易适用Spine-leaf架构。通过核心层(或者叫super spine)把独立的pod互连起来。
同样的,当不同的pod被放到同一个园区的不同的楼里时,没有足够的光纤做leaf和spine之间full mesh互连时,Multi-Pod的方案相比整个数据中心或者园区重新布线,会是一种更为节约成本的解决方案。
三、multi-pod的部署方案:
1/ Use of Direct Layer 3 Links for VXLAN Multipod Deployments:
如上图所示,这些pod通过专用的三层网络设备连接。或者,可以使用在leaf节点上配置三层口然后直连。
2/ Single Control Plane for Underlay and Overlay Connectivity:
如上图所示,对于单个物理位置上(比如两个pod在同数据中心的不同机房)的multi-pod,通常首选这种方式。***这也是multi-pod最流行的一种使用方式***
3/ Multipod Deployment with Control-Plane Separation Across Pods:
尽管在技术上和功能上,“Single Control Plane for Underlay and Overlay Connectivity”(上一种)的方式都很好,但是仍然将control-plane跨pod进行分离的方式介绍给大家,这种方式可以提供更简单、更结构化的设计,如上图所示。这种方式虽然在结构上更简单,但是,需要考虑的细节会更多,配置量也会更大。
四、L2 VNI映射与L3 anycast gateway:
VLAN-to-Layer 2 VNI Mapping
VXLAN segment独立于underlay网络,同样的,VTEP之间的underlay网络独立于VXLAN overlay。本地定义的vlan及其的关联的二层VNI映射组合,允许你创建可以跨pod的二层逻辑segment。如上图所示,它提供了连接到相同VNI的endpoint之间的二层连接,这些endpoint独立于它们连接到的特定pod。同时,不同的二层VNI segment提供了endpoint之间的逻辑隔离。就像在传统的VLAN部署中一样,不同的二层VNI endpoint之间只能通过三层路由功能进行通信。
Anycast Layer 3 Gateway
上图展示了一个web服务器在与host和database之间通信时,执行了一个实时迁移的过程:从host所在的Pod,迁移到了database所在的远端Pod。
MP-BGP control-plane注意到了web服务器发生了移动,并且知道了web服务器的新位置。随后,它将增加BGP sequence number值,并立即通知其他所有VTEP,告诉它们web服务器的新位置。这个sequence number现在高于原始值,所以,所有的VTEP接收到了这个update后,都会使用新的下一跳信息,并更新它们的转发表(egress VTEP-4)。可以参见之前的“VXLAN篇之EV**”。
这样,没有任何中断当前active会话,web服务器持续的使用它的默认网关;现在这个默认网关就从VTEP-1变成了VTEP-4。
五、网络服务集成方案--外部通信:
上边我们说了Pod-to-Pod的设计方案(即两个Pod之间的流量通信),下边我们看看multi-pod如何与外部通信:
Active-Standby的防火墙部署架构
几个注意点:
当使用路由模式时,可以在防火墙节点和网络设备之间使用动态路由协议,从而实现VLXAN区域与WAN edge设备之间交换路由条目,或者也可以使用静态路由。
为了支持多租户,可以为需要与外部网络域通信的每个租户提供不同的防火墙接口(或VRF)。这种方法通常与物理防火墙设备的部署一起使用,或者,可以为每个租户部署一对专用的active-standby虚拟设备。
接下来,结合流量我们宏观的看一看:
1/ Inbound流量:
Suboptimal Inbound Traffic Path
Optimized Inbound Traffic Path
假设active防火墙稳定在Pod-1,我们就需要通过路由策略,使得所有外部入站流量均从actve防火墙进去VXLAN域。避免次优路径,消耗interpod link带宽。
2/ Outbound流量:
Static Routes Configuration
Suboptimal Outbound Traffic Path
Optimized Outbound Traffic Forwarding
VTEP-2和VTEP-3均需要配置静态路由,但只在连接active防火墙的VTEP-2上执行:静态路由重分布到EV** control-plane。避免连接standby防火墙的VTEP-3执行不必要的VXLAN封装解封装。VTEP-2和VTEP-3均配置静态路由的目的是为了防火墙failover时使用。
注:对比Suboptimal Outbound Traffic Path和Optimized Outbound Traffic Forwarding两张图的VTEP-3。
Firewall Failover Scenario
这里引入一个新的功能:Host Mobility Manager (HMM) route tracking。该功能在较新的Cisco NX-OS版本中被引入。如果主机路由是本地学习到,则打上HMM up标签;如果主机路由是通过MP-BGP学到,则打上HMM down标签。
首先,VTEP-2和VTEP-3均配有HMM。一旦防火墙发生failover,VTEP-3上的HMM进程跟踪到了一个与原active防火墙相同的IP(standby防火墙开始接管),这时,它会触发一个动作:将静态路由(预配好的)重分布到MP-BGP。从而使得MP-BGP发送update告知其他所有VTEP节点,新的actve防火墙位置在VTEP-3下。当VTEP-2收到了这个BGP update,它携带着与本地原active防火墙相同的IP地址和MAC地址的信息,通过比较BGP sequence number发现,VTEP-3发来的值更高。所以,VTEP-2会更新本地转发表,同时,从EV** control-plane撤回旧的静态路由。
六、Multi-Pod的不足:
End-to-End封装会带来扩展性问题,当前支持的最大VTEP数量为256.
单一的BUM replication domain,没有任何限制,不安全(被非预期终端接收)。
最后例行tip:尽管multi-pod可以解决部分问题,但是它也确实存在着一些不足。技术的迭代和更新是日新月异的,让我们来看一张图:
Multi-site,the happy place!
虽然,我们现在推荐使用multi-site,但是,谈主还是希望将技术的演进过程逐一的介绍给大家!就像现在没人用OSI七层参考模型,但我们网络的第一课永远是OSI七层参考模型一样!