TCP/IP 故障排除

来源:互联网 发布:乔任梁 知乎回答 编辑:程序博客网 时间:2024/04/30 00:18

Windows 故障排除工具

Windows Server 2003 和 Windows XP 提供了一整套可用于排除 TCP/IP 故障的配置、管理及诊断工具和服务,如表 16-1 中所列。

表 16-1 TCP/IP 故障排除工具和服务 工具 说明

Arp

用于查看和编辑地址解析协议 (ARP) 缓存。

Hostname

显示计算机的主机名。

Ipconfig

显示 IPv4 和 IPv6 的当前 TCP/IP 配置。还用于管理动态主机配置协议 (DHCP) 分配的 IPv4 地址配置、显示或刷新 DNS 客户端解析器缓存及注册 DNS 名称。

Nbtstat

显示基于 TCP/IP 的 NetBIOS (NetBT) 配置,并允许管理 NetBIOS 名称缓存。

Netsh

适用于许多网络服务的配置工具。对于每一项网络服务,都存在包含特定于该服务的命令的上下文。对于 netsh interface ipnetsh interface ipv6 上下文,显示和管理本地计算机或远程计算机上的 TCP/IP 协议设置。

Netstat

显示当前 TCP 连接的协议统计信息和其他信息。

Nslookup

执行 DNS 查询并显示结果。

Ping

发送 Internet Control Message Protocol (ICMP) Echo 或 Internet Control Message Protocol for IPv6 (ICMPv6) Echo Request 消息以测试可访问性。

Route

允许查看 IPv4 和 IPv6 路由表,还允许编辑 IPv4 路由表。

Tracert

发送 ICMP Echo 或 ICMPv6 Echo Request 消息以追踪 IPv4 或 IPv6 数据包到指定目标所采用的网络路由。

Pathping

发送 ICMP Echo 或 ICMPv6 Echo Request 消息以追踪 IPv4 或 IPv6 数据包到目标所采用的路由,并显示路径中每个路由器和链路上数据包丢失方面的信息。

SNMP 服务

向简单网络管理系统 (SNMP) 管理系统提供状态和统计信息。

Event Viewer

记录错误和事件。

Performance Logs and Alerts

记录 TCP/IP 核心协议性能,并发送警报(必须安装 SNMP 服务)。

Network Monitor

捕获和显示运行 Windows Server 2003 的计算机所收到和发送的 TCP/IP 数据包的内容。

Netdiag

在联网组件上运行一系列诊断测试。Netdiag 作为 Windows XP 和 Windows Server 2003 支持工具的一部分安装,位于 Windows XP 或 Windows Server 2003 产品光盘的 Support/Tools 文件夹中。

Telnet

测试两个节点之间的 TCP 连接建立。

Ttcp

侦听和发送两个节点之间的 TCP 段数据或 UDP 消息。Ttcp.exe 随 Windows Server 2003 提供,位于 Windows Server 2003 产品光盘的 Valueadd/Msft/Net/Tools 文件夹中。

返回页首返回页首

IPv4 故障排除

以下各节介绍用于确定正在使用 IPv4 Internet 层的 TCP/IP 协议堆栈的各连续层中存在的故障的工具和技术。请根据故障类型,相应地采用以下顺序之一:

从堆栈底部开始向上移动。

从堆栈顶部开始向下移动。

以下各节按照从堆栈顶部开始的顺序组织,介绍了以下内容:

如何验证 IPv4 连通性。

如何验证 IPv4 地址的 DNS 名称解析。

如何验证 NetBIOS 名称解析。

如何验证基于 IPv4 的 TCP 会话。

虽然没有在以下各节中指出,但您也可以使用 Network Monitor 捕获 IPv4 通信,以排除基于 IPv4 的 TCP/IP 通信中存在的许多故障。Network Monitor 随 Microsoft Systems Management Server 提供,是 Windows Server 2003 的可选网络组件。不过,为了正确解释 Network Monitor 中 IPv4 数据包的显示,您必须具备关于每个数据包中包含的协议的高深知识。

验证 IPv4 连通性

可使用以下任务排除与 IPv4 连通性相关的故障:

修复连接

验证配置

管理配置

验证可访问性

查看和管理 IPv4 路由表

验证路由器可靠性

修复连接

可利用“网络连接修复”功能,在尝试更正常见配置故障时快速恢复 IPv4 网络连接设置。“网络连接修复”会执行一系列尝试恢复连接的任务,就象刚刚初始化一样。要访问“网络连接修复”,请执行以下操作:

1.

单击“开始”,再单击“控制面板”,然后双击“网络连接”

2.

右键单击要修复的连接,然后单击“修复”

也可在网络连接的状态的“支持”选项卡上单击“修复”

“网络连接修复”执行的任务包括:

检查 DHCP 是否启用,如果启用,则发送广播 DHCPRequest 消息刷新 IPv4 地址配置。

刷新 ARP 缓存。这相当于使用 arp -d * 命令。

刷新 DNS 客户端解析器缓存,然后使用 Hosts 文件中的条目重新加载。这相当于使用 ipconfig /flushdns 命令。

使用 DNS 动态更新重新注册 DNS 名称。这相当于使用 ipconfig /registerdns 命令。

刷新 NetBIOS 名称缓存,然后使用 Lmhosts 文件中的 #PRE 条目重新加载。这相当于使用 nbtstat -R 命令。

释放后向 Windows Internet 名称服务 (WINS) 重新注册 NetBIOS 名称。这相当于使用 nbtstat -RR 命令。

验证配置

要检查当前 IPv4 设置的地址配置是否正确(手动配置时)或者是否适当(自动配置时),您可以使用:

ipconfig /all

ipconfig /all 命令会显示 IPv4 地址、默认网关以及所有接口的 DNS 设置。Ipconfig 工具仅适用于本地计算机。

netsh interface ip show config

netsh interface ip show config 命令显示每个接口的 DNS 和 WINS 服务器。通过使用 –r RemoteComputerName 命令行选项,Netsh 还可用来显示远程计算机的配置。例如,要显示名为 FILESRV1 的远程计算机的配置,请使用 netsh –r filesrv1 interface ip show config 命令。

网络连接上“状态”对话框中的“支持”选项卡

要获得某网络连接的状态,请在“网络连接”文件夹中双击该连接,然后单击“支持”选项卡。“支持”选项卡将列出地址类型(DHCP 或手动配置)、IPv4 地址、子网掩码和默认网关。单击“支持”选项卡上的“详细信息”显示介质访问控制 (MAC) 地址、DHCP 租约信息、DNS 服务器和 WINS 服务器。

管理配置

要更改 IPv4 地址配置,可使用:

“网络连接”文件夹

在“网络连接”文件夹中,可对相应网络连接的 Internet 协议 (TCP/IP) 组件的属件进行更改。

netsh interface ip set 命令

可使用 netsh interface ip set address 命令配置地址类型(DHCP 或手动配置)、IPv4 地址、子网掩码和默认网关。可使用 netsh interface ip set dns 命令配置 DNS 服务器地址的来源(DHCP 或手动配置)、DNS 服务器地址和 DNS 注册行为。可使用 netsh interface ip set wins 命令配置 WINS 服务器地址的来源(DHCP 或手动配置)和 WINS 服务器地址。

也可使用 Netsh 工具的 –r RemoteComputerName 命令行选项来管理远程计算机的 IPv4 配置。

Ipconfig 命令管理 DHCP 地址

可使用以下命令管理 DHCP 地址:

ipconfig /release

ipconfig /renew

ipconfig /showclassid

ipconfig /setclassid

 

验证可访问性

要验证本地或远程目标的可访问性,请尝试执行以下操作:

检查和刷新 ARP 缓存

要显示 ARP 缓存的当前内容,请使用 arp –a 命令。要刷新 ARP 缓存,请使用 arp –d * 命令。此命令还会删除静态 ARP 缓存条目。

Ping 默认网关

使用 Ping 工具 ping 默认网关的 IPv4 地址。您可从 ipconfignetsh interface ip show configroute print 命令的显示内容中获得默认网关的 IPv4 地址。Ping 默认网关用于测试您是否能访问本地节点以及是否能访问默认网关,默认网关用于将 IPv4 数据包转发到远程节点。如果默认网关正在筛选所有 ICMP 消息,则此步操作可能不会成功。

Ping 远程目标的 IPv4 地址

如果能够 ping 默认网关,请 ping 远程目标的 IPv4 地址。如果该远程目标正在筛选所有 ICMP 消息,则此步操作可能不会成功。筛选 ICMP 消息是 Internet 上的一项常见操作。

追踪至远程目标的路由

如果无法 ping 远程目标的 IPv4 地址,则可能是您的节点与目标节点之间存在路由问题。使用 tracert –d IPv4Address 命令追踪至远程目标的路由路径。–d 命令行选项可防止 Tracert 工具对路由路径中的每个近端路由器接口执行 DNS 反向查询,这样可以加快路由路径的显示速度。如果中间路由器或目标正在筛选所有 ICMP 消息,则此步操作可能不会成功。筛选 ICMP 消息是 Internet 上的一项常见操作。

检查数据包筛选

无法访问目标节点可能是源节点、中间路由器或目标节点上 Internet 协议安全性 (IPsec) 或数据包筛选的配置所造成,从而阻止数据包的发送、转发和接收。

在源节点上检查是否有以下几项:

带有 IP 安全监视器管理单元的活动 IPsec 策略

对于运行 Windows Server 2003 的计算机,路由接口上有带有“路由和远程访问”管理单元的“路由和远程访问”IPv4 数据包筛选器

在运行 Windows XP 的中间 IPv4 路由器上检查是否包含以下内容:

带有 IP 安全监视器管理单元的活动 IPsec 策略

在运行 Windows Server 2003 和“路由和远程访问”的中间 IPv4 路由器上检查是否有以下几项:

带有 IP 安全监视器管理单元的活动 IPsec 策略

路由接口上有带有“路由和远程访问”管理单元的“路由和远程访问”IPv4 数据包筛选器

“路由和远程访问”的“NAT/基本防火墙”路由协议组件

在第三方硬件供应商提供的中间 IPv4 路由器或防火墙上,检查是否配置了数据包筛选器(也称为访问列表)以及是否配置了 IPsec 策略和筛选器。

在运行 Windows XP 或 Windows Server 2003 的目标节点上检查是否有以下几项:

带有 IP 安全监视器管理单元的活动 IPsec 策略

是否启用了 Internet 连接防火墙或 Windows 防火墙

TCP/IP 筛选

在运行 Windows Server 2003 和“路由和远程访问”的目标节点上检查是否有以下几项:

带有 IP 安全监视器管理单元的活动 IPsec 策略

路由接口上有带有“路由和远程访问”管理单元的“路由和远程访问”IPv4 数据包筛选器

“路由和远程访问”的“NAT/基本防火墙”路由协议组件

是否启用了 Internet 连接防火墙或 Windows 防火墙

TCP/IP 筛选

 

查看和管理本地 IPv4 路由表

无法访问本地或远程目标可能是由于 IPv4 路由表中的路由不正确或缺失。要查看 IPv4 路由表,请使用 route printnetstat –r 命令。验证您是否拥有与本地子网相对应的路由和默认路由(如果配置了默认网关)。如果有多个具有相同最低跃点数的默认路由,则请更改 IPv4 配置,以保证仅存在一个默认路由,且使用的接口连接到子网数最多的网络(如 Internet)。

要将某个路由添加到 IPv4 路由表,请使用 route add 命令。要修改现有路由,请使用 route change 命令。要删除现有路由,请使用 route delete 命令。

验证路由器可靠性

如果怀疑路由器性能存在问题,请使用 pathping –d IPv4Address 命令追踪数据包到目标所采用的路由,并显示路径中每个路由器和链路的数据包丢失信息。–d 命令行选项可防止 Pathping 工具对路由路径中的每个近端路由器接口执行 DNS 反向查询,这样可以加快路由路径的显示速度。

验证 IPv4 地址的 DNS 名称解析

如果使用 IPv4 地址能够访问,但使用主机名不能访问,则可能是主机名解析存在问题,这通常是 DNS 客户端的配置出了问题或 DNS 注册出了问题。

可使用以下任务排除 DNS 名称解析中存在的故障:

验证 DNS 配置

显示和刷新 DNS 客户端解析器缓存

使用 Ping 工具测试 DNS 名称解析

使用 Nslookup 工具查看 DNS 服务器响应

验证 DNS 配置

在存在 DNS 名称解析故障的节点上验证以下内容:

主机名

主 DNS 后缀

DNS 后缀搜索列表

连接特定的 DNS 后缀

DNS 服务器

可从 ipconfig /all 命令的显示内容中获得这些信息。要获得关于应在 DNS 中注册哪些 DNS 名称的信息,请使用 netsh interface ip show dns 命令。

要将相应的 DNS 名称注册为 IPv4 地址资源记录(也称为 A 资源记录)并伴随着 DNS 动态更新,请使用 ipconfig /registerdns 命令。

显示和刷新 DNS 客户端解析器缓存

TCP/IP 会在发送 DNS 名称查询前检查 DNS 客户端解析器缓存。如果名称的缓存条目为正,则使用相应的 IPv4 地址。如果名称的缓存条目为负,则不发送 DNS 名称查询。

要显示 DNS 客户端解析器缓存的内容,请使用 ipconfig /displaydns 命令。要刷新 DNS 客户端解析器缓存的内容,然后用 Hosts 文件中的条目重新加载,请使用 ipconfig /flushdns 命令。

使用 Ping 测试 DNS 名称解析

要测试 DNS 名称解析,请使用 Ping 工具 ping 目标的主机名或完全限定的域名 (FQDN)。Ping 工具画面将显示 FQDN 及其已解析的 IPv4 地址。如果使用 Ping 工具的主机同时使用 IPv4 和 IPv6,且 DNS 查询同时返回 IPv4 和 IPv6 地址,则 Ping 工具将使用 IPv6 地址,而非 IPv4 地址。要强制 Ping 工具使用 IPv4 地址,请使用 –4 Ping 命令选项。

使用 Nslookup 工具查看 DNS 服务器响应

如果 Ping 工具使用的是错误的 IPv4 地址,请使用 ipconfig /flushdns 命令刷新 DNS 客户端解析器缓存,然后使用 Nslookup 工具确定在“DNS 名称查询响应”消息中返回的地址集。在 Nslookup > 提示符下,使用 set d2 命令来最大限度地显示有关 DNS 响应消息的信息。然后,使用 Nslookup 查看所需的 FQDN 并显示 DNS 响应消息的详细内容。在显示的 DNS 响应消息详细内容中查找 A 记录。

验证 NetBIOS 名称解析

如果使用 IPv4 地址能够访问,但使用 NetBIOS 名称不能访问,则可能是 NetBIOS 名称解析有故障,这通常是基于 TCP/IP 的 NetBIOS 配置存在问题或 WINS 注册存在问题。

可使用以下工具和任务排除与 NetBIOS 名称解析相关的故障:

验证 NetBT 配置

显示和重新加载 NetBIOS 名称缓存

使用 Nbtstat 测试 NetBIOS 名称解析

验证基于 TCP/IP 的 NetBIOS 配置

在存在 NetBIOS 名称解析故障的节点上验证以下内容:

NetBIOS 计算机名称

NetBIOS 节点类型

主 WINS 服务器

次 WINS 服务器

基于 TCP/IP 的 NetBIOS 是否禁用

可从 ipconfig /all 命令的显示内容中获得此信息。要获得有关分配给各接口的 NetBIOS 范围 ID 的信息,请使用 nbtstat -c 命令。要验证是否启用了 Lmhosts 查找,请检查 WINS 选项卡中是否存在 Internet 协议 (TCP/IP) 组件的高级属性。

要显示本地 NetBIOS 名称表,请使用 nbtstat –n 命令。要显示远程计算机的 NetBIOS 名称表,请使用 nbtstat –a ComputerNamenbtstat –A IPv4Address 命令。

要在 WINS 中释放然后重新注册节点的 NetBIOS 名称,请使用 nbtstat -RR 命令。

显示和重新加载 NetBIOS 名称缓存

请在发送 WINS 或广播名称查询前检查 NetBIOS 名称缓存。如果存在已解析名称的条目,TCP/IP 使用相应的 IPv4 地址。要显示 NetBIOS 名称缓存的内容,请使用 nbtstat -c 命令。要刷新 NetBIOS 名称缓存的内容,然后使用 Lmhosts 文件中的 #PRE 条目重新加载,请使用 nbtstat -R 命令。

使用 Nbtstat 测试 NetBIOS 名称解析

要测试 NetBIOS 名称解析,请使用 nbtstat –a ComputerName 命令。此命令将显示由其 NetBIOS 计算机名指定的计算机的 NetBIOS 名称表。

验证基于 IPv4 的 TCP 会话

如果可以访问和进行名称解析,但您无法与目标主机建立 TCP 会话,则请使用以下任务:

检查是否有数据包筛选

验证 TCP 会话建立情况

验证 NetBIOS 会话

检查是否有数据包筛选

正如先前在本章的“验证 IPv4 通信”部分所论述的那样,源节点、中间路由器和目标节点上的数据包筛选会阻止 TCP 会话的完成。使用本章中“验证 IPv4 通信”部分的信息来检查源节点、中间路由器和防火墙以及目标节点上是否有数据包筛选或 IPsec 策略。

在很多情况下,数据包筛选被配置为允许特定类型的通信而丢弃所有其他通信,或者是丢弃特定类型的通信而接受所有其他通信。对于前一种情况,举例来说,防火墙或 Web 服务器可能被配置为仅允许超文本传输协议 (HTTP) 通信而丢弃为 Web 服务器指定的所有其他通信。这意味着您能够在 Web 服务器上查看网页,但不能 ping Web 服务器或访问它的共享文件夹和文件。

验证 TCP 会话建立情况

要验证使用已知的目标 TCP 端口号是否能建立 TCP 连接,您可以使用 telnet IPv4Address TCPPort 命令。例如,要验证 IPv4 地址为 131.107.78.12 的计算机上的 Web 服务器服务是否正在接受 TCP 连接,请使用 telnet 131.107.78.12 80 命令。

如果 Telnet 工具成功地创建了 TCP 连接,命令提示窗口将会清空,然后根据协议显示一些文本。此窗口允许您针对已连接的服务键入命令。键入 Control-C 退出 Telnet 工具。如果 Telnet 工具无法成功创建 TCP 连接,将显示消息“正在连接到 IPv4Address...不能打开到主机的连接,端口为 TCPPort:连接失败”。

可用来测试 TCP 连接建立情况的另外一个工具是 Test TCP (Ttcp)。使用 Ttcp,您既可以启动 TCP 连接,也可以侦听 TCP 连接。您还可以将 Ttcp 工具用于 UDP 通信。通过 Ttcp,您可以将一台计算机配置为侦听特定 TCP 或 UDP 端口,而不必在该计算机上安装应用程序或服务。这样,您便可以在服务就绪前测试特定通信的网络连通性。

验证 NetBIOS 会话

要验证已建立的 NetBIOS 会话,您可以使用 nbtstat –s 命令,它将显示 NetBIOS 会话表。

IPv6 故障排除

以下各节介绍用于确定正在使用 IPv6 Internet 层的 TCP/IP 协议堆栈的各连续层中存在的故障的工具和技术。您可以采用以下顺序之一,这取决于故障的类型:

从堆栈底部开始向上移动。

从堆栈顶部开始向下移动。

以下各节按照从堆栈顶部开始的顺序组织,介绍了以下内容:

如何验证 IPv6 连通性。

如何验证 IPv6 地址的 DNS 名称解析。

如何验证基于 IPv6 的 TCP 会话。

虽然没有在以下各节中指出,但您也可以使用 Network Monitor 捕获 IPv6 通信,以排除基于 IPv6 的通信中存在的许多故障。Network Monitor 随 Microsoft Systems Management Server 提供,是 Windows Server 2003 的可选网络组件。不过,为了正确解释 Network Monitor 中 Ipv6 数据包的显示,您必须具备关于每个数据包中包含的协议的详尽知识。

验证 IPv6 连通性

可使用以下任务排除与 IPv6 连通性相关的故障:

验证配置

管理配置

验证可访问性

查看和管理 IPv6 路由表

验证路由器可靠性

验证配置

要检查当前 Ipv6 设置的地址配置是否正确(手动配置时)或者是否适当(自动配置时),您可以使用:

ipconfig /all

ipconfig /all 命令会显示 IPv6 地址、默认路由器以及所有接口的 DNS 设置。Ipconfig 工具仅适用于本地计算机。

netsh interface ipv6 show address

此命令仅显示分配给各接口的 IPv6 地址。通过使用 –r RemoteComputerName 命令行选项,Netsh 还可用来显示远程计算机的配置。例如,要显示名为 FILESRV1 的远程计算机的配置,请使用 netsh –r filesrv1 interface ipv6 show address 命令。

管理配置

要手动配置 IPv6 地址,请使用 netsh interface ipv6 set address 命令。多数情况下,您无需手动配置 IPv6 地址,因为会通过 IPv6 地址自动配置而将它们自动分配给主机。

要更改 IPv6 接口的配置,请使用 netsh interface ipv6 set interface 命令。要添加 DNS 服务器的 IPv6 地址,请使用 netsh interface ipv6 add dns 命令。

您可以使用 Netsh 工具的 –r RemoteComputerName 命令行选项来管理远程计算机的 IPv6 配置。

验证可访问性

要验证本地或远程目标的可访问性,请尝试执行以下操作:

检查和刷新邻居缓存

邻居缓存与地址解析协议 (ARP) 缓存相类似,其中存储着最近解析的链路层地址。要显示邻居缓存的当前内容,请使用 netsh interface ipv6 show neighbors 命令。要刷新邻居缓存,请使用 netsh interface ipv6 delete neighbors 命令。

检查和刷新目标缓存

目标缓存存储目标的下一跃点 IPv6 地址。要显示目标缓存的当前内容,请使用 netsh interface ipv6 show destinationcache 命令。要刷新目标缓存,请使用 netsh interface ipv6 delete destinationcache 命令。

Ping 默认路由器

使用 Ping 工具 ping 默认路由器的 IPv6 地址。您可从 ipconfig、netsh interface ipv6 show routesroute printnbtstat -r 命令的显示内容中获得默认路由器的链路本地 IPv6 地址。Ping 默认路由器用于测试您是否能够访问本地节点以及是否能够访问默认路由器,默认路由器用于将 IPv6 数据包转发到远程节点。

Ping 默认路由器时,您必须指定希望在其上发送 ICMPv6 Echo Request 消息的接口的区域标识符 (ID)。区域 ID 是跃点数最低的默认路由 (::/0) 的接口索引,来自于 netsh interface ipv6 show routesroute print 命令的显示。

如果默认路由器正在筛选所有 ICMPv6 消息,则此步操作可能不会成功。

Ping 远程目标的 IPv6 地址

如果能够 ping 默认路由器,则 ping 远程目标的 IPv6 地址。如果目标正在筛选所有 ICMPv6 消息,则此步操作可能不会成功。

追踪至远程目标的路由

如果无法 ping 远程目标的 IPv6 地址,则可能是您的节点与目标节点之间存在路由问题。使用 tracert –d IPv6Address 命令追踪至远程目标的路由路径。–d 命令行选项可防止 Tracert 工具对路由路径中的每个近端路由器接口执行 DNS 反向查询,这样可以加快路由路径的显示速度。如果中间路由器或目标正在筛选所有 ICMPv6 消息,则此步操作可能不会成功。

检查数据包筛选

无法访问目标节点可能是源节点、中间路由器或目标节点上 Internet 协议安全性 (IPsec) 或数据包筛选的配置所造成,从而阻止数据包的发送、转发和接收。

在源节点上,检查是否有使用 Ipsec6 工具配置的 IPsec for IPv6 策略。

在运行 Windows XP 或 Windows Server 2003 的中间 IPv6 路由器上,检查是否有使用 Ipsec6 工具配置的 IPsec for IPv6 策略。

对于第三方中间 IPv6 路由器或防火墙,检查是否配置了基于 IPv6 的数据包筛选器以及是否配置了 IPsec 策略。

在目标节点上检查是否有以下几项:

使用 Ipsec6 工具配置的 IPsec for IPv6 策略

简单的 IPv6 防火墙

IPv6 for Windows Server 2003 包括对接口上简单防火墙的支持。启用后,IPv6 会丢弃传入的 TCP 同步 (SYN) 段以及所有未经请求的传入的 UDP 消息。您可以使用 netsh interface ipv6 set interface interface=NameOrIndex firewall=enabled|disabled 命令来配置简单的防火墙。

IPv6 的 Internet 连接防火墙

IPv6 的 Internet 连接防火墙随附在 Windows XP 的 Advanced Networking Pack 中,Advanced Networking Pack 是 Windows XP with SP1 的免费下载。

Windows 防火墙

Windows 防火墙随附在 Windows XP Service Pack 2 和 Windows Server 2003 Service Pack 1 中。

 

查看和管理本地 IPv6 路由表

无法访问本地或远程目标可能是由于 IPv6 路由表中的路由不正确或缺失。要查看 IPv6 路由表,请使用 route printnetstat –rnetsh interface ipv6 show routes 命令。验证您是否拥有与本地子网相对应的路由和默认路由(如果自动配置了默认路由器)。如果有多个具有相同最低跃点数的默认路由,则可能需要修改 Ipv6 路由器配置,使拥有最低跃点数的默认路由使用的接口连接到子网数最多的网络。

要将路由添加到 IPv6 路由表,请使用 netsh interface ipv6 add route 命令。要修改现有路由,请使用 netsh interface ipv6 set route 命令。要删除现有路由,请使用 netsh interface ipv6 delete route 命令。

验证路由器可靠性

如果怀疑路由器性能存在问题,请使用 pathping –d IPv6Address 命令追踪至目标的路径,并显示路径中每个路由器和链路的数据包丢失信息。–d 命令行选项可防止 Pathping 工具对路由路径中的每个近端路由器接口执行 DNS 反向查询,这样可以加快路由路径的显示速度。

验证 IPv6 地址的 DNS 名称解析

如果使用 IPv6 地址能够访问,但使用主机名不能访问,则可能是主机名解析存在问题,这通常是 DNS 客户端的配置出了问题或 DNS 注册出了问题。

可使用以下任务排除 DNS 名称解析中存在的故障:

验证 DNS 配置

显示和刷新 DNS 客户端解析器缓存

使用 Ping 工具测试 DNS 名称解析

使用 Nslookup 工具查看 DNS 服务器响应

验证 DNS 配置

在存在 DNS 名称解析故障的节点上验证以下内容:

主机名

主 DNS 后缀

DNS 后缀搜索列表

连接特定的 DNS 后缀

DNS 服务器

可从 ipconfig /all 命令的显示内容中获得这些信息。要获得关于应在 DNS 中注册哪些 DNS 名称的信息,请使用 netsh interface ip show dns 命令。

默认情况下,IPv6 在用于接收路由器公告的每个接口的 FEC0:0:0:FFFF::1、FEC0:0:0:FFFF::2 和 FEC0:0:0:FFFF::3 上配置人们熟知的、DNS 服务器的站点本地地址。要添加其他 DNS 服务器的 IPv6 地址,请使用 netsh interface ipv6 add dns 命令。

要将相应的 DNS 名称注册为 IPv6 地址资源记录(也称为 AAAA 资源记录)并伴随着 DNS 动态更新,请使用 ipconfig /registerdns 命令。

显示和刷新 DNS 客户端解析器缓存

TCP/IP 会在发送 DNS 名称查询前检查 DNS 客户端解析器缓存。如果某个已解析名称的缓存条目为正,则使用相应的 IPv6 地址。如果名称的缓存条目为负,则不发送 DNS 名称查询。

要显示 DNS 客户端解析器缓存的内容,请使用 ipconfig /displaydns 命令。要刷新 DNS 客户端解析器缓存的内容,然后用 Hosts 文件中的条目重新加载,请使用 ipconfig /flushdns 命令。

使用 Ping 测试 DNS 名称解析

要测试 DNS 名称解析,请使用 Ping 工具 ping 目标的主机名或 FQDN。Ping 工具画面将显示 FQDN 及其相应的 IPv6 地址。

使用 Nslookup 工具查看 DNS 服务器响应

如果 Ping 工具使用的是错误的 IPv6 地址,则刷新 DNS 客户端解析器缓存并使用 Nslookup 工具来确定在“DNS 名称查询响应”消息中返回的地址集。在 Nslookup > 提示符下,使用 set d2 命令来最大限度地显示有关 DNS 响应消息的信息。然后,使用 Nslookup 查找所需的 FQDN。在 DNS 响应消息的详细信息画面中查找 AAAA 记录。

验证基于 IPv6 的 TCP 会话

如果可以访问和进行名称解析,但您无法与目标主机建立 TCP 连接,请使用以下任务:

检查是否有数据包筛选

验证 TCP 连接建立情况

检查是否有数据包筛选

正如先前在本章的“验证 IPv6 通信”部分所论述的那样,源节点、中间路由器和目标节点上的数据包筛选会阻止 TCP 连接的建立。使用本章中“验证 IPv6 通信”部分的信息来检查源节点、中间路由器和防火墙以及目标节点上是否有数据包筛选或 IPsec 策略。

在很多情况下,数据包筛选被配置为允许特定类型的通信而丢弃所有其他通信,或者是丢弃特定类型的通信而接受所有其他通信。对于前一种情况,举例来说,防火墙或 Web 服务器可能被配置为仅允许 HTTP 通信而丢弃为 Web 服务器指定的所有其他通信。这意味着您能够在 Web 服务器上查看网页,但不能 ping 它或访问它的共享文件夹和文件。

验证 TCP 会话建立情况

要验证使用已知的目标 TCP 端口号是否能建立 TCP 连接,您可以使用 telnet IPv6Address TCPPort 命令。例如,要验证 IPv6 地址为 3FFE:FFFF::21AD:2AA:FF:FE31:AC89 的计算机上的 Web 服务器服务是否接受 TCP 端口 80 上的 TCP 连接,请使用 telnet 3ffe:ffff::21ad:2aa:ff:fe31:ac89 80 命令。

如果 Telnet 工具可以成功地创建 TCP 连接,命令提示窗口将会清空,然后根据协议显示一些文本。此窗口允许您针对已连接的服务键入命令。键入 Control-C 退出 Telnet 工具。如果 Telnet 工具无法成功创建 TCP 连接,将显示消息“正在连接到 IPv6Address...不能打开到主机的连接,端口为 TCPPort:连接失败”。

可用来测试 TCP 连接建立情况的另外一个工具是 Test TCP (Ttcp)。使用 Ttcp,您既可以启动 TCP 连接,也可以侦听 TCP 连接。您还可以将 Ttcp 工具用于 UDP 通信。通过 Ttcp,您可以将一台计算机配置为侦听特定 TCP 或 UDP 端口,而不必在该计算机上安装应用程序或服务。这样,您便可以在服务就绪前测试特定通信的网络连通性。

 

术语表

地址解析 – IPv4(使用 ARP)或 IPv6(使用邻居发现)进程,用于解析链路上下一跃点 IP 地址的 MAC 地址。

地址解析协议 – 一种协议,使用本地子网上的广播通信将 IPv4 地址解析为 MAC 地址。

ARP – 参阅地址解析协议。

ARP 缓存 – 一种表格,包含每个接口的静态或动态解析的 IPv4 地址及其对应的 MAC 地址。

默认网关 – IPv4 的配置参数,它是相邻 IPv4 路由器的 IPv4 地址。配置默认网关将在 IPv4 路由表中创建一个默认路由。

默认路由 – 一种路由,它汇总了所有可能的目标并在路由表中没有用于目标的任何其他特定路由时起到转发作用。例如,如果路由器或发送主机找不到可用于目标的子网路由、汇总路由或主机路由,IP 将选择默认路由。默认路由用于简化主机和路由器的配置。对于 IPv4 路由表,默认路由是网络目标为 0.0.0.0、网络掩码为 0.0.0.0 的路由。对于 IPv6 路由表,默认路由带有地址前缀 ::/0。

默认路由器 – IPv6 的配置参数,它是相邻 IPv6 路由器的链路本地地址。默认路由器通过 IPv6 路由器发现自动配置。

目标缓存 – 一种表格,其中包含目标 IPv6 地址及其先前确定的下一跃点地址。

DNS – 参阅域名系统 (DNS)。

DNS 客户端解析器缓存 – 一个基于 RAM 的表格,其中包含 Hosts 文件中的条目和最新 DNS 名称查询的结果。

DNS 服务器 – 一种服务器,它用于维护包含有 DNS 域名到各种类型数据(如 IP 地址)的映射的数据库。

域名系统 (DNS) – 一种分层结构的分布式数据库,其中包含 DNS 域名到各种类型数据(如 IP 地址)的映射。DNS 支持按照用户容易识别的名称来指定计算机和服务,还支持识别存储在数据库中的其他信息。

主机名 – 网络中的计算机或设备的名称。用户通过各自的主机名来指定网络中的计算机。要找到其他计算机,该计算机的主机名必须显示在 Hosts 文件中,或者已为 DNS 服务器所知。对于大多数基于 Windows 的计算机,主机名和计算机名是相同的。

主机名解析 – 将主机名解析为目标 IP 地址的过程。

Hosts 文件 – 一个本地文本文件,其格式与 4.3 BSD UNIX /etc/hosts 文件相同。此文件用于将主机名映射到 IP 地址,该文件存储在 systemroot/System32/Drivers/Etc 文件夹中。

Lmhosts 文件 – 一个本地文本文件,用于将 NetBIOS 名称映射到位于远程子网中的主机的 IP 地址。对于基于 Windows 的计算机,该文件存储在 systemroot/System32/Drivers/Etc 文件夹中。

负缓存条目 – 已添加到 DNS 客户端解析器缓存中的主机名称,可进行查询但不能进行解析。

邻居缓存 – 由每个 IPv6 节点维护的缓存,其中存储着邻居的子网内 IPv6 地址及其对应的 MAC 地址。邻居缓存相当于 IPv4 中的 ARP 缓存。

NBNS – 参阅 NetBIOS 名称服务器 (NBNS)。

NetBIOS 名称 - 使用 NetBIOS 的进程的 16 字节名称。

NetBIOS 名称缓存 – 一个动态维护的表格,它位于启用 NetBIOS 的主机上,其中存储着最近解析的 NetBIOS 名称及其关联的 IPv4 地址。

NetBIOS 名称解析 – 将 NetBIOS 名称解析为 IPv4 地址的过程。

NetBIOS 名称服务器 (NBNS) – 一种服务器,它存储着 NetBIOS 名称到 IPv4 地址的映射并能解析启用 NetBIOS 的主机的 NetBIOS 名称。WINS 是 NetBIOS 名称服务器的 Microsoft 实现。

路由表 – 路由集合,用于确定由主机发送或由路由器转发的 IP 通信的下一跃点地址和接口。

Windows Internet 名称服务 (WINS) – NetBIOS 名称服务器的 Microsoft 实现。

WINS – 参阅 Windows Internet 名称服务 (WINS)。

原创粉丝点击