BIND – why duplicate nameserver entries (@ and *)

binddomain-name-system

I had to manually tweak my DNS service providers BIND file.

BIND file, created by professional hosting company, before:

$ORIGIN mycoolsite.com.  
$TTL 300  
@ SOA ns1.cheapreg.com. registry.cheapreg.com. ( ... )  
@ IN 3600 NS ns1.cheapreg.com.  
@ IN 3600 NS ns2.cheapreg.com.  
@ IN 3600 A 199.9.99.85  
@ IN 3600 A 199.9.99.86  
* IN 3600 A 199.9.99.85  
* IN 3600 A 199.9.99.86  
www IN 3600 A 199.9.99.85    
www IN 3600 A 199.9.99.86  

BIND file, created by layman, after:

$ORIGIN mycoolsite.com.  
$TTL 300
@ SOA ns1.cheapreg.com. registry.cheapreg.com. ( ... )  
@ IN 3600 NS ns1.cheapreg.com.  
@ IN 3600 NS ns2.cheapreg.com.  
* IN 3600 A 219.94.116.50  
* IN 3600 A 219.94.116.51  
* IN 3600 A 219.94.116.52    

The difference is that the "pro"-file has duplicated the nameserver entries, once for @, and once for *,
and I haven't.

Any reason I should also duplicate nameserver entries (@ and *) ?

Best Answer

As per the first bind file, I believe the following will send out both of the IPs when you query mycoolsite.com for its A record:

@ IN 3600 A 199.9.99.85
@ IN 3600 A 199.9.99.86

The following records are wildcard records:

* IN 3600 A 199.9.99.85
* IN 3600 A 199.9.99.86

so when you query couldthispossiblyexist.mycoolsite.com or blah1290eu.mycoolsite.com for A records, you will receive both IPs.