问题
在局域网中我们经常遇到IP地址冲突的问题。
因此反思一个问题,如果在局域网中,有两台及以上MAC地址相同的计算机会发生什么问题?
原理
MAC地址,即计算机网卡的物理地址,工作在第二层数据链路层,用来确认网络设备位置的位址。
数据包传送的关键是将目标节点的IP地址映射到中间节点的MAC地址。
IP地址与MAC地址的映射要通过ARP地址解析协议来完成,它可将网络中的IP地址映射到主机的MAC地址。
当有发送给本地局域网内一台主机的数据包时,交换机首先将数据包接收下来,然后把数据包中的 IP 地址按照交换表中的对应关系映射成 MAC地址,然后将数据包转发到对应的 MAC地址的主机上去。
寻址过程
APR协议的工作过程是这样的,比如主机A的地址为10.0.0.5,与主机B通信,主机B的地址为10.0.0.6,为了知道主机B的MAC地址,这时主机A发出了ARP广播请求,询问“谁的IP地址是10.0.0.6”,主机B收到广播请求之后,单播回复“我的MAC地址是aa-bb-cc-dd-ee-ff,我的IP地址是10.0.0.6”,接下来就可以相互通信了。
MAC重复
在上述寻址当局域网通讯过程中,如果有主机C的IP地址为10.0.0.7,MAC地址同样是aa-bb-cc-dd-ee-ff,当主机A想要将包发给B的时候,因为先问的是IP地址,所以即使主机C和主机B的MAC地址相同,但因为IP地址不同,所以在应答时同样将包顺利的送给了主机B而不会错误的送给主机C。
问题解决
MAC地址重复或冲突,可以理解为一张网卡上配置了2个IP地址,并不影响各个IP的逻辑通讯。
其他迷思
在同一局域网中,MAC地址重复或者冲突,仅在DHCP时会产生问题。
两台相同MAC地址的主机可能会从DHCP服务器中获取到相同的IP地址,从而产生IP冲突。