$ORIGIN defines a base name from which 'unqualified' names (those without a terminating dot) substitutions are made when processing the zone file. Zone files which do not contain an $ORIGIN directive, while being perfectly legitimate, can also be highly confusing. In general, always explicitly define an $ORIGIN directive unless there is a very good reason not to (sloth is not a very good reason).
$ORIGIN is a standard DNS directive defined in RFC 1035.
$ORIGIN values must be 'qualified' (they end with a 'dot').
Note for Purists: Technically it is legitimate to use an $ORIGIN without a terminating dot, it is then subject to the normal substitution rules. However, if used in this manner it can easily create configuation disasters than not even your mother could sort out. Practically, an $ORIGIN must terminate with a dot.
If an $ORIGIN directive is not defined - BIND synthesizes an $ORIGIN from the zone name in the named.conf file as illustrated below:
// named.conf file fragment zone "example.com" in{ type master; file "pri.example.com"; };
In the above fragment $ORIGIN example.com. is synthesized if none present in the zone file (pri.example.com).
$ORIGIN is used in two contexts during zone file processing:
@ 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
Unqualified name addition:
; example.com zone file fragment ; no $ORIGIN present and is synthesized from the ; zone name in named.conf .... www IN A 192.168.23.15 ; functionally identical to ; www.example.com. IN A 192.162.23.15 ; thus ; www.example.com = IP 192.168.23.15 joe IN CNAME www ;unqualified name ; joe.example.com = www.example.com ; could have written as joe.example.com. IN CNAME www.example.com. .... $ORIGIN uk.example.com. ftp IN A 10.0.16.34 ; functionally identical to ; ftp.uk.example.com IN A 10.0.16.34
An $ORIGIN directive has scope (is effective) until either another $ORIGIN replaces it or until EOF. The following examples illustrate $ORIGIN usage.
; example.com zone file fragment ... $ORIGIN example.com. ... smart A 192.168.2.3 ; smart expands to smart.example.com. ... $ORIGIN stupid.example.com. ... smarter A 192.168.2.4 ;smarter expands to smarter.stupid.example.com. ... $ORIGIN stupider.example.com. ... smartest A 192.168.2.5 ;smartest expands to smartest.stupider.example.com. ... $ORIGIN example.com. ... genius A 192.168.2.6 ; genius expands to genius.example.com. ...
Problems, comments, suggestions, corrections (including broken links) or something to add? Please take the time from a busy life to 'mail us' (at top of screen), the webmaster (below) or info-support at zytrax. You will have a warm inner glow for the rest of the day.
Contents
tech info
guides home
dns articles
intro
contents
1 objectives
big picture
2 concepts
3 reverse map
4 dns types
quickstart
5 install bind
6 samples
reference
7 named.conf
8 zone records
operations
9 howtos
10 tools
11 trouble
programming
12 bind api's
security
13 dns security
bits & bytes
15 messages
resources
notes & tips
registration FAQ
dns resources
dns rfcs
change log
This work is licensed under a
Creative Commons License.
If you are happy it's OK - but your browser is giving a less than optimal experience on our site. You could, at no charge, upgrade to a W3C STANDARDS COMPLIANT browser such as Firefox
Search
Share
Page
Resources
Systems
FreeBSD
NetBSD
OpenBSD
DragonFlyBSD
Linux.org
Debian Linux
Software
LibreOffice
OpenOffice
Mozilla
GitHub
GNU-Free SW Foundation
get-dns
Organizations
Open Source Initiative
Creative Commons
Misc.
Ibiblio - Library
Open Book Project
Open Directory
Wikipedia
Site
Copyright © 1994 - 2024 ZyTrax, Inc. All rights reserved. Legal and Privacy |
site by zytrax hosted by javapipe.com |
web-master at zytrax Page modified: February 01 2022. |