route
route 程序对内核的IP路由表进行操作。它主要用于设置网络静态路由;
# route add [-net|-host] 目标主机或网络 [netmask] [gw|dev]
# route del [-net|-host] 目标主机或网络 [netmask] [gw|dev]
-n :数字地址形式代替解释主机名形式来显示地址。此项对检测为何你到域名服务器的路由发生故障的原因非常有用。
-ee :将产生包括选路表所有参数在内的大量信息
add :添加一条路由
del :删除一条路由
-net :路由目标 target 为网络。
-host :路由目标 target 为主机。
netmask :为添加的路由指定网络掩码!
gw :通过一个网关进行包路由.
[root@localhost /]# route -ee
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 0 0 0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 0 0 0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo 0 0 0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 0 0 0
route add -net 127.0.0.0
加一条普通的回环记录,它使用掩码 255.0.0.0 (从目标地址可以判断它是 A 类网)并与设备 "lo" 相关联 .
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
给通过 "eth0" 的路由表添加一条指向网络 192.56.76.x 的路由。其中 C 类子网掩码修饰词并不是必须的,因为 192.* 是个 C 类的 IP 地址。这里可省略关键字 "dev"。
route add default gw 192.168.1.1
加入一条缺省路由(如果无法匹配其它路由则用它)。使用此路由的所有包都将通过网关 192.168.1.1进行传输。
route add 224.0.0.0 netmask 240.0.0.0 dev eth0
这是一条模糊的命令,把它记录在案就可以让人们知道如何做了.此命令设定所有 D 类地址(用于组播)的路由通过 "eth0" 进行。这是用于带组播的内核正确的配置行。
traceroute
跟踪数据包到达网络主机所经过的路由工具
;
traceroute
是用来发出数据包的主机到目标主机之间所经过的网关的工具。
traceroute
的原理是试图以最小的
TTL
发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关
ICMP
的应答。发送数据包的大小默认为
38
个字节。
traceroute [参数选项] hostname,域名或 IP地址
参数选项:
-i 指定网络接口,对于多个网络接口有用。比如 -i eth1 或-i ppp1等;
-m 把在外发探测试包中所用的最大生存期设置为max-ttl次转发,默认值为30次;
-n 显示IP地址,不查主机名。当DNS不起作用时常用到这个参数;
-p port 探测包使用的基本UDP端口设置为port ,默认值是33434
-q n 在每次设置生存期时,把探测包的个数设置为值n,默认时为3;
-r 绕过正常的路由表,直接发送到网络相连的主机;
-w n 把对外发探测包的等待响应时间设置为n秒,默认值为3秒;
[root@localhost /]# traceroute [url]www.sohu.com[/url]
traceroute: Warning: [url]www.sohu.com[/url] has multiple addresses; using 221.236.12.213
traceroute to cachechengdu2.a.sohu.com (221.236.12.213), 30 hops max, 38 byte packets
1 192.168.1.1 (192.168.1.1) 2.866 ms 1.151 ms 1.614 ms
2 219.144.172.1 (219.144.172.1) 8.660 ms 14.319 ms 9.305 ms
3 222.90.205.53 (222.90.205.53) 10.858 ms 9.283 ms 9.101 ms
4 125.76.189.81 (125.76.189.81) 10.005 ms 11.752 ms 11.039 ms
5 pos-5-1-r1-1-xahj.sn.169.net (61.134.0.5) 9.478 ms 19.670 ms 13.776 ms
6 202.97.37.177 (202.97.37.177) 9.645 ms 9.740 ms *
7 222.213.1.202 (222.213.1.202) 268.279 ms 155.748 ms 105.458 ms
8 222.213.1.202 (222.213.1.202) 119.202 ms 100.774 ms 102.015 ms
9 221.236.8.4 (221.236.8.4) 116.087 ms 70.808 ms 140.186 ms
10 221.236.8.4 (221.236.8.4) 98.188 ms 63.292 ms 159.435 ms
11 221.236.12.213 (221.236.12.213) 96.436 ms 97.565 ms 85.184 ms
[root@localhost]# traceroute -m 10 sina.com.cn
把跳数设置为10次;
[root@localhost]# traceroute -n sina.com.cn 注:显示IP地址,不查主机名。
[root@localhost]# traceroute -p 6888 sina.com.cn 注:探测包使用的基本UDP端口设置6888
[root@localhost]# traceroute -q 4 sina.com.cn 注:把探测包的个数设置为值4;
[root@localhost]# traceroute -r sina.com.cn 注:绕过正常的路由表,直接发送到网络相连的主机;
[root@localhost]# traceroute -w 3 sina.com.cn 注:把对外发探测包的等待响应时间设置为5秒;
[root@localhost]# traceroute -n sina.com.cn 注:显示IP地址,不查主机名。
[root@localhost]# traceroute -p 6888 sina.com.cn 注:探测包使用的基本UDP端口设置6888
[root@localhost]# traceroute -q 4 sina.com.cn 注:把探测包的个数设置为值4;
[root@localhost]# traceroute -r sina.com.cn 注:绕过正常的路由表,直接发送到网络相连的主机;
[root@localhost]# traceroute -w 3 sina.com.cn 注:把对外发探测包的等待响应时间设置为5秒;
traceroute
用法简单、最常用的用法
就是后面直接接
IP
或
hostname
或域名;比如下面的示例;
[root@localhost]# traceroute sina.com.cn
traceroute to sina.com.cn (211.93.98.20), 30 hops max, 40 byte packets
1 localdomain (192.168.1.1) 0.151 ms 0.094 ms 0.146 ms
2 221.201.88.1 (221.201.88.1) 5.867 ms 7.588 ms 5.178 ms
3 218.25.158.149 (218.25.158.149) 6.546 ms 6.230 ms 8.297 ms
4 218.25.138.133 (218.25.138.133) 7.129 ms 7.644 ms 8.311 ms
......
traceroute to sina.com.cn (211.93.98.20), 30 hops max, 40 byte packets
1 localdomain (192.168.1.1) 0.151 ms 0.094 ms 0.146 ms
2 221.201.88.1 (221.201.88.1) 5.867 ms 7.588 ms 5.178 ms
3 218.25.158.149 (218.25.158.149) 6.546 ms 6.230 ms 8.297 ms
4 218.25.138.133 (218.25.138.133) 7.129 ms 7.644 ms 8.311 ms
......
注:
此例中,记录按序列号从
1
开始,每个纪录就是一跳
,每跳表示一个网关,我们看到每行有三个时间,单位是
ms
,其实就是
-q
的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用
traceroute -q 4 sina.com.cn
,表示向每个网关发送
4
个数据包;
有时我们
traceroute
一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了
ICMP
的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台
DNS
出现问题时,不能解析主机名、域名时,也会有延时长的现象;您可以加
-n
参数来避免
DNS
解析,以
IP
格式输出数据;
如果在局域网中的不同网段之间,我们可以通过
traceroute
来排查问题所在,
是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到
traceroute
追踪数据包所经过的网关,提交
IDC
服务商,也有助于解决问题;
网络调试工具
包括网络测试工具和故障排查工具两大类。
配置网络的流程如下:
物理性硬件接通->配置网络 (通过网络配具工具) ->网络测试->网络诊断->成功
网络测试工具
ping
:
我们想知道一台主机的网络是否正常,这时就要用到
ping
,
ping
工具是我们最常用的网络测试工具。根据
ping
主机的结果,我们能判断主机在网络上是否正常。如果出现连接不通或丢包的情况(防火墙阻挡
ICMP
应答的网络除外),我们就要用到网络配置工具或诊断工具出找出问题所在。一般的情况下,出现网络不通,可能与我们所做的网线接头有关,有时也与交换机或我集线器等网络设备是否正常有关,有时需要我们我重做网线或换个交换机(或集线器)的接口。
ping
的用法
ping [
参数] 主机或ip
[root@localhost /]# ping [url]www.sina.com.cn[/url]
PING jupiter.sina.com.cn (218.30.66.101) 56(84) bytes of data.
64 bytes from 218.30.66.101: icmp_seq=1 ttl=248 time=10.4 ms
64 bytes from 218.30.66.101: icmp_seq=2 ttl=248 time=13.0 ms
64 bytes from 218.30.66.101: icmp_seq=3 ttl=248 time=10.6 ms
[4]+ Stopped ping [url]www.sina.com.cn[/url]
注:
ping
后面可以不接参数选项,直接接主机名、域名或
ip
地址;
解说:
ping
可以接主机名、域名或
IP
地址,在局域网中同网段主机与主机之间是否能通过主机名互相通信,目前有两种方法,一种是做
DNS
服务器,另一种方法是修改
/etc/hosts
。在不同网段的主机与主机之间,能否相互通信,还得要设置路由。
ping
的一些参数的用法;
-s
指定数据包的大小,单位是字节; 默认值是 56,当与8个字节的ICMP头数据结合时,又转化成 64字节的ICMP数据;
-l 进入正常的行为模式之前,尽可能快的发送多少个preload个数据包
-c count 发送(接收)count个数据包后停止;
-i 发送数据包之间的时间间隔;
-f 使ping包不断发送和产生,瞬间值极大。要小心使用,类似DDOS***。这个选项只有root权限用户可以执行;
-r 绕过路由表,直接向网络主机发送;
-l 进入正常的行为模式之前,尽可能快的发送多少个preload个数据包
-c count 发送(接收)count个数据包后停止;
-i 发送数据包之间的时间间隔;
-f 使ping包不断发送和产生,瞬间值极大。要小心使用,类似DDOS***。这个选项只有root权限用户可以执行;
-r 绕过路由表,直接向网络主机发送;
网络故障诊断工具和方法
ping
工具和应用测试方法,只是提供简单的处于网络的主机是否可用,但不会知道具体问题所在。所以我们有必要引入故障诊断这一概念;下面我们说说故障诊断的流程;
故障诊断流程:
*
网线做的是否规范,在乙太网络中,要知道交叉线和平行线的做法适用的网络是不一样的;
* 网络接口配置是否正确;
* DNS 客户端配置文件是否正确;
* 是否可以ping 通回环地址 127.0.0.1;
* 是否可以用IP地址我ping通网络的主机;
* 是否可以ping通其它网段的主机;不同网络的主机沟通需要添加路由;
* 是否可以用telnet、http、ftp、ssh访问其它主机上相应对应的服务 ;
* 网络接口配置是否正确;
* DNS 客户端配置文件是否正确;
* 是否可以ping 通回环地址 127.0.0.1;
* 是否可以用IP地址我ping通网络的主机;
* 是否可以ping通其它网段的主机;不同网络的主机沟通需要添加路由;
* 是否可以用telnet、http、ftp、ssh访问其它主机上相应对应的服务 ;