Red Hat Enterprise Linux 9でネットワークのルーティングを追加・永続化させる方法をまとめました。
※RHEL9のルーティング設定に関してはRedHat公式サイトを参考にしています。
現在設定されているルーティングの確認
RHEL9では以下のコマンドで現在のルーティングを確認できます。
- ip route
- netstat -nr
デフォルトゲートウェイは以下のコマンドで確認可能です。
ip route show default
一時的なルーティングの追加コマンド
下記コマンドでRHEL9へ一時的なネットワークルーティング設定を追加します。この設定はOSの再起動を行うと、設定がOSから削除されます。
以下はネットワークアドレスへのルーティングを追加するコマンドです。
route add -net 172.16.0.0/24 gw 172.16.254.254
ホストアドレスを登録する場合は-netを-hostへ変更します。
route add -host 172.16.10.1/32 gw 172.16.254.254
ホストアドレスを引数-netで登録しようとすると以下が返ってきます。
SIOCADDRT: 無効な引数です
ネットワークアドレスは複数のIPアドレスが含まれるIPアドレスのグループのようなIPアドレスです。ホストアドレスは一つに特定されるIPアドレスです。
ルーティング設定の削除
以下のコマンドでルーティング設定を削除します。ネットワークアドレス、ホストアドレスどちらも同じコマンドです。
route -del 172.16.10.0/24 gw 172.16.254.254
route -del 172.16.10.1/32 gw 172.16.254.254
ルーティングの永続化
以下のコマンドでルーティングを永続化させることができます。
nmcli connection modify <接続プロファイル名> +ipv4.routes "<宛先ネットワークアドレス>/<プレフィックス> <ゲートウェイアドレス>"
コマンド入力例は以下です。
nmcli connection modify ens000 +ipv4.routes "192.168.10.0/24 192.168.20.254"
RHEL9でルーティングの永続化を設定するには以下の操作でも可能です。この設定はOSを再起動したり、後述のコマンドでNetworkManagerを再起動して設定が読み込まれるまで反映されません。
vi /etc/NetworkManager/system-connections/ens000.nmconnection
以下のように永続化させたいルーティングを記載します。
[ipv4]
route1=192.168.10.0/24,192.168.30.254
複数のルーティングを追加したい場合は以下のような記載になります。
[ipv4]
route1=192.168.10.0/24,192.168.30.254
route2=192.168.20.0/24,192.168.30.254
※まずは下記コマンドでネットワークの設定ファイルが存在していることを確認してから行います。
ls -la /etc/NetworkManager/system-connections/
catコマンドでネットワーク設定を確認します。
cat /etc/NetworkManager/system-connections/ens000.nmconnection
ルーティング永続化設定の反映
前述のコマンドで追加したルーティングは/etc/NetworkManager/system-connections/ens000.nmconnectionの[ipv4]以下に記載されます。前述の作業で入れた設定は、以下のNetworkManagerを再起動するコマンドを実行するまで反映されません。
# systemctl restart NetworkManager
もしくはOSの再起動を行うと、設定がOSに反映されます。
shutdown -r now
reboot
NetworkManagerを再起動しても変更されない場合は以下のコマンドを実行してインターフェースの再起動を行います。
# nmcli connection down <interface名>
# nmcli connection up <interface名>
interface名と今の接続状況は以下いずれかのコマンドで確認します。
nmcli d
nmcli device
以下いずれかのコマンドを実行してルーティング設定が正しく行われていることを確認し、問題なければルーティングの設定は完了です。
- ip route
- netstat -nr
永続的なルーティング設定の削除
一時的なルーティング設定の削除と同じコマンドで永続的なルーティング設定の削除が可能です。
route -del 172.16.10.0/24 gw 172.16.254.254
route -del 172.16.10.1/32 gw 172.16.254.254
ネットワークデバイス名について
ネットワークデバイス名は以下のコマンドで確認します。
nmcli d
nmcli device
RHELでの、ネットワークインターフェース名がどのように決まるかは、以下Red Hat Enterprise Linux 9のドキュメントに記載があります。
1.2. ネットワークインターフェイスの命名ポリシー
一部抜粋してまとめました。
オンボードデバイスのデバイス名には「eno」という単語が含まれます。
eno1, eno2
PCIExpressのデバイス名には、ファームウェアまたは BIOS が提供する PCI Express (PCIe) ホットプラグのスロットインデックス番号が含まれます。
ens1, ens2
ハードウェアその他のデバイス名には、ハードウェアのコネクターの物理的な場所が含まれます。
ens2s1, ens2s2
MACアドレスのデバイス名はMACアドレスが含まれます。デフォルトでは、Red Hat Enterprise Linux はこのポリシーを使用しませんが、管理者はこのポリシーを有効にすることができます。
enx78e3298a2c2
従来のデバイス名では以下の名称になります。
eth0, eth1
以下 1.2. ネットワークインターフェイスの命名ポリシー より引用
ポリシー | 説明 | 名前の例 |
---|---|---|
keep | デバイスにユーザー空間で割り当てられた名前がすでにある場合、udev はこのデバイスの名前を変更しません。たとえば、名前がデバイスの作成中または名前変更操作によって割り当てられた場合がこれに該当します。 | |
kernel | デバイス名が予測可能であるとカーネルが通知した場合、udev はこのデバイスの名前を変更しません。 | lo |
database | このポリシーは、udev ハードウェアデータベース内のマッピングに基づいて名前を割り当てます。詳細は、システム上の hwdb(7) man ページを参照してください。 | idrac |
onboard | デバイス名には、ファームウェアまたは BIOS が提供するオンボードデバイスのインデックス番号が含まれます。 | eno1 |
slot | デバイス名には、ファームウェアまたは BIOS が提供する PCI Express (PCIe) ホットプラグのスロットインデックス番号が含まれます。 | ens1 |
path | デバイス名には、ハードウェアのコネクターの物理的な場所が含まれます。 | enp1s0 |
mac | デバイス名には MAC アドレスが含まれます。デフォルトでは、Red Hat Enterprise Linux はこのポリシーを使用しませんが、管理者はこのポリシーを有効にすることができます。 | enx525400d5e0fb |
コネクション名について
コネクション名については以下のコマンドで確認します。
nmcli c
nmcli connection
ルーティングの永続化についてRHEL8との違い
RHEL8までは/etc/sysconfig/network-scripts/にif-cfg形式でネットワークのルーティングについての情報が記載されていました。RHEL9ではそれらの機能は使えなくなり、設定の保存場所が/etc/NetworkManager/system-connections/へ変更されました。
RHEL8までのルーティング永続化情報の保存先
/etc/sysconfig/network-scripts/
RHEL9のルーティング永続化情報の保存先
/etc/NetworkManager/system-connections/
RHEL8でのルーティング設定の追加方法は以下の記事でまとめています。
まとめ
RHEL8と9ではルーティングの設定を永続化させる方法が異なるため注意します。