首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux网络命名空间

Linux网络命名空间
EN

Server Fault用户
提问于 2014-11-11 12:13:19
回答 1查看 7.1K关注 0票数 0

我将命名空间添加到我的主机中,并通过以下方法使其可用:

代码语言:javascript
复制
ip netns add h1
ip link add veth01 type veth peer name veth1
ip link set dev veth1 netns h1
ifconfig veth01 10.0.0.1/24 up
ip net e h1 ifconfig veth1 10.0.0.2/24 up
route add -net 10.0.0.0/24 gw 10.0.0.1 dev veth01
ip net e h1 ip r a default via 10.0.0.1

现在我可以从我的主机和向后切换10.0.0.2 ( ip net e h1 ping 10.0.0.1 )。

然后,我对第二个命名空间做了同样的操作:

代码语言:javascript
复制
ip netns add h2
ip link add veth02 type veth peer name veth2
ip link set dev veth2 netns h2
ifconfig veth02 20.0.0.1/24 up
ip net e h2 ifconfig veth2 20.0.0.2/24 up
route add -net 20.0.0.0/24 gw 20.0.0.1 dev veth02
ip net e h2 ip r a default via 20.0.0.1

现在,我可以从h1 (10.0.0.2)切换10.0.0.1 (和20.0.0.1);可以从主机切换20.0.0.2,但我不能从h1切换20.0.0.2。我做错了什么?

提前感谢

EN

回答 1

Server Fault用户

发布于 2014-11-11 13:28:29

答案是网络名称空间是完全独立的。您需要链接这两个名称空间,以便转发来自外部的通信量。有几种方法可以做到这一点。最简单的方法是在两个veth设备之间创建一个桥。

目前,您看到的是,在host-machine中,您可以平两个本地地址(10.0.0.1和20.0.0.2),但只有10.0.0.2知道10.0.0.1的存在。要获得20.0.0.1响应,需要确保您的pings来自同一个网络(20.0.0.0/24,尽管这不是最终的解决方案),或者在名称空间和默认路由表之间存在某种连接。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/643491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档