单网卡配置双IP后的交换机转发及ARP注册疑问
单网卡配置双IP后的交换机转发及ARP注册疑问
这个问题问到点子上了,刚好涉及以太网转发和ARP协议的核心逻辑,我给你一步步捋明白:
ARP注册环节:同一个MAC对应两个IP
当你的单网卡配置了两个IP地址后,只要其他主机发起针对这两个IP的ARP请求(比如要和这两个IP通信时),你的主机会用同一个MAC地址分别回复这两个ARP请求。也就是说,对方主机的ARP缓存里会生成两条条目:IP地址1 -> 你的MAC、IP地址2 -> 你的MAC——没错,都是同一个MAC绑定不同的IP。交换机的转发逻辑:只认MAC,不管IP
交换机是工作在数据链路层的设备,它的转发完全依赖MAC地址表(记录MAC地址和对应端口的映射)。不管目标IP是哪一个,只要帧的目标MAC是你的网卡MAC,交换机就会直接把帧转发到你的主机所在的端口。它根本不关心帧里面的IP地址是什么,也不需要区分这是给哪个IP的流量——反正这个MAC对应的端口就是你的主机,发过去就对了。主机接收后的处理:IP层区分目标
当你的网卡收到交换机发来的帧后,因为目标MAC是自己的,就会把帧剥掉数据链路层头部,把IP数据包交给上层协议栈。这时候协议栈会查看IP头部的目标IP地址,判断这个数据包是发给本机的哪个IP的,然后把它交给对应的进程或者应用处理。因为两个IP都属于本机,协议栈完全能准确区分,不会出现混淆的情况。
简单总结一下:交换机只负责把目标MAC是你的帧送到你的端口,剩下的“区分是给哪个IP”的活儿,全由你主机的IP协议栈来搞定,两者分工明确,不会有问题~
备注:内容来源于stack exchange,提问作者Iftikhar Ali




