2016-01-14 6 views
12

私はDocker-SwarmでWeaveネットワークプラグインを使用しています。外部からWeave DNS-Serverにアクセスするには?

私は、内部ネットワークからルーティングするデフォルトのウィーブネットワークとは異なる、特定のIP範囲を持つドッカーネットワークを作成しました。

コンテナをさらに使いやすくするために、私は、containername.auto.mycompany.deのようなDNS名を添付するために織りを使用します。今私は会社のネットワークからアクセスしたいと思います。問題は、その織りは、ローカルホストからの織り込みDNSへのアクセスのみを許可することです。私は行うことができます私の群れのノードの1つで

同様:

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)からIPのの1に織りコンテナにアクセスできるようにする方法を見つけることができません。ドッカーネットワークに接続するか、ポートをswarmノードに公開します。

私は考えることができますが、好きではない唯一の方法は、このような何かやっている:

iptables -t nat -A DOCKER -p tcp --dport 53 -j DNAT --to-destination 172.17.0.1:53 

を(これは動作しません、それだけで考えです)

かを改ざんウィーブ・スクリプトを作成して、ウィーブ・コンテナの開始時にポートを公開するようにします。

誰かがより良い解決策を知っていますか?実際に

答えて

2

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 

はそれをしないルールを設定します。私が最初に試してみたところ、私の要求は、内部からループバック装置にではなく、サーバーの「外部」から来ていたはずです。

まだかなり良い解決策ではありませんが、それは仕事をします。私は皆さんからより良い解決策を見たいと思っています。

(バウンティはスタンド!)

関連する問題