ネットワークインタフェースファイルによるゲートウェイアドレスの設定

ネットワークインタフェースファイルによるゲートウェイアドレスの設定

私の質問の概要バージョンは次のとおりです。gatewayネットワークインタフェースファイルのパラメータ設定がネットワークインタフェースに影響しないのはなぜですか?

または、post-upコマンドが失敗した場所で動作するのはなぜgatewayですかgateway、設定パラメータは正確に何をすべきですか?

私の問題の詳細な説明は次のとおりです。

/etc/network/interfacesDebian を実行している VirtualBox VM で、次のネットワークインタフェースプロファイル( )を検討してください。

# /etc/network/interfaces

# Original file

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface (NAT)
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

# Host-only interface (vboxnet0)
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.56.2
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.1

マシンを起動して実行すると、route -n次の結果が表示されます。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

驚くべきことに、このインターフェイスには192.168.56.0/24ネットワーク用のゲートウェイは設定されていませんeth1

ここで、次の代替構成ファイルを考えてみましょう。

# /etc/network/interfaces

# Modified file

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface (NAT)
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

# Host-only interface (vboxnet0)
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.56.2
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
# gateway 192.168.56.1
post-up route add default gw 192.168.56.1
pre-down route del default gw 192.168.56.1

この構成でコンピュータを再起動して実行すると、route -n次の結果が表示されます。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.56.1    0.0.0.0         UG    0      0        0 eth1
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

したがって、post-upデフォルトゲートウェイを設定する/メソッドは機能しますが、パラメータ自体を使用することは機能しません。私がここで何を見逃しているのでしょうか?pre-downgateway

答え1

マニュアルで(man interfaces):

gateway address
                 Default gateway (dotted quad)

gatewayしたがって、基本静的ルーティングではなくルーティング。静的ルートは、デフォルトゲートウェイを使用するように設計されていないネットワークトラフィックに使用されます。デフォルトゲートウェイは、ローカルネットワークに向かうのではなく、ルーティングテーブルにデフォルトルートが割り当てられていないすべてのトラフィックに使用されます。 DHCP インターフェイスeth0の取得基本ゲートウェイその後、指定された静的eth1パスを使用できますpost-up route add default gw

追加資料:

2 つのネットワークインターフェイスで別々のネットワークトラフィック

以下を試してください。

echo '200 hostonly' >> /etc/iproute2/rt_tables

編集する/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The VirtualBox NAT interface.
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

# The VirtualBox host-only interface.
auto eth1
allow-hotplug eth1
iface eth1 inet static
    address 192.168.56.2
    netmask 255.255.255.0
    post-up ip route add 192.168.56.0/24 dev eth1 src 192.168.56.1 table hostonly
    post-up ip route add default via 192.168.56.1 dev eth1 table hostonly
    post-up ip rule add from 192.168.56.2/32 table hostonly
    post-up ip rule add to 192.168.56.2/32 table hostonly

再起動してどのように見えるかを確認してください。

答え2

ネットワークの観点からは、デフォルトゲートウェイ(最後のゲートウェイとも呼ばれます)ではなく、ネットワークゲートウェイがネクストホップとして使用されます。最初のRoute -nコマンド(サフィックスなし)では、10.0.2.2が最後のゲートウェイとして表示されます。コンピュータがルーティングテーブルにないネットワークを要求すると、不明なネットワークトラフィックがそのアドレスに転送されます。インターフェイス設定のゲートウェイ設定は、そのネットワーク上のトラフィックのネクストホップです。ただし、インターフェイスがそのネットワークに直接接続されているため、トラフィックを転送するためにゲートウェイは必要ありません。ネットワークは常に知られており、そのネットワークのデバイスに向かうトラフィックはそのデバイスに直接転送されます。ポストコマンドは最後の手段として2つのゲートウェイを作成しています(これは望ましくありません)。 192.168.56.1を実際の最後の手段として使用するには、デフォルトパスを追加する代わりに置き換える必要があります。

答え3

これが少し刺激を与えた

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-networkscripts-static-routes.html

ルーティングテーブルは、すべてのインターフェイス間で接続がルーティングされる方法に関する情報を提供します。

インターフェイスのデフォルトパスは他の目的に使用され、システム全体ではなくそのインターフェイスにのみ適用されます。

ネットワークインターフェイスが1つしかない場合、これは唯一のデフォルトゲートウェイなので、自動的にデフォルトパスに設定されます。

ルーティングテーブルは下から上に動作するため、一番上のデフォルトゲートウェイが接続を試みるために使用される最後のパスになります。

関連情報