質問はタイトルにあるように非常に単純ですが、私がこの質問をしたほぼ全員が、私が頭がおかしいか愚かだと説得しようとします。ここで、なぜこれが必要なのかを説明します。このタスクを達成するための他の解決策も歓迎しますが、質問に対する答えをいただければ(特に「いいえ」でなければ)非常にありがたいです。
つまり、同じネットワーク(たとえば 10.0.0.1/24)上にマシンのプールがあり、それらの IP は 10.0.0.1、10.0.0.2、...、10.0.0.10 です。
また、ループバック インターフェイス (lo:dsr など) にはパブリック インターネット IP (たとえば 8.8.8.8) が設定されています [待ってください、まだ私を変人と呼ばないでください]
このプールの上に、Direct Server Return ロードバランサーがあります。仕組みがわからない場合は、こちらをご覧ください。http://www.weirdnet.nl/images/natvsdsr.png
これまでのところ順調です。完璧に動作しています。
ここで問題が起こります。これらのマシンは単一のサービスを実行しているわけではありません。ポート 8080、8081、8082 で 3 つの異なるサービスを実行し、相互に通信します (ネットワーク経由)。
したがって、マシン A 上のサービス 8080 がサービス 8081 (ロード バランサー IP 8.8.8.8 経由) に接続しようとすると、Linux は「十分にスマート」なので、マシン A が IP 8.8.8.8 を所有していることを認識し、代わりにこのパケットをループバック インターフェイスに送信します。
通常、これは問題にはなりませんが、高可用性システムであるため、何らかの理由 (配送など) でマシン A 上のサービス B が停止すると問題になります。