RHEL9ルーティングを追加・永続化させる方法まとめ

Linux

Red Hat Enterprise Linux 9でネットワークのルーティングを追加・永続化させる方法をまとめました。

※RHEL9のルーティング設定に関してはRedHat公式サイトを参考にしています。

第26章 静的ルートの設定 | Red Hat Product Documentation
第26章 静的ルートの設定 | Red Hat Documentation

現在設定されているルーティングの確認

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. ネットワークインターフェイスの命名ポリシー

1.2. ネットワークインターフェイスの命名ポリシー | Red Hat Product Documentation
1.2. ネットワークインターフェイスの命名ポリシー | Red Hat Documentation

一部抜粋してまとめました。

オンボードデバイスのデバイス名には「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ではルーティングの設定を永続化させる方法が異なるため注意します。

タイトルとURLをコピーしました