Thanks for this... very useful!

________________________________
From: Christos Kozyrakis [[email protected]]
Sent: 07 April 2015 23:25
To: [email protected]
Cc: John Omernik
Subject: Re: Using mesos-dns in an enterprise

This is a great thread, thanks for starting it John.
I will transcode your message into a tutorial on the Mesos-DNS documentation. I 
will ping you to take a look and edit as needed (that goes to all of you with 
some experience on the topic).

On Thu, Apr 2, 2015 at 5:58 PM, John Omernik 
<[email protected]<mailto:[email protected]>> wrote:
Mesos-dns seems pretty light weight, why not constrain it to a group of 3-5 
hosts, and then list all of them as your forwarding resolvers. While not truly 
"run anywhere", I would imagine with some good node/rack placement you would be 
sufficiently HA

On Thursday, April 2, 2015, Tom Arnfeld 
<[email protected]<mailto:[email protected]>> wrote:
We're using a BGP based solution currently to solve the problem of highly 
available DNS resolvers.

That might be a route worth taking, and one that could still work via marathon 
on top of Mesos.

--

Tom Arnfeld
Developer // DueDil

(+44) 7525940046<tel:%28%2B44%29%207525940046>
25 Christopher Street, London, EC2A 2BS



On Thu, Apr 2, 2015 at 10:07 PM, John Omernik <[email protected]> wrote:

True :)


On Thu, Apr 2, 2015 at 3:37 PM, Tom Arnfeld <[email protected]> wrote:
Last time I checked haproxy didn't support UDP which would be key for mesos-dns.

--

Tom Arnfeld
Developer // DueDil

(+44) 7525940046<tel:%28%2B44%29%207525940046>
25 Christopher Street, London, EC2A 2BS



On Thu, Apr 2, 2015 at 3:53 PM, John Omernik <[email protected]> wrote:

That was my first response as well... I work at a bank, and the thought of 
changing dns servers on the clients everywhere made me roll my eyes :)

John


On Thu, Apr 2, 2015 at 9:39 AM, Tom Arnfeld <[email protected]> wrote:
This is great, thanks for sharing!

It's nice to see other members of the community sharing more realistic 
implementations of DNS rather than just "update your resolv conf" and it works 
:-)

--

Tom Arnfeld
Developer // DueDil

(+44) 7525940046<tel:%28%2B44%29%207525940046>
25 Christopher Street, London, EC2A 2BS



On Thu, Apr 2, 2015 at 3:30 PM, John Omernik <[email protected]> wrote:

Based on my earlier emails about the state of service discovery.  I did some 
research and a little writeup on how to use mesos-dns as a forward lookup zone 
in a enterprise bind installation. I feel this is more secure, and more 
comfortable for an enterprise DNS team as opposed to changing the first 
resolver on every client that may interact with mesos to be the mesos-dns 
server.  Please feel free to modify/correct and include this in the mesos-dns 
documentation if you feel it's valuable.


Goals/Thought Process
- Run mesos-dns on a non-standard port. (such as 8053).  This allows you to run 
it as a non-root user.
- While most DNS clients may not understand this (a different port), in an 
enterprise, most DNS servers will respect a forward lookup zone with a server 
using a different port.
- Setup below for BIND9 allows you to keep all your mesos servers AND clients 
in an enterprise pointing their requests at your enterprise DNS server, rather 
than mesos-dns.
  - This is easier from an enterprise configuration standpoint. Make one change 
on your dns servers, rather than adding a resolver on all the clients.
  - This is more secure in that you can run mesos-dns as non-root (53 is a 
privileged port, 8053 is not) no sudo required
  - For more security, you can limit connections to the mesos-dns server to 
only your enterprise dns servers. This could help mitigate any unknown 
vulnerabilities in mesos-dns.
  - This allows you to HA mesos-dns in that you can specify multiple resolvers 
for your bind configuration.




Bind9 Config
This was put into my named.conf.local It sets up the .mesos zone and forwards 
to mesos dns. All my mesos servers already pointed at this server, therefore no 
client changes required.


#192.168.0.100 is my host running mesos DNS
zone "mesos" {
type forward;
forward only;
forwarders { 192.168.0.100 port 8053; };
};




config.json mesos-dns config file.
I DID specify my internal DNS server in the resolvers (192.168.0.10) however, I 
am not sure if I need to do this.  Since only requests for .mesos will actually 
be sent to mesos-dns.

{
  "masters": ["192.168.0.98:5050<http://192.168.0.98:5050>"],
  "refreshSeconds": 60,
  "ttl": 60,
  "domain": "mesos",
  "port": 8053,
  "resolvers": ["192.168.0.10"],
  "timeout": 5,
  "listener": "0.0.0.0",
  "email": "root.mesos-dns.mesos"
}


marathon start json
Note the lack of sudo here. I also constrained it to one host for now, but that 
could change if needed.

{
"cmd": "/mapr/brewpot/mesos/mesos-dns/mesos-dns 
-config=/mapr/brewpot/mesos/mesos-dns/config.json",
"cpus": 1.0,
"mem": 1024,
"id": "mesos-dns",
"instances": 1,
"constraints": [["hostname", "CLUSTER", 
"hadoopmapr1.brewingintel.com<http://hadoopmapr1.brewingintel.com>"]]
}







--
Sent from my iThing



--
Christos

Reply via email to