web-dev-qa-db-ja.com

デフォルトルートの仮想インターフェイス

私のUbuntuサーバーには1つの物理インターフェイスeth0があります。サーバーに3つのIP(異なるサブネット)を割り当てたい。 ifconfigip addr add(例:eth0:0)のようなデフォルトの仮想インターフェイス作成ツールを使用できません。これらの3つのIPのそれぞれについて、デフォルトゲートウェイを指定する必要があるためです。したがって、eth0を接続できるブリッジ(および必要なIPを使用した複数のタップまたは調整インターフェイス)を使用できるかどうかはわかりますが、各仮想デバイスはeth0を介してアクセス可能なサブネットに接続できます。

編集1:

5つのイーサネットインターフェイスを5つの異なるネットワークに接続したいとします。しかし、私は5つのインターフェースを持つ余裕がありません。そこで、アンマネージドスイッチを購入し、5つのネットワークすべてからのcat5ケーブルをそのスイッチに接続し、そのスイッチの1つのポートをUbuntuサーバーのeth0に接続します。 Ubuntuサーバー上の5つのネットワークすべてを処理するために、物理インターフェイス(eth1、eth2など)のように動作し、eth0を通過して、スイッチに到達する5つの仮想インターフェイスを作成します。これらの個別のネットワークがすべて、1つのアンマネージドスイッチを通過してもかまいません。しかし、Ubuntuサーバーで、これらのネットワークを5つの物理インターフェイスに接続されているかのように処理する必要があります。

2
nixnotwin

必要なのは、カーネルのルーティング決定に影響を与えることです。これは通常、ポリシールーティングと呼ばれます。あなたの場合、送信元アドレスに作用するポリシーをそのインターフェイスにルーティングして戻す必要があると思います。 1つのインターフェイスに到着するネットトラフィックは、そのインターフェイスで終了する必要があり、特定のインターフェイスのパケットは、デフォルトのテーブルではなく、そのインターフェイスに指定されたルールを使用する必要があります。必要なコマンドはip rule

そうは言っても、OPには、ポリシールーティングが必要であることを確実に示すのに十分な情報がありません。

1
Bittrance

システムに設定できるデフォルトルートは1つだけです。

静的ルートを追加して、一部のトラフィックを別のルーター経由で強制的に通過させることができます。

    route add 172.16.1.0/24 172.26.1.250

または

    ip route add 172.16.1.0/24 via 172.26.1.250 dev eth0:1

これらのコマンドは、/ etc/network/interfacesに追加できます。

1
James O'Gorman

何ヶ月もグーグルした後、私は答えを見つけたと思います。これは、KVMでゲストOSのインターフェイスを作成するために使用されるvdeツールを使用して実行できます。手順は次のとおりです。

ソフトウェアをインストールします。

Sudo apt-get install vde2

仮想スイッチを作成します。

Sudo vde_switch -s /tmp/switch1 -daemon

タップデバイスを作成します。

Sudo vde_switch -tap tap0 -daemon

別のタップデバイスを作成します(新しいソケットファイルを指定する必要があります)。

Sudo vde_switch -tap tap1 -sock /var/run/vde.ctl/ctl1 -daemon

それぞれが新しいソケットファイルを取得する場合、任意の数のtapデバイスを作成できます。

物理デバイスをvdeスイッチに接続します。

Sudo vde_pcapplug -d eth0

両方のタップデバイスにIPアドレスを割り当てます(私のeth0192.168.1.10/24にあります):

Sudo ifconfig tap0 192.168.1.80 netmask 255.255.255.0
Sudo ifconfig tap1 192.168.1.90 netmask 255.255.255.0

すべてのインターフェイスを同じネットワークに配置して、相互にpingを実行し、セットアップが正常に機能するかどうかをテストできるようにしました。

次に、同じネットワーク上にある別のホスト(おそらくWindowsマシンを使用)からIPの192.168.1.80192.168.1.90にpingを実行します。

Ubuntuから、ネットワーク上の他のホストは、次のように新しいtapデバイスからpingを実行できます。

ping -I tap0 192.168.1.1

これで、ifconfigを使用して、個別のネットワークに属するIPアドレスをタップデバイスに再割り当てできます。

それでおしまい。個別のインターフェイスのように機能する個別の仮想インターフェイス。

この手順を説明するハウツー/チュートリアルは見つかりませんでした。誰かがさまざまな状況でそれをテストして、それが実稼働環境で実装される実行可能なソリューションであるかどうかを確認できるかもしれません。

0
nixnotwin

linuxで単純なtuctlユーティリティを使用してみませんか。

tunctl -u root -i eth5

これにより、新しいインターフェイスeth5が作成され、IP/MASKと出来上がりが割り当てられ、他のインターフェイスと同じように構成され、正常に機能するはずです。

0
Jason Cstrota

eth0:x形式を使用して、IPアドレスを追加できます。必ず各ネットワークに適切なネットマスクを追加してください。図のように、各インターフェイスで追加のネットワークをルーティングできます。

iface eth0:1 inet static
    address 192.0.2.6
    netmask 255.255.255.0
    post-up route add -net 198.51.100.0/24 netmask 255.255.255.0 gw 192.0.2.1

追加のネットワークをルーティングするときは、接続したネットワークのゲートウェイアドレスを知っている必要があります。これは、そのインターフェイスを使用してルーティングするネットワークのゲートウェイアドレスになります。

ポリシールーティングまたは同様の接続ロードシェアリングを使用している場合を除き、デフォルトルートは1つだけにする必要があります。

0
BillThor