web-dev-qa-db-ja.com

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

これが私の質問の要約版です:ネットワークインターフェイスファイルでgatewayパラメータを設定してもネットワークインターフェイスに影響がないのはなぜですか?

または、gatewayが失敗した場合にpost-upコマンドが機能し、gatewayパラメータを設定するとどうなるのでしょうか。

ここに私の質問の長い説明があります。

VirtualBox上の次のネットワークインターフェイス構成ファイル(/etc/network/interfaces)を検討してくださいVM Debianを実行中:

# /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

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

ここで、次の代替構成ファイルを検討してください。

# /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-downアプローチは機能しますが、gatewayパラメータ自体を使用すると機能しません。ここで何が欠けていますか?

1
igal

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

1

これはいくつかの扇動を与えます

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

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

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

ネットワークインターフェイスが1つしかない場合は、それが唯一のデフォルトゲートウェイであるため、システムはそれをデフォルトルートとして自動的に設定します。

ルーティングテーブルは下から上に機能するため、上部のデフォルトゲートウェイが接続の試行に使用される最後のルートになります。

1
Joe

マニュアルから(man interfaces):

gateway address
                 Default gateway (dotted quad)

したがって、gatewayは、静的ルートではなく、defaultルートを指定するために使用されます。スタティックルートは、デフォルトゲートウェイを使用するように設計されていないネットワークトラフィックに使用されます。デフォルトゲートウェイは、ローカルネットワーク宛ではなく、ルーティングテーブルで優先ルートが指定されていないすべてのトラフィックに使用されます。 eth0上のDHCPインターフェースは、defaultゲートウェイを取得します。その後、eth1post-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

再起動して、外観を確認します。

1
Christopher