シンプルな設定です。
だから私は構造を持っています:
Proxmoxネットワーク:
vmbr0
Link encap: Ethernet
inet addr: 136.136.136.161
Bcast: 136.136.136.191
Mask: 255.255.255.192
vmbr1
Link encap: Ethernet
inet addr: 192.168.1.254
Bcast: 136.136.1.255
Mask: 255.255.255.0
コンテナ1ネットワーク:
eth0
Link encap: Ethernet
inet addr: 136.211.123.180
Bcast: 136.211.123.180
Mask: 255.255.255.255
コンテナ2ネットワーク:
eth0
Link encap: Ethernet
inet addr: 192.168.1.1
Bcast: 192.168.1.255
Mask: 255.255.255.0
Proxmoxの通常のiptablesは次のようになります。 (UDPポート9987のTeamSpeak³の例を転送)
~# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT udp -- anywhere anywhere udp dpt:9987 to:192.168.1.1:9987
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.1.0/24 anywhere
これは次の方法で追加されます。
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o vmbr0 -j MASQUERADE
iptables -t nat -A PREROUTING -i vmbr0 -p udp -m udp --dport 9987 -j DNAT --to-destination 192.168.1.1:9987
そして今の問題は、コンテナ1からコンテナ2にどのように転送するかです。
現時点では、リクエストはProxmoxホストに送信され、iptablesを介してこのリクエストをコンテナに転送します。ただし、通常はすべてのポートがこのサーバーに接続される必要があるため、コンテナー1には静的IPアドレスが割り当てられています。 -他のコンテナに転送したいいくつかを除いて。
では、コンテナ1の他の静的IPアドレスへのリクエストをコンテナ2に転送するにはどうすればよいですか?
コンテナ2はTS³コンテナです。コンテナ1は「静的IPアドレス」コンテナです。また、proxmoxホストには独自のIPアドレスもあり、現時点ではこれらすべてのリクエストに使用されています。
アイデアを事前に感謝します。
ホストOSのvmbr0インターフェイスでパブリック.180アドレスを設定し、ホストOSでポート転送を行うだけです。
ここでは、個別のVM)を使用する意味がわかりません。個別のVMを使用してさらに複雑にしたい場合は、これを試すことができます。
コンテナ1のネットワーク設定がおかしいため、そのコンテナから136.211.123.128/255.255.255.192
ネットワーク内の他のホストにアクセスすることはできません。ホストOSで使用されているものと同じネットマスクとブロードキャストアドレスを使用する必要があります。
実際の転送では、vmbr1
にブリッジされるコンテナー1に2番目のインターフェースを追加する必要があります。次に、コンテナ1でポート転送ルールを作成できます。
iptables -t nat -A PRETROUTING -i eth0 -p udp -m udp --dport 9987 -j DNAT --to-destination 192.168.1.1:9987
したがって、コンテナ1は、外部ネットワークと内部ネットワークの両方にインターフェイスを備えており、ポートを転送できます。