一、ARP
1 Proxy ARP
如果ARP请求是从一个网络的主机发往同一网段但不在同一物理网络上的另一台主机,那么连接这两个网络的设备就可以回答该ARP请求,这个过程称作ARP代理(Proxy ARP)。
- Proxy ARP分为路由式Proxy ARP、VLAN内Proxy ARP和VLAN间Proxy ARP
Proxy ARP 方式 | 适用场景 |
---|---|
路由式 Proxy ARP | 需要互通的主机(主机上没有配置缺省网关)处于相同的网段但不在同一物理网络(即不在同一广播域)的场景。 |
VLAN内 Proxy ARP | 需要互通的主机处于相同网段,并且属于相同VLAN,但是VLAN内配置了端口隔离的场景。 |
VLAN间 Proxy ARP | 需要互通的主机处于相同网段,但属于不同VLAN的场景。 |
- Proxy ARP有以下特点:
- Proxy ARP部署在网关上,网络中的主机不必做任何改动。
- Proxy ARP可以隐藏物理网络细节,使两个物理网络可以使用同一个网络号。
- Proxy ARP只影响主机的ARP表,对网关的ARP表和路由表没有影响。
1.1 路由式Proxy ARP
路由式Proxy ARP就是使那些在同一网段却不在同一物理网络上的网络设备能够相互通信的一种功能。
- 在实际应用中,如果连接设备的主机上没有配置缺省网关地址(即不知道如何到达本网络的中介系统),此时将无法进行数据转发。
- 如图所示,PC1的IP地址为1.1.1.1/16,PC2的IP地址为1.1.2.2/16,PC1与PC2处于同一网段。S1通过VLAN2和VLAN3连接两个网络,VLANIF2和VLANIF3的IP地址不在同一个网段。
- 当PC1需要与PC2通信时,由于目的IP地址与本机的IP地址为同一网段,因此PC1以广播形式发送ARP请求报文,请求PC2的MAC地址。但是,由于两台主机处于不同的物理网络(不同广播域)中,PC2无法收到PC1的ARP请求报文,因此也就无法应答。
- 通过在S1上启用路由式Proxy ARP功能,可以解决此问题。启用路由式Proxy ARP后,S1收到ARP请求报文后,S1会查找路由表。由于PC2与S1直连,因此S1上存在到PC2的路由表项。S1使用自己的MAC地址给PC1发送ARP应答报文。PC1将以S1的MAC地址进行数据转发。此时,S1相当于PC2的代理。PC1上的ARP表项中到目的地址PC2的IP地址对应的MAC地址为S1的VLANIF2接口的MAC地址。
1.2 VLAN内ARP代理
如果两个用户属于相同的VLAN,但VLAN内配置了端口隔离。此时用户间需要三层互通,可以在关联了VLAN的接口上启动VLAN内Proxy ARP功能。
- PC1和PC2是S1设备下的两个用户。连接PC1和PC2的两个接口在S1属于同一个VLAN2。
- 在S1的两个接口上配置端口隔离: port-isolate enable group 1
- 在S1上启用三层接口int vlanif 2,配置IP地址,并启用VLAN内ARP代理:arp-proxy inner-sub-vlan-proxy enable
- 由于在S1上配置了VLAN内不同接口彼此隔离,因此PC1和PC2不能直接在二层互通。
- 若S1的接口使能了VLAN内Proxy ARP功能,可以使PC1和PC2实现三层互通。S1的接口在接收到目的地址不是自己的ARP请求报文后,S1并不立即丢弃该报文,而是查找该接口的ARP表项。如果存在PC2的ARP表项,则将自己的MAC地址发送给PC1,并将PC1发送给PC2的报文代为转发。实际上此时S1相当于PC2的代理。
1.3 VLAN间ARP代理
如果两台主机处于相同网段但属于不同的VLAN,用户间要进行三层互通,可以在关联了这些VLAN的接口(例如VLANIF接口或者子接口)上使能VLAN间Proxy ARP功能。
- 由于PC1和PC2属于不同的Sub-VLAN,PC1和PC2不能直接实现二层互通。
- 如果S1上使能了VLAN间Proxy ARP功能,可以使PC1和PC2实现三层互通。S1的接口在接收到目的地址不是自己的ARP请求报文后,并不立即丢弃该报文,而是查找ARP表项(包括动态学习的ARP表项和静态配置的ARP表项)。如果存在PC2的ARP表项,则将自己的MAC地址发送给PC1,并将PC1发送给PC2的报文代为转发。实际上此时S1相当于PC2的代理。
2 免费ARP
设备主动使用自己的IP地址作为目的I