LACP抓包分析结果
今天利用wireshark来抓LACP包,分析的结果如下:
两台交换机:分别是IP-COM/G3224T、H3C/S5024E;
MAC:IP-COM的是00B0-4C00-079E,H3C的是000F-E2B9-B221;
汇聚组选择:IP-COM是选择1、2、3作为汇聚组,华三的是10、12、14作为汇聚组。
(一) 、先将连接到PC机的网线连接到IP-COM的交换机,在PC上登陆界面,然后配置LACP。
(二) 、然后打开WireShark,在过滤器中输入slow关键词。
(三) 、此时将1-10端口相连,再将连接PC机的网线连接到华三交换机。进入界面配置LACP。(将1-10端口相连是想看到当华三的配置完后,IP-COM开始和华三的相应端口进行交互)
(四) 、再将2-12端口相连。(这个顺序不是固定的,随你改变)
注:这边还可以做个实验看看如果配置玩IP-COM的LACP后从汇聚组的端口中是否会发送报文?经过实验证明不接网线的话汇聚口不会输出任何信息!??
抓到的包如下:
图1、正常情况下抓包结果
先提两点重要的东西:【1】、当这样连接线路时:连接PC的网线连接着华三的交换机6口,取两根网线分别连接到华三与IP-COM的1和2端口,然后LACP没有打开,这样在PC上输入IP-COM的IP地址192.168.0.1,是进不去页面的。为什么呢?因为在IP-COM里面这种连线是形成一个环路,信息从1端口进去就直接从2端口出来了,根本不进入交换芯片以及CPU。但是如果打开汇聚组,情况就不同了,因为这时1和2端口是作为同一个端口的这样就不会形成环路了。【2】、博通芯片有一个特点就是当你使用出入镜像时你抓包是抓不到华三这边发出的LACP数据包的,具体原因是因为芯片的特点,这点有待阅读博通的芯片资料来解答。
抓包结果分析:从上图中需要注意的几个字段:Time、Source、Destination、Info。首先是Time参数,可以从中看出:刚开始处于协商的时候,从109-110-111-111这段时间都是处于协商过程,很短的时间。协商成功后就是双方都确认信息后就每隔30秒的时间来发报文,这些待会有更清楚的说明中可以看出来。然后是Source参数,这时交换机的MAC,因为我们知道IP-COM的MAC是00B0-4C00-079E,交换机规定了每隔端口的MAC是在原MAC基础上加上1,所以有Port1是00B0-4C00-079F,同理Port2是00B0-4C00-07A0。然后是Destination,就是目的地,LACP规定了就是Slow Protocols。另外的Info则是说明本端与对端信息还有端口号。(数据包从谁发出就是本端,另外一个接收的就是对端)
看完它们的信息后我们在看看LACP包的内容,这时第一个LACP包的内容:
这是第二个LACP包的内容:
这是第三个LACP包的内容:
这是第四个LACP包的内容:
现在我们来分析这些包是什么的关系?12与2端口的也一样,以后我们不会这么完整的拿出整个截图,第一次就给了个全图!
结合我的《802.1ax之LACP学习笔记》这篇文章,我们先就第一个图来说,其他很类似。
首先再Ethernet II中有三个重要的字段:
Destination: Slow-Protocols (01:80:c2:00:00:02);
Source: 00:b0:4c:00:07:9f (00:b0:4c:00:07:9f);
Type: Slow Protocols (0x8809);
其次是Slow Protocols subtype:LACP(0x01)
该字段是唯一的。
LACP version Number:0x01;
Actors Information:0x01;
Information length:0x14;
Actor System Priority:32768;
Actor System:00:B0:4C:00:07:9E;
Actor Key:25;
Actor Port Priority:32768;
Actor Port:1;
Actor State:0x45(01000101);------Activity,Aggression,Defaulted!
这里对照帧的定义可以看出:
.... ...1 = LACP Activity: Yes
.... ..0. = LACP Timeout: No
.... .1.. = Aggregation: Yes
.... 0... = Synchronization: No
...0 .... = Collecting: No
..0. .... = Distributing: No
.1.. .... = Defaulted: Yes
0... .... = Expired: No
Reserved:0;
Partner Information:0x02;
Information length:0x14;
Partner System Priority:0;
Partner System:00:00:00:00:00:00;
Partner Key:0;
Partner Port Priority:0;
Partner Port:0;
Partner State:0;
Reserved:0;
Collector Information:0x03;
Collector Information length:0x10;
Collector Max Delay:0
Reserved:0;
Terminator Information:0x00;
Terminator length:0x00;
Reserved:0;
这里提一下帧的特点:
• 目的MAC为0180C2000002。
• 不能带tag。
• 类型/长度域为0x8809。
• 子类型域值为1。
• 帧长固定为128字节,保留字节全部填0。
但是在第二张图中帧有变化,主要变化是在本端与对端的状态信息上:
Actor State:0xc5(11000101);------Activity,Aggression,Defaulted,Expired!
Partner State:0x02(00000010);-------Timeout;
到三个报文时两者已经建立连接,这时对端的信息都已经获得了,所以:
Actor State:0x0d(00001101);------Activity,Aggression,Synchronization!
Partner Information:0x02;
Information length:0x14;
Partner System Priority:32768;
Partner System:Hangzhou_b9:b2:21 (00:0f:e2:b9:b2:21);
Partner Key:1;
Partner Port Priority:32768;
Partner Port:10;
Partner State:0x0d(00001101);------Activity,Aggression,Synchronization!
Reserved:0;
等到第四张图就是两者可以互通信息了,所以二者的状态变了:
Actor State: 0x3d (Activity, Aggregation, Synchronization, Collecting, Distributing);
Partner State: 0x3d (Activity, Aggregation, Synchronization, Collecting, Distributing);
所以可以看出整个过程了!。。。。。。。。。。。。。。。(需要补充)
(1)、将两个交换机正确连接好;
(2)、然后将其中一根网线断掉,等待两分钟,再将该网线接上。
其实这个实验做都不用做就可以知道结果。当断开该网线时必定该端口的LACP包没有了,再接上时就会重复刚才实验一出现的通信顺序来发LACP包。所以这个实验只是验证自己的想法而已!
(1)、正确配置好两个交换机后开始抓包;
(2)、将华三的LACP关掉,就时删除其中的汇聚组;
(3)、再查看抓到的包出现什么信息!
抓到的包如图:
我是在2164个包发出去之前关掉华三的LACP功能的。所以当时在30秒之内时还是会再发出一个包,所以2164与2177的包时完整状态的包。之后的2204开始的包就是下面的状态:、
这种包连续发了三个。之后就变成这种的了:
然后是12端口接收的包,和10端口的一模一样!
分析上面的包可以看出刚开始本端会发出一个完整的状态包,但是发现对端不响应了,于是连续发出三个超时包,还是没响应,最后只能配置成默认包了。12端口收到的包与此一样!等两个端口再也没有反应后只能全都发成默认包了!
至此最后的总结有待进一步改进!
通过三个实验再结合之前学习的LACP,我们可以得出以下结论:
1、 接收状态机会根据对端发送过来的帧来判断对端端口是否可用了,而且从实验三我们可以知道若是与对端未协商好,则本端会继续发送,然后超时,之后就是执行默认状态操作。
2、 LACP协议的整个流程是:本端发送一个默认状态的帧给对端----本端发送一个expired帧(对端状态是Timeout)-----本端再发送一个同步帧(此时对端也正在同步即协商)-----协商成功本端发送一个能够分发与收集帧(对端的状态也是这样)-----之后本端每隔30秒发送一个帧给对端,确认端口的状态没有变化。
3、 在LACP协议里面,和6个状态机相紧密结合的是对本端的状态信息这一字节。从里面分析出某位的状态才能决定是否置NTT与Selected的状态,才能决定以后的帧的发送以及帧的内容。
属于原创,谢绝盗版!转载请注明出处!
小兀
2012.08.18