配置静态路由

路由功能可以在路由设备上得以实现,因此在 Fedora/Linux 服务器或客户端上配置静态路由并不是十分必要。但如果有要求为每个接口配置静态路由,也是能够实现的。

路由功能可以在路由设备上得以实现,因此在 Fedora/Linux 服务器或客户端上配置静态路由并不是十分必要。但如果有要求为每个接口配置静态路由,也是能够实现的,尤其当机器上的多个接口分别位于不同的网段时,这一功能是相当有用。并且通过 route 命令能够显示当前的 IP 路由表。

静态路由配置存储在 /etc/sysconfig/network-scripts/route-<interface> 文件中,例如,eth0 接口的静态路由配置文件的名称为 route-eth0

route-<interface> 文件的内容有两种格式,一种是 IP 命令行参数格式,别一种是“网段/子网掩码”格式。

 

IP 命令行参数格式的静态路由配置

这种格式的静态路由配置首先定义接口的默认网关,然后配置文件中的每一行都被单独解析成一条路由条目。 以下是一个配置样本

default x.x.x.x dev <interface>
x.x.x.x/x via x.x.x.x dev <interface>

在第一行中,x.x.x.x 表示默认网关的 IP 地址,<interface> 是连接或通向默认网关的接口名称。后面的条目都是用于定义路由的静态路由条目。

注意:如果网卡被配置成通过 DHCP,并可以通过 DHCP 设置其默认网关,则不需要定义默认网关,即不要定义 default x.x.x.x dev <interface> 条目,否则在启动或激活接口时可能会出现一些错误信息。为多个静态路由同时使用相同的默认网关,也可能导致该问题。

在后面的静态路由条目中,x.x.x.x/x 表示路由指向的网段及其子网掩码,x.x.x.x 和 <interface> 分别表示达到目标网段的默认网关,以及连接或通向目标网段的网络接口。

上例中只写了一条路由条目,只要遵循这个格式,可以添加任意多的静态路由条目。

例1:系统中有一个 eth0 接口,它的默认网关为 192.168.0.1,并且可以通过 192.168.0.1 这个网关连接到 10.10.10.0/24 和 172.16.1.0/24 这两个网段,则静态路由配置的内容应该如下:

default 192.168.0.1 dev eth0
10.10.10.0/24 via 192.168.0.1 eth0
172.16.1.0/24 via 192.168.0.1 eth0

实际上,因为到达 10.10.10.0/24 和 172.168.1.0/24 的网关,与默认网关是相同的,因此不配置静态路由也能实现通信,这个例子主要用作说明罢了。下面的例 2 则是个实际的配置情景。

例2:系统中有 eth0, eth1 和 eth2,其中 eth0 连接到默认网关,eth1 和 eth2 分别通过网关 10.10.10.1 和 172.168.1.1 连接到网络 10.10.10.0/24 和 172.168.1.0/24,则静态路由配置的内容应该如下:

default 192.168.0.1 dev eth0
10.10.10.0/24 via 10.10.10.1 eth1
172.16.1.0/24 via 172.16.1.1 eth2

 

有关网段/子网掩码格式的静态路由配置,请看《Linux 配置静态路由 (二)