使用 route 命令可以添加主机的路由信息,但是一旦系统重启相关的设置信息就会丢失,那么如何设置一个重启也不会丢失的路由信息呢?
查看网卡连接信息
bash
[root@long90 ~]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.8.8 netmask 255.255.255.0 broadcast 192.168.8.255
inet6 fe80::20c:29ff:feb7:1176 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b7:11:76 txqueuelen 1000 (Ethernet)
RX packets 6060 bytes 959192 (936.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4625 bytes 696550 (680.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens224: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.8.88 netmask 255.255.255.0 broadcast 192.168.8.255
ether 00:0c:29:b7:11:80 txqueuelen 1000 (Ethernet)
RX packets 12751 bytes 14852736 (14.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6238 bytes 419927 (410.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
现在有两块网卡,这两块网卡的 ip 地址分别是 192.168.8.8 和 192.168.8.88 ,假如发送到 192.168.1.0/24 这个网段的数据包需要通过 ens160(192.168.8.8) 这块网卡发送出去,而发送到 192.168.100.0/24(192.168.8.88) 这个网段的数据包需要通过 ens224 这块网卡发送出去,我该如何设置呢?
一、临时添加路由信息
bash
[root@long90 ~]# route add -net 192.168.1.0/24 gateway 192.168.8.8 dev ens160
[root@long90 ~]# route add -net 192.168.100.0/24 gateway 192.168.8.88 dev ens224
[root@long90 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.8.2 0.0.0.0 UG 0 0 0 ens224
0.0.0.0 192.168.8.2 0.0.0.0 UG 100 0 0 ens160
192.168.1.0 192.168.8.8 255.255.255.0 UG 0 0 0 ens160
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 ens224
192.168.8.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160
192.168.100.0 192.168.8.88 255.255.255.0 UG 0 0 0 ens224
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
二、永久添加路由信息
bash
[root@long90 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 91515114-d92d-45bd-95a2-11dd300d8073 ethernet ens160
ens-test1 f9e39cae-fb5d-43b7-851b-417bd114d5e2 ethernet ens224
virbr0 5ed026aa-6049-45f9-90ce-1514be0d2848 bridge virbr0
ens-test0 5d5f6a2b-de16-41ce-8745-80f21d2b5cd4 ethernet --
[root@long90 ~]# vim /etc/sysconfig/network-scripts/route-ens160
192.168.1.0/24 via 192.168.8.8 dev ens160
[root@long90 ~]# vim /etc/sysconfig/network-scripts/route-ens-test1
192.168.100.0/24 via 192.168.8.88 dev ens224
[root@long90 ~]# systemctl restart NetworkManager
[root@long90 ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/13)
[root@long90 ~]# nmcli connection up ens224
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/14)
[root@long90 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.8.2 0.0.0.0 UG 100 0 0 ens160
0.0.0.0 192.168.8.2 0.0.0.0 UG 101 0 0 ens224
192.168.1.0 192.168.8.8 255.255.255.0 UG 100 0 0 ens160
192.168.8.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160
192.168.8.0 0.0.0.0 255.255.255.0 U 101 0 0 ens224
192.168.100.0 192.168.8.88 255.255.255.0 UG 101 0 0 ens224
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
# 路由经由信息
bash
[root@long90 ~]# ip ro sh
default via 192.168.8.2 dev ens160 proto static metric 100
default via 192.168.8.2 dev ens224 proto static metric 101
192.168.1.0/24 via 192.168.8.8 dev ens160 proto static metric 100
192.168.8.0/24 dev ens160 proto kernel scope link src 192.168.8.8 metric 100
192.168.8.0/24 dev ens224 proto kernel scope link src 192.168.8.88 metric 101
192.168.100.0/24 via 192.168.8.88 dev ens224 proto static metric 101
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown