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
、interface です。 enp1s0 リース行または WAN 接続は、192.168.0.0
で利用できます。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.0
に転送されます。既知でないリモートネットワークに向かうパケットはデフォルトゲートウェイを使用するので、デフォルトルートが適切でない場合は、静的ルートはリモートネットワークもしくはホスト用のみに設定すべきです。ここでのリモートとは、システムに直接繋がれていないネットワークやホストを指します。
IPv6
設定の場合、ip
ルート形式 の route6インターフェイス
ファイルの例:
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 のディレクティブ形式を使用した静的ルート
ルートインターフェイス
ファイルに 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 ディレクティブ形式を使用した
ルートインターフェイス
ファイルの例です。デフォルトゲートウェイは 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
は source-routing としても知られており、より柔軟なルーティング設定のためのメカニズムです。ルーティングの決定は、通常、パッケージの宛先 IP アドレスに基づいて行われます。Policy-routing
を使用すると、送信元 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.route-table
forIPv4
およびIPv6
の場合はipv6.route-table
。
特定のテーブルにルートを設定すると、DHCP、
autoconf6
、 DHCP
6
からのすべてのルートがその特定のテーブルに配置されます。また、アドレスをすでに設定しているサブネットのルートはすべて、対応するルーティングテーブルに追加します。たとえば、192.168.1.10/24 アドレスを設定する場合は、ipv4.route-table に 192.168.1.0/24 サブネットを追加します。
policy-routing
ルールの詳細は、ip-rule (8)
man ページを参照してください。ルーティングテーブルは、ip-route (8)
man ページを参照してください。