所谓路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用,表中包含的信息决定了数据转发的策略。打个比方,路由表就像我们平时使用的地图一样,标识着各种路线,路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路由表根据其建立的方法,可以分为动态路由表和静态路由表。
路由表查看及介绍
查看 Linux 内核路由表
# route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
route 命令的输出项说明
输出项 | 说明 |
---|---|
Destination | 目标网段或者主机 |
Gateway | 网关地址,”*” 表示目标是本主机所属的网络,不需要路由 |
Genmask | 网络掩码主机路由的掩码为 255.255.255.255,默认路由的掩码为 0.0.0.0掩码 255.255.255.255 表明只有精确匹配的目标使用此路由。掩码 0.0.0.0 表示任何目标都可以使用此路由。当以二进制形式撰写掩码时,1 表示重要(必须匹配),而 0 表示不重要(不需要匹配)。 |
Flags | 标记。一些可能的标记如下: |
U — 路由是活动的 | |
H — 目标是一个主机 | |
G — 路由指向网关 | |
R — 恢复动态路由产生的表项 | |
D — 由路由的后台程序动态地安装 | |
M — 由路由的后台程序修改 | |
! — 拒绝路由 | |
Metric | 路由距离,到达指定网络所需的中转数(linux 内核中没有使用) |
Ref | 路由项正在被使用的进程数 |
Use | 通过此路由项的分组数 |
Iface | 路由项对应的接口 |
网络掩码
例如,目标 172.16.8.0 的网络掩码为 255.255.248.0。此网络掩码表示前两个八位字节必须精确匹配,第三个八位字节的前五位必须匹配(248=11111000),而最后一个八位字节无关紧要。第三个八位字节 172.16.8.0(即 8)等于二进制形式的 00001000。不更改前 5 位(以“粗体”显示的屏蔽部分),最多可到 15 或二进制形式的 00001111。因此目标为 172.16.8.0、掩码为 255.255.248.0 的路由应用于所有要通过 172.16. 15.255 到达 172.16. 8.0 的数据包。