title: How to access Weave DNS-Server from external?
body: <p>I use the Weave network plugin on a Docker-Swarm.</p>
  
  <p>I created a docker network with a specific IP-Range, different from the default Weave Network, to which I route from my internal network. </p>
  
  <p>To make the containers even better accessible I use weave to attach DNS names like containername.auto.mycompany.de. Now I want to access those from my company Network. The Problem is, that weave only allows access to the weave DNS from the local host. </p>
  
  <p>Like on one of my swarm nodes i can do:</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>But I don't find a way to make the weave container accessible on one of the IP's from this (10.40.130/24) docker network or expose the port to the swarm node. </p>
  
  <p>The only way I can think of, but don't like, is doing something like this:</p>
  
  <pre><code>iptables -t nat -A  DOCKER -p tcp --dport 53 -j DNAT --to-destination 172.17.0.1:53
  </code></pre>
  
  <p>(this does not work, it's just the idea)</p>
  
  <p>Or tamper with the weave script to make it expose the port on start of the weave container.</p>
  
  <p>Does anybody know of a better solution?</p>