要想了解二层数据交互先了解什么是MAC地址表,ARP表。
什么是MAC地址表?
交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上。MAC地址表存放于交换机的缓存中。动态MAC地址存在老化时间(隔一段时间收不到该MAC地址帧,则从表项中删除该条目。思科华为华三锐捷默认均是300s也即5分钟,可自定义老化时间)。

老化时间以华三交换机为例
什么是ARP地址表?
ARP:ARP协议是工作在网络层(当然也有人说ARP是工作在链路层,但是我更倾向其工作在网络层)的协议,它是一张目标IP地址和目标MAC的映射关系表,ARP负责将IP地址解析为MAC地址。其实就是一个对目标MAC进行寻址的过程。ARP缓存表也是存放在buffer中,也存在老化时间(H3C华为默认老化时间20min,思科默认240min,锐捷默认60min,均可自定义)
ARP的学习过程:通过发送ARP请求(arp探测包),对方收到后回个ARP应答,通信无误后各自刷新自己的ARP缓存表。

ARP表:业务IP对应的MAC地址、MAC学习到的源接口信息(从哪个接口学习到的mac))
值得注意:MAC地址表及ARP表大小是衡量交换机性能的关键技术指标。
别忘了我们主机也有arp表哦:

相关故障讲解
先上一张图:如图我们看到ARP表没有学习其他的ARP信息

只有本地网关+MAC对应关系,没有其他ARP上来
提问:看不到业务的ARP就可以判断业务不通吗?
答案当然是否定的!
举个事例说明:
现象:有一次割接操作中断业务,割接完成后查看业务是否恢复(查arp表并进行ping测试),惊讶的发现所有业务arp均没有上来!
排查过程:1、怀疑自己的配置有问题,查了好些时间,问过厂家配置是正确的。
2、怀疑是网关设备出bug了,但是其他捆绑口的业务都是正常的,这种bug有点奇怪。
3、回退割接,业务上线正常,能看到arp,ping通。
4、继续割接步骤,因为之前遇到过没有学习到arp,通过ping测首包触发arp学习的前例(没有首包去触发进行arp请求,导致网关设备上学习不到arp)。So,我在网关设备上操作–带网关源ping业务,居然能ping通,然后再返回去查看arp表,arp信息也学习到了。
上述案例说明:在arp缓存表里没有看到相应IP及MAC映射条目,不代表业务不正常,这时候ping有可能是通的,进行ping操作后arp就学习到了。(这种现象一般发生在思科设备上,比如我这次割接网关设备Cisco ASR9K)
对网络工程技术或者Python编程感兴趣的可以加个关注,我会持续发布相关技术文章,和大家一起交流学习。