contents
下一节: 未来展望 上一层: 配置 TCP/IP 网络 上一节: 显示连接

检查 ARP 表

在某些情况下,查看甚至更改内核的 ARP 表的内容非常有用,例如,当您怀疑重复的互联网地址是导致某些间歇性网络问题的原因时。arp 工具就是为此而设计的。它的命令行选项如下:
           arp [-v] [-t hwtype] -a [hostname]
           arp [-v] [-t hwtype] -s hostname hwaddr
           arp [-v] -d hostname [hostname...]
 
所有主机名参数可以是符号主机名或点分十进制表示法的 IP 地址。

第一个调用显示指定 IP 地址或主机的 ARP 条目,如果没有给出主机名,则显示所有已知主机。例如,在 vlager 上调用 arp 可能会产生:

           # arp -a
           IP address      HW type                 HW address
           191.72.1.3      10Mbps Ethernet         00:00:C0:5A:42:C1
           191.72.1.2      10Mbps Ethernet         00:00:C0:90:B3:42
           191.72.2.4      10Mbps Ethernet         00:00:C0:04:69:AA

这显示了 vlager、vstout 和 vale 的以太网地址。

使用 -t 选项,您可以将显示限制为指定的硬件类型。这可以是 ether、ax25 或 pronet,分别代表 10Mbps 以太网、AMPR-AX.25 和 IEEE-802.5 令牌环设备。

-s 选项用于将主机名的以太网地址永久添加到 ARP 表中。hwaddr 参数指定硬件地址,默认情况下,硬件地址应为以太网地址,以六个十六进制字节(用冒号分隔)表示。您也可以使用 -t 选项为其他类型的硬件设置硬件地址。

当由于某些原因远程主机的 ARP 查询失败时,可能需要您手动将 IP 地址添加到 ARP 表中,例如当其 ARP 驱动程序存在错误,或者网络中存在另一个主机错误地将自己标识为该主机的 IP 地址时。在 ARP 表中硬编码 IP 地址也是一种(非常极端的)措施,可以保护您免受以太网上冒充他人的主机的侵害。

使用 -d 开关调用 arp 会删除与给定主机相关的所有 ARP 条目。这可以用于强制接口重新尝试获取所讨论 IP 地址的以太网地址。当配置错误的系统广播了错误的 ARP 信息时,这非常有用(当然,您必须先重新配置损坏的主机)。

-s 选项也可用于实现代理 ARP。这是一种特殊技术,其中一个主机,例如 gate,充当另一个名为 fnord 的主机的网关,方法是假装两个地址都指向同一主机,即 gate。它通过发布 fnord 的 ARP 条目来实现这一点,该条目指向其自身的以太网接口。现在,当主机向 fnord 发送 ARP 查询时,gate 将返回包含其自身以太网地址的回复。查询主机随后将所有数据报发送到 gate,gate 会尽职尽责地将它们转发到 fnord。

当您想从 TCP 实现不完善的 DOS 机器访问 fnord 时,这些曲折可能是必要的,因为该实现对路由的理解不太好。当您使用代理 ARP 时,对于 DOS 机器来说,fnord 似乎位于本地子网中,因此它不必了解如何通过网关进行路由。

代理 ARP 的另一个非常有用的应用是,当您的主机之一仅临时充当到其他主机的网关时,例如通过拨号连接。在之前的示例中,我们已经遇到了笔记本电脑 vlite,它只是不时通过 PLIP 连接连接到 vlager。当然,这仅在您要为其提供代理 ARP 的主机的地址与您的网关位于同一 IP 子网时才有效。例如,vstout 可以为 Brewery 子网 (191.72.1.0) 上的任何主机代理 ARP,但绝不能为 Winery 子网 (191.72.2.0) 上的主机代理 ARP。

下面给出了为 fnord 提供代理 ARP 的正确调用方法;当然,给定的以太网地址必须是 gate 的地址。

           # arp -s fnord 00:00:c0:a1:42:e0 pub
 
可以通过调用以下命令再次删除代理 ARP 条目:
           # arp -d fnord


contents
下一节: 未来展望 上一层: 配置 TCP/IP 网络 上一节: 显示连接

Andrew Anderson
Thu Mar 7 23:22:06 EST 1996