What does "@" mean in bind zone file?

$ORIGIN is used in two contexts during zone file processing:

  1. The symbol @ forces substitution of the current (or synthesized) value of $ORIGIN. The @ symbol is replaced with the current value of $ORIGIN.
  2. The current value of $ORIGIN is added to any 'unqualified' name (any name which does not end in a 'dot').

Example of @ symbol replacement:

; example.com zone file fragment 
; no $ORIGIN present and is synthesized from the 
; zone name in named.conf
....
@          IN      NS     ns1.example.com. 
; ns1.example.com is the name server for example.com
....
$ORIGIN uk.example.com.
@          IN      NS     ns2.example.com. 
; functionally identical to
; uk.example.com. IN NS ns2.example.com.
; ns2.example.com is the name server for uk.example.com