两台机器( A 和 B ),分别 ip link add 了两个网卡,配置独立网络段( 10.1.1.x ),设置互通。
# A 机器配置
ip link add gre-y type gre local A 机器 ip remote B 机器 ip ttl 64
ip link set gre-y up
ip addr add 10.1.1.2/24 dev gre-yy
# B 机器配置
ip link add gre-x type gre local B 机器 ip remote A 机器 ip ttl 64
ip link set gre-x up
ip addr add 10.1.1.3/24 dev gre-x
现在 B 机器( Centos7 )上 docker 启了一个 6379 端口。
A 机器上使用 iptables,将 6379 转发到 B 机器上,命令如下:
iptables -t nat -I PREROUTING -p tcp --dport 6379 -j DNAT --to-destination 10.1.1.3:6379
由于 B 机器上 docker 起了几个服务,默认开启了很多 iptables 规则。刚开始配置好后,B 机器( 10.1.1.3 )和 A 机器( 10.1.1.2 )不能通过 10.1.1.x 的 ip 互相 ping 通,随后在 B 机器设置了条 iptables 规则:iptables -I INPUT -p gre -j ACCEPT
,随后可以互相 ping 通。
但是 A 机器的 6379 端口一直转发不过来,B 机器上抓 gre-x 网卡的包,可以看到有 A 机器的转发流量,但是实际上流量并未到达机器上 6379 的服务。
请教各位大佬,我该如何配置?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.