Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.5. ifcfg ファイルでの静的ルートの設定

コマンドプロンプトで ip コマンドを使用して設定した静的ルートは、システムがシャットダウンまたは再起動されると失われます。システムの再起動後に静的ルートを永続化するように設定するには、/etc/sysconfig/network-scripts/ ディレクトリーのインターフェイスごとの設定ファイルに配置する必要があります。ファイル名は、route-interface の形式にする必要があります。設定ファイルで使用するコマンドの種類は 2 つあります。

IP コマンド引数形式を使用した静的ルート

インターフェイスごとの設定ファイル(例: /etc/sysconfig/network-scripts/route-enp1s0 )で必要な場合は、最初の行でデフォルトゲートウェイへのルートを定義します。これは、ゲートウェイが DHCP 経由で設定されておらず、/etc/sysconfig/network ファイルでグローバルに設定されていない場合のみ必要です。
default via 192.168.1.1 dev interface
ここでの 192.168.1.1 は、デフォルトゲートウェイの IP アドレスです。interface は、デフォルトゲートウェイに接続されている、または到達可能なインターフェイスになります。dev オプションは省略できます。これはオプションです。この設定は、/etc/sysconfig/network ファイルの設定よりも優先されることに注意してください。
リモートネットワークへのルートが必要な場合は、静的ルートは以下のように指定できます。各行は、個別のルートとして解析されます。
10.10.10.0/24 via 192.168.1.1 [dev interface]
ここでの 10.10.10.0/24 は、リモートもしくは宛先ネットワークのネットワークアドレスおよび接頭辞長です。アドレス 192.168.1.1 は、リモートネットワークにつながる IP アドレスです。ネクストホップアドレス の方が好ましいですが、出口インターフェイスのアドレスでも機能します。ネクストホップとは、ゲートウェイやルーターなどリンクのリモート側を意味します。dev オプションを使用して、終了 インターフェイス を指定できますが、必須ではありません。必要に応じて静的ルートを追加します。
以下は、ip コマンド引数形式を使用した route-interface ファイルの例です。デフォルトゲートウェイは 192.168.0.1 です。 enp1s0 リースされた行または WAN 接続は 192.168.0.10 で利用できます。2 つの静的ルートは、10.10.10.0/ 24 ネットワークおよび 172.16.1.10/32 ホストに到達するためのものです。
default via 192.168.0.1 dev enp1s0
10.10.10.0/24 via 192.168.0.10 dev enp1s0
172.16.1.10/32 via 192.168.0.10 dev enp1s0
上記の例では、ローカルの 192.168.0.0/24 ネットワークに送信されるパケットは、そのネットワークに接続されているインターフェイスに送信されます。10.10.10.0/ 24 ネットワークおよび 172.16.1.10/32 ホストに送信されるパケットは 192. 168.0.10 に転送されます。既知でないリモートネットワークに向かうパケットはデフォルトゲートウェイを使用するので、デフォルトルートが適切でない場合は、静的ルートはリモートネットワークもしくはホスト用のみに設定すべきです。ここでのリモートとは、システムに直接繋がれていないネットワークやホストを指します。
IPv6 設定の場合、ip ルート形式の route6-interface ファイルの例:
2001:db8:1::/48 via 2001:db8::1 metric 2048
2001:db8:2::/48
出口インターフェイスの指定は、オプションです。特定のインターフェイスからトラフィックを強制的に締め出したい場合は、これが便利です。たとえば、VPN の場合、リモートネットワークへのトラフィックが通過するように強制できます。 tun0 インターフェイスが宛先ネットワークとは別のサブネットにある場合でも、インターフェイス。
ip route 形式を使用して、送信元アドレスを指定できます。以下に例を示します。
10.10.10.0/24 via 192.168.0.10 src 192.168.0.2
複数のルーティングテーブルを指定する既存のポリシーベースのルーティング設定を定義するには、「ポリシールーティングについて」を参照してください。
重要
デフォルトゲートウェイがすでに DHCP によって割り当てられており、同じメトリックを持つ同じゲートウェイが設定ファイルで指定されている場合、起動時またはインターフェイスの起動時にエラーが発生します。"RTNETLINK answers: File exists" というエラーメッセージが表示される可能性があります。このエラーは無視できます。

Network または Netmask のディレクティブ形式を使用した静的ルート

route-interface ファイルに network/netmask ディレクティブ形式を使用することもできます。以下は、ネットワーク/ネットマスク形式のテンプレートで、後に説明が続きます。
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.1
  • ADDRESS0=10.10.10. 0 は、到達するリモートネットワークまたはホストのネットワークアドレスです。
  • NETMASK0=255 .255.255 .0 は、ADDRESS0= 10.10.10.0 で定義されているネットワークアドレスのネットマスクです。
  • GATEWAY0=192 .168.1.1は、ADDRESS0= 10.10.10.0 に到達するために使用できるデフォルトゲートウェイまたは IP アドレスです。
以下は、network/netmask ディレクティブ形式を使用した route-interface ファイルの例です。デフォルトゲートウェイは 192.168.0.1 ですが、リースされた行または WAN 接続は 192.168.0 .10 で利用できます。2 つの静的ルートは、10.10.10.0/24 および 172.16.1.0/24 ネットワークに到達するためのものです。
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.0.10
ADDRESS1=172.16.1.10
NETMASK1=255.255.255.0
GATEWAY1=192.168.0.10
後に続く静的ルートは、順番に番号付けされる必要があり、いずれの値もスキップしてはいけません。たとえば、ADDRESS0ADDRESS1ADDRESS2 などです。
デフォルトでは、パケットをあるインターフェイスから別のインターフェイスに転送することや、同じインターフェイスから外部に送信することは、セキュリティー上の理由から無効になっています。 これにより、外部トラフィック用のルーターとしてシステムが動作しているのを防ぐことができます。接続の共有や VPN サーバーの設定など、外部トラフィックをルーティングするのにシステムがルーティングする必要がある場合は、IP 転送を有効にする必要があります。詳細は『Red Hat Enterprise Linux 7 Security Guide』を参照してください。

4.5.1. ポリシールーティングについて

Policy-routing はソースルーティングとも呼ばれ、より柔軟なルーティング設定のためのメカニズムです。ルーティングの決定は、通常、パッケージの宛先 IP アドレスに基づいて行われます。ポリシールーティング により、ソース IP アドレス、ソースポート、プロトコルタイプなどの他のルーティングプロパティーに基づいてルートをより柔軟に選択できます。ルーティングテーブルは、ネットワークに関するルート情報を保存します。これらは、/etc/iproute2/rt_tables ファイルに設定できる数値または名前で識別されます。デフォルトのテーブルは 254 で識別されます。policy-routing を使用すると、ルールも必要になります。ルールは、ルーティングテーブルを選択するために使用され、パケットの特定のプロパティーに基づいています。
initscript の場合、ルーティングテーブルは、テーブルの引数から設定できるルートのプロパティーになります。ip route 形式は、複数のルーティングテーブルを指定する既存のポリシーベースのルーティング設定を定義するために使用できます。
10.10.10.0/24 via 192.168.0.10 table 1
10.10.10.0/24 via 192.168.0.10 table 2
initscripts でルーティングルールを指定するには、IPv4 の場合は /etc/sysconfig/network-scripts/rule-enp1s0 ファイル、または IPv6 の場合は /etc/sysconfig/network-scripts/rule6-enp1s0 ファイルに編集します。
NetworkManager はポリシールーティングをサポートしますが、ルールはまだサポートされていません。ルールは、カスタムスクリプトを実行して設定する必要があります。手動の静的なルート 1 つに対して、ルーティングテーブルを 1 つ選択できます。
  • IPv4の場合は ipv4.route-table
    および
  • IPv6 の場合は ipv6.route-table
特定のテーブルへのルートを設定することで、DHCPautoconf6DHCP6 からのすべてのルートがそのテーブルに配置されます。また、アドレスをすでに設定しているサブネットのルートはすべて、対応するルーティングテーブルに追加します。たとえば、192.168.1.10/24 アドレスを設定する場合は、ipv4.route-table に 192.168.1.0/24 サブネットを追加します。
policy-routing ルールの詳細は、man ページの ip-rule (8) を参照してください。ルーティングテーブルは、man ページの ip-route (8) を参照してください。