每當伺服器重新啟動時,如何保持 ip 規則和路由?
我正在使用 Centos 7 伺服器,我想在伺服器重新啟動時保存 ip 規則和路由。
ip rule add from x.x.x.x table 128 ip route add table 128 to y.y.y.y/y dev eth0 ip route add table 128 default via z.z.z.z
一旦我重新啟動伺服器,提到的規則和路由就會失去,這意味著每次伺服器重新啟動時我都需要執行 3 個命令。
每當伺服器重新啟動時,我都需要使 ip 規則和路由保持不變。
看看
/etc/rc.d/rc.local
。該文件指出請注意,您必須執行
chmod +x /etc/rc.d/rc.local
以確保此腳本將在引導期間執行。所以:
chmod +x /etc/rc.d/rc.local
然後將您的命令放在最後一行之上
touch /var/lock/subsys/local
使用相關配置文件有更好的方法。可以使用相應的文件名指定規則和路由。下面給出了所有相關的配置文件。(設備名稱可能不同。)
/etc/iproute2/rt_tables /etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/route-eth0 /etc/sysconfig/network-scripts/route-eth1 /etc/sysconfig/network-scripts/rule-eth0 /etc/sysconfig/network-scripts/rule-eth1
要創建命名路由表,請使用
/etc/iproute2/rt_tables
. 我補充說128 mynet
。# # reserved values # 255 local 254 main 253 default 0 unspec # # local # 128 mynet
EL 7.x
/etc/sysconfig/network
文件。預設路由是GATEWAY
.NETWORKING=yes HOSTNAME=hostname.sld.tld GATEWAY=10.10.10.1
EL 7.x
/etc/sysconfig/network-scripts/ifcfg-eth0
文件,沒有HWADDR
和“UUID”。eth0
這會在不使用NetworkManager的情況下配置靜態 IP 地址。DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTOCOL=none IPADDR=10.10.10.140 NETMASK=255.255.255.0 NETWORK=10.10.10.0 BROADCAST=10.10.10.255
EL 7.x
/etc/sysconfig/network-scripts/ifcfg-eth1
文件,沒有HWADDR
和UUID
.eth1
這會在不使用NetworkManager的情況下配置靜態 IP 地址。DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTOCOL=none IPADDR=192.168.100.140 NETMASK=255.255.255.0 NETWORK=192.168.100.0 BROADCAST=192.168.100.255
EL 7.x
/etc/sysconfig/network-scripts/route-eth1
文件。預設路由已在 中指定/etc/sysconfig/network
。192.168.100.0/24 dev eth1 table mynet default via 192.168.100.1 dev eth1 table mynet
EL 7.x
/etc/sysconfig/network-scripts/rule-eth1
文件:from 192.168.100.0/24 lookup mynet
RHEL8 更新
上述方法適用於 RHEL 6 和 RHEL 7 以及衍生版本,但對於 RHEL 8 和衍生版本,必須先安裝
network-scripts
才能使用上述方法。dnf install network-scripts
安裝會產生一個警告,該警告
network-scripts
將在 RHEL 的下一個主要版本之一中刪除,並且 NetworkManager 也提供ifup
/ifdown
腳本。