NetworkManagerで複数のデフォルトゲートウェイを設定する方法 -ifcfgファイル編-

NetworkManagerで複数のデフォルトゲートウェイを設定する方法(ifcfgファイル編) Linuxサーバ

RHELサーバで複数のネットワークインターフェース(NIC)にそれぞれデフォルトゲートウェイを設定する方法について4ステップで解説します。
※下記、図の「デフォルトゲートウェイ(GW)の設定が2つ」の設定を解説


この設定は、異なるネットワークセグメントに属する複数のインターフェースがあり、それぞれのセグメントを越えて通信を行う場合に非常に重要です。
片方のインターフェースにのみデフォルトゲートウェイを設定すると、もう片方のインターフェースは同セグメント内でしか通信できないという問題が発生します。

「keyfile」形式でネットワーク設定する場合はこちらを参照くだい

■サーバAの通信可能なセグメント(範囲)

デフォルトゲートウェイ(GW)の設定が1つ

通信可能:
10.1.1.0/24
172.16.0.0/24
10.10.10.0/24


通信不可:
192.168.1.0/24

デフォルトゲートウェイ(GW)の設定が2つ

通信可能:
10.1.1.0/24
172.16.0.0/24
10.10.10.0/24
192.168.1.0/24

通信不可:
なし



スポンサーリンク

ステップ1.ネットワークインターフェースの設定

それぞれのNICに対して基本的なIP設定を行います。
ifcfgファイルでデフォルトゲートウェイの設定を行いません。

※以下の設定では、デフォルトゲートウェイを指定しますが、DEFROUTE=noとなっているため、この段階ではデフォルトゲートウェイは有効になりません。
※「GATEWAY」と「DEFROUTE」の行を削除した状態と同様の設定となります。

■ifcfg-enp0s3の設定

DEVICE=enp0s3
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.1.1.10
PREFIX=24
GATEWAY=10.1.1.1
DEFROUTE=no

/etc/sysconfig/network-scripts/ifcfg-enp0s3

■ifcfg-enp0s8 の設定

DEVICE=enp0s8
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.10.10.10
PREFIX=24
GATEWAY=10.10.10.1
DEFROUTE=no

/etc/sysconfig/network-scripts/ifcfg-enp0s8



ステップ2.複数のデフォルトゲートウェイを永続的に設定する方法

複数のデフォルトゲートウェイを永続的に設定するために、ポリシールーティングを使用します。
これにより、各インターフェースに適切なルーティングルールを設定できます。

■ルーティングテーブルの追加
/etc/iproute2/rt_tablesファイルに新しいルーティングテーブルを追加します。

vi /etc/iproute2/rt_tables

以下の行を追加します:

100 rt2
200 rt3



■ルーティングルールの設定
ルーティングルールを設定するために、以下のファイルを作成・編集します。

/etc/sysconfig/network-scripts/rule-enp0s3

from 10.1.1.0/24 table rt2

/etc/sysconfig/network-scripts/route-enp0s3

default via 10.1.1.1 dev enp0s3 table rt2


/etc/sysconfig/network-scripts/rule-enp0s8

from 10.10.10.0/24 table rt3

/etc/sysconfig/network-scripts/route-enp0s8

default via 10.10.10.1 dev enp0s8 table rt3




ステップ3.NetworkManager-dispatcher-routing-rulesのインストール

■インストール理由
サーバの起動時、NetWorkManagerサービス再起動時に
/etc/sysconfig/network-scripts/rule-enpXXX
/etc/sysconfig/network-scripts/route-enpXXX
に設定したルーティングルールが自動的に反映されるようになります。
このパッケージがインストールされていない場合、これらの設定は起動時に反映されません。

■インストール方法

 dnf install NetworkManager-dispatcher-routing-rules




ステップ4.デフォルトゲートウェイの確認方法

■ip rule listコマンド
現在設定されているルーティングポリシールールを一覧表示します。

ip rule list


■ip route list tableコマンド
特定のルーティングテーブルを表示します。

ip route list table main
ip route list table rt2
ip route list table rt3


■すべてのルーティングテーブルを表示

ip route list table all



---コマンド実行結果---


「netstat -rn」コマンドでは、main(ip rule listコマンドで確認)のルーティングテーブルのみが表示されます。
ポリシールーティングを使用している場合は、必ず「ip rule list」と「ip route list table」コマンドを使用してルーティングの確認を行ってください。




まとめ

以上の手順で、複数のネットワークインターフェースを持つRHELサーバに対して、各インターフェースにデフォルトゲートウェイを設定する方法を説明しました。

ポリシールーティングとカスタムスクリプトの設定により、柔軟なルーティングを実現し、ネットワークの冗長性と効率性を向上させることができます。

設定の際には、適切なルーティングルールを適用し、必要に応じて永続化することを忘れずに行ってください。

■まとめポイント

  1. DEFROUTE=noとするとifcfgファイルに「GATEWAY」設定をしても有効にならない

  2. 永続的に複数のデフォルトゲートウェイを設定する場合は
    「rt_tables」ファイル・「rule-XXX」ファイルと「route-XXX」ファイルでルーティング設定を定義する


  3. NetworkManager-dispatcher-routing-rulesパッケージのインストール

  4. 今回の設定方法は、「ifcfg-XXX」ファイルでのネットワーク設定で有効であり、keyfile設定では利用できません。



コメント

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