Red Hat Training
A Red Hat training course is available for RHEL 8
21.4. レガシーネットワークスクリプトを使用した特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング
ポリシーベースのルーティングを使用して、特定のサブネットからのトラフィックに対して別のデフォルトゲートウェイを設定できます。たとえば、デフォルトルートを使用してすべてのトラフィックをインターネットプロバイダー A にルーティングするルーターとして RHEL を設定できます。ただし、内部ワークステーションサブネットから受信したトラフィックはプロバイダー B にルーティングされます。
network-scripts
パッケージが提供する従来のネットワークスクリプトを使用したネットワークの設定は、RHEL 8 では非推奨になりました。この手順は、ホストで NetworkManager ではなく、レガシーネットワークスクリプトを使用している場合に限り行います。NetworkManager を使用してネットワーク設定を管理する場合は、 nmcli を使用した特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング を参照してください。
この手順では、次のネットワークトポロジーを想定しています。
従来のネットワークスクリプトは、設定ファイルをアルファベット順に処理します。したがって、他のインターフェイスのルールとルートで使用されるインターフェイスが、依存するインターフェイスが必要とするときに確実に稼働するように、設定ファイルに名前を付ける必要があります。正しい順序を達成するために、この手順では ifcfg-*
ファイル、route-*
ファイル、および rules-*
ファイルの番号を使用します。
前提条件
-
NetworkManager
パッケージがインストールされていないか、NetworkManager
サービスが無効になります。 -
network-scripts
パッケージがインストールされている。 この手順で設定する RHEL ルーターには、4 つのネットワークインターフェイスがあります。
-
enp7s0
インターフェイスはプロバイダー A のネットワークに接続されます。プロバイダーのネットワークのゲートウェイ IP は198.51.100.2
で、ネットワークは/30
ネットワークマスクを使用します。 -
enp1s0
インターフェイスはプロバイダー B のネットワークに接続されます。プロバイダーのネットワークのゲートウェイ IP は192.0.2.2
で、ネットワークは/30
ネットワークマスクを使用します。 -
enp8s0
インターフェイスは、内部ワークステーションで10.0.0.0/24
サブネットに接続されています。 -
enp9s0
インターフェイスは、会社のサーバーで203.0.113.0/24
サブネットに接続されています。
-
-
内部ワークステーションのサブネット内のホストは、デフォルトゲートウェイとして
10.0.0.1
を使用します。この手順では、この IP アドレスをルーターのenp8s0
ネットワークインターフェイスに割り当てます。 -
サーバーサブネット内のホストは、デフォルトゲートウェイとして
203.0.113.1
を使用します。この手順では、この IP アドレスをルーターのenp9s0
ネットワークインターフェイスに割り当てます。 -
デフォルトでは、
firewalld
サービスは有効でアクティブになっています。
手順
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-1_Provider-A
ファイルを作成して、ネットワークインターフェイスの設定をプロバイダー A に追加します。TYPE=Ethernet IPADDR=198.51.100.1 PREFIX=30 GATEWAY=198.51.100.2 DNS1=198.51.100.200 DEFROUTE=yes NAME=1_Provider-A DEVICE=enp7s0 ONBOOT=yes ZONE=external
設定ファイルは以下のパラメーターを使用します。
-
TYPE
=Ethernet
: 接続タイプがイーサネットであることを定義します。 -
IPADDR
=IP_address
- IPv4 アドレスを設定します。 -
PREFIX
=subnet_mask
- サブネットマスクを設定します。 -
GATEWAY
=IP_address
- デフォルトのゲートウェイアドレスを設定します。 -
DNS1
=IP_of_DNS_server
- DNS サーバーの IPv4 アドレスを設定します。 -
DEFROUTE
=yes|no
- 接続がデフォルトルートであるかどうかを定義します。 -
NAME
=connection_name
- 接続プロファイルの名前を設定します。混乱を避けるために、わかりやすい名前を使用してください。 -
DEVICE
=network_device
- ネットワークインターフェイスを設定します。 -
ONBOOT
=yes
- システムの起動時に RHEL がこの接続を開始することを定義します。 -
zone
=firewalld_zone
- 定義したfirewalld
ゾーンにネットワークインターフェイスを割り当てます。firewalld
は、外部
ゾーンに割り当てられたマスカレードインターフェイスを自動的に有効にすることに注意してください。
-
プロバイダー B にネットワークインターフェイスの設定を追加します。
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-2_Provider-B
ファイルを作成します。TYPE=Ethernet IPADDR=192.0.2.1 PREFIX=30 DEFROUTE=no NAME=2_Provider-B DEVICE=enp1s0 ONBOOT=yes ZONE=external
このインターフェイスの設定ファイルには、デフォルトのゲートウェイ設定が含まれていないことに注意してください。
2_Provider-B
接続のゲートウェイを別のルーティングテーブルに割り当てます。したがって、以下の内容で/etc/sysconfig/network-scripts/route-2_Provider-B
ファイルを作成します。0.0.0.0/0 via 192.0.2.2 table 5000
このエントリーは、このゲートウェイを経由するすべてのサブネットからのゲートウェイおよびトラフィックをテーブル
5000
に割り当てます。
内部ワークステーションサブネットへのネットワークインターフェイスの設定を作成します。
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-3_Internal-Workstations
ファイルを作成します。TYPE=Ethernet IPADDR=10.0.0.1 PREFIX=24 DEFROUTE=no NAME=3_Internal-Workstations DEVICE=enp8s0 ONBOOT=yes ZONE=internal
内部ワークステーションサブネットのルーティングルール設定を追加します。したがって、以下の内容で
/etc/sysconfig/network-scripts/rule-3_Internal-Workstations
ファイルを作成します。pri 5 from 10.0.0.0/24 table 5000
この設定では、優先度
5
のルーティングルールを定義します。これは、すべてのトラフィックを10.0.0.0/24
サブネットからテーブル5000
にルーティングします。値が小さいほど優先度が高くなります。以下の内容を含む
/etc/sysconfig/network-scripts/route-3_Internal-Workstations
ファイルを作成し、ID5000
のルーティングテーブルに静的ルートを追加します。10.0.0.0/24 via 192.0.2.1 table 5000
この静的ルートは、RHEL が、ローカルネットワークインターフェイスの IP への
10.0.0.0/24
サブネットから、プロバイダー B (192.0.2.1
) にトラフィックを送信することを定義します。このインターフェイスは、ルーティングテーブル5000
に対するものであり、ネクストホップとして使用されます。
以下の内容で
/etc/sysconfig/network-scripts/ifcfg-4_Servers
ファイルを作成して、ネットワークインターフェイスの設定をサーバーのサブネットに追加します。TYPE=Ethernet IPADDR=203.0.113.1 PREFIX=24 DEFROUTE=no NAME=4_Servers DEVICE=enp9s0 ONBOOT=yes ZONE=internal
ネットワークを再起動します。
# systemctl restart network
検証
内部ワークステーションサブネットの RHEL ホストで、以下を行います。
traceroute
パッケージをインストールします。# yum install traceroute
traceroute
ユーティリティーを使用して、インターネット上のホストへのルートを表示します。# traceroute redhat.com traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 10.0.0.1 (10.0.0.1) 0.337 ms 0.260 ms 0.223 ms 2 192.0.2.1 (192.0.2.1) 0.884 ms 1.066 ms 1.248 ms ...
コマンドの出力には、ルーターがプロバイダー B のネットワークである
192.0.2.1
経由でパケットを送信することが表示されます。
サーバーのサブネットの RHEL ホストで、以下を行います。
traceroute
パッケージをインストールします。# yum install traceroute
traceroute
ユーティリティーを使用して、インターネット上のホストへのルートを表示します。# traceroute redhat.com traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets 1 203.0.113.1 (203.0.113.1) 2.179 ms 2.073 ms 1.944 ms 2 198.51.100.2 (198.51.100.2) 1.868 ms 1.798 ms 1.549 ms ...
コマンドの出力には、ルーターがプロバイダー A のネットワークである
198.51.100.2
経由でパケットを送信することが表示されます。
トラブルシューティングの手順
RHEL ルーターで以下を行います。
ルールの一覧を表示します。
# ip rule list 0: from all lookup local 5: from 10.0.0.0/24 lookup 5000 32766: from all lookup main 32767: from all lookup default
デフォルトでは、RHEL には、
local
テーブル、main
テーブル、およびdefault
テーブルのルールが含まれます。テーブル
5000
のルートを表示します。# ip route list table 5000 default via 192.0.2.2 dev enp1s0 10.0.0.0/24 via 192.0.2.1 dev enp1s0
インターフェイスとファイアウォールゾーンを表示します。
# firewall-cmd --get-active-zones external interfaces: enp1s0 enp7s0 internal interfaces: enp8s0 enp9s0
external
ゾーンでマスカレードが有効になっていることを確認します。# firewall-cmd --info-zone=external external (active) target: default icmp-block-inversion: no interfaces: enp1s0 enp7s0 sources: services: ssh ports: protocols: masquerade: yes ...
関連情報
- 従来のネットワークスクリプトを使用する場合のポリシーベースのルーティングに関連する設定ファイルの概要
-
ip-route(8)
man ページ -
ip-rule(8)
man ページ -
/usr/share/doc/network-scripts/sysconfig.txt
file