网络之MAC地址表学习

MAC地址表是在交换机中记录局域网主机和对应接口关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。

MAC表一般包含动态MAC地址、静态MAC地址和黑洞MAC地址。

动态MAC地址:由接口通过报文中的源MAC地址学习获得,表项可老化,默认老化时间为300s,可以通过命令修改老化时间,老化时间到后,会清除学习到的动态MAC地址。

静态MAC地址:由用户手工配置,不会老化,接口和MAC地址静态绑定后,其他接口收到目的MAC是该MAC地址的报文将会被丢弃,但是一个接口和MAC地址静态绑定后,不会影响该接口动态MAC地址表项的学习。

黑洞MAC地址:设备收到源MAC或者目的地址是该MAC地址的报文将会被丢弃。

接下来,我们将通过实验去配置、理解上述三种类型的MAC地址,网络拓扑如下图所示:

1.动态MAC地址表项:网络拓扑在初始化,mac地址表没有任何表项,只有数据包经过后,才会动态学习到mac地址和接口的对应关系

我利用PING命令,从PC1 ping PC2,我们就可以在MAC表里看到PC1和PC2的MAC地址以及对应的接口了。现在我们看到的就是学习到动态MAC地址表项,Type 为 dynamic

2.静态MAC地址表项:接下来,我们将PC2的MAC地址配置成静态MAC地址,再看一下表项,我们可以看到,在mac地址表中出现了静态mac地址表项,而且已经将PC2的mac地址从动态表项中移除。

假如我们将Client2从接口2移到接口4,并在原来接口2上,重新接入一台MAC地址不同的客户端,我们来通过抓包看一下Client2能不能发送和收到数据包。

首先从Client1 ping Client2

接口G0/0/1抓包结果

接口G0/0/2抓包结果

接口G0/0/4抓包结果

由抓包结果可知,目的地址是静态MAC表项的,将从绑定的端口(G0/0/2)发送出去,在G0/0/4端口上被丢弃,所以G0/0/4收不到该ICMP Request包

而从Client2 ping Client1时

接口G0/0/4抓包结果

接口G0/0/1抓包结果

由该抓包结果可知,G0/0/4接口可以接受源地址为静态MAC地址的数据包,并且可以到达G0/0/1口

通过上述两个抓包实验,我们验证了,将MAC地址和接口绑定后,目的地址为该MAC地址的只能有绑定接口转发,其他非绑定接口将会丢弃;而针对源地址为该MAC地址的数据包,非绑定接口能够接收。

3.黑洞MAC地址:我们将Client3的MAC地址设定为黑洞MAC地址,可以看到表项出现了blackhole类型的mac地址,我们再通过抓包看一下实验效果。

从Client3 ping Client1   G0/0/3接口抓包如下:

接口G0/0/1接口如下:

从上述抓包结果我们可以看到,针对源地址是黑洞MAC的数据包,设备直接丢弃,所以G0/0/1收不到ARP数据包

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章