linux的路由含义,转载 linux路由表的查看和含义

https://blog.csdn.net/hzj_001/article/details/81587891

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

---------------------

作者:菜鸟别浪

来源:CSDN

原文:https://blog.csdn.net/hzj_001/article/details/81587891

版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(linux的路由含义)