Как добавить имя в пространство имен?

Как я знаю, я могу использовать "клон" для создания процесса и пространства имен, но пространство имен, созданное таким образом, не имеет имени. Например, я создаю сетевое пространство имен с параметром: CLONE_NEWNS, но в команде "ip netns list" нет списка пространств имен, потому что созданное пространство имен не имеет имени. Но я могу использовать команду "ip netns add xxx" для создания пространства имен с именем "xxx".

Интересно, как создать пространство имен с именем с помощью системного вызова "клон".

1 ответ

Решение

Создать символическую ссылку из /var/run/netns/<name> в /proc/<pid>/ns/net, где <pid> это PID процесса, который был создан с CLONE_NEWNS а также <name> это имя, которое вы хотите использовать для ссылки на пространство имен сети.

Обратите внимание, что ip link set netns команда примет либо PID, либо имя, а nsenter Команда также может обращаться к пространствам имен по PID, поэтому вам может не потребоваться назначать имя пространству имен сети.

Другие вопросы по тегам