CSDN博客

img shanyou

中小异构Linux网络故障分析与排除

发表于2003/3/5 11:09:00  1263人阅读

分类: 网络集成

出处:转载自赛迪网 作者:曹元其

  由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络。中小企业由于缺少经验丰富的Linux网络管理员,所以对于Linux网络故障分析与排除经常是头痛医头、脚痛医脚,缺乏全面的考虑。

  据统计,Linux网络故障有35%在物理层、25%在数据链路层、12%在网络层、10%在传输层、8%在对话层、7%在表示层、3%在应用层。由此可以看出,网络故障通常发生在网络七层模型的下三层,即物理层、链路层和网络层。对应于实际网络也就是使用的网线、连接模块、网卡、交换机、路由器等设备故障。这些故障可能因为产品的质量或性能、磨损老化、人为误操作、不正确的设置、管理缺陷、黑客系统入侵等原因造成。

  Linux网络服务功能非常强大,不论是Mail Server、Web Server、DNS Server等都非常完善。但是,也经常听到有人抱怨Linux没有办法连上网络等问题。下面首先看看Linux TCP/IP的网络模型(见图1所示),掌握OSI模型、TCP/IP模型及相关服务对应的层次对于Linux网络故障分析与排除是非常重要的。


图1 Linux TCP/IP网络模型和相关服务列表

解决问题的思路

  解决问题的顺序应该是从Linux网络的底层开始,然后慢慢地向上检查,问题的解决流程可以如下:

  ◆ 检查网卡是否能正常工作;
  ◆ 局域网络硬件联机确认能不能ping到同一网域中的其它计算机IP(局域网络);
  ◆ 检查DNS是否设定正确;
  ◆ 检查主机的服务是否被关掉,检查 inetd.conf /etc/xinetd.d;
  ◆ 一些服务的权限与端口是否打开。

  例如在局域网络接线法中,一般造成网络问题的情况可以分为网络硬件传输部分及操作系统、通信协议或者相关服务的软件设定问题。

  1.网络硬件传输问题

  (1)网线

  在图2中可以发现,网络接口设备中使用最多的是网线。由于网线常接在墙角和门缝处,有可能被压坏。所以,需要注意网线是否因被截断、网线过度扭曲变形、自制网络接头(如RJ-45跳线头)品质不良造成讯号不良;网络接头与设备(如集线器、路由器、交换机)接触不良等。

 

  (2)网卡、集线器、路由器、交换机等网络设备

  网卡不稳定、品质不佳,或者与整体系统的兼容性不佳; 各网络设备的接触不良,造成讯号衰减; 网络设备使用方法不良,造成设备功能衰减等都会造成传输问题。

 

  (3) 设备配置的规则

  各个设备的配置是有规则的。太长的网络线会造成讯号的衰减,导致网络联机的时间太长甚至无法联机。

  (4)UPS电源

  UPS电源是一个容易被忽视的环节。由于路由器、交换机、基带式“猫”等网络设备对电压和接地都非常敏感,因此,应当使用性能优良的在线式UPS作为供电电源,最好使用2000W功率以上的,从而可以将所有的网络设备都连接在同一电源,避免不同设备间的电压差别。此外,机房和机柜要有非常好的接地措施,并为所有设备建立一条地线保证接地电压相同,确保网络设备正常进行。

  2.软件设定问题

  (1)网卡的IP设定错误

  例如,同一个IP在同一个网段中出现造成IP冲突、子屏蔽网络设定错误等。

  (2)路由问题(Router)

  这方面的问题出在Gateway的设定错误,或者是路由设定不正确,导致资料封包没有办法顺利地送出去。

  (3)网络负荷问题(Loading)

  当黑客对网络实施拒绝服务攻击时,同时有大量的信息包涌进Server或Hub,就有可能造成网络的停顿甚至挂起。

  (4)其它

  例如,一些端口被防火墙挡住了,造成无法执行某些网络资源;应用程序本身的Bug问题;应用程序中使用者的网络设定错误;以及不同的操作系统的兼容性问题等。

解决问题的方法

  以图2为例,解决问题的方法可以从自身PC的网卡查起,然后到网络线、Hub等硬件。如果确定硬件没有问题了,再来考虑软件的设定。


图2 网络拓扑结构

  1.检查网卡工作状况

  (1)使用lsmod查看网卡的模块是否已被加载(见图3所示)


  # lsmod

图3 显示Linux硬件情况

  图3中倒数第二行显示已经检测到网卡,并且已经加载。如果没有检测到硬件,用硬件检测程序Kuduz检测网卡,它和Windows中添加新硬件差不多。如果核心支持该硬件,并且有该驱动程序就可自动装载。

  (2)使用ifconfig查看网卡工作状况

  如果已经检测到网卡,网卡硬件就没有问题,接下来检查网卡的软件设定。使用ifconfig,如果没有任何网络硬件被驱动的话,使用下面命令加载:


  # ifconfig eth0 192.168.0.2 netmask 255.255.255.0  up

  图4是我的网络设定,设备名称为eth0,IP是192.168.0.2。


图4 网卡基本信息

  如果没有检测到网卡就麻烦一些,通常要重新安装网卡的驱动程序,网卡驱动程序安装方法步骤如下:

  ◆ 编译并安装模块;
  ◆ 修改/etc/conf.module 文件;
  ◆ 修改/etc/sysconfig/network文件;
  ◆ 修改/etc/sysconfig/network-scripts/ifcfg-eth0 文件;
  ◆ 以ifup eth0来激活网卡后再查看。

  如果还有问题,基本上可以确定网卡发生物理故障需要更换。

  2.局域网络硬件联机确认

  最重要的网卡设定确认没有问题之后,接下来要确认局域网内网络连接情况。根据图2网络拓扑结构,对局域网的要求有下面几点:

  (1)IP的设定

  假设子网为192.168.1.0/24,那么局域网内所有计算机的IP应该介于192.168.1.1~192.168.1.254,且所有的计算机子屏蔽网络均为255.255.255.0,IP在所有的计算机都不可以重复。

  (2)Gateway

  假设Linux IP为192.168.1.2,那么局域网内所有其它的个人计算机的Gateway是192.168.1.2 。

  (3)Windows端的通信协议

  局域网内其它的Windows系统的通信协议仅需要TCP/IP及NetBUEI即可,如果安装过多的通信协议可能会造成联机过慢。

  (4)Windows 端工作组与计算机名称

  假如需要资源共享,那么就必须在Windows系统中建立文件共享,并且所有的计算机工作组必须相同,但计算机名称不能相同。

  3.检查DNS设定是否正确

  如果在Linux系统中无法进行域名解析,很可能是没有在本地指定有效的域名服务器,通常这种情况比较常见。一般修改和域名服务相关的文件如/etc/hosts或/etc/resolv.conf,在这些文件中添加有效的域名服务器的IP地址就可以解决问题。

  4.主机服务是否关掉了服务权限

  一个比较常见的问题是无法登入主机执行某些功能,也就是说可以ping到网络上的某部主机,但是无法执行这个主机的某些特定功能,例如FTP、WWW 等。所以,首先必须了解该主机是否提供FTP、WWW服务。最常见到的就是Red Hat 7.X 版中,FTP与Telnet已经缺省为关闭。这时,就必须要到/etc/xinetd.d修改几个服务的设定。下面以Telnet为例说明:


  # vi /etc/xinetd.d/telnet 
  service telnet 
  { 
    disable = yes 
    flags           = REUSE 
    socket_type     = stream 
    wait            = no 
    user            = root 
    server          = /usr/sbin/in.telnetd 
    log_on_failure  += USERID 
  }

  将disable=yes改成disable=no就可以开启服务。然后,再用/etc/rc.d/init.d/xinetd restart来激活Telnet服务。

  5.确定一些服务的权限及端口是否打开

  如果Client PC要使用Server服务,还要检查各个文件或者程序的权限,例如:/etc/hosts.allow是否开启、Mail Server是否设定了relay、httpd.conf中是否开放PHP或者MySQL服务、或者是其它相关的CGI程序执行的可行性,FTP是否开放匿名登入,以及各个端口是否已经打开。使用命令:


  # netstat -a

  可以检测端口是否已经打开。

  一些常用的端口号为:ftp:21;telnet:23;smtp:25;http:80;pop-3:110;netbios-ssn:139;squid:3128;mysql:3306。

  掌握OSI模型、TCP/IP模型及相关服务对应层,对于Linux网络故障分析与排除是非常重要的。当对OSI模型有一个透彻地了解时,故障诊断就变得易如反掌。如果能够配置一些网络检测工具,对于网络故障分析与排除也是非常有用的。

0 0

相关博文

我的热门文章

img
取 消
img