Comments 14
Читал с большим интересом. Ожидал, что будет использование veth'а или что-то подобное. slirp не выглядит как полноценное решение.
Если рутом махать, то, конечно, есть более широкий набор решений — ссылку в примечании в тексте добавили на этот счет)
Вот это как раз и есть интересный вопрос. В linux почему-то (до сих пор) нельзя взять и отдать сетевой интерфейс на растерзание непривилегированной программе.
Half the problem comes from an arbitrary restriction I put on myself. I wanted this to work from a completely unprivileged Docker container. Normally Docker doesn't give guest containers things like CAP_NET_ADMIN
, which is needed to do things with TUN/TAP devices. I wanted to make the container image so that all you needed to do was:
docker run --rm -it xena/docker-uml
and then you'd suddenly have an entirely working user mode linux system right there. I mainly want to see how far the rabbit hole goes from a completely user level. TUN/TAP devices require CAP_NET_ADMIN
, so they are not allowed in this case. Thus I chose Slirp.
Да, так я про это и говорю. CAP_NET_ADMIN — это не "отдать интерфейс на растерзание", а "отдать сеть всего сервера на растерзание". Вот если бы можно было дать CAP_NET_ADMIN для одного-единственного сетевого интерфейса (например, veth'а), или даже создать сетевой интерфейс в непривилегированном режиме.
Hi. Hopefully this won't sound like an advertisement, but the recently-released DeepL machine translation works way better for ru<->eng than Google Translate in my experience. Just in case.
Как начать использовать User Mode в Linux