Dockerの問題でトラフィックを転送する

Dockerの問題でトラフィックを転送する

ネットワーキングを含むDockerコンテナからトラフィックを転送できないいくつかの基本的な概念的な問題があります。

Dockerコンテナが2123/udpを受信して​​います。

方法0 すべての主張を投稿するのはうまくいかないようです。このコマンドの前後に iptables にマッピング/変更はありません。

 docker run -d -P image

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/bind/

方法1 すべてのインターフェイス/IP/ポートからDockerコンテナにトラフィックを送信したいと思います。私のトラフィックのほとんどは、eno1、ip = xxxx、およびポート22で発生します。私はこのポート22を使用してDockerにバインドしようとしました。

docker run -d -p 22:2123 image
As the port is active so it could not bind with port 22

方法2 任意のポート80を選択して公開してみました。

docker run -d -p x.x.x.x:80:2123

エラーは印刷されません。ただし、このIPとポートにパケットを送信すると、接続は拒否されます。

Packets sent as follows.
dd if=/dev/zero bs=9000 count=1000 > /dev/tcp/x.x.x.x/80

したがって、ポート22で受信されたすべてのトラフィックをxxxx:80に転送するためのポート転送ルールを追加しました。

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination x.x.x.x:80

まだ接続が拒否されました。接続が拒否されましたが、2件の取引を見ました。

 tcpdump -i any port 2123
 IP <dockerNWip>.37042 > <host>.2123: Flags [S], seq 1289990254, win 29200, options [mss 1460,sackOK,TS val 437161 ecr 0,nop,wscale 7], length 0
 IP <dockerNWip>.37042 > <host>.2123: Flags [S], seq 1289990254, win 29200, options [mss 1460,sackOK,TS val 437161 ecr 0,nop,wscale 7], length 0
 IP  <host>.2123 > <dockerNWip>.37042: Flags [R.], seq 0, ack 1289990255, win 0, length 0
 IP <host>.2123 > <dockerNWip>.37042: Flags [R.], seq 0, ack 1, win 0, length 0

問題がどこにあるのかよくわかりません。私の質問

 1) Do i need to bind x.x.x.x and port 80? I thought the rule would do that.
 2) Do i need anything else besides the publishing the ports?
 3) Is my way to tcpdumping the port correct to monitor the traffic?

私の戦略/家庭は、バインディングホストポート80をコンテナポート2123と自動的にトラフィックをルーティングする必要があることです。

関連情報