linux路由表的查看和含义

1.关于路由表的一个例子解析
查看命令:netstat -rn

    先执行带-r选项的netstat命令,列出路由表,然后以-n选项再次执行该命令,以数字格式打印出
ip地址(我们这样做是因为路由表中的一些表项是网络地址,而不是主机地址。如果没有- n选项,
netstat命令将搜索文件/etc/networks并列出其中的网络名.。这样会与另一种形式的名字—网络名加主机名相混淆)。

查看结果含义举例
  [root@localhost ~]# netstat -rn 
Kernel IP routing table
Destination           Gateway        Flags    Refcnt   Iface
140.252.13.65        14.252.13.35    UGH        0       emd0 
127.0.0.1            127.0.0.1       UH         1       lo0
default              140.252.13.33   UG         0       emd0
140.252.13.32        140.252.13.34   U          4       emd0

    对于一个给定的路由器,可以打印出五种不同的标志:
    U 该路由可以使用。
    G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。标志G是非常重要的,因
为由它区分了间接路由和直接路由(对于直接路由来说是不设置标志G的)。其区别在于,发往直接路由的分组
中不但具有指明目的端的I P地址,还具有其链路层地址。当分组被发往一个间接路由时,ip地址指明的是最终的
目的地,但是链路层地址指明的是网关(即下一站路由器)。在这个路由表例子中,有一个间接路由(设置了标志G),
因此采用这一项路由的分组其ip地址是最终的目的地(140.252.13.65),但是其链路层地址必须对应于路由器
140.252.13.35。
    H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。没有设置H标志说明目的地址是一个网络地址
(主机号部分为0)。当为某个目的IP地址搜索路由表时,主机地址项必须与目的地址完全匹配,而网络地址项只需要匹
配目的地址的网络号和子网号就可以了。
    D 该路由是由重定向报文创建的。
    M 该路由已被重定向报文修改。
    
    输出的第2行是环回接口,它的名字始终为lo0。没有设置G标志,因为该路由不是一个网关。H标志说明目的地址
(127.0.0.1)是一个主机地址,而不是一个网络地址。由于没有设置G标志,说明这是一个直接路由,网关列给
出的是外出ip地址。
    输出的第3行是默认路由。每个主机都有一个或多个默认路由。这一项表明,如果在表中没有找到特定的路由,
就把分组发送到路由器140.252.13.33(sun主机)。这说明当前主机sdb利用这一个路由表项就可以通过internet
经路由器sun(及其SLIP链路)访问其他的系统。建立默认路由是一个功能很强的概念。该路由标志( U G)表明
它是一个网关,这是我们所期望的。

2.路由表查看举例
$ route
        Kernel IP routing table
        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
        192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
        192.168.56.0    *               255.255.255.0   U     0      0        0 eth1
        127.0.0.0       *               255.0.0.0       U     0      0        0 lo
        default         192.168.10.1    0.0.0.0         UG    0      0        0 eth0
    这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个网络 接口连到192.168.56.0/24网络。路由表的 
Destination是目的网络地址,Genmask是子网掩码,Gateway是下一跳地址,Iface是发送接口,Flags中的U标志表示此条目 
有效(可以禁用某些条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与
本机接口直接相连的网络,不必经路由 器转发,因此下一跳地址处记为*号。
    如果要发送的数据包的目的地址是192.168.56.3,跟第一行的子网掩码做与运算得到 192.168.56.0,与第一行的目的网络
地址不符,再跟第二行的子网掩码做与运算得到192.168.56.0,正是第二行的目的网络地址,因此从 eth1接口发送出去,由于
192.168.56.0/24正是与eth1接口直接相连的网络,因此可以直接发到目的主机,不需要经路由器转发。
    如果要发送的数据包的目的地址是202.10.1.2,跟前三行路由表条目都不匹配,那么就要按缺省路由条目,从eth0接口发出
去,首先发往192.168.10.1路由器,再让路由器根据它的路由表决定下一跳地址。

3.route 命令添加静态路由
    设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
        # route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
                其中:
                add : 添加一条路由规则                         del : 删除一条路由规则
                -net : 目的地址是一个网络                   -host : 目的地址是一个主机
                target : 目的网络或主机                       netmask : 目的地址的网络掩码
                gw : 路由数据包通过的网关                   dev : 为路由指定的网络接口

    3种路由类型
    1)主机路由
    主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地
主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。
        Destination    Gateway       Genmask Flags     Metric    Ref    Use    Iface
        -----------    -------     -------            -----     ------    ---    ---    -----
        10.0.0.10     192.168.1.1    255.255.255.255   UH       0    0      0    eth0
        
    添加到主机的路由
        # route add -host 192.168.1.2 dev eth0 
        # route add -host 10.20.30.148 gw 10.20.30.40     #添加到10.20.30.148的网关10.20.30.40
    2)网络路由
    网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的
数据包转发到IP地址为192.168.1.1的路由器。
        Destination    Gateway       Genmask Flags    Metric    Ref     Use    Iface
        -----------    -------     -------         -----    -----   ---    ---    -----
        192.19.12     192.168.1.1    255.255.255.0      UN      0       0     0    eth0
    添加到网络的路由
        # route add -net 10.20.30.40 netmask 255.255.255.248 dev eth0   #添加10.20.30.40的网络
           举例, 添加一条路由(发往192.168.62这个网段的全部要经过网关192.168.1.1)  
       # route add -net 192.168.62.0 netmask 255.255.255.0 gw 192.168.1.1  
        # route add -net 192.168.1.0/24 eth1
    3)默认路由
    当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags
字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。
        Destination    Gateway       Genmask Flags     Metric    Ref    Use    Iface
        -----------    -------     ------- -----      ------    ---    ---    -----
        default       192.168.1.1     0.0.0.0    UG       0        0     0    eth0
        
        添加默认路由
            # route add default gw 192.168.1.1


 

猜你喜欢

转载自blog.csdn.net/hzj_001/article/details/81587891
今日推荐