
Estoy jugando unshare
para comprender mejor los contenedores. Como usuario normal, ¿es posible crear un espacio de nombres donde un programa pueda escuchar, por ejemplo, un puerto 123
y en el espacio de nombres "principal" 1234
se redirija un puerto a él?
Supongo que debería serlo, ya que Podman es un motor contenedor desarraigado y puede hacerlo. Mirar man veth
no ayudó.
Respuesta1
Podman funciona usandodeslizarse4netnspara gestionar undispositivo de toquedentro del contenedor sin privilegios. Del archivo README de slirp4netns:
A partir de Linux 3.8, los usuarios sin privilegios pueden crear
network_namespaces(7)
junto con archivosuser_namespaces(7)
. Sin embargo, los espacios de nombres de red sin privilegios no habían sido muy útiles, porque la creación deveth(4)
pares entre los espacios de nombres de red y host todavía requiere privilegios de root. (es decir, sin conexión a Internet)slirp4netns permite conectar un espacio de nombres de red a Internet de una manera completamente sin privilegios, conectando un dispositivo TAP en un espacio de nombres de red a la pila TCP/IP del modo de usuario ("slirp").
Para lograr su objetivo, deberá hacer algo similar.