Как добавить имя в пространство имен?
Как я знаю, я могу использовать "клон" для создания процесса и пространства имен, но пространство имен, созданное таким образом, не имеет имени. Например, я создаю сетевое пространство имен с параметром: 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, поэтому вам может не потребоваться назначать имя пространству имен сети.