
私は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ルールとパスを維持する必要があります。
答え1
見てください/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
.I addedを使用します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
「UUID」のないEL 7.x/etc/sysconfig/network-scripts/ifcfg-eth0
ファイルHWADDR
。これにより、eth0
以下を使用する代わりに静的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
ファイルは、を使用せずに静的IPアドレスを構成します。HWADDR
UUID
eth1
ネットワーク管理者。
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の次のメジャーバージョンの1つから削除される警告が生成され、NetworkManagerはifup
/ifdown
スクリプトも提供します。
答え2
iproute2を使用する必要がある場合
# ip rule save > /[somepath]/your-ruleset.bin
ルールが保存されます。次は必ずしなければなりません。
# ip rule restore < /[somepath]/your-ruleset.bin
答え3
コメントすることはできませんが、許可された回答に追加したかったです。 RHEL8にネットワークスクリプトパッケージをインストールする必要はありません。
NetworkManagerは引き続き次のファイルを選択します。
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/route-eth1
NetworkManager は、次のファイルを選択しなくなりました。
/etc/sysconfig/network-scripts/rule-eth0
/etc/sysconfig/network-scripts/rule-eth1
ただし、次のようにifcfg-eth0スクリプトでルールを定義できます。
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
ROUTING_RULE_1="from 192.168.100.0/24 table 5"
...
ファイルの設定をNetworkManagerにロードするには、次の手順を実行します。
$ sudo nmcli connection reload
次のコマンドを実行すると、ルーティングルールが表示されます。
$ nmcli connection show eth0
$ nmcli connection show eth0 | grep rules
NetworkManager 設定をデバイスに適用して有効にするには、次の手順を実行します。
$ sudo nmcli device reapply eth0
これで、ルールとパスが表示されます。
$ ip route list all
$ ip rule list