[华为 ENSP 中 ARP 及 Proxy ARP：原理剖析与实战指南](https://blog.csdn.net/qq_69905261/article/details/151900570)
## 一、引言：ARP 与 Proxy ARP 为何是网络通信的核心枢纽？

        在网络世界中，设备间的通信就像一场复杂的 “地址接力赛”。ARP（地址解析协议）负责将 IP 地址翻译 成 MAC 地址，是二层网络与三层网络的 “翻译官”；而 Proxy ARP（代理 ARP）则在跨网段通信中扮演 “中间人” 角色，让未配置网关的主机实现 “跨域对话”。

**目录**

[一、引言：ARP 与 Proxy ARP 为何是网络通信的核心枢纽？](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t1)

[二、原理篇：从基础到进阶，逐层拆解核心机制](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t2)

[（一）ARP 基础原理：IP 到 MAC 的 “翻译密码”](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t3)

[（二）Proxy ARP 进阶原理：跨网段通信的 “善意欺骗”](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t4)

[三、实战篇：ENSP 模拟器全流程操作指南](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t5)

[原理概述](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t6)

[实验内容](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t7)

[实验拓扑](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t8)

[实验编址](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t9)

[实验步骤](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t10)

[1.基础配置](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t11)

[2.配置静态ARP](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t12)

[3. Proxy ARP](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t13)

[四、注意事项与常见问题排查](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t14)

[1. Proxy ARP 的局限性](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t15)

[五、结语：从原理到实战，筑牢网络通信基石](https://blog.csdn.net/qq_69905261/article/details/151900570?spm=1001.2014.3001.5506#t16)

## 二、原理篇：从基础到进阶，逐层拆解核心机制

### （一）ARP 基础原理：IP 到 MAC 的 “翻译密码”

        ARP 作为网络通信的基础协议，承担着将 IP 地址解析为 MAC 地址的关键任务 ，就像是网络世界中的翻译官，让不同设备能够 “听懂” 彼此的地址信息。它的核心功能在于通过广播请求和单播响应的方式，动态构建 IP 与 MAC 的映射表，即 ARP 缓存。

        想象一下，你身处一个大型写字楼，每个办公室都有一个房间号（IP 地址），但要真正找到这个办公室，你需要知道它在几楼、哪个区域（MAC 地址）。ARP 就像是写字楼的导览系统，当你知道房间号后，通过它就能找到对应的楼层和区域。

        在网络中，当设备需要发送数据时，它会先检查自己的 ARP 缓存中是否有目标设备的 MAC 地址。如果没有，就会发送一个 ARP 广播请求，这个请求就像是在写字楼里大声询问：“谁是 192.168.1.2（目标 IP 地址）？请告诉我你的 MAC 地址 。” 同一网段内的所有设备都会收到这个广播，但只有目标设备（IP 地址匹配的设备）会回复一个单播响应，告诉请求者：“我是 192.168.1.2，我的 MAC 是 00-0C-29-33-33-33 。” 这样，请求设备就会将这个 IP - MAC 映射关系存入 ARP 缓存，下次再与该目标设备通信时，就可以直接从缓存中获取 MAC 地址，无需再次发送广播请求 。

        华为设备可通过以下命令查看当前 ARP 表项，区分动态（D）和静态（S）条目：

```TypeScript
查看所有ARP表项<Huawei> display arp all 查看指定IP对应的ARP表项<Huawei> display arp ip-address 192.168.1.2 清除所有动态ARP表项<Huawei> reset arp dynamic
```

        在显示的结果中，我们会看到动态（D）和静态（S）条目。动态条目是通过上述的 ARP 请求 - 响应过程自动学习到的，它们具有一定的时效性，过了一段时间后如果没有再次使用，就会从缓存中删除。而静态条目则是管理员手动配置的，不会因为时间或其他因素而自动删除，通常用于一些需要固定 IP - MAC 映射关系的场景，比如网络中的关键服务器或者安全设备 。

        接下来，我们通过一个具体的工作流程来深入理解 ARP 的运作机制。

![|700x855](https://i-blog.csdnimg.cn/img_convert/f5fc5f7f84b95b5ce9b9530fa88faaa9.png)

        假设 PC1 想要 ping 通 PC2，当 PC1 准备发送 ping 请求时，它会先检查自己的 ARP 表中是否有 PC2 的 IP - MAC 映射。如果没有，PC1 就会发送一个 ARP 广播，这个广播包的源 IP 和源 MAC 分别是 PC1 自己的 IP 地址 192.168.1.1 和 MAC 地址 00 - 01 - 02，目标 IP 是 PC2 的 IP 地址 192.168.1.2，而目标 MAC 则是全 F 的广播地址 FF - FF - FF - FF - FF - FF，表示这是一个广播包，希望网段内所有设备都能收到 。

        当同网段的 PC2 收到这个 ARP 广播后，发现目标 IP 是自己的地址，于是就会回复一个单播 ARP 响应。这个响应包的源 IP 和源 MAC 是 PC2 的 IP 地址 192.168.1.2 和 MAC 地址 00 - 0C - 29 - 33 - 33 - 33，目标 IP 和目标 MAC 则是 PC1 的 IP 地址 192.168.1.1 和 MAC 地址 00 - 01 - 02 。PC1 收到这个响应后，就会将 PC2 的 IP - MAC 映射关系存入自己的 ARP 表中，同时 PC2 也会将 PC1 的 IP - MAC 映射关系存入自己的 ARP 表 。

        当 PC1 真正发送 ping 请求时，它会将三层的 IP 包封装在二层的帧中，此时目标 MAC 就是通过 ARP 解析得到的 PC2 的 MAC 地址。这样，数据帧就可以准确无误地发送到 PC2，实现了跨设备通信 。ARP 就像是网络通信中的基石，确保了数据在同一网段内能够准确地找到目标设备，为更高层的网络应用提供了可靠的基础 。

### （二）Proxy ARP 进阶原理：跨网段通信的 “善意欺骗”

        在网络环境中，我们常常会遇到一些特殊的场景，当两个主机从逻辑上看属于同一网段，但实际上却被路由器分割在了不同的物理网段，并且主机没有配置网关时，它们之间的直接通信就会遇到困难 。这就好比在一个城市中，虽然两个区域在地图上看起来距离很近（属于同一逻辑网段），但中间却隔着一条河流（路由器分割），而且没有桥梁（未配置网关），车辆（数据）就无法直接从一个区域到达另一个区域 。

        这时，Proxy ARP 就像是一座隐形的桥梁，发挥着关键作用。Proxy ARP 允许路由器代替目标主机响应 ARP 请求，它通过一种 “善意的欺骗”，让源主机误以为目标主机就在同一网段，从而实现跨物理网段的通信 。

        假设我们有这样一个网络场景：PC1 和 PC3 属于同一逻辑网段 192.168.1.0/24，但 PC1 位于路由器 R1 的 G0/0/0 接口所连接的 192.168.1.0/24 网段，PC3 位于 R1 的 G0/0/1 接口所连接的 192.168.2.0/24 网段，且 PC1 和 PC3 都未配置网关 。当 PC1 想要与 PC3 通信时，它会像往常一样发送 ARP 广播请求，试图解析 PC3 的 MAC 地址 。

        PC1 发送的 ARP 广播请求中，源 IP/MAC 为 192.168.1.1/00 - 01 - 02，目标 IP 为 192.168.2.3（假设 PC3 的 IP 是 192.168.2.3），目标 MAC 为 FF - FF - FF - FF - FF - FF 。这个广播请求会被路由器 R1 收到，R1 收到广播后，会查询自己的路由表 。当 R1 发现 192.168.2.0/24 是自己的直连网段时，它就会扮演一个 “热心的代理” 。R1 会用自己 G0/0/1 接口的 MAC 地址（假设为 00 - E0 - FC - 1D - 4E - EC）回复 ARP 响应给 PC1，告诉 PC1：“192.168.2.3 的 MAC 是我的 G0/0/1 接口 MAC 。”

        PC1 收到这个响应后，就会将 192.168.2.3 与 R1 的 G0/0/1 接口 MAC 地址的映射关系存入自己的 ARP 表中 。当 PC1 向 “伪装” 的 MAC 地址发送数据时，数据会先到达路由器 R1 。R1 接收后，会根据自己的路由表，将数据转发至真实目标 PC3 。这样，就实现了 PC1 与 PC3 之间的跨物理网段通信 。Proxy ARP 的这种机制，在一些旧设备不支持子网划分或者网络配置不完善的环境中，能够有效地解决主机之间的通信问题 ，就像是在复杂的网络迷宫中，为设备找到了一条通往目标的捷径 。

## 三、实战篇：ENSP 模拟器 全流程操作指南

### **原理概述**

        ARP（AddressResolutionProtocol）是用来将IP地址解析为MAC地址的协议。ARP表项可以分为动态和静态两种类型。动态ARP是利用ARP广播报文，动态执行并自动进行IP地址到以太网MAC地址的解析，无需网络管理员手工处理。静态ARP是建立IP地址和MAC地址之间固定的映射关系，在主机和路由器上不能动态调整此映射关系，需要网络管理员手工添加。设备上有一个ARP高速缓存（ARPcache），用来存放IP地址到MAC地址的映射表，利用ARP请求和应答报文来缓存映射表，以便能正确地把三层数据包封装成二层数据帧，达到快速封装数据帧、正确转发数据的目的。另外ARP还有扩展应用功能，比如ProxyARP功能。

        ProxyARP，即代理ARP，当主机上没有配置默认网关地址（即不知道如何到达本地网络的网关设备），可以发送一个广播ARP请求（请求目的主机的MAC地址），使具备ProxyARP功能的路由器收到这样的请求后，在确认请求地址可达后，会使用自身的MAC地址作为该ARP请求的回应，使得处于不同物理网络的同一网段的主机之间可以正常通信。

### **实验内容**

        本实验模拟公司网络场景。路由器R1是公司的出口网关，连接到外网。公司内所有员工使用10.1.0.0/16网段，通过交换机连接到网关路由器上。网络管理员通过配置静态ARP防止ARP欺骗攻击，保证通信安全。又由于公司内所有主机都没有配置网关，且分属于不同广播域，造成无法正常通信，网络管理员需要通过在路由器上配置ARP代理功能，实现网络内所有主机的通信。

### **实验拓扑**

![](https://i-blog.csdnimg.cn/img_convert/821b0332ce43bb16f94f881e64559803.png)

### **实验编址**

|   |   |   |   |   |
|---|---|---|---|---|
|设备|接口|IP 地址|子网掩码|默认网关|
|R 1|GE 0/0/1|10.1.1.254|255.255.255.0|N/A|
|GE 0/0/2|10.1.2.254|255.255.255.0|N/A|
|PC 1|E 0/0/1|10.1.1.1|255.255.0.0|N/A|
|PC 2|E 0/0/1|10.1.1.2|255.255.0.0|N/A|
|PC 3|E 0/0/1|10.1.2.3|255.255.0.0|N/A|

### **实验步骤**

#### **1.基础配置**

配置路由器 R 1 的接口 IP 地址，掩码长度为 24。

R 1

```cobol
<Huawei>system-view [Huawei]sysname R1[R1]interface GigabitEthernet 0/0/1[R1-GigabitEthernet0/0/1]ip address 10.1.1.254 255.255.255.0 [R1-GigabitEthernet0/0/1]quit[R1]interface GigabitEthernet 0/0/2[R1-GigabitEthernet0/0/2]ip address 10.1.2.254 255.255.255.0[R1-GigabitEthernet0/0/2]quit
```

配置完成后，使用 display  arp all 命令查看 R 1 的 ARP 表。

```cobol
[R1]display arp allIP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE                                           VLAN/CEVLAN PVC                      ------------------------------------------------------------------------------10.1.1.254      00e0-fc5c-39ab            I -         GE0/0/110.1.2.254      00e0-fc5c-39ac            I -         GE0/0/2------------------------------------------------------------------------------Total:2         Dynamic:0       Static:0     Interface:2 
```

        ARP表中仅含有R1的两个接口IP地址及与其对应的MAC地址的ARP表项，没有其他条目。

在 PC-1 上使用 ping 命令测试到网关 R 1 和 PC-2 的连通性

![](https://i-blog.csdnimg.cn/img_convert/5cfa130c090171259f4613ec66f9a4b9.png)

![](https://i-blog.csdnimg.cn/img_convert/29042a71de730ecffdebf9111b8bb7e4.png)

在 PC-3 上，使用 ping 命令测试到网关 R 1 的连通性。

![](https://i-blog.csdnimg.cn/img_convert/da91a09aa743c7d09080f60a8fbdaee8.png)

可以观察到，直连网络连通性正常。

        当主机和网关之间有数据访问时，如果ARP表中没有目标IP地址与目标MAC地址的对应表项，ARP协议会被触发，向直连网段发送ARP广播请求包，请求目标IP地址所对应的MAC地址。

        PC和R1都会从这一对消息中知道对方的IP地址与MAC地址的对应关系，并将它写到各自的ARP表中。在PC-1上ping网关10.1.1.254后，在PC上使用arp-a命令查看，在R1上使用display arp all命令查看。

![](https://i-blog.csdnimg.cn/img_convert/aef42959db09e6a76bf8387ce55cc995.png)

![](https://i-blog.csdnimg.cn/img_convert/684da0fe0e37ffa2045c631a65a78c40.png)

        可以观察到，在PC-1上生成了网关IP地址10.1.1.254和与其对应的MAC地址的

        ARP表项，在R1上生成了PC-1的IP地址10.1.1.1和与其对应的MAC地址的ARP表项。上述出现在PC和R1里面的条目都是动态生成的。如果一段时间之后没有更新，便会从上述ARP表中删除。

#### **2.配置静态 ARP**

        上述ARP协议的工作行为往往被攻击者利用。如果攻击者发送伪造的ARP报文，而且报文里面所通告的IP地址和MAC地址的映射是错误的，则主机或网关会把错误的映射更新到ARP表中。当主机要发送数据到指定的目标IP地址时，从ARP表里得到了不正确的硬件MAC地址，并用之封装数据帧，导致数据帧无法正确发送。

        由于公司内主机感染了这种ARP病毒，所以主机对网关R1进行ARP攻击，向网关R1通告含错误映射的ARP通告，导致网关路由器上使用不正确的动态ARP映射条目，造成其他主机无法与网关正常通信。

        模拟ARP攻击发生时，网络的通信受到了影响。在网关R1上，使用arp static 10.1.1.1 5489-98CF-2803命令在路由器上静态添加一条关于PC-1的错误的ARP映射，假定此映射条目是通过一个ARP攻击报文所获得的（静态的条目优于动态的条目），所以错误的映射将出现在ARP表中。

```cobol
[R1]arp static 10.1. 1.1 5489-98CF-2803
```

```cobol
[R1]display arp allIP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE                                           VLAN/CEVLAN PVC                      ------------------------------------------------------------------------------10.1.1.254      00e0-fc5c-39ab            I -         GE0/0/110.1.2.254      00e0-fc5c-39ac            I -         GE0/0/210.1.2.3        5489-9851-50c8  14        D-0         GE0/0/210.1.1.1        5489-98cf-2803            S--------------------------------------------------------------------------------Total:4         Dynamic:1       Static:1     Interface:2    [R1]ping 10.1.1.1  PING 10.1.1.1: 56  data bytes, press CTRL_C to break    Request time out    Request time out    Request time out    Request time out    Request time out  --- 10.1.1.1 ping statistics ---    5 packet(s) transmitted    0 packet(s) received    100.00% packet loss
```

![](https://i-blog.csdnimg.cn/img_convert/31e7f5dffb9eca1ddf4e3c178153a13c.png)

        可以观察到，PC-1与网关间无法通信，因为在路由器R1上ARP的映射错误，导致路由器无法正确地发送数据包给PC-1

                为应对ARP欺骗攻击，防止其感染路由器的ARP表，可以通过配置静态ARP表项来实现。如果IP地址和一个MAC地址的静态映射已经出现在ARP表中，则通过动态ARP方式学来的映射则无法进入ARP表。所以针对公司网络的现状，网络管理员在R1上手工配置三条关于PC-1、PC-2和PC-3的正确ARP映射。使用arp static命令，配置如下。

```cobol
[R1]undo arp static 10.1. 1.1 5489-98CF-2803[R1]arp static 10.1. 1.1 5489-98bc-320e[R1]arp static 10.1.1.2 5489-98cf-5723[R1]arp static 10.1.2.3 5489-98cf-e417
```

![](https://i-blog.csdnimg.cn/img_convert/e7326623b715e182ff7d11fe2f99d6c2.png)

配置完成后，在 PC-1 上测试。

![](https://i-blog.csdnimg.cn/img_convert/de5c43fca8a8d88f6c876503be0976a7.png)

        可以观察到，配置后连通性恢复正常。

        公司网络中出现ARP攻击的情况是比较常见的，防御的办法之一是在ARP表中手工添加ARP映射。此种方法的优点是简单易操作，不足之处是网络中每个网络设备都有ARP表，要全方位保护网络就要在尽可能多的三层设备上把全网的ARP映射手工写入到ARP表里，工作量过大，如果更换IP或MAC后，还需要手工更新ARP映射，远没有动态ARP协议维护ARP表方便。但如果公司网络规模不大或者网络设备不多的情况下，静态ARP方案还是具有一定优势的。

#### **3. Proxy ARP**

        目前公司的网络被路由器R1分割为两个独立的广播域，每个路由器接口对应一个IP网络，分别是10.1.1.0/24和10.1.2.0/24，查看R1的路由表。

![](https://i-blog.csdnimg.cn/img_convert/92dab5fdf2a1ef9519c5307edfaaef5f.png)

        默认情况下，路由器上的ARP代理功能是关闭的。

        如果R1保持ARP代理功能关闭的情况，则PC-2和PC-3之间不能互相通信。在PC-2上，使用ping访问10.1.2.3

![](https://i-blog.csdnimg.cn/img_convert/f6b4e4fb027865b40c427e3cb618385b.png)

        可以观察到，PC-2发出了ARP广播，却一直没有收到ARP响应。原因是PC-2和

        PC-3分处在两个广播域内，PC-2发的ARP请求无法跨越中间的路由器，所以PC-3收不到PC-2的ARP请求，PC-2也无法知晓目标主机PC-3的硬件MAC地址而导致数据封装失败。

        但R1如果开启ARP代理之后，看是否能够解决这个问题。配置arp-proxy enable命令在路由器的接口上来开启ARP代理功能。

```cobol
[R1]interface GigabitEthernet 0/0/1[R1-GigabitEthernet0/0/1]arp-proxy enable 
```

        启用ARP代理之后，同样的测试，在PC-2上访问PC-3

        可以观察到，PC-2发出了ARP请求并收到了ARP响应，但响应中10.1.2.3所对应的硬件MAC地址并非是PC-3的MAC地址，而是网关R1的GE0/0/1接口MAC地址。在PC-2上查看ARP表。

![](https://i-blog.csdnimg.cn/img_convert/822e1fea13d89d28ca3cff8ef81f35e8.png)

![](https://i-blog.csdnimg.cn/img_convert/b1b9c418504dc6c1ff0648e13000006a.png)

        开启ARP代理后，PC-2访问PC-3的工作过程如下。

        R1的接口GE 0/0/1开启了ARP代理后，收到PC-2的ARP广播请求报文后，R1根据ARP请求中的目标IP地址10.1.2.3查看自身的路由表中是否有对应的目标网络，R1的GE 0/0/2接口就是10.1.2.0/24网络，所以，R1直接把自身的GE 0/0/1接口的MAC地址通过ARP响应返回给PC-2,PC-2接收到此ARP响应后使用该MAC作为目标硬件地址发送报文给R1,R1收到后再把报文转发给PC-3。

        同理，PC-3要能访问R1连接的其他广播域的PC,也需要在R1的GE0/0/2接口上开启ARP代理功能。

```cobol
[R1]interface GigabitEthernet 0/0/2[R1-GigabitEthernet0/0/2]arp-proxy enable
```

配置完成后，测试 PC-3 与 PC-1 间的连通性。

![](https://i-blog.csdnimg.cn/img_convert/4fb98584f72b0ce478e16438d8b0e3f9.png)

        可以观察到，通信正常。

        如果IP网络过大，广播对网络的影响也相应增大。在不改变网络主机配置的情况下，由管理员在网络中透明地插入一台路由器，靠路由器分割出多个广播域，降低了广播对网络的影响。在当前的IP网络中，此种做法并不多见。其缺点是主机间的通信会因为引入额外的路由器而延迟增大，并存在着瓶颈问题，所以一般只作为临时解决方案使用。

## 四、注意事项与常见问题排查

### 1. Proxy ARP 的局限性

        增加路由器处理负载，适用于小规模网络临时方案，大规模场景建议配置网关或路由协议。

可能引发 ARP 缓存不一致，需通过以下命令清除缓存后重试

```TypeScript
# PC端清除ARP缓存（Windows）C:\> arp -d# 路由器清除所有ARP缓存<R1>reset arp all
```

2. 命令行排错技巧

若 Ping 提示 “Destination host unreachable”，执行以下命令排查：

```TypeScript
# 1. 检查路由器接口IP及状态[R1] display ip interface brief# 确保接口IP配置正确且状态为UP# 2. 验证Proxy ARP是否启用[R1] display current-configuration interface GigabitEthernet 0/0/0 | include arp-proxy# 3. 检查路由表是否存在目标网段[R1] display ip routing-table 192.168.2.2
```

抓包无 ARP 响应时，确认链路连接：在路由器 ping 主机 IP，检查连通性：

```TypeScript
<R1> ping 192.168.1.1<R1> ping 192.168.2.2
```

## 五、结语：从原理到实战，筑牢网络通信基石

        ARP 与 Proxy ARP 是理解网络层与数据链路层交互的关键切入点，掌握其原理与配置不仅是 HCIA-RS 认证的核心要求，更是排查二层通信故障的必备技能。