网络测试及故障诊断方法及工具.docx
《网络测试及故障诊断方法及工具.docx》由会员分享,可在线阅读,更多相关《网络测试及故障诊断方法及工具.docx(28页珍藏版)》请在冰豆网上搜索。
网络测试及故障诊断方法及工具
linux网络配置、测试及故障诊断方法和工具
介绍了ifconfig、ping和traceroute的用法。
一、网络调试工具;
如果我们把一台机器接入网络中,通过网络配置工具的配置这时就要用到网络调试工具,目的是判断机器是否已经接入到网络以及网络连接是否正常。
我们常用的在各个发行版通用的网络配置工具是ifconfig和netconfig,ADSL猫的拔号工具rp-pppoe,普通猫的拔号工具kppp和wvdial,当然Linux各大发行版本又有自己的配置工具,这些特定发行版特别的配置工具是非常有效的,大多是图形界面的,操作也非常之简单。
1、关于网络接口及配置工具;
网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0、eth1......ethX。
而普通猫和ADSL的接口是pppX,比如ppp0等;
在Linux操作系统中配置网络接口,一般是通过网络配置工具实现的,但最终目的还是通过网络配置工具来达到修改与网络相关的配置文件而起作用的。
由此说来,我们配置网络可以直接修改配置文件。
比如网络网络接口(网卡)的IP地址、子掩码、网关,在Redhat/Fedora等或以Redhat/Fedora为基础的发行版中,一般要涉及到好几个文件,比如包括/etc/sysconfig/network-scripts/ifcfg-eth0等。
了解Linux网络配置文件是极为重要的,我们通过工具修改了什么,是怎么生效的,只有了解网络配置文件才能搞清楚。
由于Linux存在很多的发行和版本,大多发行版本都有自己的专用配置工具。
主要是为了方便用户配置网络;但也有通用的配置工具,比如ifconfig、ifup、ifdown;
2关于网络硬件设备的驱动;
网络硬件,比如网卡(包括有线、无线),猫包括普通猫和ADSL猫等,都是需要内核支持的,所以我们首先得知道自己的网络设备是不是已经被硬内核支持了。
如果不支持,我们得找驱动(或通过内核编译)来支持它,常见的通过安装驱动就可以解决,尤其是常用的网络硬件设备,现在发行的linux发行版几乎都支持;
3、ifconfig配置网络接口的工具介绍;
ifconfig是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。
比如我们可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。
ifconfig查看网络接口状态;
ifconfig如果不接任何参数,就会输出当前网络接口的情况;
[root@localhost]#ifconfig
eth0Linkencap:
EthernetHWaddr00:
C0:
9F:
94:
78:
0E
inetaddr:
Bcast:
Mask:
inet6addr:
fe80:
:
2c0:
9fff:
fe94:
780e/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
850errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
628errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
369135(360.4KiB)TXbytes:
75945(74.1KiB)
Interrupt:
10Baseaddress:
0x3000
loLinkencap:
LocalLoopback
inetaddr:
Mask:
inet6addr:
:
:
1/128Scope:
Host
UPLOOPBACKRUNNINGMTU:
16436Metric:
1
RXpackets:
57errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
57errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
RXbytes:
8121(7.9KiB)TXbytes:
8121(7.9KiB)
eth0表示第一块网卡,其中HWaddr表示网卡的物理地址,inetaddr用来表示网卡的IP地址;
lo是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口;
如果我们想知道主机所有网络接口的情况,请用下面的命令;
[root@localhost]#ifconfig-a
如果我们想查看某个端口,比如我们想查看eth0的状态,就可以用下面的方法;
[root@localhost]#ifconfigeth0
ifconfig配置网络接口;
ifconfig可以用来配置网络接口的IP地址、掩码、网关、物理地址等;
用ifconfig为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。
如果您想把网络接口的IP地址固定下来,目前有三个方法:
一是通过各个发行和版本专用的工具来修改IP地址;
二是直接修改网络接口的配置文件;
三是修改特定的文件,加入ifconfig指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig的语名写入/etc/rc.d/rc.local文件中;
ifconfig配置网络端口的方法:
ifconfig工具配置网络接口的方法是通过指令的参数来达到目的的,我们只说最常用的参数;
ifconfig网络端口IP地址hwMAC地址netmask掩码地址broadcast广播地址[up/down]
*实例一:
比如我们用ifconfig来调试eth0网卡的地址
[root@localhost]#ifconfigeth0down
[root@localhost]#ifconfigeth0broadcastnetmask
[root@localhost]#ifconfigeth0up
[root@localhost]#ifconfigeth0
eth0Linkencap:
EthernetHWaddr00:
11:
00:
00:
11:
11
inetaddr:
Bcast:
Mask:
UPBROADCASTMULTICASTMTU:
1500Metric:
1
RXpackets:
0errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
0errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
0(0.0b)TXbytes:
0(0.0b)
Interrupt:
11Baseaddress:
0x3400
第一行:
ifconfigeth0down表示如果eth0是激活的,就把它DOWN掉。
此命令等同于ifdowneth0;
第二行:
用ifconfig来配置eth0的IP地址、广播地址和网络掩码;
第三行:
用ifconfigeth0up来激活eth0;此命令等同于ifupeth0
第四行:
用ifconfigeth0来查看eth0的状态;
当然您也可以用直接在指定IP地址、网络掩码、广播地址的同时,激活网卡;要加up参数;比如下面的例子;
[root@localhost]#ifconfigeth0broadcastnetmaskup
*实例二:
设置网卡的物理地址(MAC地址);
比如我们设置网卡eth1的IP地址、网络掩码、广播地址,物理地址并且激活它;
[root@localhost]#ifconfigeth1hwether00:
11:
00:
00:
11:
11netmaskbroadcastup
或
[root@localhost]#ifconfigeth1hwether00:
11:
00:
00:
11:
22
[root@localhost]#ifconfigeth1netmaskbroadcastup
其中hw后面所接的是网络接口类型,ether表示以太网,同时也支持ax25、ARCnet、netrom等;
如何用ifconfig来配置虚拟网络接口;
虚拟网络接口指的是为一个网络接口指定多个IP地址,虚拟接口是这样的eth0:
0、eth0:
1、eth0:
2.....eth1N;
其实用ifconfig为一个网卡配置多个IP地址比较简单;看下面的例子;
[root@localhost]#ifconfigeth1:
0hwether00:
11:
00:
00:
11:
33netmaskbroadcastup
注意:
指定时,要为每个虚拟网卡指定不同的物理地址;
在Redhat/Fedora或与Redhat/Fedora类似的系统,您可以把配置网络IP地址、广播地址、掩码地址、物理地址以及激活网络接口同时放在一个句子中,写入/etc/rc.d/rc.local中。
如何用ifconfig来激活和终止网络接口的连接;
激活和终止网络接口的用ifconfig命令,后面接网络接口,然后加上down或up参数,就可以禁止或激活相应的网络接口了。
当然也可以用专用工具ifup和ifdown工具;
[root@localhost]#ifconfigeth0down
[root@localhost]#ifconfigeth0up
[root@localhost]#ifupeth0
[root@localhost]#ifdowneth0
对于激活其它类型的网络接口也是如此,比如ppp0,wlan0等;不过只是对指定IP的网卡有效。
Redhat/Fedora网络接口配置工具;
由于ifconfig用起来比较麻烦,而且是用来测试网络之用,但这个工具并不能修改网络接口的相应配置文件。
虽然也能通过把ifconfig配置网络接口的语句写入类似/etc/rc.d/rc.local文件中,但相对来说还是写入关于网络接口的配置文件中更为安全和可靠;但对于虚拟网络接口写入类似/etc/rc.d/rc.local中还是可以的;
网络接口配置文件
在Redhat/Fedora中,与以太网卡相关的配置文件位于/etc/sysconfig/network-scripts目录中,比如ifcfg-eth0、ifcfg-eth1........
比如在Fedora5.0中,ifcfg-eth0;
如果您用DHCP服务器来自动获取IP的,一般情况下ifcfg-eth0的内容是类似下面这样的;
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
如果您是指定IP的,一般内容是类似下面的;
DEVICE=eth0注:
网络接口
ONBOOT=yes注:
开机引导时激活
BOOTPROTO=static注:
采用静态IP地址;
IPADDR=注:
IP地址
NETMASK=注:
网络掩码;
GATEWAY=注:
网关;
下面的几个选项也可以利用;
HOSTNAME=linux注:
指定主机名;
DOMAIN=localdomain注:
指定域名;
HWADDR=00:
00:
11:
22:
00:
aa注:
指定网卡硬件地址(MAC地址),也可以省略,不过这在这里来更改MAC地址一般是不能生效的。
还是通过前面所说的ifconfig的办法来更改吧;
网络配置的工具
在Redhat早期的版本中,有linuxconf、redhat-config-network、netconfig等工具;
在Redhat/Fedora最新的版本有system-config-network-tui(文本模式的)、system-config-network(图形模式的),netconfig(文本模式的)。
这些工具都会直接修改Linux系统中关于网络接口的配置文件;这是ifconfig所不能比的;
其中redhat-config-network和system-config-network工具不仅仅是配置网卡的工具,还有配置ISDN和普通猫、ADSL的工具、网络硬件的添加、主机名字的配置、DNS各客户端的配置等。
其实是一个工具组的集成;
这些工具比较简单,以root权限运行命令就能调用,比如:
[root@localhost]#/usr/sbin/system-config-network
[root@localhost]#system-config-network
netconfig工具是一个在文本模式比较好的工具,推荐大家使用;理由是这个工具在文本模式下,也有一个简单的图形界面;还有命令模式;
[root@localhost]#netconfig-deth0注:
配置eth0
[root@localhost]#netconfig-deth1注:
配置eth1
netconfig的用法如下:
[root@localhost]#netconfig--help注:
帮助;
--bootproto=(dhcp|bootp|none)Bootprotocoltouse(
--gateway=STRINGNetworkgateway(指定网关)
--ip=STRINGIPaddress(指定IP地址)
--nameserver=STRINGNameserver(指定DNS客户端)
--netmask=STRINGNetmask(指定网络掩码)
--hostname=STRINGHostname(指定主机名)
--domain=STRINGDomainname(指定域名)
-d,--device=STRINGNetworkdevice(指定网络设备)
--nodnsNoDNSlookups(没有DNS查询)
--hwaddr=STRINGEthernethardwareaddress(指定网卡的物理地址)
--description=STRINGDescriptionofthedevice(描述性文字)
Helpoptions:
(帮助选项)
-?
--helpShowthishelpmessage
--usageDisplaybriefusagemessage
设置网卡的DHCP模式自动获得IP
[root@localhost]#netconfig-deth0--bootproto=dhcp
手动设置网卡的IP等
[root@localhost]#netconfig-deth0--ip=--netmask=--gateway=
拔号工具;
ADSLpppoe拔号工具rp-pppoe;
rp-pppoe主页;
/open_source_rp-pppoe.php
rp-pppoe目前在各大发行版本都是存在的,比如Redhat/Fedora、红旗、Slackware、Debian、SuSE等系统,都是采用这个拔号软件,所以您大可不必为下载源码编译安装。
只需要在各大发行版的安装盘中就可以找得到;请用各大发行版自带的软件包管理工具来安装此软件包;
在Redhat/Fedora中可以通过图形配置工具来完成,redhat-config-network命令,调用配置网络,要通过XDSL来添加拔号,比较简单;
所有发行版通用的方法是adsl-setup命令来配置ADSL;
[root@localhost]#adsl-setup注:
配置pppoe拔号,请文档下面,都差不多;
[root@localhost]#adsl-start注:
启动拔号;
[root@localhost]#adsl-stop注:
断开连接;
普通猫的拔号工具;
普通猫的拔号工具主要有kppp和wvdial;在Redhat/Fedora中,用system-config-network或redhat-config-network也能设置ppp拔号;
在KDE桌面环境下,大家一般都用kppp拔号工具,点鼠标就可以完成;
wvdial工具是文本的,几乎在各大发行版都有。
wvdial的配置文件是/etc/wvdial.conf。
如果您的猫已经驱动好了,运行一下wvdialconf命令就生成了/etc/wvdial.conf了。
当然您得查看一下它的内容;
[root@localhost]#wvdialconf
[root@localhost]#more/etc/wvdial.conf
无线网卡;
Linux系统下无线网卡的安装和驱动,以及配置还真的没来得及做~~关键是没有实验的设备和条件,下面的安装和配置是从网上找到的别人的操作,如有不合适之处还希望能够谅解,改天有机会实验了再贴一下!
Linux无线网卡可以用三种方式驱动:
1.使用内核自带的网卡驱动程序;
2.为特定的网卡编译安装驱动模块;
3.使用NdisWrapper,利用面向Windows驱动程序驱动网卡。
现在市场上销售的绝大多数无线网卡都没有linux内核自带的驱动,所以第一种不予考虑;NdisWrapper软件并不编写linux驱动;
而是通过内核模块来调用Windows下的Ndis驱动程序,从而解决无线网卡没有linux驱动问题,但它要求linux内核至少是,没有验证);所以我们考虑采用第二种;
Linux下比较常用的无线网卡驱动有:
hostapdriver和linux-wlan-ng,它们对IntersilPrism2/2.5/3芯片有较好的支持。
我们觉得USB接口的无线网卡用起来比较方便,而linux-wlan-ng对USB的支持好于hostapdriver,所以就下载了linux-wlan-ng最新驱动
无线网卡驱动的安装及其配置
在配置无线网卡之前,必须确保内核设置中启动了无线局域网支持:
#grepCONFIG_NET_RADIO/boot/config-‘uname–r’
CONFIG_NET_RADIO=y
若没有,重新配置、编译内核来启动“WirelessLan(non-hamradio)DriversandWirelessExtensions”。
(注:
uname–r显示内核版本号)
安装linux-wlan-ng-,内核必须用源码编译过
接下来解压并安装:
#tar-zxvflinux-wlan-ng-
#cdlinux-wlan-ng-
#./Configure或者#makeconfig
--------------LinuxWLANConfigurationScript-------------
Thedefaultresponsesarecorrectformostusers.
BuildPrism2.xPCMCIACardServices(_cs)driver?
(y/n)[y]:
n
BuildPrism2PLX9052basedPCI(_plx)adapterdriver?
(y/n)[n]:
n
BuildPrism2.5nativePCI(_pci)driver?
(y/n)[n]:
n
BuildPrism2.5USB(_usb)driver?
(y/n)[n]:
y
Linuxsourcedirectory[/usr/src/linux]:
Thekernelsourcetreeisversion
Alternatetargetinstallrootdirectoryonhost[]:
Moduleinstalldirectory[/lib/modules/
ItlookslikeyouhaveaSystemVinitfilesetup.
Prefixforbuildhostcompiler?
(rarelyneeded)[]:
Buildfordebugging(seedoc/config.debug)(y/n)[y]:
Configurationsuccessful.
#makeall
#makeinstall
然后修改相关文件:
1. 在/etc/wlan/wlan.conf里,设置自己的ssid;
SSID_wlan0="mywlan"
ENABLE_wlan0=y
2. 创建一个wlancfg-mywlan文件;
#cd/etc/wlan
#cpwlancfg-DEFAULTwlancfg-mywlan
并把里面的IS_ADHOC=n改成IS_ADHOC=y
3. 在/etc/modules.conf中加入一行:
aliaswlan0prism2_usb
在/etc/modprobe.conf中加入一行:
aliaswlan0prism2_usb
4. 插上USB无线网卡,指示灯亮
#ifconfigwlan0up
然后就可以给wlan0配置地址了
#ifconfigwlan0inet6addfec0:
106:
2900:
:
1/64
#ifconfigwlan0
#iwconfigwlan0:
看无线网卡的一些信息(包括ssid等)
三、要实现切换,需要在MN上做一些改进
由于不能用ifconfig命令来修改无线网卡的相关参数,在其它节点(非MN)上要更改ssid,只需在/etc/wlan/wlan.conf中改SSID_wlan0="xxxxxx",然后运行:
#/etc/init.d/wlanrestart
#ifconfigwlan0up
就可以了,不过地址得重新配置。
Linux-wlan-ng驱动下可以用wlanctl-ng命令来配置和更改无线网卡的参数,对于MN如何切换到外地,可以在MN上配置脚本文件(命名为g2ar):
#wlanctl-ngwlan0lnxreq_ifstateifstate=disable
#wlanctl-ngwlan0lnxreq_ifstateifstate=enable
#wlanctl-ngwlan0dot11req_startssid=foreignwlanbsstype=independentbeaconperiod=100dtimperiod=3cfpollable=falsecfpollreq=falsecfpperiod=3cfpmaxduration=100probedela