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.0GATEWAY0=192
に到達するために使用できるデフォルトゲートウェイまたは.168.1.1
は、ADDRESS0= 10.10.10.0IP
アドレスです。
以下は、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
後に続く静的ルートは、順番に番号付けされる必要があり、いずれの値もスキップしてはいけません。たとえば、
ADDRESS0
、ADDRESS1
、ADDRESS2
などです。
デフォルトでは、パケットをあるインターフェイスから別のインターフェイスに転送することや、同じインターフェイスから外部に送信することは、セキュリティー上の理由から無効になっています。
これにより、外部トラフィック用のルーターとしてシステムが動作しているのを防ぐことができます。接続の共有や 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
特定のテーブルへのルートを設定することで、
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)
を参照してください。