ゾーンファイルはいくつか省略の記述方法があります。
以下は、非省略形のゾーンファイルです。
-----------------------------------------------------------------------
$TTL 10800
dns-test.com. IN SOA ns.dns-test.com. root.dns-test.com. (
2014083001 ; Serial
43200 ; Refresh
5400 ; Retry
3600000 ; Expire
3600 ) ; Minimum
dns-test.com. IN NS ns.dns-test.com.
ns.dns-test.com. IN A 1.1.1.1
www.dns-test.com. IN A 1.1.1.3
mail01.dns-test.com. IN A 1.1.1.4
mail02.dns-test.com. IN A 1.1.1.5
-----------------------------------------------------------------------
「ドメイン名の省略」
つぎに省略形のゾーンファイルを記述します。
-----------------------------------------------------------------------
$TTL 10800
$ORIGIN dns-test.com.
@ IN SOA ns root (
2014083001 ; Serial
43200 ; Refresh
5400 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns
ns IN A 1.1.1.1
www IN A 1.1.1.3
mail01 IN A 1.1.1.4
mail02 IN A 1.1.1.5
-----------------------------------------------------------------------
どうでしょう。
まず、「$ORIGIN dns-test.com.」という記述が見られます。この記述がある場合、「@マーク」が記載されているレコードには、ORIGINで定義したゾーン名の値が割り当てられます。
つまり、SOAレコードとNSレコードのところにある@マーク=dns-test.com ということになります。
ついにレコードのドメイン名が全て、「.」で終了していないところに注目して下さい。「.」で終了していない場合は、そのドメインにORIGINで定義したゾーン名の値が割り当てられます。
つまり、Aレコードにはすべて、「dns-test.com.」が追記されます。wwwの場合は、www.dns-test.com、nsの場合は、ns.dns-test.com、ということになります。
「TTLの省略」
また、各レコードのTTLも省略可能です。頭に記載されている$TTLの値が適用されます。つまり、ここでは各レコードのTTLに「10800」を指定したものと同じ事になります。
「レコードの名前フィールドの省略」
レコードを記述する際、一番左側の項目の記述を完全に省略すると、その前のレコードの名前フィールドが適用されます。
例えば以下の様に記述したものと
dns-test.com. IN SOA ns root (
dns-test.com. IN NS ns
dns-test.com. IN MX 10 mail01
以下の様に記述したものは同じになります。
dns-test.com. IN SOA ns root (
IN NS ns
IN MX 10 mail01
「$ORIGIN」を省略する」
以下の様に$ORIGINの記述も省略することが出来ます。しかし、これでは、何が省略されているか解らなくなってしまい、ミスの原因になることが往々にしてあるのでやめておきましょう。
-----------------------------------------------------------------------
$TTL 10800
@ IN SOA ns root (
2014083001 ; Serial
43200 ; Refresh
5400 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns
ns IN A 1.1.1.1
www IN A 1.1.1.3
mail01 IN A 1.1.1.4
mail02 IN A 1.1.1.5
-----------------------------------------------------------------------
本日はココまで。
・$ORIGIN の記述で、ゾーン名を省略できる。
・レコードに「@マーク」を記述した場合は、ORIGINで指定したゾーン名がそのまま割り当てられる。
・レコードが「.」で終わっていない場合は、ORIGINで指定したゾーン名が足される。
以下は、非省略形のゾーンファイルです。
-----------------------------------------------------------------------
$TTL 10800
dns-test.com. IN SOA ns.dns-test.com. root.dns-test.com. (
2014083001 ; Serial
43200 ; Refresh
5400 ; Retry
3600000 ; Expire
3600 ) ; Minimum
dns-test.com. IN NS ns.dns-test.com.
ns.dns-test.com. IN A 1.1.1.1
www.dns-test.com. IN A 1.1.1.3
mail01.dns-test.com. IN A 1.1.1.4
mail02.dns-test.com. IN A 1.1.1.5
-----------------------------------------------------------------------
「ドメイン名の省略」
つぎに省略形のゾーンファイルを記述します。
-----------------------------------------------------------------------
$TTL 10800
$ORIGIN dns-test.com.
@ IN SOA ns root (
2014083001 ; Serial
43200 ; Refresh
5400 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns
ns IN A 1.1.1.1
www IN A 1.1.1.3
mail01 IN A 1.1.1.4
mail02 IN A 1.1.1.5
-----------------------------------------------------------------------
どうでしょう。
まず、「$ORIGIN dns-test.com.」という記述が見られます。この記述がある場合、「@マーク」が記載されているレコードには、ORIGINで定義したゾーン名の値が割り当てられます。
つまり、SOAレコードとNSレコードのところにある@マーク=dns-test.com ということになります。
ついにレコードのドメイン名が全て、「.」で終了していないところに注目して下さい。「.」で終了していない場合は、そのドメインにORIGINで定義したゾーン名の値が割り当てられます。
つまり、Aレコードにはすべて、「dns-test.com.」が追記されます。wwwの場合は、www.dns-test.com、nsの場合は、ns.dns-test.com、ということになります。
「TTLの省略」
また、各レコードのTTLも省略可能です。頭に記載されている$TTLの値が適用されます。つまり、ここでは各レコードのTTLに「10800」を指定したものと同じ事になります。
「レコードの名前フィールドの省略」
レコードを記述する際、一番左側の項目の記述を完全に省略すると、その前のレコードの名前フィールドが適用されます。
例えば以下の様に記述したものと
dns-test.com. IN SOA ns root (
dns-test.com. IN NS ns
dns-test.com. IN MX 10 mail01
以下の様に記述したものは同じになります。
dns-test.com. IN SOA ns root (
IN NS ns
IN MX 10 mail01
「$ORIGIN」を省略する」
以下の様に$ORIGINの記述も省略することが出来ます。しかし、これでは、何が省略されているか解らなくなってしまい、ミスの原因になることが往々にしてあるのでやめておきましょう。
-----------------------------------------------------------------------
$TTL 10800
@ IN SOA ns root (
2014083001 ; Serial
43200 ; Refresh
5400 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns
ns IN A 1.1.1.1
www IN A 1.1.1.3
mail01 IN A 1.1.1.4
mail02 IN A 1.1.1.5
-----------------------------------------------------------------------
本日はココまで。
・$ORIGIN の記述で、ゾーン名を省略できる。
・レコードに「@マーク」を記述した場合は、ORIGINで指定したゾーン名がそのまま割り当てられる。
・レコードが「.」で終わっていない場合は、ORIGINで指定したゾーン名が足される。