在Linux上配置静态路由的不同方法

时间:2020-02-23 14:38:01  来源:igfitidea点击:

在本指南《在Linux中配置静态路由的不同方法》中,将学习在Linux系统上配置静态路由的不同方法,无论是Ubuntu,Kali Linux,CentOS,Fedora,Linux Mint还是任何其他Linux系统。

静态路由可以定义为网络信息到达特定主机或者网络所必须遵循的预定路径。对于必须通过加密VPN隧道的流量或者出于成本或者安全性原因应采用特定路由的流量,静态路由通常很重要。
大多数情况下,默认网关用于所有非本地网络且在路由表中未指定首选路由的流量。传统上,默认网关是专用网络路由器。

我们可以通过多种方法配置静态路由,其中一种方法是在网络配置脚本中手动指定路由。其他方法包括使用以下命令:

# route add
# ip route

使用route add和ip route命令时要注意的一点是,它们在运行时配置路由,并且在重新启动后不会保留配置。我们将讨论设置静态路由的不同方法。这两种方法都是临时的,并设置永久静态路由。使用route add命令添加静态路由。语法为:

route add -net <IP>/<MASK> <GW> dev <ethX>

让我们为接口eth1添加一条路由,网络192.168.1.0/24.

# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth1

使用ip route命令添加静态路由。语法:

ip route add <IP>/<MASK> via <GW> dev <ethX>

例:

# ip route add 192.168.0.0/24 via 192.168.1.1 dev eth1

添加静态持久路由

基于Ubuntu/Debian的系统:

vim /etc/network/interfaces

加:

auto eth1
iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
up route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.1.1

或者:

auto eth1 iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
up ip route add 172.16.0.0/24 via 192.168.1.1 || true

说明:

要访问网络192.168.0.0/24和172.16.0.0/16,请使用默认的gw 192.168.1.1.

静态路由配置可以按接口存储在/etc/sysconfig/network-scripts/route-interface文件中。例如,eth1接口的静态路由将存储在/etc/sysconfig/network-scripts/route-eth1中

# vim /etc/sysconfig/network-scripts/route-eth1

加:

GATEWAY0=192.168.1.1 
NETMASK0=255.255.255.0 
ADDRESS0=192.168.0.0

GATEWAY1=192.168.1.1 
NETMASK1= 255.255.0.0
ADDRESS1=172.16.0.0

保存并关闭文件。

重新启动网络:

service network restart

我们还可以使用:

ifdown eth1;ifup eth1

注意:后续的静态路由必须按顺序编号,并且不能跳过任何值。例如,ADDRESS0,ADDRESS1,ADDRESS2,依此类推。
检查静态路由:

ip route show
netstat -nr
route -n