![루트 없는 컨테이너에서 전체 UDP 포트를 호스트에서 컨테이너로 매핑하는 방법은 무엇입니까?](https://linux55.com/image/169722/%EB%A3%A8%ED%8A%B8%20%EC%97%86%EB%8A%94%20%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%97%90%EC%84%9C%20%EC%A0%84%EC%B2%B4%20UDP%20%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%ED%98%B8%EC%8A%A4%ED%8A%B8%EC%97%90%EC%84%9C%20%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%A1%9C%20%EB%A7%A4%ED%95%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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 }]"
그래서 작동해야합니다.
또한 브리징과 같은 기본 네트워킹 모드가 작동하려면(컨테이너용 네트워크 장치를 생성하기 위해) 루트가 필요합니다.