On 2008/05/07 19:21, Sam Fourman Jr. wrote: > > > I assume that if I want to host email for 10 different domains I have > > > to have these set > > > > > > allow-recursion { any; }; > > > > This allows anybody to use your nameserver as a resolver (e.g. > > anyone can ask you to lookup domains for them). You shouldn't > > do this at all without a very good reason (one example being if > > you're providing DNS to VPN clients and filtering non-VPN traffic). > > Doing so without other controls leaves you open to being an > > attack amplifier for anyone who can send a UDP packet with an > > invalid source address, and also may open you up to DNS poisoning. > > > > If you're currently using a setup that involves the same IP > > address for both authoritative (domains you host) and recursive > > queries (client DNS requests), you should get these split onto > > separate addresses. > > > > so if I understand this, the correct way to setup DNS > is to have one nameserver do just recursive quires > and a separate name server on a separate ip address have the actual domain > files
That's how I usually do things, it gives a clear separation, and most people don't need a powerful machine to host authoritative dns. Other options include running two daemons bound to different addresses (I have some systems where I do this, usually with nsd for auth, BIND for resolver), or using one daemon with views and "match-destinations". It's also possible to use views with "match-clients", but I'm not keen on this, it makes things difficult when customers transfer a domain away, and makes it hard to filter or separate things onto different machines if you want to do that sometime. I also usually run named on mail servers, just answering to localhost queries, forwarding to a main resolver - this saves a bunch of local network traffic when you have messages stuck in queues.