目录
1. 概念
2. 前提条件
3. 使用环境
4. 工作过程
5. 优点
6. 缺点
7. 示例配置
7.1 示例场景
7.2基本配置
7.3 配置端口隔离
7.4 开启代理ARP
7.4.1 VLAN内代理ARP
7.4.2 VLAN间代理ARP
7.4.3路由式ARP代理
1. 概念
代理ARP(Proxy ARP):当主机没有配置网关,向是同一网段的另一广播域终端发送ARP广播请求,配置了代理ARP的设备收到了这个ARP请求后,确认IP地址可达后,会使用自己端口的mac地址作回应该ARP请求,使处于不同物理网络的同一网段主机正常通信。
扩展了局域网,将物理上分割开的广播域连接在一起。
2. 前提条件
同一网段的局域网设备,被分割为多个局域网(多个广播域),在局域网各个终端不设置网关的情况下,要使被分隔开的各同一网段的终端能够通信,则需要在相应设备上配置代理ARP。屏蔽了分离的物理网络,使用起来好像在同一个物理网络上。
3. 使用环境
代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。
4. 工作过程
- 如上图所示,同一网段的局域网设备,被路由器分割为多个局域网(多个广播域),在局域网各个终端不设置网关的情况下,要使被物理上分隔开的各同一网段的终端能够通信,则需要在路由器上设置代理ARP。
- 当A区域的终端发送ARP广播请求,查找B区域终端的MAC地址时,连接A区域的路由器端口1收到ARP请求时(由于路由器不会转发广播包,因此ARP请求只能到达路由器,不能到达区域B),三层设备会查看ARP请求,发现IP地址属于它连接的另一个网络,因此路由器用端口1的MAC地址代替B区域终端的MAC地址,向A区域终端回复ARP应答。
- A区域终端收到ARP应答后,会认为B区域终端的MAC地址就是连接A区域的路由器端口的MAC地址,不会感知到ARP代理的存在。
5. 优点
最主要的一个优点就是在不影响路由表的情况下,可以和同一网段的另一广播域终端正常通信。
6. 缺点
- 增加了某一网段上ARP流量;
- 主机需要更大的ARP table来处理IP地址到MAC地址的映射;
- 安全问题,比如ARP欺骗(spoofing);
- 和不使用ARP来解析地址的网络无法通信;
- 不能概括和扩展网络拓扑。
7. 示例配置
7.1 示例场景
如上图所示,所有PC终端都在同一网段下,也都没有配置网关, PC1和PC2与交换机SW连接的端口加入隔离组,在上述条件下,实现所有PC终端能够正常通信。
7.2基本配置
PC2、PC3和PC5配置与PC1和PC4类似,不再赘述。
<Huawei>system-view
[Huawei]sysname R1
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.10.30 27
[R1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[R1-GigabitEthernet0/0/2]ip address 12.0.0.1 30
[R1-GigabitEthernet0/0/2]quit
[R1]ip route-static 192.168.10.32 27 12.0.0.2
[R1]ip route-static 192.168.10.64 27 12.0.0.2
<Huawei>system-view
[Huawei]sysname R2
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.10.62 27
[R2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.10.94 27
[R2-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[R2-GigabitEthernet0/0/2]ip address 12.0.0.2 30
[R2-GigabitEthernet0/0/2]quit
[R2]ip route-static 192.168.10.0 27 12.0.0.1
<Huawei>system-view
[Huawei]sysname SW
[SW]vlan batch 10 20
[SW]interface GigabitEthernet 0/0/23
[SW-GigabitEthernet0/0/23]port link-type trunk
[SW-GigabitEthernet0/0/23]port trunk allow-pass vlan 10 20
<Huawei>system-view
[Huawei]sysname SW1
[SW1]vlan batch 10 20
[SW1]interface Ethernet 0/0/1
[SW1-Ethernet0/0/1]port link-type access
[SW1-Ethernet0/0/1] port default vlan 10
[SW1-Ethernet0/0/1]interface Ethernet 0/0/2
[SW1-Ethernet0/0/2]port link-type access
[SW1-Ethernet0/0/2]port default vlan 10
[SW1-Ethernet0/0/2]interface Ethernet 0/0/3
[SW1-Ethernet0/0/3]port link-type access
[SW1-Ethernet0/0/3]port default vlan 20
[SW1]interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type trunk
[SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20
在上述基本配置下测试网络环境
经过上图测试说明,所有PC终端都无法跨网段通信。
7.3 配置端口隔离
将PC1和PC2与交换机SW连接的端口加入隔离组
配置如下:
<Huawei>system-view
[Huawei]sys SW1
[SW1]interface GigabitEthernet 0/0/1
[SW1-Ethernet0/0/1]port-isolate enable group 5
[SW1-Ethernet0/0/1]interface GigabitEthernet 0/0/2
[SW1-Ethernet0/0/2]port-isolate enable group 5
测试PC1和PC2通信情况
将PC1和PC2与交换机SW连接的端口加入隔离组5后,PC1和PC2无法正常通信。
7.4 开启代理ARP
7.4.1 VLAN内代理ARP
VLAN内ARP代理的功能就是使那些处于相同的VLAN,但是相互之间配置了端口隔离的设备之间能够相互通信。
PC1和PC2与交换机SW连接的端口加入隔离组5后,PC1和PC2无法正常通信,现要求在端口隔离的情况下,实现VLAN 10下的PC1和PC2能够通信。
为满足上述要求,在SW1交换机上配置VLAN内代理ARP,具体配置如下:
[SW1]interface Vlanif 10
[SW1-Vlanif10]ip address 192.168.10.14 28
[SW1-Vlanif10]arp-proxy inner-sub-vlan-proxy enable //配置VLAN内代理ARP
测试PC1和PC2通信情况
PC1和PC2与交换机SW连接的端口在隔离组5中,在SW1交换机上配置VLAN 10内代理ARP,实现了PC1和PC2正常通信。
7.4.2 VLAN间代理ARP
VLAN间ARP代理的功能就是使那些处于不同的VLAN的设备(未配置网关)之间能够相互通信。
PC1和PC2与交换机SW连接的端口在隔离组5中,在SW1交换机上配置VLAN 10内代理ARP,实现了PC1和PC2正常通信。但PC3还无法和PC1、PC2通信,现要求在不给PC1、PC2和PC3配置网关的情况下,PC3和PC1、PC2能够正常通信。
为满足上述要求,在SW1交换机上配置VLAN间代理ARP,具体配置如下:
[SW1-Vlanif10]undo arp-proxy inner-sub-vlan-proxy enable
[SW1-Vlanif10]undo ip address 192.168.10.14 255.255.255.240
[SW1-vlan23]access-vlan 10 20
Error: The VLAN has a L3 interface. Please delete it first.
为了消除上述错误,进行如下配置。
[SW1]undo interface Vlanif 10
[SW1]undo interface Vlanif 20
[SW1-vlan23]aggregate-vlan //VLAN23设置为聚合VLAN(Super VLAN)
[SW1-vlan23]access-vlan 10 //VLAN10设置为VLAN23的子VLAN(Sub-VLAN)
[SW1-vlan23]access-vlan 20
[SW1]interface Vlanif 23
[SW1-Vlanif23]ip add
[SW1-Vlanif23]ip address 192.168.10.29 27
[SW1-Vlanif23]arp-proxy inner-sub-vlan-proxy enable //配置VLAN内代理ARP
[SW1-Vlanif23]arp-proxy inter-sub-vlan-proxy enable //配置VLAN间代理ARP
测试PC1、PC2和PC3通信情况
PC1和PC2与交换机SW连接的端口在隔离组5中,在SW1交换机的聚合VLAN23上配置VLAN 内代理ARP和VLAN 间代理ARP,不给PC1、PC2和PC3配置网关的情况下,实现了PC1、PC2和PC3通信正常。
7.4.3路由式ARP代理
通过8.4.1 VLAN内代理ARP和8.4.2 VLAN间代理ARP两小节,虽然实现了实现了PC1、PC2和PC3通信正常,但是还无法实现跨路由器通信,即,PC1、PC2、PC3无法和PC4或PC5通信。
为实现PC1、PC2、PC3和PC4或PC5正常通信,进行如下配置:
在R1的GE 0/0/1端口配置子端口,分别对应VLAN10和VLAN20,实现单臂路由功能,因为所有PC终端都没有设置网关IP地址(即默认路由),只能在同网段相互通信。在VLAN10和VLAN20各自对应的GE 0/0/1子端口开启ARP代理, 同时在R2的GE 0/0/0端口开启代理ARP,以实现PC1、PC2、PC3和PC4正常通信,PC1、PC2、PC3能访问PC5,但PC5访问不了PC1、PC2和PC3。
[R1]interface GigabitEthernet0/0/1.10
[R1-GigabitEthernet0/0/1.10]ip address 192.168.10.14 255.255.255.240
[R1-GigabitEthernet0/0/1.10]dot1q termination vid 10
[R1-GigabitEthernet0/0/1.10]arp-proxy enable
[R1-GigabitEthernet0/0/1.10]arp broadcast enable
[R1-GigabitEthernet0/0/1.10]quit
[R1]interface GigabitEthernet0/0/1.20
[R1-GigabitEthernet0/0/1.20]ip address 192.168.10.30 255.255.255.240
[R1-GigabitEthernet0/0/1.20]dot1q termination vid 20
[R1-GigabitEthernet0/0/1.20]arp-proxy enable
[R1-GigabitEthernet0/0/1.20]arp broadcast enable
[R2-GigabitEthernet0/0/0]arp-proxy enable
测试PC1、PC2、PC3和PC4或PC5的通信情况
通过上图可以看出,PC1、PC2、PC3和PC4正常通信,PC1、PC2、PC3能访问PC5,但PC5访问不了PC1、PC2和PC3。
为什么PC5访问不了PC1、PC2和PC3?
因为PC5没有设置网关IP地址,只能通过ARP广播查找和自己同网段终端,但和PC5相连的路由器R2隔离了ARP广播,和PC5相连的R2路由器GE0/0/1端口没有开启代理ARP,所以PC5的数据出不了自己所在的局域网。
为什么PC1、PC2、PC3、PC4和PC5无法访问12.0.0.1和12.0.0.2两个IP地址?
因为本示例各PC终端都是通过代理ARP实现192.168.10.0/24网段通信,没有设置网关IP地址,各PC终端无法实现跨网段通信。