peer-link失效之后,vpc是swtich会检查自己是主还是备。如果是主的话,直接转发数据。
如果是备,开始做hold time时间的等待,之后5s内(keepalive 超时),则被设备认定主设备失效了。备设备变成主。
如果在keepalive timeout时间内可以收到keepalive消息,则双活。备设备把所有的vpc port都down掉。等待peer-link的恢复。
这时候(被设备因为peer-link down而把vpc port fown掉),如果主设备down了,流量整个都会中断。
这时候可以用auto recovery 解决。
如果配置了auto recovery之后,keepalive的消息是随时监控的,不取决于hold timeout和keepalive timeout
双活问题:
如果peer link和keepalive link都down掉了,会进入双活的状态
在一般的交换机上面,进入双活之后,2台设备会从vpc member port发送独立的bpdu报文,下方的设备会从同一个portchannel收到2个独立的bpdu。
在错过90s之后,这个porthcannel会err-disable,这个vpc就中断了。
在N5K,和7K上面,不具备这种检查机制。虽然portchannel不会down掉,但是由于vpc配置和spt配置不同步,会导致各种各样的问题。
阻止双活,建议客户配置冗余的keepalive。
当只有一台设备工作正常,vpc中断的情况:
当由于断电或者硬件问题,导致起重一台设备起不来了。由于做不了配置已执行检查,vpc整个都是起不了的。
在NX-OS 5.2之前没有auto recovery, 可以采取的操作有以下:
1 尝试尽快回复起不来的设备
2 尝试把vpc配置 删掉
vpc keepalive故障排查:
只有在peer -link失效的时候,系统才会监控keepalive消息。
keepalive消息是靠cpu产生的,cpu high或者copp可以会对这个报文产生影响。
因为是udp报文,必要的检查ip可达性是有必要地。
可以检查下路由是不是可达。
一般是在peer-link中断,或者vpc设备down的情况下需要做ts。
可以抓以下信息
show int
show vpc
show port-channel summary
show spanning-tree
show mac-address
show routint vrf all
sh ip arp vrf all