13

I would like to configure a nameserver that will return the same IP address ("A" record) for any arbitrary host name. For example:

  • example.com
  • subdomain.example.com
  • someotherdomain.com
  • anyotherdomain.co.uk

should all return the same IP address. Is there a way to do this with BIND? Or is there an alternative to BIND that can do this?

4 Answers 4

22

With BIND, you need a fake root zone to do this. In named.conf, put the following:

zone "." {
    type master;
    file "/etc/bind/db.fakeroot";
};

Then, in that db.fakeroot file, you will need something like the following:

@ IN SOA ns.domain.com. hostmaster.domain.com. ( 1 3h 1h 1w 1d )
  IN NS <ip>
* IN A <ip>

With that configuration, BIND will return the same IP address for all A queries.

3
  • Works fine, but the main domain doesn't get resolved ? Any ideeas ? eg : testdomain.com
    – opc0de
    Jan 7, 2014 at 20:59
  • This works pretty darned well. The only issue is NS record queries for the domain might explode - namely that it serves the NS records for the . zone, which won't respond for any given domain's NS queries. (But it otherwise works to serve the proper A record) Oct 3, 2017 at 18:18
  • any way for microsoft DNS server? Dec 24, 2019 at 18:17
9

According to the dnsmasq man page

address=/#/1.2.3.4

should do the trick.

6
  • Thanks! That was so simple. Dnsmasq is definitely easier to configure than BIND.
    – balexand
    Jun 8, 2012 at 16:09
  • Do you know if there's also a way to use a wildcard with MX records in dnsmasq?
    – balexand
    Jun 14, 2012 at 18:15
  • It looks like mx-host and mx-target will do this. Jun 14, 2012 at 18:49
  • 1
    Do you know how? The use of wildcards with mx-host and mx-target is not documented in the man page and I can't get it to work. I've tried using similar notation to the address option(# sign). I've been able to get wildcards working with both A and MX using BIND using Oliver's suggestion, but I'd actually prefer to use dnsmasq. Thanks!
    – balexand
    Jun 15, 2012 at 22:55
  • dnsmasq is more of a recursive nameserver than an authoritative one (could be used parly like that, but clearly not its main goal) Aug 9, 2018 at 20:46
1

You can do wildcard matching in bind.

*.example.com.        IN      A       192.0.2.45

This has to be defined in your named configuration file for the domain. Just be carefull if you need to define other A records for the domain.

1
  • 3
    What part of "all domains" did you miss?
    – ceejayoz
    Jun 8, 2012 at 18:29
1

You can also use the tool fakedns. The usage is very simple - it will bind to post 53 UDP and serve the same IP to all A queries. You provide the IP address as a command line parameter. By far the easiest solution. Requires Python to run.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.