In DNS zone files, the @
symbol serves as a special placeholder representing the zone origin (the domain itself). When you see:
@ IN A 208.X.Y.Z
This is equivalent to specifying:
mydomain.com. IN A 208.X.Y.Z
The @
symbol derives its meaning from the $ORIGIN
directive. In your example:
$ORIGIN mydomain.com.
@ IN A 208.X.Y.Z
This creates an A record for the naked domain (mydomain.com
). The @
always references whatever is defined in $ORIGIN
.
Here's a complete zone file snippet showing proper usage:
$ORIGIN example.com.
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2023081501 ; serial
7200 ; refresh
3600 ; retry
1209600 ; expire
3600 ) ; minimum
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 192.0.2.1
www IN A 192.0.2.1
mail IN A 192.0.2.2
The @
record is most frequently used for:
- Root domain IP resolution
- MX records for domain-wide email
- TXT records for domain verification
Note that when using @
for subdomains, it will always reference the $ORIGIN
of the zone file, not any intermediate domains.
For those using BIND, here's how this translates to named.conf:
zone "example.com" {
type master;
file "/etc/bind/zones/example.com.db";
allow-transfer { secondary_IP; };
};
The corresponding zone file would then use @
to reference example.com
throughout.
If you're troubleshooting DNS issues involving the @
symbol:
- Verify your
$ORIGIN
is correctly set - Check for trailing dots in domain names
- Use
dig +trace @8.8.8.8 example.com
to test resolution
In DNS zone files, the @
symbol serves a special purpose that every developer working with DNS configurations should understand. It represents the origin or the base domain itself in the zone file.
$ORIGIN example.com.
@ IN A 192.0.2.1
www IN A 192.0.2.1
When you see an entry like this:
@ IN A 208.X.Y.Z
It's equivalent to writing:
example.com. IN A 208.X.Y.Z
Here are three typical scenarios where you'd use the @
symbol:
; 1. Root domain record
@ IN A 192.0.2.1
; 2. MX record for the domain
@ IN MX 10 mail.example.com.
; 3. TXT record for domain verification
@ IN TXT "v=spf1 include:_spf.example.com ~all"
Here's a more complete zone file example showing various uses of @
:
$ORIGIN example.com.
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2023081501 ; serial
3600 ; refresh
900 ; retry
604800 ; expire
86400 ; minimum TTL
)
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 192.0.2.1
www IN A 192.0.2.1
mail IN A 192.0.2.2
Remember these key points when working with @
in zone files:
- The
@
symbol always references the current$ORIGIN
- It's particularly useful when you need to create records for the root domain
- Most DNS control panels will automatically translate root domain entries to use
@
- When manually editing zone files, ensure proper spacing between fields
If you're having problems with @
records:
- Verify your
$ORIGIN
is correctly set - Check for missing dots at the end of domain names
- Ensure your DNS software supports the
@
notation - Test with both
@
and the full domain name to isolate issues