web-dev-qa-db-ja.com

LinuxUbuntu-2つのNICがLANを分離

私はこの/ etc/network/interfacesを持っています(eth1のIPは偽物です)

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.2.15
netmask 255.255.255.0
broadcast 10.0.2.255
gateway 10.0.2.2

auto eth1
iface eth1 inet static
address 123.123.123.45
netmask 255.255.255.0
broadcast 123.123.123.255
gateway 123.123.123.1

Eth0を使用してインターネットに接続し、eth1でパブリックIPをWebサーバーに構成しました。

インターネットへの接続は、eth0のみを維持している場合は正常に機能し、反対側では、eth1のみを維持している場合はWebサーバーも正常に機能します。それらは意図したとおりに完全に機能します。

問題は、両方のネットワークを同時にオンにし、eth0のみを使用してインターネットを閲覧したり、更新をダウンロードしたりすることと、123.123.123.45に着信するすべてのトラフィックをそのネットワークだけにルーティングしたいことです。

どうやってやるの?多くのチュートリアルを検索しましたが、有効な解決策が見つからないか、何か問題があります。あるインターフェースから別のインターフェースにトラフィックを再ルーティングしたくないので、それらを別々に保ち、それらがどのIPから来ているかに基づいてトラフィックを再ルーティングしたいと思います。

これは可能ですか?

私はすでに試しました

route add -Host 123.123.123.45 dev eth1

前もって感謝します。

2
James Loy

差し迫った問題は、両方のエントリでデフォルトゲートウェイを宣言することです。これにより、最後に「勝ち」になり、デフォルトゲートウェイになると思います。

ただし、eth1にあるものを削除すると、パケットがeth1に到着した場合でも、ボックスがeth0に応答するという問題が発生します。ボックスに特定のインターフェイスで応答するように指示するには、一般にソースルーティングと呼ばれる処理を実行する必要があります。

ボックスに次の一連のコマンドがあります。

/sbin/ip rule add from 1.2.3.4/24 tab 1 priority 500
/sbin/ip route add default via 1.2.3.1 dev eth2 tab 1
/sbin/ip route flush cache

最初の行は、IP1.2.3.4から送信されるパケットに関する情報をテーブル「1」で探すようにボックスに指示します。 2行目は、デフォルトゲートウェイそのテーブル内が1.2.3.1であることを示すテーブル「1」を作成します。最後の行は、これがすぐに有効になることを保証します。

詳細については、例を参照してください。 http://lartc.org/howto/lartc.rpdb.html

3
Bittrance

同じメトリックを持つ2つのデフォルトゲートウェイがあると、1つが使用される宝くじになります。これはあなたの問題を説明します。

Bittranceからのアドバイスに従うか、2つのデフォルトルートのメトリックが異なることを確認できます。その場合、ルートがダウンしていない限り、メトリックが小さい方が使用されます。ただし、これは、2番目のデフォルトゲートウェイが実際にパブリックインターネットへのルートを提供する場合にのみ機能します。

メトリックが異なる2つのデフォルトルートを設定するには、ip route addコマンドでmetricキーワードを使用します。

私は個人的に、インターフェイスファイルからゲートウェイ命令を削除し、ポストアップコマンドを追加します。

[〜#〜] edit [〜#〜]あなたの追加のコメントに基づいて、私はあなたが正確に何を達成したいのか、そしてこのネットワークがどのように設定されているのかについて少し混乱しています。

明らかに、パブリックIPとのインターフェイスは、インターネットに直接接続する必要があります(おそらく、ISPが提供するデバイスを介して)。このサーバーがインターネットへのデフォルトゲートウェイでもある場合、つまりパブリックIPアドレスのすべての要求がこのサーバーを通過する必要がある場合は、サーバーをルーターとして構成する必要があります(つまり、IP転送を有効にし、ネットワーク上の他のすべてのデバイスを有効にする必要があります)。このサーバーのプライベートIPをデフォルトゲートウェイとして使用します)。

ネットワークにデフォルトのインターネットアクセスを提供する別のコンピューターがある場合、そのデバイスを他のすべてのネットワークデバイスのデフォルトゲートウェイとして設定する必要があります。また、サーバーの内部インターフェイス(eth0)には、デフォルトルートがまったくないはずです。そのネットワークに直接接続されています。

2
wolfgangsz

2つのデフォルトゲートウェイを持つことはできません。どちらかを選択してください。

2つのISPを同時に使用する場合は、BGPが必要です。

1
pauska

別の質問に対するこの回答もあなたの回答につながるでしょうか?

2つの別々のLANに2つのNICを設定するとエラーが発生します

0
Nunya