Назад | Перейти на главную страницу

Как я могу переместить интерфейс из сетевого пространства имен?

Если я временно перенесу интерфейс в netns с

ip link set eth10 netns myns

тогда он больше не отображается в корне, только в пространстве имен myns.

Как мне переместить его обратно, что-то вроде (их явно не существует):

ip link unset eth10

или возможно

ip link set eth10 netns root

или похожие?

Я нашел ответ. Конечно, вы не можете сделать это из netns. Но если вы выполните ip netns exec .... изнутри корневого сетевого пространства имен все работает.

ip netns exec <PID> ip link set eth10 netns 1

Тогда это работает! Он принимает PID (в данном случае 1), которому мы назначаем его, чтобы он находился в контексте выполняемой команды (оболочки), прежде чем мы войдем в netns. Готово!

Вы можете использовать ip netns delete функция. На странице руководства:

ip [-all] netns delete [ИМЯ] - удалить имя сетевого пространства (пространств) имён

Если ИМЯ присутствует в / var / run / netns, оно размонтируется и точка монтирования удаляется. Если это последний пользователь сетевого пространства имен, сетевое пространство имен будет освобождено и все физические устройства будут перенесены на устройство по умолчанию, в противном случае сетевое пространство имен сохраняется до тех пор, пока в нем не останется пользователей. ip netns delete может завершиться ошибкой, если точка монтирования используется в другом пространстве имен монтирования.

Его нельзя использовать для всех целей, но это определенно самый простой путь.

На основании ответа Дейча у меня сработало выполнение команды из настраиваемого netns:

ip netns exec myns ip link set eth10 netns 1