How to set up a DNS to use a catch-all address?

You need both:

In DNS zone setup an entry (the last, the best)

*.your_domain.foo.  IN  A   999.999.999.999 # correct this csi-like ip

The last dot in domain is very important.

That will match any.your_domain.foo to your IP. you can place other entries for other subdomains / ip's before.

And in apache / other web server you mus setup a vhost or something to handle all the requests an set ServerAlias / ServerName to

ServerAlias *.your_domain.foo

Again place this Vhost the lasts, defining any existing vhosts in your_domain.foo before the default one.

Apache loads config files using an ascii ordered scheme so put this in a 099_default file and prepend other by 050_

In your case, the DNS should let you to use a *.yourdomain.foo. in zone definition and I think you can archieve the apache part using mod_rewrite, if it is enabled. I think that There are some ways of simulate virtual hosting usin rewrites with the SERVER_NAME variable as a condition. Check http://httpd.apache.org/docs/2.3/rewrite/vhosts.html. I haven't tried it.


You do this in DNS. If you have a sane (bind-like) dns server you want to add something like this to the configuration for your zone:

server.example.com.  A      192.168.1.1
*.example.com.       CNAME  server.example.com.

It creates an alias for the wildcard and points it to the address of the server.You can also do it directly:

*.example.com.       A      192.168.1.1

But for management reasons the first solution is typically better. Once this is done you create a catch-all vhost that mirrors your www.example.com host.