如果在两台设备之间配置LACP,但是中间存在一台交换机,这个时候就会看到LACP协商不起来。通过抓包发现LACP报文不能被转发,LACP属于慢速协议,经过对IEEE 802.3 资料查询,加上实验对比,最终破解。

慢速协议不被转发不是因为它独特,而是因为它和其他二层协议一样,类似stp,cdp等,都是在交换机收到之后,学习源mac并对比了目的mac之后就会去拆pdu,如果是带有目的ip的就会交给三层进行单拨或者组播。而慢速协议、stp和cdp类报文都是在拆出来pdu之后就直接交给cpu处理了,也就是说在二层之后就没有三层,直接被处理了。
那么慢速协议中的lacpdu被拆出来后直接进行对比,而不进行转发。发现中间交换机没有配置lacp所以协商不起来。
能处理lacp的交换机定然不会转发这种包,但是傻瓜和hub可就截然不同了,他们两个会转发lacpdu。如果使用gns3里面的hub和以太网交换机进行中间接,并抓包就会看到两边都有包透传过来了。可是,为什么没有写上起来呢?原因是lacpdu包被设定为单链路,p2p的传送类型(在ieee 802.1 中能查到)。如果一个接口上收到多个对端的lacpdu,那么就会出乱。这时候我们如果将参与lacp的端口都变成一个,那么就会协商起来。
为了更进一步论证单链路,我们可以将路由器四个口,通过bridge 组变成两个简单的桥。然后两两配对加入到bridge组中,制造出单链路。这个时候lacp就能协商起来。