Linux 使用 IP 命令配置静态路由

708 阅读3分钟

作为系统管理员,您可以使用 ip route 命令配置静态路由。
要显示 IP 路由表,请使用 ip route 命令。
例如:

$ ip route   
default via 192.168.122.1 dev ens9 proto static metric 1024   
192.168.122.0/24 dev ens9 proto kernel scope link src 192.168.122.107   
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.126 

ip route 命令的格式如下:

ip route [ add | del | change | append | replace ] destination-address   

有关选项和格式的详情,请查看 ip-route(8)man page。

将静态路由添加到主机地址,换句话说到单个 IP 地址

# ip route add 192.0.2.1 via 10.0.0.1

其中 192.0.2.1 是带点十进制表示法的主机的 IP 地址 ,100.0.1 是下一个跃点地址和 interface 是导致 下一跃点的退出接口。

将静态路由添加到网络,换句话说是添加到代表一系列 IP 地址的 IP 地址中

# ip route add 192.0.2.0/24 via 10.0.0.1 

其中 192.0.2.0 是目标网络的 IP 地址 (点十进制表示法),/24 是网络前缀。网络前缀是子网掩码中 已启用的位数。这种网络地址斜杠网络前缀长度的格式有时称为无类别域间路由 (CIDR)表示法。

增加默认路由

ip route add default via 192.168.0.1 dev eth0

删除分配的静态路由:

# ip route del 192.0.2.1 

您使用 ip route 对路由表所做的任何更改在系统重启后不会保留。

要永久配置静态路由

一、通过 /etc/sysconfig/network-scripts/

您可以通过 在 /etc/sysconfig/network-scripts/ 目录中为接口创建路由接口文件来配置这些路由。
例如,enp1s0 接口的静态路由将存储在 /etc/sysconfig/network-scripts/route-enp1s0 文件中。
在重启网络服务或接口前,您对路由接口文件进行的任何更改都不会生效。

route-接口文件有两种格式 :

1. 添加默认路由

如果每个接口配置文件中需要(例如 /etc/sysconfig/network-scripts/route-enp1s0),请在第一行 中定义指向默认网关的路由。只有在没有通过 DHCP 设置网关且没有在 /etc/sysconfig/network 文件中全局设置时才需要此项:

default via 192.168.1.1 dev eth0 

其中 192.168.1.1 是默认网关的 IP 地址。接口是连接到或可以访问默认网关的接口。dev 选项可以省略,它是可选的。请注意,此设置优先于 /etc/sysconfig/network 文件中的设置。

2. 添加网络路由

如果需要路由到远程网络,可以按照如下所示指定静态路由:每行都解析为单个路由:

10.10.10.0/24 via 192.168.1.1 [dev interface] 

其中 10.10.10.0/24 是远程或目标网络的网络地址和前缀长度。地址 192.168.1.1 是导致远程网络的 IP 地址。最好使用下一个跃点地址,但退出接口的地址可以正常工作。“下一跃点表示链路的远程末尾”,如 网关或路由器。dev 选项可用于指定退出接口接口,但这不是必需的。根据需要添加任意数量的静态路由。

以下是使用 ip 命令参数格式的路由接口文件示例。 默认网关为 192.168.0.1,接口 enp1s0 租用的行或 WAN 连接位于 192.168.0.10。这两个静态路由到达 10.10.10.0/24 网络和 172.16.1.10/32主机:

 default via 192.168.0.1 dev enp1s0 
 10.10.10.0/24 via 192.168.0.10 dev enp1s0 
 172.16.1.10/32 via 192.168.0.10 dev enp1s0

在上面的示例中,进入本地 192.168.0.0/24 网络的数据包将被定向出连接到该网络的接口。进入 10.10.10.0/24 网络和 172.16.1.10/32 主机的数据包将被定向到 192.168.0.10。至未知的远程网络将使用默认网关,因此只有在默认路由不合适时,才应为远程网络或主机配置静态路由。此上下文中的 remote 表示没有直接连接到系统的任何网络或主机。

二. 修改 /etc/sysconfig/static-routes

/etc/sysconfig/static-routes 文件里添加如下内容 (没有static-routes的话就手动建立一个这样的文件)

any net 192.168.3.0/24 gw 192.168.3.254
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129