検索

25.4. レガシーネットワークスクリプトを使用した特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング

download PDF

ポリシーベースのルーティングを使用して、特定のサブネットからのトラフィックに対して別のデフォルトゲートウェイを設定できます。たとえば、デフォルトルートを使用して、すべてのトラフィックをインターネットプロバイダー A にデフォルトでルーティングするルーターとして RHEL を設定できます。ただし、内部ワークステーションサブネットから受信したトラフィックはプロバイダー B にルーティングされます。

重要

network-scripts パッケージが提供する従来のネットワークスクリプトを使用したネットワークの設定は、RHEL 8 では非推奨になりました。この手順は、ホストで NetworkManager ではなく、レガシーネットワークスクリプトを使用している場合に限り行います。NetworkManager を使用してネットワーク設定を管理する場合は、 nmcli を使用した特定のサブネットから別のデフォルトゲートウェイへのトラフィックのルーティング を参照してください。

この手順では、次のネットワークトポロジーを想定しています。

policy based routing

注記

従来のネットワークスクリプトは、設定ファイルをアルファベット順に処理します。したがって、他のインターフェイスのルールとルートで使用されるインターフェイスが、依存するインターフェイスが必要とするときに確実に稼働するように、設定ファイルに名前を付ける必要があります。正しい順序を達成するために、この手順では 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 サービスは有効でアクティブになっています。

手順

  1. 以下の内容で /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 は、外部 ゾーンに割り当てられたマスカレードインターフェイスを自動的に有効にすることに注意してください。
  2. プロバイダー B にネットワークインターフェイスの設定を追加します。

    1. 以下の内容で /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. 2_Provider-B 接続のゲートウェイを別のルーティングテーブルに割り当てます。したがって、以下の内容で /etc/sysconfig/network-scripts/route-2_Provider-B ファイルを作成します。

      0.0.0.0/0 via 192.0.2.2 table 5000

      このエントリーは、このゲートウェイを経由するすべてのサブネットからのゲートウェイおよびトラフィックをテーブル 5000 に割り当てます。

  3. 内部ワークステーションサブネットへのネットワークインターフェイスの設定を作成します。

    1. 以下の内容で /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
    2. 内部ワークステーションサブネットのルーティングルール設定を追加します。したがって、以下の内容で /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 にルーティングします。値が小さいほど優先度が高くなります。

    3. 以下の内容を含む /etc/sysconfig/network-scripts/route-3_Internal-Workstations ファイルを作成し、ID 5000 のルーティングテーブルに静的ルートを追加します。

      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 に対するものであり、ネクストホップとして使用されます。

  4. 以下の内容で /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
  5. ネットワークを再起動します。

    # systemctl restart network

検証

  1. 内部ワークステーションサブネットの RHEL ホストで、以下を行います。

    1. traceroute パッケージをインストールします。

      # yum install traceroute
    2. 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 経由でパケットを送信することが表示されます。

  2. サーバーのサブネットの RHEL ホストで、以下を行います。

    1. traceroute パッケージをインストールします。

      # yum install traceroute
    2. 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 ルーターで以下を行います。

  1. ルールのリストを表示します。

    # 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 テーブルのルールが含まれます。

  2. テーブル 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
  3. インターフェイスとファイアウォールゾーンを表示します。

    # firewall-cmd --get-active-zones
    external
      interfaces: enp1s0 enp7s0
    internal
      interfaces: enp8s0 enp9s0
  4. external ゾーンでマスカレードが有効になっていることを確認します。

    # firewall-cmd --info-zone=external
    external (active)
      target: default
      icmp-block-inversion: no
      interfaces: enp1s0 enp7s0
      sources:
      services: ssh
      ports:
      protocols:
      masquerade: yes
      ...

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.