文章目录

  • 基础ARP实验
  • ARP代理实验


基础ARP实验

实验拓扑

enspwireshark抓包没有报文显示 ensp抓包实验报告_华为


配置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缓存表:

enspwireshark抓包没有报文显示 ensp抓包实验报告_ensp_02


PING 192.168.10.254

查看PC1 ARP缓存表:

enspwireshark抓包没有报文显示 ensp抓包实验报告_网络_03


抓包:

可以看到ARP请求报文和ARP响应报文。

enspwireshark抓包没有报文显示 ensp抓包实验报告_ensp_04


ARP请求报文看到帧头源地址是PC1的MAC地址,目的地址是全F进行广播。ARP携带了PC1的源IP地址、请求的目的IP地址、PC1的源MAC地址、请求的目的MAC地址(设为全F或者全0)。

enspwireshark抓包没有报文显示 ensp抓包实验报告_网关_05


ARP响应报文告知了PC1:我的IP地址、MAC地址。

最后双方都有了彼此的MAC地址和IP地址对照。

enspwireshark抓包没有报文显示 ensp抓包实验报告_华为_06


如果请求的目的IP地址与自己不是同一网段呢?

enspwireshark抓包没有报文显示 ensp抓包实验报告_路由器_07


配置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报文不能穿越路由器,不能被转发到其他广播域。

enspwireshark抓包没有报文显示 ensp抓包实验报告_ensp_08


PC2获得网关的MAC地址。

enspwireshark抓包没有报文显示 ensp抓包实验报告_路由器_09


在G0/0/1口抓包:

enspwireshark抓包没有报文显示 ensp抓包实验报告_ensp_10


在G0/0/2口抓包:

enspwireshark抓包没有报文显示 ensp抓包实验报告_华为_11


如此便可通过获得网关MAC地址后进行不同网段通信。

ARP代理实验

同一网段、不同物理网络上的计算机之间,可以通过ARP代理实现相互通信。

enspwireshark抓包没有报文显示 ensp抓包实验报告_网关_12


配置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:

enspwireshark抓包没有报文显示 ensp抓包实验报告_路由器_13


enspwireshark抓包没有报文显示 ensp抓包实验报告_ensp_14


开启ARP代理

[R1]int g 0/0/1
[R1-GigabitEthernet0/0/1]arp-proxy enable

PC1 PING PC2:

在G0/0/1口抓包:

enspwireshark抓包没有报文显示 ensp抓包实验报告_华为_15


查看PC1 ARP缓存表:

其实这里获得的192.168.20.100的MAC地址是R1的G0/0/1口的MAC地址。

enspwireshark抓包没有报文显示 ensp抓包实验报告_华为_16


PC2 PING PC1:

在G0/0/2口抓包:

enspwireshark抓包没有报文显示 ensp抓包实验报告_网关_17


enspwireshark抓包没有报文显示 ensp抓包实验报告_路由器_18


为什么会这样?

因为在G0/0/2口并没有开启ARP代理:

[R1]int g 0/0/2
[R1-GigabitEthernet0/0/2]arp-proxy enable

PC2 PING PC1:

在G0/0/2口抓包:

enspwireshark抓包没有报文显示 ensp抓包实验报告_网络_19


其实这里获得的192.168.10.100的MAC地址是R1的G0/0/2口的MAC地址。

enspwireshark抓包没有报文显示 ensp抓包实验报告_路由器_20


查看R1的ARP缓存表:

enspwireshark抓包没有报文显示 ensp抓包实验报告_路由器_21


没有配置网关,又由于路由器是隔绝广播域的,所以即使两端PC是同一网段(也必须是同一网段否则一直在寻找网关的MAC地址。),也PING不通对方。只有开启了ARP代理,路由器收到这样的请求,会查找路由表,如果存在目的主机的路由表项,路由器将会使用自己的连接源主机的一端的接口的MAC地址来回应该ARP Request。