我想在 Linux 上创建一个新的网络命名空间。
http://www.spinics.net/lists/linux-containers/msg10895.html告诉我可以通过运行以下命令将 shell 附加到 ID 为 X 的现有命名空间:
$ chnetns X /bin/sh
如果命名空间已经存在,则此方法可以正常工作,但如果我尝试使用不存在的命名空间,则会得到以下结果:
$ chnetns 100 /bin/sh
setsocketopt: Invalid argument
我如何创建命名空间?我在使用 Red Hat Linux,V6.1。
答案1
答案是‘ip netns add vnet1’。
ip netns list
ip netns add vnet1
也可以看看Linux 虚拟网络简介:blog.scottlowe.org:Linux 网络命名空间简介,opencloudblog.com:Linux 网络命名空间更加闪亮和美观和opencloudblog.com:Linux 网络命名空间非常清晰,并且通过精美的图表更加详细
指向其他参考资料的链接,以帮助其他人开始使用虚拟网络命名空间。另请参阅LWN 关于网络命名空间的文章,Open Stack 网络示例,iproute2,Linux VRF 补丁集Linux 的虚拟路由和转发,以及OpenStack 网络概念。
NAME
ip-netns - process network namespace management
SYNOPSIS
ip [ OPTIONS ] netns { COMMAND | help }
ip netns { list }
ip netns { add | delete } NETNSNAME
ip netns identify PID
ip netns pids NETNSNAME
ip netns exec NETNSNAME command ...
ip netns monitor