Chinaunix首页 | 论坛 | 博客
  • 博客访问: 516364
  • 博文数量: 184
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 2490
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-09 11:34
文章分类

全部博文(184)

文章存档

2011年(1)

2010年(2)

2009年(12)

2008年(169)

我的朋友

分类: LINUX

2008-06-15 11:45:23

 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 
traceroute: Warning:  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秒;

 

 

traceroute 用法简单、最常用的用法

就是后面直接接IPhostname或域名;比如下面的示例;

[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
......

注: 此例中,记录按序列号从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 
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 

注: 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 绕过路由表,直接向网络主机发送;

 

网络故障诊断工具和方法

ping 工具和应用测试方法,只是提供简单的处于网络的主机是否可用,但不会知道具体问题所在。所以我们有必要引入故障诊断这一概念;下面我们说说故障诊断的流程;

故障诊断流程:

* 网线做的是否规范,在乙太网络中,要知道交叉线和平行线的做法适用的网络是不一样的;
* 网络接口配置是否正确;
* DNS客户端配置文件是否正确;
* 是否可以ping 通回环地址 127.0.0.1
* 是否可以用IP地址我ping通网络的主机;
* 是否可以ping通其它网段的主机;不同网络的主机沟通需要添加路由;
* 是否可以用telnethttpftpssh访问其它主机上相应对应的服务

阅读(427) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~