添加永久路線的最佳方法是什麼?
我需要添加一個重啟後不會被刪除的路由。我讀了這兩種方法:
添加
ip route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
到文件/etc/network/interfaces
或者
使用以下命令創建文件**/etc/network/if-up.d/route**:
#!/bin/sh route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
並使其可執行:
chmod +x /etc/network/if-up.d/route
所以我很困惑。最好的方法是什麼?
你提到
/etc/network/interfaces
了,所以它是一個 Debian 系統……創建命名路由表。例如,我在下面使用了名稱“mgmt”。
echo '200 mgmt' >> /etc/iproute2/rt_tables
上面,核心支持許多路由表,並通過編號為 0-255 的唯一整數來引用這些路由表。還為該表定義了一個名稱 mgmt。
下面是一個預設值
/etc/iproute2/rt_tables
,顯示一些數字是保留的。這個答案中的選擇 200 是任意的;可以使用任何尚未使用的數字,1-252。# # reserved values # 255 local 254 main 253 default 0 unspec # # local #
下面,一個 Debian 7/8 介面文件定義
eth0
和eth1
.eth1
是172網路。eth0
也可以使用 DHCP。172.16.100.10
是要分配給 的 IP 地址eth1
。172.16.100.1
是路由器的IP地址。source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The production network interface auto eth0 allow-hotplug eth0 # iface eth0 inet dhcp # Remove the stanzas below if using DHCP. iface eth0 inet static address 10.10.10.140 netmask 255.255.255.0 gateway 10.10.10.1 # The management network interface auto eth1 allow-hotplug eth1 iface eth1 inet static address 172.16.100.10 netmask 255.255.255.0 post-up ip route add 172.16.100.0/24 dev eth1 src 172.16.100.10 table mgmt post-up ip route add default via 172.16.100.1 dev eth1 table mgmt post-up ip rule add from 172.16.100.10/32 table mgmt post-up ip rule add to 172.16.100.10/32 table mgmt
重新啟動或重新啟動網路。
更新 - 對 EL 的闡述
我在評論中註意到您“也想了解 RHEL”。在 Enterprise Linux(“EL” - RHEL/CentOS/et al)中,如上所述創建一個命名路由表。
EL
/etc/sysconfig/network
文件:NETWORKING=yes HOSTNAME=host.sld.tld GATEWAY=10.10.10.1
EL
/etc/sysconfig/network-scripts/ifcfg-eth0
文件,使用靜態配置(沒有 NetworkManager 並且沒有在下面的範例中指定“HWADDR”和“UUID”)如下所示。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
/etc/sysconfig/network-scripts/ifcfg-eth1
文件(沒有 NetworkManager 並且沒有為範例指定“HWADDR”和“UUID”)如下所示。DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTOCOL=none IPADDR=172.16.100.10 NETMASK=255.255.255.0 NETWORK=172.16.100.0 BROADCAST=172.16.100.255
EL
/etc/sysconfig/network-scripts/route-eth1
文件:172.16.100.0/24 dev eth1 table mgmt default via 172.16.100.1 dev eth1 table mgmt
EL
/etc/sysconfig/network-scripts/rule-eth1
文件:from 172.16.100.0/24 lookup mgmt
RHEL8 更新
上述方法適用於 RHEL 6 和 RHEL 7 以及衍生版本,但對於 RHEL 8 和衍生版本,必須先安裝
network-scripts
才能使用上述方法。dnf install network-scripts
安裝會產生一個警告,該警告
network-scripts
將在 RHEL 的下一個主要版本之一中刪除,並且 NetworkManager 也提供ifup
/ifdown
腳本。