通过ARP协议实验,设置错误的IP和MAC地址的静态绑定项目,会使得两台主机之间无法通信,而删除该项目后可恢复通信,分析其原因。

简介: 通过ARP协议实验,设置错误的IP和MAC地址的静态绑定项目,会使得两台主机之间无法通信,而删除该项目后可恢复通信,分析其原因。

名词解释


ARP协议是一种解决网络层地址(IP地址)和链路层地址(MAC地址)之间映射的协议。静态绑定是指手动设置一个IP地址与MAC地址的对应关系,以避免每次通信都要通过ARP协议来获取对应关系。


原因分析


当两台主机需要进行通信时,源主机需要知道目标主机的MAC地址才能够将数据包发送到目标主机。为了获取目标主机的MAC地址,源主机会根据目标主机的IP地址查询自己的ARP缓存表,查找该IP地址对应的MAC地址。

如果将错误的IP和MAC地址进行静态绑定,那么当源主机需要与目标主机通信时,源主机会根据目标主机的IP地址查询自己的ARP缓存表,但此时查找到的MAC地址已经是错误的了,因此无法建立正确的链路层连接,进而导致通信失败。

如果删除了该错误的静态绑定项目,当源主机再次需要与目标主机通信时,会重新进行ARP请求以获取正确的MAC地址,ARP请求会被广播到整个局域网中,目标主机会收到ARP请求并向源主机回复一个ARP响应,包含自己的MAC地址。此时,源主机收到正确的MAC地址之后,就可以建立正确的链路层连接了,从而恢复通信。


实验步骤:


  1. 准备两台主机,例如A和B,并在同一网段中。
  2. 打开A主机的命令行窗口,在命令行中输入“arp -a”命令,查看A主机的ARP缓存表。此时应该能够看到系统中已有的静态绑定项目。
  3. 在A主机上添加一个错误的静态绑定项目,例如将B主机的IP地址与一个不存在的MAC地址(比如00-11-22-33-44-55)进行绑定。可以使用如下命令进行绑定:
arp -s <B主机IP地址> 00-11-22-33-44-55
  1. 再次输入“arp -a”命令查看ARP缓存表,此时应该可以看到新添加的静态绑定项目。
  2. 尝试在A主机中ping B主机的IP地址,例如:
ping <B主机IP地址>
  1. 此时可以看到ping命令一直超时,说明A主机无法与B主机通信。
  2. 在A主机上删除刚才添加的错误静态绑定项目,可以使用如下命令:
arp -d <B主机IP地址>
  1. 再次输入“arp -a”命令查看ARP缓存表,确认错误的静态绑定项目已经被删除。
  2. 再次在A主机中ping B主机的IP地址,可以看到此时ping命令已经能够正确响应,说明通信已经恢复。


总结


错误的静态绑定项目会导致主机不能正确获取目标主机的MAC地址,从而无法建立正确的链路层连接,进而导致通信失败。

相关文章
|
2天前
|
缓存 网络协议 网络架构
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
|
1月前
|
网络协议 数据格式
|
2月前
|
存储 缓存 网络协议
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
|
2月前
|
存储 缓存 网络协议
|
2月前
|
Shell Docker 容器
mac终端命令补全设置(docker 命令补全)
mac终端命令补全设置(docker 命令补全)
46 0
MAC常用的快捷键和快捷键设置入口
MAC常用的快捷键和快捷键设置入口
|
3月前
Mac系统下Qt程序图标设置方法
Mac系统下Qt程序图标设置方法
25 0
|
3月前
|
Python
pytho3 urllib urllib3 获取本地ip地址和mac地址发送post到指定http服务器
pytho3 urllib urllib3 获取本地ip地址和mac地址发送post到指定http服务器
32 0
|
网络协议 网络架构 Windows
MAC本遭遇ARP攻击的处理办法
windows环境下,如果遭遇ARP攻击,解决方法很简单:“360安全卫士”或"QQ软件管理"的实时防护里,都有ARP防护功能(默认是关闭的),只要启用就行了。但是Mac本上,就没这么方便了,先大概说下ARP攻击的原理:我们在局域网中访问外网时,总是要经过网关才能出去,IP设置里网关设置的是一个具体的ip4地址(比如192.168.1.1),但是IP地址每台机器通常是可以随便设置的(只要不跟局域网中的其它机器冲突),这是一个逻辑上的虚拟地址,只有网络设备(比如网卡)本身的静态MAC地址,这个才是物理真实地址,所有对IP的访问,最终必须定位到MAC物理地址,才能直接跟物理设备通讯。
980 0
|
1月前
|
开发工具 git iOS开发
Mac 安装软件包管理工具Homebrew
Mac 安装软件包管理工具Homebrew