Podmanで実行されているルートレスコンテナを使用して、ホストからコンテナに1:1にマッピングして、さまざまなUDPポートを公開する方法があるかどうか疑問に思います。
利用可能なリソースにはTCPポートに関する情報が含まれていますが、UDPに関する情報は見つかりません。また、podman port
ルートなしで実行すると、ブリッジの代わりに名前空間 "magic"が使用されるようです。
10000..20000(UDP)などのホストIPv4アドレス範囲を同じポート範囲でコンテナにマッピングしたいと思います。
これで、クラシック仮想マシンを使用すると、人々はiptables
好きなように使用できますが、slirp4netnsこれはオプションではありません。
どのように実装できますか?それともUDPは実際には不可能ですか?これはルートレスコンテナの厳しい制限ですか?
答え1
物を探している間に偶然これを見つけました。おそらく私が助けることができるでしょう。
Podmanはルートレスネットワーキングツールをrootlesskit(最小バージョン> 1.8)に切り替えます。
そして
-p 35010-35013:35010-35013/udp
わかりました。
DEBU[0000] rootlessport: time="2020-05-08T23:05:17Z" level=info msg="exposing ports [{35010 35010 udp } {35011 35011 udp } {35012 35012 udp } {35013 35013 udp }]"
だから動作する必要があります。
また、ブリッジングなどのネイティブネットワーキングモードが機能するには(コンテナ用のネットワークデバイスを作成するため)、ルートが必要です。