首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从外部访问Weave DNS-Server?

如何从外部访问Weave DNS-Server?
EN

Stack Overflow用户
提问于 2016-01-14 17:59:19
回答 1查看 574关注 0票数 12

我在Docker-Swarm上使用Weave网络插件。

我创建了一个具有特定IP范围的docker网络,与默认编织网络不同,我从内部网络路由到该网络。

为了更好地访问容器,我使用weave附加containername.auto.mycompany.de等DNS名称。现在,我想从我的公司网络访问这些内容。问题是,weave只允许从本地主机访问weave DNS。

就像在我的一个群节点上,我可以这样做:

代码语言:javascript
复制
host foobar.auto.mycompany.de 172.17.0.1
Using domain server:
Name: 172.17.0.1
Address: 172.17.0.1#53
Aliases: 

foobar.auto.mycompany.de has address 10.40.13.3
Host foobar.auto.mycompany.de not found: 3(NXDOMAIN)
Host foobar.auto.mycompany.de not found: 3(NXDOMAIN)

但是我找不到一种方法来使编织容器可以从这个(10.40.130/24) docker网络的其中一个IP上访问,也不能将端口暴露给集群节点。

我能想到但不喜欢的唯一方法是做这样的事情:

代码语言:javascript
复制
iptables -t nat -A  DOCKER -p tcp --dport 53 -j DNAT --to-destination 172.17.0.1:53

(这不起作用,这只是一个想法)

或者篡改编织脚本,使其暴露编织容器开始时的端口。

有没有人知道更好的解决方案?

EN

回答 1

Stack Overflow用户

发布于 2016-01-27 16:49:15

事实上,制定规则

代码语言:javascript
复制
iptables -A DOCKER -p tcp -m tcp --dport 53 -j DNAT --to-destination 172.17.0.1:53
iptables -A DOCKER -p udp -m udp --dport 53 -j DNAT --to-destination 172.17.0.1:53

就是这样。当我第一次尝试时,我只是忽略了,我的请求应该来自“外部”服务器来工作,而不是从内部回送设备。

这仍然不是一个很好的解决方案,但它确实起到了作用。我期待着看到你们提供更好的解决方案。

(赏金站起来了!)

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

https://stackoverflow.com/questions/34786515

复制
相关文章

相似问题

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