本文主要是介绍Ensp实验随心记——ARP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 基础ARP实验
- ARP代理实验
有兴趣交流学习就进QQ群吧。532593532
基础ARP实验
实验拓扑
配置PC1(192.168.10.100 255.255.255.0)
配置R1 GE0/0/1口
[R1]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.10.254 24
查看PC1 ARP缓存表:
PING 192.168.10.254
查看PC1 ARP缓存表:
抓包:
可以看到ARP请求报文和ARP响应报文。
ARP请求报文看到帧头源地址是PC1的MAC地址,目的地址是全F进行广播。ARP携带了PC1的源IP地址、请求的目的IP地址、PC1的源MAC地址、请求的目的MAC地址(设为全F或者全0)。
ARP响应报文告知了PC1:我的IP地址、MAC地址。
最后双方都有了彼此的MAC地址和IP地址对照。
如果请求的目的IP地址与自己不是同一网段呢?
配置PC1(192.168.10.100 255.255.255.0 192.168.10.254)
配置PC2(192.168.20.100 255.255.255.0 192.168.20.254)
配置R1 GE0/0/1 口
[R1]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.10.254 24
配置R1 GE0/0/2 口
[R1]int g 0/0/2
[R1-GigabitEthernet0/0/2]ip add 192.168.20.254 24
PC1 PING PC2
PC1获得的是网关的MAC地址。ARP报文不能穿越路由器,不能被转发到其他广播域。
PC2获得网关的MAC地址。
在G0/0/1口抓包:
在G0/0/2口抓包:
如此便可通过获得网关MAC地址后进行不同网段通信。
ARP代理实验
同一网段、不同物理网络上的计算机之间,可以通过ARP代理实现相互通信。
配置PC1(192.168.10.100 255.255.0.0 )
配置PC2(192.168.20.100 255.255.0.0 )
配置R1 GE0/0/1 口
[R1]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.10.254 24
配置R1 GE0/0/2 口
[R1]int g 0/0/2
[R1-GigabitEthernet0/0/2]ip add 192.168.20.254 24
PC1 PING PC2:
开启ARP代理
[R1]int g 0/0/1
[R1-GigabitEthernet0/0/1]arp-proxy enable
PC1 PING PC2:
在G0/0/1口抓包:
查看PC1 ARP缓存表:
其实这里获得的192.168.20.100的MAC地址是R1的G0/0/1口的MAC地址。
PC2 PING PC1:
在G0/0/2口抓包:
为什么会这样?
因为在G0/0/2口并没有开启ARP代理:
[R1]int g 0/0/2
[R1-GigabitEthernet0/0/2]arp-proxy enable
PC2 PING PC1:
在G0/0/2口抓包:
其实这里获得的192.168.10.100的MAC地址是R1的G0/0/2口的MAC地址。
查看R1的ARP缓存表:
没有配置网关,又由于路由器是隔绝广播域的,所以即使两端PC是同一网段(也必须是同一网段否则一直在寻找网关的MAC地址。),也PING不通对方。只有开启了ARP代理,路由器收到这样的请求,会查找路由表,如果存在目的主机的路由表项,路由器将会使用自己的连接源主机的一端的接口的MAC地址来回应该ARP Request。
这篇关于Ensp实验随心记——ARP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!