2015-05-09 82 views
2

據我所知,我可以使用「克隆」來創建一個進程和一個名稱空間,但以這種方式創建的名稱空間沒有名稱。例如,我使用參數CLONE_NEWNS創建一個網絡名稱空間,但在命令「ip netns list」中,沒有名稱空間列表,因爲所創建的名稱空間沒有名稱。但是我可以使用命令「ip netns add xxx」來創建名稱爲「xxx」的名稱空間。如何給名稱空間添加名稱?

我想知道如何使用系統調用「clone」來創建名稱空間。

回答

4

創建一個符號鏈接從/var/run/netns/<name>/proc/<pid>/ns/net,其中<pid>是與CLONE_NEWNS<name>創建進程的PID是你要用來指代網絡命名空間的名稱。

請注意,ip link set netns命令將接受PID或名稱,並且nsenter命令也可以通過PID訪問命名空間,因此您可能實際上不需要爲網絡名稱空間分配名稱。

+0

親愛的讀者,它幫助了我,非常謝謝! – vinllen