排除端到端连接故障时,验证目的 IP 地址和各个网段上第 2 层以太网地址之间的映射非常有用。 在 IPv4 中,此功能由 ARP 提供。 在 IPv6 中,ARP 功能被邻居发现过程和 ICMPv6 所取代。 邻居表缓存了 IPv6 地址及其解析的以太网物理 (MAC) 地址。

IPv4 ARP 表

arp Windows 命令显示并修改了 ARP 缓存中的条目,这些条目用于存储 IPv4 地址及其解析的以太网物理 (MAC) 地址。 如图 1 所示,arp Windows 命令列出了目前 ARP 缓存中的所有设备。 针对每台设备显示的信息包括 IPv4 地址、物理 (MAC) 地址及编址类型(静态或动态)。

如果网络管理员想要使用更新后的信息重新填充缓存,可以使用 arp-d Windows 命令清空缓存。

注意arp 命令在 Linux 和 MAC OS X 中具有类似语法。

IPv6 邻居表

如图 2 所示,netsh interface ipv6 show neighbor Windows 命令列出了目前邻居表中的所有设备。 针对每台设备显示的信息包括 IPv6 地址、物理 (MAC) 地址及编址类型。 通过检查邻居表,网络管理员可以检验目的 IPv6 地址是否已映射到正确的以太网地址。 R1 的所有接口上 IPv6 本地链路地址已手动配置为 FE80::1。 同样,R2 在其接口上配置了本地链路地址 FE80::2,而且 R3 在其接口上配置了本地链路地址 FE80::3。 请记住,本地链路地址仅在链路或网络中必须是唯一的。

注意:使用 ip neigh show 命令可显示 Linux 和 MAC OS X 的邻居表。

图 3 使用 show ipv6 neighbors 命令显示了 Cisco IOS 路由器上邻居表的示例。

注意:IPv6 邻居状态比 IPv4 中 ARP 表的状态更为复杂。 其他信息包含在 RFC 4861 中。

交换机 MAC 地址表

交换机将帧仅转发到目的所连的端口。 为此,交换机将查询其 MAC 地址表。 MAC 地址表列出了与各个端口连接的 MAC 地址。 使用 show mac address-table 命令显示交换机的 MAC 地址表。 PC1 的本地交换机示例如图 4 所示。 请记住,交换机的 MAC 地址表只包含第 2 层信息,包括以太网 MAC 地址和端口号。 不包括 IP 地址信息。

VLAN 分配

在排除端到端连接故障时需要考虑的另一个问题是 VLAN 分配。 在交换网络中,交换机中的每个端口均属于一个 VLAN。 每个 VLAN 都视为一个独立的逻辑网络,发往不属于此 VLAN 的站点的数据包必须通过支持路由的设备转发。 如果一个 VLAN 中的主机发送广播以太网帧(例如 arp 请求),那么同一 VLAN 中的所有主机都会收到此帧;而其他 VLAN 中的主机不会收到。 即使两台主机位于同一 IP 网络中,如果它们与分配到不同 VLAN 的端口连接,那么这两台主机无法通信。 此外,如果删除了端口所属的 VLAN,则端口将变为非活动状态。 如果 VLAN 被删除,则与属于该 VLAN 的端口连接的所有主机都无法与网络其余部分通信。 诸如 show vlan 等命令可用于验证交换机上的 VLAN 分配。

故障排除示例

请参考图 5 中的拓扑。 为了改善配线间的电线管理,重新组织了连接到 S1 的电缆。 刚刚完成后,用户就开始给技术支持服务台打电话,说明他们无法访问其网络外部的设备。 使用 arp Windows 命令对 PC1 的 ARP 表进行检查,显示 ARP 表不再包含默认网关 10.1.10.1 的条目,如图 6 所示。 路由器上没有发生配置更改,因此 S1 是故障排除的重点。

S1 的 MAC 地址表(如图 7 所示)显示了 R1 的 MAC 地址位于与其余 10.1.10.0/24 设备(包括 PC1)不同的 VLAN 中。 在重新布线时,R1 的跳线从 VLAN 10 的 Fa 0/4 移动到 VLAN 1 的 Fa 0/1。 在网络管理员将 S1 的 Fa 0/1 端口配置到 VLAN 10 上(如图 8 所示)之后,问题得到解决。 如图 9 所示,现在 MAC 地址表显示了端口 Fa 0/1 上 R1 的 MAC 地址所在的 VLAN 10。