Linux ネットワーキングに初めてアクセスしながら、他のサブネットから仮想 IP アドレスにルーティングする方法について質問があります。
3つのサーバーがあります(すべて互いにpingできます)。
ㅏ10.10.51.182(ルーターYに接続)
第二10.10.51.183(ルーターYに接続)
氏10.10.60.10(ルーターZに接続)
サーバー上ㅏ、1000個の仮想インターフェイスを作成しました。
# ifconfig eth0:0 192.168.1.1 netmask 255.255.0.0
# ifconfig eth0:1 192.168.1.2 netmask 255.255.0.0
....
# ifconfig eth0:999 192.168.5.200 netmask 255.255.0.0
各仮想インターフェイスは、カメラシミュレーションソフトウェアを使用してカメラデバイスをシミュレートします。
サーバー上第二、次のパスを追加しました。
# route add -net 192.168.0.0 netmask 255.255.0.0 eth0
望むより、第二マシンの仮想インターフェイスにアクセス/pingできます。ㅏ。
仕える人氏別のサブネット(10.10.60.0)にこのパスを追加しましたが、うまくいくことを望むことは非常に低いです。
# route add -net 192.168.0.0 netmask 255.255.0.0 eth0
期待どおりにサーバーの仮想インターフェイスにアクセスできません。ㅏだから、そのルートを削除し、ルータのゲートウェイIPを使用して次のルートを追加しました。はい:
# route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.10.51.1 eth0
SIOCADDRT: Network is unreachable
サーバーはゲートウェイ10.10.51.1をpingできます。氏しかし、エラーメッセージの意味は次のとおりです。GW同じサブネット(10.10.60)に直接はありません。
サーバーで構成できる構成/ルーティングㅏそして/または氏~のため氏サーバーの仮想インターフェイスへのping/accessㅏ。ルータの設定を変更する権限がありません。
しかし、単にサーバー構成を変更することが絶対に不可能な場合、ネットワーキングの観点からその理由を説明できる人はいますか?第二仮想インターフェイスにアクセスできます。ㅏ、しかし氏アクセスする方法はありません。ルーターはありますか?はい「192.168.0.0」にバインドされたパケットを見る氏パケットが同じサブネットから始まると、自動的に破棄されます(第二)許可を受けますか?
答え1
単純なソリューションは、次の2つのサーバー間にトンネルを作成します。
サーバーAから:
ip tunnel add tunnel mode ipip remote 10.10.60.10
ip addr add 10.1.1.1/24 dev tunnel
sysctl -w net.ipv4.ip_forward=1
最後のコマンドは、新しく作成されたトンネルデバイスから仮想イーサネットデバイスにパケットを転送します。
サーバーCで
ip tunnel add tunnel mode ipip remote 10.10.51.182
ip addr add 10.1.1.2/24 dev tunnel
ip route add 192.168.0.0/16 via 10.1.1.1
サーバー間のファイアウォールによっては、いくつかのルールを調整する必要があります。
説明:共有ネットワークセグメントにServer A
ありますServer B
。たとえば、データパケットをそのゲートウェイに送信することなく、データパケットを互いに送信できます。つまり、次の方法で自分のServer B
住所を確認してください。192.168.1.1
ARPそしてServer A
彼らに返信を送ってください。
Server A
そしてServer C
他のネットワークセグメントにあります。たとえば、要求のみServer C
(192.168.1.1
ルーティングコマンドになるServer C
)、何も応答しません。この問題を解決するには、通常、ルーティングテーブルを介して特定のシステムに到達する方法を指定できますが、ネクストホップのみを指定できます。 2つのシステム間にトンネルを作成する必要があることrouter Z
を知らないようです。192.168.0.0/24
追加のヒントは、仮想イーサネットデバイスを作成する必要がなく、ネットワークデバイスに必要なだけIPアドレスを追加できることです。たとえば、次のようになります。
for first in {1..4} ; do
for second in {1..255} ; do
ip addr add 192.168.$first.$second/16 dev eth0
done
done
答え2
いくつかのオプションがあります。
- コンピュータCは、AとBと同じ物理ネットワークに接続する必要があります。
- ルーターYには192.168.0.0/16のアドレスが必要です。ルーターZにはルーターYを介して192.168.0.0/16へのパスが必要です。
- コンピュータCとコンピュータAの間にip-ip(またはVPN)トンネルを作成し、トンネルインターフェイスを介して192.168.0.0/16へのトラフィックをルーティングします。
トンネルを作成することは、修正のための最良のオプションかもしれません。ただコンピュータAとC.よりIP-IPガイドワンステップ。