Show Table of Contents
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
4.5. ifcfg ファイルでの静的ルートの設定
コマンドプロンプトで ip コマンドを使用して設定した静的ルートは、システムがシャットダウンまたは再起動すると失われます。静的ルートの設定を、システムを再起動した後も持続するようにするには、
/etc/sysconfig/network-scripts/
ディレクトリーに保存されているインターフェース別の設定ファイルに追加する必要があります。ファイル名は、route-interface
の形式にする必要があります。設定ファイルで使用するコマンドの種類は 2 つあります。
IP コマンド引数形式を使用した静的ルート
インターフェースごとの設定ファイル、たとえば
/etc/sysconfig/network-scripts/route-enp1s0
で必要な場合は、1 行目でデフォルトゲートウェイへのルートを定義します。これは、ゲートウェイが 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
オプションを使うと出口インターフェース interface を指定できますが、これは必須ではありません。必要に応じた数の静的ルートを追加してください。
以下は、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 route
形式の 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
ファイルに使用することも可能です。以下は、ネットワーク/ネットマスク形式のテンプレートで、後に説明が続きます。
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
アドレスです。
以下は、ネットワーク/ネットマスクディレクティブの形式を使用した
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
後に続く静的ルートは、順番に番号付けされる必要があり、いずれの値もスキップしてはいけません。たとえば、
ADDRESS0
、ADDRESS1
、ADDRESS2
というようになります。
デフォルトでは、パケットをあるインターフェースから別のインターフェースに転送することや、同じインターフェースから外部に送信することは、セキュリティー上の理由から無効になっています。これにより、システムが外部トラフィックのルーターとして機能するのを防ぐことができます。システムに外部トラフィックをルーティングさせる必要がある場合は (たとえば、接続を共有する場合や、VPN サーバーを設定する場合)、IP フォワーディングを有効にする必要があります。詳細は『Red Hat Enterprise Linux 7 セキュリティーガイド』を参照してください。
4.5.1. ポリシールーティングについて
ポリシールーティング
は、ソースルーティングとも呼ばれ、より柔軟なルーティング設定のためのメカニズムです。ルーティングの決定は、通常、パッケージの宛先 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
initscript でルーティングルールを指定するには、
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
特定テーブルにルートを設定するには、
DHCP
、autoconf6
、DHCP6
からのルートをすべて、その特定テーブルに追加します。また、アドレスをすでに設定しているサブネットのルートはすべて、対応するルーティングテーブルに追加します。たとえば、192.168.1.10/24 アドレスを設定する場合は、ipv4.route-table に 192.168.1.0/24 サブネットを追加します。
policy-routing
ルールの詳細は、man ページの ip-rule(8)
を参照してください。ルーティングテーブルは、man ページの ip-route(8)
を参照してください。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。