首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从命名空间平外网络,可能无法工作

无法从命名空间平外网络,可能无法工作
EN

Unix & Linux用户
提问于 2020-01-17 14:53:48
回答 1查看 1.2K关注 0票数 0

我试图从网络命名空间中选择外部ip (在本例中是google)。

代码语言:javascript
复制
  ip netns add ns1
# Create v-eth1 and v-peer1: v-eth1 is in the host space whereas peer-1 is supposed to be in the ns
  ip link add v-eth1 type veth peer name v-peer1
# Move v-peer1 to ns
  ip link set v-peer1 netns ns1
# set v-eth1
  ip addr add 10.200.1.1/24 dev v-eth1
  ip link set v-eth1 up
# Set v-peer1 in the ns
  ip netns exec ns1 ip addr add 10.200.1.2/24 dev v-peer1
  ip netns exec ns1 ip link set v-peer1 up
# Set loopback interface in the ns
  ip netns exec ns1 ip link set lo up
# Add defaut route in the ns
  ip netns exec ns1 ip route add default via 10.200.1.1
# Set host routing tables
  iptables -t nat -A POSTROUTING -s 10.200.1.0/24 -j MASQUERADE
# Enable routing in the host
sysctl -w net.ipv4.ip_forward=1
#
  ip netns exec ns1 ping 8.8.8.8

由于某些原因,这在virtualbox (我的笔记本电脑上)的VM内部运行良好,它在我的桌面上工作(ubuntu18.04),但是它不能在笔记本电脑上运行我的主机os (这太Ubuntu18.04了)。

我试过traceroute,这就是我得到的

在笔记本电脑上

在桌面上

你们中有人知道我应该调查什么才能找到问题吗?据我所知,我没有设置防火墙(ufw被禁用)

编辑:这就是我在iptables中得到的-保存-c:

代码语言:javascript
复制
# Generated by iptables-save v1.6.1 on Fri Jan 17 18:05:36 2020
*filter
:INPUT ACCEPT [3774:2079111]
:FORWARD DROP [5:420]
:OUTPUT ACCEPT [3053:308301]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
[16984:18361691] -A FORWARD -j DOCKER-USER
[16984:18361691] -A FORWARD -j DOCKER-ISOLATION-STAGE-1
[12139:18094316] -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o docker0 -j DOCKER
[4761:260319] -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
[0:0] -A FORWARD -i docker0 -o docker0 -j ACCEPT
[0:0] -A FORWARD -o br-6a72e380ece6 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-6a72e380ece6 -j DOCKER
[0:0] -A FORWARD -i br-6a72e380ece6 ! -o br-6a72e380ece6 -j ACCEPT
[0:0] -A FORWARD -i br-6a72e380ece6 -o br-6a72e380ece6 -j ACCEPT
[4761:260319] -A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-6a72e380ece6 ! -o br-6a72e380ece6 -j DOCKER-ISOLATION-STAGE-2
[16984:18361691] -A DOCKER-ISOLATION-STAGE-1 -j RETURN
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-6a72e380ece6 -j DROP
[4761:260319] -A DOCKER-ISOLATION-STAGE-2 -j RETURN
[16984:18361691] -A DOCKER-USER -j RETURN
COMMIT
# Completed on Fri Jan 17 18:05:36 2020
# Generated by iptables-save v1.6.1 on Fri Jan 17 18:05:36 2020
*nat
:PREROUTING ACCEPT [406:111092]
:INPUT ACCEPT [9:703]
:OUTPUT ACCEPT [29:2283]
:POSTROUTING ACCEPT [28:2114]
:DOCKER - [0:0]
[253:19770] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
[0:0] -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
[4:249] -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.18.0.0/16 ! -o br-6a72e380ece6 -j MASQUERADE
[1:169] -A POSTROUTING -s 10.200.1.0/24 -j MASQUERADE
[0:0] -A DOCKER -i docker0 -j RETURN
[0:0] -A DOCKER -i br-6a72e380ece6 -j RETURN
COMMIT
# Completed on Fri Jan 17 18:05:36 2020
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-01-17 17:35:40

您有Docker,它本身改变了防火墙规则。我不知道这是不是因为Docker,但是您已经设置了iptable的过滤器/转发的默认策略,以防止任何不显式允许的路由。

编辑:添加返回方向。

要使您的实验成功,这应该足够了(包括还必须启用的返回通信量):

代码语言:javascript
复制
iptables -A FORWARD -i v-eth1 -j ACCEPT
iptables -A FORWARD -o v-eth1 -j ACCEPT

请注意,这些内容可以与互联网络的接口进行补充,但我没有它的名称。

通常更喜欢使用下面的规则,允许返回的流量通过有状态的跟踪:连接跟踪,因此必须只关心初始的流量。试试看吧。

代码语言:javascript
复制
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i v-eth1 -j ACCEPT

顺便提一句,内核>= 4.7通常需要/允许更多设置有连接跟踪助手(ftp.)要正确/安全地工作,但这不是您的实验所需要的(ICMP是处理的)。这个博客中的一些信息:安全使用iptable和连接跟踪帮助程序

如果有疑问(如与Docker的交互),请使用-I,以确保在其他任何事情之前插入您的规则。请注意,重新启动Docker可能会再次改变规则。现在您知道问题出在哪里了,这取决于您在引导和Docker过程中集成它。

您可能有兴趣阅读Docker关于它使用iptables:码头工人和iptables的文档。

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

https://unix.stackexchange.com/questions/562638

复制
相关文章

相似问题

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