私は、既存の VOIP レガシー システムを Docker 化された形式に変換するプロジェクトの真っ最中です。既存のシステムは 5 台の異なる Linux マシンで構成され、各マシンには 2 つの異なるネットワーク インターフェイスがあり、1 つはパブリック WAN に公開され、もう 1 つはプライベート LAN ネットワークです。オーケストレーションをセットアップするための docker compose ファイルを作成する予定です。
ネットワークは大まかに次のようになります。
サーバー #1 Eth0: IP 192.168.0.200/24 Eth1: IP XXX65/27
サーバー #2 Eth0: IP 192.168.0.201/24 Eth1: IP XXX66/27
サーバー #3 Eth0: IP 192.168.0.202/24 Eth1: IP XXX87/27
サーバー #4 Eth0: IP 192.168.0.203/24 Eth1: IP YYY240/27
サーバー #5 Eth0: IP 192.168.0.204/24 Eth1: IP YYY241/27
サーバー 1 ~ 3 は同じサブネットの一部であり、サーバー 4 ~ 5 も同様です。
このネットワーク設定を docker ネットワークに変換する最善の方法を見つけようとしています。すべてのコンテナーでパブリック IP (Eth1 上のもの) を保持する必要があります。つまり、コンテナーから生成されたトラフィックは、元のパブリック IP と同じパブリック IP を保持します。サーバー) だけでなく、同じプライベート ネット上の他のすべての Docker コンテナーと通信できるようにすると同時に、管理を容易にし、オーバーヘッドを最小限に抑えます。
docker-compose を使用して 3 つの macvlan ネットワークと 1 つのブリッジ ネットワークを作成しましたが、問題は、DNS 解決がすべてのコンテナーに、それが属する Macvlan ネットワークで指定した IP アドレスを提供することです。たとえば、2 つの Docker がブリッジ ネットワークに割り当てられているとします。同じ Macvlan ネットワークに対して、他の各コンテナー名を解決すると、ブリッジ IP アドレスではなく Macvlan アドレスが提供されます。BRIDGE ネットワークのみを介してすべてのコンテナー間の通信を強制したいと考えています (基本的に Macvlan ネットワークをプライベート モードに設定します)。どうすればそれを達成できますか?