私のUbuntuサーバーには1つの物理インターフェイスeth0
があります。サーバーに3つのIP(異なるサブネット)を割り当てたい。 ifconfig
やip 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つの物理インターフェイスに接続されているかのように処理する必要があります。
必要なのは、カーネルのルーティング決定に影響を与えることです。これは通常、ポリシールーティングと呼ばれます。あなたの場合、送信元アドレスに作用するポリシーをそのインターフェイスにルーティングして戻す必要があると思います。 1つのインターフェイスに到着するネットトラフィックは、そのインターフェイスで終了する必要があり、特定のインターフェイスのパケットは、デフォルトのテーブルではなく、そのインターフェイスに指定されたルールを使用する必要があります。必要なコマンドはip rule
。
そうは言っても、OPには、ポリシールーティングが必要であることを確実に示すのに十分な情報がありません。
システムに設定できるデフォルトルートは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に追加できます。
何ヶ月もグーグルした後、私は答えを見つけたと思います。これは、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アドレスを割り当てます(私のeth0
は192.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.80
と192.168.1.90
にpingを実行します。
Ubuntuから、ネットワーク上の他のホストは、次のように新しいtap
デバイスからpingを実行できます。
ping -I tap0 192.168.1.1
これで、ifconfig
を使用して、個別のネットワークに属するIPアドレスをタップデバイスに再割り当てできます。
それでおしまい。個別のインターフェイスのように機能する個別の仮想インターフェイス。
この手順を説明するハウツー/チュートリアルは見つかりませんでした。誰かがさまざまな状況でそれをテストして、それが実稼働環境で実装される実行可能なソリューションであるかどうかを確認できるかもしれません。
linuxで単純なtuctlユーティリティを使用してみませんか。
tunctl -u root -i eth5
これにより、新しいインターフェイスeth5が作成され、IP/MASKと出来上がりが割り当てられ、他のインターフェイスと同じように構成され、正常に機能するはずです。
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つだけにする必要があります。