要想了解二层数据交互先了解什么是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编程感兴趣的可以加个关注,我会持续发布相关技术文章,和大家一起交流学习。