4つのネットワークアダプターを搭載したUbuntu 12.04サーバーがあります。それぞれのNICを個別の機能に使用する必要があります。セットアップの説明は次のとおりです。
etho = 10.234.0.2 netmask = 255.255.255.252 gw = 10.234.0.1 This is on vlan 234
eth1 = 10.235.0.2 netmask = 255.255.255.252 gw = 10.235.0.1 This is on vlan 235
eth2 = 10.236.0.2 netmask = 255.255.255.252 gw = 10.236.0.1 This is on vlan 236
eth3 = 10.237.0.2 netmask = 255.255.255.252 gw = 10.237.0.1 This is on vlan 237
個別のWebサービスの個々のIPアドレスとの間でトラフィックを転送できる必要があります。つまり、10.235.0.2はWebサイト、10.236.0.2は別のサイト、10.237.0.2は3番目のサイトです。最初のIPはサーバーの管理用です。
この問題はルーティングの問題だと思いますが、私はLinuxに慣れていないため、ルーティング機能の詳細を十分に理解できていません。
/etc/network/interfaces
ファイルには次のものがあります。
auto lo
iface lo inet loopback
# WWW Management
auto eth0
iface eth0 inet static
address 10.234.0.2
netmask 255.255.255.252
gateway 10.234.0.1
nameseervers 10.230.1.103, 10.230.70.70
# WWW
auto eth1
iface eth1 inet static
address 10.235.0.2
netmask 255.255.255.252
gateway 10.235.0.1
# WTB
#auto eth2
#iface eth2 inet static
#address 10.236.0.2
#netmask 255.255.255.252
#gateway 10.236.0.1
# Moodle
#auto eth3
#iface eth3 inet static
#address 10.237.0.2
#netmask 255.255.255.252
#gateway 10.237.0.1
混乱を避けるために、最後の2つのネットワークを無効にしました。
ヘルプとコメントと提案のすべてに事前に感謝します。
Eth0だけの通常の構成を行った後、戻ってeth1の構成を追加しました。 eth0がアップしただけで、ルートテーブルは次のようになりました。
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
しかし、eth1を起動すると、デフォルトルートステートメントの順序により、常に使用されるインターフェイスが決まります。以下に示すように、192.168.1.65ゲートウェイへのeth1ルートを選択することが起こります。
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.1.65 dev eth1 metric 100
default via 192.168.0.97 dev eth0 metric 100
最初の問題は、余分な「via 192.168.1.65」デフォルトルートです。/etc/network/interfacesのeth1定義に「gateway 192.168.1.65」ステートメントがある場合に表示されます。したがって、余分なゲートウェイステートメントを削除し、インターフェイスをバウンスします。
# ifdown eth1
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
Eth1から流出するすべてのトラフィックに適したデフォルトルートを含む新しい個別のルーティングテーブルを作成します。ここのテーブル番号は重要ではありません。 101は単にメインのルーティングテーブルではありません。これを行うには、/ etc/network/interfacesのeth1設定で「ポストアップ」コマンドを使用します。 eth1に投稿を1つだけ追加します。 eth1:サブインターフェースのいずれにも追加しないでください。
post-up ip route add default via 192.168.1.65 dev eth1 table 101
バウンスeth1。メインのルーティングテーブルは変更されず、eth1が起動している場合、テーブル101には192.168.1.65経由のデフォルトルートが含まれます。
# ifdown eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101 (ie, table is empty, no output)
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101
default via 192.168.1.65 dev eth1
ルーティングルールを追加して、テーブル101を使用して、eth1から送信されるパケットのデフォルトルートを選択します。
# ip rule add from 192.168.1.64/27 lookup 101
# ip rule show
0: from all lookup local
32765: from 192.168.1.64/27 lookup 101
32766: from all lookup main
32767: from all lookup default
ルールを/etc/network/interfaces
ファイルにも追加します。
post-up ip rule add from 192.168.1.64/27 lookup 101
インターフェイスがダウンしたときにルートとルールを削除するクリーンアップを追加してください:
post-down ip rule del from 192.168.1.64/27
post-down ip route del default via 192.168.1.65 table 101
[ubuntu 16.04+の編集] here のように、このヘルプから作成したテストから、ip route2はコマンドの構造を変更しました。作業を行うには、man ip
points の順序で行うように少し調整する必要があります。
up ip route add default table 101 dev eth1 via 192.168.1.65
up ip rule add from 192.168.1.64/27 lookup 101
down ip rule del from 192.168.1.64/27
down ip route del default table 101 via 192.168.1.65
または、ifdown-ifupコマンド(エラーメッセージ@ifdownコマンド(周辺機器が正しく構成されていないことを示す標準メッセージ)を伴うifupコマンド)、および@ 101.