Smart Link
这个协议是 H3C 、华为所私有的协议,其协议主要解决的就是双上行端口出现故障后的端口切换。(注意:不可以和 stp 、vrrp 共同使用,配置时需要在接口关闭 stp 服务,同时只能运行一种),简单讲讲这个协议吧,内容也不多主要就是知识面的扩展而已。具体的使用场景,就是那种需要高度链路冗余的场景,例如金融、银行、数据中心那种地方。
工作原理
双上行链路的组网示意图如下,我相信很多做冗余的方案都会有这种组网方式,对于 sw3 来说上行有两条线路,port1 为主端口 port2 为备份端口,当出现故障了会及时切换。
在某种场情下,会使用 smart-link 来替代 STP ,因 STP 协议需要在沿途所有设备上都配置,配置较为繁琐,使用 smart-link 把需要冗余的端口给检测起来就可以实现故障切换。
在 sw1 上配置 smart-link 后,会配置一个灵活链路组,两条链路一条用于转发数据,另一条处于阻塞状态。用于转发数据的端口或者链路聚合组称为主端口,另一条阻塞的为备份端口组。当主端口故障后会发送 Flush 报文,这个报文和 STP 中的 tc 报文类似,为了能够及时的感受网络拓扑中的链路变化,smart-link 会发送 Flush 报文通知其他设备进行地址刷新,把数据转发的流量切换到备份端口。但是由于此协议是私有协议,所以只有 h3c 、华为设备可以识别,其他不识别的设备只能通过流量来更新 MAC 地址表。速度远远不及接收报文的设备刷新的快。
建议在配置时不要开启抢占模式,也就是当主接口故障后,备份接口顶替了主接口的工作。后面若主接口恢复后,会把数据转发的工作再抢回去,为什么不建议开启呢,因为 smart-link 的切换时间极其短,若线路是出现了网络波动,那么这样频繁的抢占会影响原有网络的稳定性。所以在出现切换后,我们先去排查故障问题,查到了故障问题点后解决了,再人工手动把接口切换回来,确保业务的稳定性。
Monitor Link
这个会跟 smart-link 一起进行使用,来提供更高的线路冗余能力,smart-link 只是冗余一主一备的端口,且只是检测本机自身端口是否故障来判断链路是否故障。这里还是会讨论一种情况出现,就是上行设备的上行链路故障的话本机还是没有任何察觉的。
如图所示在 sw4 和 sw2 之间的线路出现故障时,对于 sw3 来说设备本身的 smart-link 是没有任何变化的,但是根据数据转发的路径,当 sw3 把下面终端设备全都转发给 sw4 时,sw4 是无法继续正常转发数据的,所以这个时候网络已经出现故障了,但是仅凭 smart-link 是无法辨别出来的。
工作原理
按上图来举例,sw4 的 port3 接口出现了故障,但是下连 sw3 的 port 4 是正常的,且两个设备之间的链路也是正常的,但是数据是无法进行正常传输的。在 sw4 上配置一个 Monitor LInk 端口组,绑定 port3 和 port4 为一个端口组,当端口组内有一个接口的状态出现了变化,那么将会把 UpLink 端口的状态同步给 DownLink 端口。简单来说就是当 sw4 上的 port3 和 port4 绑定称为 Monitor Link 组后,当 port3 的接口就是 UpLink 端口,出现了故障变成了 down 的状态,那么设备会马上把 DownLink 端口 port4 的端口也置位 down 的状态。 UpLink 接口 配置了 Monitor Link 协议的设备,上行的接口被称为 Uplink 接口,也就是图示中的 sw4 的 port3 端口。该端口的状态为一个主状态,当此端口状态出现变化时,会强制同步 DownLink 接口的状态和此接口一致。 DownLink 接口 设备的下行端口被称为 DownLink 端口,一般此端口的状态会跟 Uplink 接口的状态保持一致,若此接口 down 了,并不会去影响 Uplink 接口的状态。所有上行接口 down ,下行接口就会 down ,有一个上行端口 up ,下行端口就 up 了。
一般都会为了保证链路的高效冗余,会结合两种协议一起使用,并且还会结合 vrrp 一起组网,虽然看起很很复杂,要配置好几个协议,但是链路的高度冗余让链路即使故障也不会应用业务。虽然都是单个接口的切换,也就是备份接口会阻塞,这时候配置两个不同业务流量,互为主备接口,这样就可以解决资源浪费的情况了。