1) 为什么不能用ARP查询位于另一个局网的主机地址?
ARP request是个广播包,只能在一个局域网内洪泛,如果让它在其他连接到路由器的局域网洪泛,会造成广播风暴。路由器的功能之一就是把广播包限制在一个局域网内。
2) 怎么用路由器来解决ARP跨局网查询MAC的问题?
答: 有两种方法处理跨网段的ARP (假设H1, H2连接到路由器R1):
1) 默认网关。H1配置R1为其默认网关,H1发送ARP request查到默认网关R1的MAC。然后H1发送给H2
的数据包给H2,会被R1转换给H2。
2) ARP代理 (Proxy)。H1不必配置默认网关。当R1收到H1的跨局网的ARP要查询另一个局网的B,它会
代表H2回复ARP查询。H1有了"H2"的地址,就可以发送数据包给H2了。
3) 区别:
i. ARP表:用默认网关, H1的ARP表没有H2的地址。用ARP代理,H1的ARP表有"H2"的地址。
ii. 查默认网关MAC。用默认网关方法,H1得多做一件事:先查到默认网关的MAC地址。用ARP代理方
法,H1把H2当成在同一局网的节点,一切如常,无需做任何特别处理。
参考:
RFC917. Interrnet subnets (1984). Arp网关方式。
RFC925. Multi-LAN Arp (1984). Arp代理方式