Если я временно перенесу интерфейс в 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