LPI202考试准备:网络故障诊断2009年12月23日来源:ibm作者:DavidMertz本文是由7篇文章组成的介绍Linux上网络管理的系列教程的最后一篇。在本教程中,DavidMertz将继续带领大家准备LinuxProfessionalInstituteIntermediateLevelAdministration(LPIC-2)Exam202的考试。本教程将回顾LPI202系列教程,重点介绍如何使用已经介绍过的基本工具来修复网络问题。对工具的回顾分为两类:配置工具和诊断工具。开始之前了解这些教程可以教您学习哪些知识,以及如何从这些教程中学习到尽可能多的知识。关于本系列教程LinuxProfessionalInstitute(LPI)的Linux系统管理员认证分为两个级别:初级(也称为认证级别1)和中级(也称为“认证级别2”)。要获得认证级别1,则必须通过101和102的考试;要获得认证级别2,则必须通过201和202的考试。developerWorks上提供了一些可以帮助您准备这些考试的教程。每个考试都包含几个主题,每个主题在developerWorks上都有对应的自学教程。要准备参加1级认证,请参阅developerWorks为LPI考试101和102准备的教程。要准备参加2级认证,请参阅developerWorks为LPI考试201和202准备的教程。对于LPI考试202,7个主题和对应的developerWorks教程如下:表1.LPI考试202:教程和主题LPI考试202主题developerWorks教程教程总结主题205LPI考试202准备(主题205):网络配置介绍如何配置基本的TCP/IP网络,范围从硬件层(常见的以太网,modem、ISDN或802.11)到网络地址的路由。主题206LPI考试202准备(主题206):邮件和新闻介绍如何将Linux用作邮件服务器和新闻服务器。本教程将介绍邮件传输、本地邮件过滤以及邮件列表维护软件等方面的内容,还将介绍NNTP协议使用的服务器软件。主题207LPI考试202准备(主题207):DNS介绍如何使用Linux作为DNS服务器,主要是使用BIND。本教程还将介绍如何执行基本的BIND配置、管理DNS区域,以及保障DNS服务器的安全。主题208LPI考试202准备(主题208):Web服务介绍如何安装和配置ApacheWeb服务器,以及如何实现Squid代理服务器。主题210LPI考试202准备(主题210):网络客户机管理介绍如何配置DHCP服务器、NIS客户机和服务器、LDAP服务器和PAM身份验证支持。参见下面详细的目标。主题212LPI考试202准备(主题212):系统安全性介绍如何配置路由器,如何保障FTP服务器的安全,如何配置SSH,以及如何执行各种其他安全管理任务。主题214LPI考试202准备(主题212):网络故障诊断(本教程)回顾可以用来检测和解决网络问题的工具和命令。参见下面详细的目标。LinuxProfessionalInstitute不为任何第三方考试准备资料或技术做担保。详情请联系info@lpi.org。关于本教程欢迎阅读“系统安全性”,这是介绍Linux上中级网络管理的由7篇文章组成的教程系列中的最后一篇。本文会重新回顾有关LinuxProfessionalInstitute202考试主题的前6篇教程中介绍的内容,从而为整个系列的教程提供一个通用的上下文。本文会对前面已经介绍过的一些工具进行重点说明,这些工具是ifconfig、route、hostname、dmesg、netstat、ping、traceroute等,本文还将重点介绍如何使用这些工具来解决问题。与developerWorks201和202系列中的其他教程一样,本教程旨在充当考试准备的学习指南和入门,而不是该主题的完全文档。鼓励读者参考LPI的详细目标列表,并在需要时参考其他资料,以补充这里的知识。本教程是按照这个主题的LPI目标组织的。大致上说,学习目标的权值越高,在考试中出的题就会越多。表2.网络故障诊断:本教程涉及的考试目标LPI考试目标目标权值目标摘要2.214.7网络问题的故障诊断权值1判断并修正常见的网络设置问题。目标包括了解基本配置文件的位置和命令。前提条件要想从本教程获得最大的好处,那么您应该具备Linux的一些基础知识,并拥有一个可以用来实践本教程中介绍的命令的Linux系统。本教程是在LPI考试202系列的前6篇教程基础上构建的。其他资源对于大多数Linux工具来说,查看讨论过的所有实用工具手册通常很有用。实用工具或内核之间的版本和开关(switch)可能有所不同,或者具有不同的Linux发行版。关于更深入的信息,LinuxDocumentationProject提供了各种有用的文档,尤其是它的HOWTO文档。关于Linux网络的书籍已经出版了很多,我觉得O'Reilly出版的由CraigHunt编写的TCP/IPNetworkAdministration一书相当有用。网络配置工具关于网络故障诊断要诊断网络配置的故障,则需要知道如何使用本系列教程中讨论的几个工具;还需要熟悉影响网络状态和行为的配置文件。本教程对进行故障诊断所应该熟悉的主要工具和配置文件进行了有效归纳。为了简便起见,本教程将根据给定工具是更适合网络配置还是更适合用来分析网络问题来对这些工具进行分组。当然,实际上这些工具很少是独立的。ifconfigLPI考试202准备(主题205):网络配置对ifconfig详细进行了讨论。这个工具既可以报告网络接口的当前状态,还可以用来修改这些接口的配置。在大部分情况下,如果在网络上发生了某种故障,例如一台机器根本就无法访问网络了,不使用任何参数执行ifconfig通常是我们采取的第一步操作。如果这个命令没有报告任何活动接口,那么我们就可以确认本地机器的配置有问题。这里的“活动”是指它可以显示分配的IP地址;在大部分情况下,我们应该期望在RX和TX行中看到报文的数量:清单1.使用ifconfigeth0Linkencap:EthernetHWaddr00:C0:9F:21:2F:25inetaddr:192.168.216.90Bcast:66.98.217.255Mask:255.255.254.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RXpackets:6193735errors:0dropped:0overruns:0frame:0TXpackets:6982479errors:0dropped:0overruns:0carrier:0试图使用类似于ifconfigeth0up...的命令来激活网络接口是尝试查看这个网络接口是否可以激活的第一步(在很多情况下,这行命令中都会添加其他一些参数)。routeLPI考试202准备(主题205):网络配置对route详细进行了讨论。这个工具让我们可以查看并修改对本地机器和本地网络有效的路由表。使用route可以添加和删除路由,设置网络掩码和网关,并执行各种其他任务。对于大部分情况来说,调用route应该在初始化脚本中进行,但是在试图诊断和解决问题时,尝试使用route的一些选项可以给我们提供很大的帮助(可以将成功验证过的命令复制到适当的初始化脚本中供以后使用)。hostname这个工具还有几个别名,分别表示了这个工具的功能的不同方面:domainnamenodenamednsdomainnamenisdomainnameypdomainname可以使用hostname选项来控制这个工具的不同方面。hostname用来设置或显示当前系统的主机名、域名或节点名。很多网络程序都会使用这些名称来标识机器。域名还可由NIS/YP使用。dmesgdmesg工具可以用来检查内核的日志消息;它是与syslogd一起进行工作的。任何内核进程,包括与网络有关的进程,都可以使用dmesg工具进行访问,我们通常会使用grep之类的其他工具对输出结果进行过滤,还可能使用dmesg命令的一些选项。手工设置ARP我们几乎从不需要(也不想)弄乱自动发现的ARP记录。不过在调试过程中,用户可能希望手工配置ARP缓存。arp工具可以实现这种功能。arp工具的关键选项有:-d,表示删除;-s,表示设置;-f,表示从文件中设置(默认文件是/etc/ethers)。例如,假设与本地网络上特定IP地址进行通信现在非常不可靠。这种情况的一个可能原因是多台机器都错误地被配置成使用同一个IP地址。当ARP请求通过以太网络进行广播时,无法预测出是哪一台机器首先使用ARP响应对这个请求进行应答。最终的结果会导致数据报文一次被发送到某台机器上,另外一次却被发送到另外一台不同的机器上。使用arp-n来调试实际的IP分配是第一步。如果我们可以确定此时的IP地址没有正确映射到正确的以太网设备上,那么这就是我们要继续探索的一条重要线索。除了随机测试之外,还可以使用arp-s(或-f)选项来强制进行正确的ARP映射。将IP设置为映射到一个它应该映射到的实际以太网设备上;手工配置映射不会过期,除非使用temp标记进行这种设置。如果手工ARP映射解决了数据丢失问题,那么这就是一个强烈的信号,指出存在的问题就是重复分配了IP地址。网络故障诊断工具netstatLPI考试202准备(主题205):网络配置对netstat进行了详细的讨论。这个工具可以显示很多有关网络连接、路由表、接口统计信息、伪装连接(masqueradeconnection)和多播成员的信息。此外,netstat还提供有关已经使用各种方法处理过的报文的相当详细的统计信息。netstat的手册提供了有关netstat的可用开关和选项的信息。这个工具是一个很好的通用工具,可以用它深入挖掘本地机器上网络状态的详细信息。ping查看是否可以从当前机器连接到指定主机(通过IP或符号名)的一个好起点就是ping工具。利用存在的路由(如果使用了符号名,还包括利用DNS或其他方式对名称进行解析),ping可以提供有关报文往返时间的信息,这可以说明网络拥塞程度或路由延时程度。有时ping会显示所丢弃报文的百分比,不过实际上我们通常会看到ping请求中所丢失报文的比率是100%或0%。traceroutetraceroute工具在某种程度上与ping有点类似。traceroute不是简单地汇报说存在一条到给定主机的路由,而是会显示在整个通路上所经过的所有跃点的详细信息,包括每级路由的时间。随着时间的变化,路由也可能会发生变化,这可能是因为Internet中的动态变化,也可能是由于在本地对路由进行了修改。不过在给定时间,traceroute可以显示实际允许的路径。清单2.traceroute显示实际的通路$traceroutegoogle.comtraceroute:Warning:google.comhasmultipleaddresses;using64.233.187.99traceroutetogoogle.com(64.233.187.99),30hopsmax,38bytepackets1ev1s-66-98-216-1.ev1servers.net(66.98.216.1)0.466ms0.424ms0.323ms2ivhou-207-218-245-3.ev1.net(207.218.245.3)0.650ms0.452ms0.491ms3ivhou-207-218-223-9.ev1.net(207.218.223.9)0.497ms0.467ms0.490ms4gateway.mfn.com(216.200.251.25)36.487ms1.277ms1.156ms5so-5-0-0.mpr1.atl6.us.above.net(64.125.29.65)13.824ms14.073ms13.826ms664.124.229.173.g