Microsoft Windows 的 TCP/IP 基础知识zt,基础知识还是很重要滴

Microsoft Windows 的 TCP/IP 基础知识

tcp/ip

Microsoft Windows 的 TCP/IP 基础知识

< IP TCP – 章 16>
< | 2006年02月28日 更新日期: 2006年11月13日

摘要

本章介绍如何使用 Microsoft® Windows Server™ 2003 和 Windows® XP 中随附的一套工具和功能来排除与连通性、名称解析及传输控制协议 (TCP) 会话创建相关的故障。网络管理员必须了解如何就 TCP/IP 模型的不同层来系统分析与 TCP/IP 相关的联网问题,以及如何使用适当的工具来有效隔离和解决在通过 TCP/IP 网络成功通信时遇到的问题。

本页内容
本章目标本章目标
确定故障来源确定故障来源
Windows 故障排除工具Windows 故障排除工具
IPv4 故障排除IPv4 故障排除
IPv6 故障排除IPv6 故障排除
本章摘要本章摘要
本章术语表本章术语表

本章目标

 

读完本章后,您将能够:

列出故障排除时要询问的常见问题。

 

列出 Windows Server 2003 和 Windows XP 随附的一组 TCP/IP 故障排除工具,并说明如何使用每种工具来获取故障排除信息。

 

列出并介绍用于排除 Internet 协议版本 4 (IPv4) 通信故障(包括 IPv4 连通性、IPv4 地址的域名系统 (DNS) 名称解析、网络基本输入/输出系统 (NetBIOS) 名称解析以及基于 IPv4 的 TCP 会话)的指导原则、工具和技术。

 

列出并介绍用于排除 Internet 协议版本 6 (IPv6) 通信故障(包括 IPv6 连通性、IPv6 地址的 DNS 名称解析以及基于 IPv6 的 TCP 会话)的指导原则、工具和技术。

 

确定故障来源

 

逻辑方法对于排除任何故障都会有所帮助。故障排除时要询问的一些常见问题包括:

什么起作用?

 

什么不起作用?

 

起作用和不起作用的事件如何相关?

 

不起作用的事件是否曾经起过作用?

 

如果是这样,则自上次起作用以来做了什么更改?

 

从上述问题的答案中,您能够确定开始排除故障的项目,从而您能够隔离引发故障的组件、层或配置问题。

Windows 故障排除工具

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

< (ARP)>

 

 

 

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

 

< NetBIOS 配置,并允许管理 (NetBT) 的>

 

netsh interface ipnetsh interface ipv6 上下文,显示和管理本地计算机或远程计算机上的 TCP/IP 协议设置。

 

<>

 

<>

 

< Request Echo (ICMPv6) for Protocol Message Control Internet 或 (ICMP)>

 

< 路由表,还允许编辑>

 

< 消息以追踪 ICMPv6 ICMP>

 

<>

<>

< (SNMP)>

<>

 

< and Logs>

< SNMP 核心协议性能,并发送警报(必须安装>

<>

< 的计算机所收到和发送的 2003 Server Windows>

 

< Support/Tools 产品光盘的 XP 支持工具的一部分安装,位于 作为>

 

<>

 

< 产品光盘的 Valueadd/Msft/Net/Tools 提供,位于 随 消息。Ttcp.exe UDP 段数据或>

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

 

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

 

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

如何验证 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

 

有关使用 Ipconfig 命令管理 DHCP 地址配置的详细信息,请参阅第 6 章,“动态主机配置协议”。

验证可访问性

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

检查和刷新 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 筛选

 

有关 IPsec 和数据包筛选组件的详细信息,请参阅第 13 章,“Internet 协议安全性 (IPsec) 和数据包筛选”。

查看和管理本地 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 连接,您还可以使用“端口查询”,它是 Microsoft 提供的免费工具,旨在帮助排除特定类型 TCP 和 UDP 通信的 TCP/IP 连通性问题。“端口查询”有命令行版本 (Portqry.exe)(在 PortQry Command Line Port Scanner Version 2.0(英文)中提供)和图形用户界面版本 (Portqueryui.exe)(在 PortQryUI - User Interface for the PortQry Command Line Port Scanner(英文)中提供)。这两个版本均可在基于 Windows 2000、Windows XP 和 Windows Server 2003 的计算机上运行。

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

有关“端口查询”和 Ttcp 的详细信息,请参阅测试常见通信量类型的网络路径

验证 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 中。

有关这些数据包筛选组件的详细信息,请参阅第 13 章,“Internet 协议安全性 (IPsec) 和数据包筛选”。

查看和管理本地 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 端口,而不必在该计算机上安装应用程序或服务。这样,您便可以在服务就绪前测试特定通信的网络连通性。

有关 Ttcp 的详细信息,请参阅测试常见通信量类型的网络路径

 

本章摘要

 

本章包括以下主要信息:

要在着手处理故障排除问题时尝试隔离可能有故障的组件,您应该确定什么起作用、什么不起作用、不起作用的事件是否曾经起过作用以及自上次起作用以来做了什么更改。

 

Windows 提供了以下工具来排除 TCP/IP 故障:Arp、Hostname、Ipconfig、Nbtstat、Netsh、Netstat、Nslookup、Ping、Route、 Tracert、Pathping、SNMP 服务、Event Viewer、Performance Logs and Alerts、Network Monitor 和 Netdiag。

 

排除 IPv4 通信故障的方法是:验证 IPv4 连通性、验证 IPv4 地址的 DNS 名称解析、验证 NetBIOS 名称解析和验证基于 IPv4 的 TCP 会话。

 

排除 IPv6 通信故障的方法是:验证 IPv6 连通性、验证 IPv6 地址的 DNS 名称解析和验证基于 IPv6 的 TCP 会话。

 

本章术语表

 

地址解析 – 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)。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值