vPC&L3

一、L2&L3独立决策进程

在设计L3 with vPC时,vPC domain和上行链路之间不要想要通过建立vPC,并使用SVI建立动态路由邻居,这在某些情况下(独立决策进程的不兼容性)会触发防环机制。例如上图中,通过SVI建立邻居,收敛路由后路由表中存在两条负载路由,如果下一跳选择secondary中的SVI,于是三层封装成包,二层封装成帧,而二层的负载是根据HASH来的,所以扔向vPC中的任何一条链路都有可能,假如扔给secondary则可以正常传输,假如扔给primary,那么primary收到报文后解封装发现dst IP是secondary的,于是封装成帧通过peer link发送给secondary,到达secondary后发现路由到另一个SVI,继续封装成帧,这时候根据vPC防环机制,阻止该数据包发往仍和Member Port。所谓独立决策进程的不兼容性是指:

  • L2 Port-Channel的负载机制:根据HASH算法来进行均衡负载。

  • L3 ECMP的负载机制:根据路由表下一跳进行均衡负载。

二、vPC&L3网络设计

1、常规网络设计

L3和vPC的最佳网络设计就是三层网络直接采用L3链路,这样就避免了触发vPC防环机制。Backup Routing Path则推荐采取vPC间直连L3链路,次推荐vPC间建立Port-Channel然后起SVI建立L3邻居,最不推荐的就是通过起SVI通过走Peer Link建立L3邻居。

2、DCI网络设计

DCI Design 1:DC1和DC2各建立各自的vPC,中间通过租用运营商L2线路,捆绑Port-Channel,DC1和DC2下挂的SVI建立L3邻居。

DCI Design 2:DC1和DC2各建立各自的vPC,中间通过租用运营商L2线路,捆绑Port-Channel,DC1和DC2的DCI交换机上起L3链路建立邻居。

三、FHRP&vPC

思科针对vPC环境下的FHRP做了优化:数据层面双活。数据层面均转发流量,控制层面则仍然由Active来响应ARP Request。vPC环境下因为数据层面双活,所以不需要做tracking,而且如果做了tracking,一旦上行链路down,那么SVI就会被suspend,L3流量没什么问题,但是L2就有问题,因为流量指向vMAC帧,需要通过Peer Link来转发该帧,这就触发了vPC防环机制。

配置建议:

  • 只要启用FHRP,就必须对应接口下禁止IP重定向(即no ip redirect)。

  • 不建议修改vPC环境下的FHRP timers。

  • 如果需要建立路由邻居,请passive SVI,防止Peer Link建立L3邻居。

  • 建议重分布直连到OSPF中。