路由表的作用以及如何设置路由表

相信很多朋友都玩过虚拟机,在虚拟机里装linux系统。一般大家装linux系统后,第一件事就是去配置静态IP。配置静态IP,除了要配置IP、子网掩码外,还需要填写网关地址。等一切都配置完毕后,你就会发现该主机的路由表的有一项中包含这个网关地址。至于路由表为什么会出现网关地址,可能一些朋友就不是那么清楚了。现在,我们一起来看看这个路由表它到底是干啥的吧。

路由表作用

路由表的作用其实就类似于导航的作用,它告诉主机数据包应该转发到哪里。如果主机不含路由表,那么它所有的数据包都传送不出去。所以不关事路由器,主机也会有自己的路由表。

路由表格式

声明:本文所有操作都是在linux主机下进行的。

查看路由表很简单,使用route -n即可,-n选项表示不进行主机反查

# route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.110.1   0.0.0.0         UG    100    0        0 eth0
192.168.110.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0

可以看到,我的主机含有两条路由表。一条路由信息主要有几点组成:

  • 目的地址
  • 下一跳地址
  • 子网掩码
  • 网卡接口

看第一条路由,目的地址为0.0.0.0而子网掩码也是0.0.0.0,这样的路由我们称之为默认路由。默认路由是非常重要的,它的意思是如果其他路由都不能转发分组的话,那么就使用默认路由进行转发。所以阿,这就是为什么默认路由的下一跳地址是网关地址了。因为本人家里网络比较简单,只和一个路由器相连,要向和外网通信的话都必须进过这个路由器才行。这个路由器所在位置也即网关地址。所以,这就解释文章开头的问题了。

接下里看第二条路由,它也比较特殊,它的目的地址就是本机的网络地址,子网掩码也是本机的子网掩码,它的下一跳地址是0.0.0.0。0.0.0.0表示不需要经过路由器,直接交付。那么它的意思就表示,和局域网内主机通信,不需要进过路由器,直接交付即可。

添加路由表

添加路由表也非常简单,通过命令

route add [-net|-host] 目的主机或目的网络 [netmask 子网掩码] [gw 下一跳地址]  [[dev] 接口地址]

下面来演示添加一条特定主机路由

# route add -host 192.168.110.111  gw 192.168.110.1 dev eth0

这样,一条路由信息就添加成功了。