web-dev-qa-db-ja.com

1つのブリッジインターフェイスからホストOSのゲストコンテナにポートを転送する

シンプルな設定です。

マインドマップはすべてがどのように見えるか

だから私は構造を持っています:

  • ProxmoxホストOS(vmbr0、vmbr1)
    • コンテナ1(eth0)
    • コンテナ2(eth0)

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アドレスもあり、現時点ではこれらすべてのリクエストに使用されています。

アイデアを事前に感謝します。

1
Patrick

ホスト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は、外部ネットワークと内部ネットワークの両方にインターフェイスを備えており、ポートを転送できます。

1
Tero Kilkanen