回答:
答えを見つけました。もちろん、netns内からはできません。ただし、ip netns exec ....
ルートネットワークの名前空間内から実行すると、すべて機能します。
ip netns exec <PID> ip link set eth10 netns 1
その後、動作します!netnsに入る前に、実行中のコマンド(ラッパー)のコンテキスト内にあるPID(この場合は1)を取得します。できた!
ip netns exec testns ip link set tun0 netns 1
ますが、「デフォルト」はをもたらしましたError: argument "default" is wrong: Invalid "netns" value
。
ip netns delete
関数を使用できます。manページから:
ip [-all] netns delete [NAME]-ネットワーク名前空間の名前を削除します
NAMEが/ var / run / netnsに存在する場合は、マウント解除され、マウントポイントが削除されます。これがネットワーク名前空間の最後のユーザーである場合、ネットワーク名前空間は解放され、すべての物理デバイスはデフォルトのデバイスに移動されます。それ以外の場合、ネットワーク名前空間はユーザーがなくなるまで存続します。マウントポイントが別のマウント名前空間で使用されている場合、ip netns deleteが失敗することがあります。
すべての目的に使用できるわけではありませんが、間違いなく最も簡単なルートです。