Comment déplacer une interface hors d'un espace de noms réseau?

10

Si je déplace temporairement une interface dans un réseau avec

ip link set eth10 netns myns

alors il n'est plus visible à la racine, seulement dans les myns d'espace de noms.

Comment puis-je le reculer, quelque chose comme (ceux-ci n'existent évidemment pas):

ip link unset eth10

ou peut-être

ip link set eth10 netns root

ou similaire?

abandonner
la source

Réponses:

13

J'ai trouvé une réponse. Bien sûr, vous ne pouvez pas le faire depuis les réseaux. Mais, si vous exécutez à ip netns exec ....partir de l'espace de noms du réseau racine, tout fonctionne.

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

Alors ça marche! Il faut le PID (1 dans ce cas) auquel nous l'affectons pour être dans le contexte de la commande d'exécution (wrapper) avant d'entrer dans les réseaux. Terminé!

abandonner
la source
Espérons que "1" fait référence à l'espace de noms du réseau "root" ...
TheDiveO
déplacer eth10 pour revenir à l'espace de noms du réseau par défaut: ip netns exec myns ip link set eth10 netns default
Ted Feng
Sur mon système Debian 10, "default" semble en effet 1. ip netns exec testns ip link set tun0 netns 1fonctionner, alors que "default" en résulte Error: argument "default" is wrong: Invalid "netns" value.
Paul
Plus de détails montrent que ce sont des identifiants. Si vous avez créé un espace de noms supplémentaire qui aura l'ID 2.
Paul
5

Vous pouvez utiliser la ip netns deletefonction. Depuis la page de manuel:

ip [-all] netns delete [NAME] - supprime le nom d'un ou de plusieurs espaces de noms réseau

Si NAME est présent dans / var / run / netns, il est démonté et le point de montage est supprimé. S'il s'agit du dernier utilisateur de l'espace de noms réseau, l'espace de noms réseau sera libéré et tous les périphériques physiques seront déplacés vers celui par défaut , sinon l'espace de noms réseau persiste jusqu'à ce qu'il n'y ait plus d'utilisateurs. ip netns delete peut échouer si le point de montage est utilisé dans un autre espace de noms de montage.

Il ne peut pas être utilisé à toutes fins, mais c'est certainement l'itinéraire le plus simple.

Dave
la source
4

Ce qui a fonctionné pour moi sur la base de la réponse de deitch est d'exécuter la commande à partir des réseaux personnalisés:

ip netns exec myns ip link set eth10 netns 1

Shedee
la source