LPIC201/202 あずき本 ch9 DNS (2/3)

DNSLPIC202勉強メモ資格勉強

出典: 

9.2 BINDの基本設定

  • /etc/named.conf
  • ゾーンファイル
cat /etc/named.conf
cat: /etc/named.conf: No such file or directory

bindパッケージを入れるとついてくる

yum provides /etc/named.conf
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
32:bind-9.11.4-26.P2.el7.x86_64 : The Berkeley Internet Name Domain (BIND) DNS (Domain
                                : Name System) server
Repo        : base
Matched from:
Filename    : /etc/named.conf



32:bind-9.11.4-26.P2.el7_9.2.x86_64 : The Berkeley Internet Name Domain (BIND) DNS
                                    : (Domain Name System) server
Repo        : updates
Matched from:
Filename    : /etc/named.conf



32:bind-9.11.4-26.P2.el7_9.3.x86_64 : The Berkeley Internet Name Domain (BIND) DNS
                                    : (Domain Name System) server
Repo        : updates
Matched from:
Filename    : /etc/named.conf
sudo yum install -y bind
ls -l /etc/named.conf
-rw-r-----. 1 root named 1806 Dec 15 16:33 /etc/named.conf

9.2.1 /etc/named.confの設定

sudo cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {
	listen-on port 53 { 127.0.0.1; };
	listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
	statistics-file "/var/named/data/named_stats.txt";
	memstatistics-file "/var/named/data/named_mem_stats.txt";
	recursing-file  "/var/named/data/named.recursing";
	secroots-file   "/var/named/data/named.secroots";
	allow-query     { localhost; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.root.key";

	managed-keys-directory "/var/named/dynamic";

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
	type hint;
	file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

///* ... */がコメント

aclステートメント

Access Control List

設定例

acl locals {
    192.168.120.0/24;
    192.168.121.0/24;
};

localsという名前で設定している

定義済みACL:

  • any
  • none
  • localhost
  • localnets

includeステートメント

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

外部ファイル読み込み

sudo cat /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package 
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "localhost.localdomain" IN {
	type master;
	file "named.localhost";
	allow-update { none; };
};

zone "localhost" IN {
	type master;
	file "named.localhost";
	allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
	type master;
	file "named.loopback";
	allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
	type master;
	file "named.loopback";
	allow-update { none; };
};

zone "0.in-addr.arpa" IN {
	type master;
	file "named.empty";
	allow-update { none; };
};

optionsステートメント

namedの動作に関する詳細なオプション

https://linuxjm.osdn.jp/html/bind/man5/named.conf.5.html

options {
	listen-on port 53 { 127.0.0.1; };
	listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
	statistics-file "/var/named/data/named_stats.txt";
	memstatistics-file "/var/named/data/named_mem_stats.txt";
	recursing-file  "/var/named/data/named.recursing";
	secroots-file   "/var/named/data/named.secroots";
	allow-query     { localhost; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.root.key";

	managed-keys-directory "/var/named/dynamic";

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
};

重要なもの抜粋

  • directory "/var/named";

    • ゾーンファイルの格納先
    • 後述のzoneステートメントのfile設定で指定のファイルの格納先
  • recursion yes;

    • 再帰的問い合わせを受けつけるかどうか
    • フルリゾルバならyes、権威サーバならnoにする
  • recursive-clients クライアント数;

    • 再帰問い合わせの同時接続数
  • max-cache-size キャッシュサイズ;

    • キャッシュサイズ(バイト単位)
  • forward first|only;
  • forwarders { IPアドレス;... };

    • フォワーダーとして動かすときに設定する
    • 自身がゾーン情報を保有せず、キャッシュにも存在しない問い合わせを別のDNSサーバにたらい回しする機能
    • ホームルーターとかに搭載されている
    • first: まずフォワード、失敗したら自身で再帰問い合わせ
    • only: フォワードだけ
  • bindkeys-file "/etc/named.root.key";

    • DNSSECで使う鍵

controlsステートメント

namedを操作できるホストのIPアドレスやポート番号

設定例

controls {
    inet 127.0.0.1 allow { localhost; };
};

後で実際にアクセス制限してみる

zoneステートメント

optionsステートメントのdirectory設定から、zoneステートメントのfile設定は/var/named/のファイルを参照する

sudo ls -l /var/named
total 16
drwxrwx---. 2 named named    6 Dec 15 16:32 data
drwxrwx---. 2 named named    6 Dec 15 16:32 dynamic
-rw-r-----. 1 root  named 2253 Apr  5  2018 named.ca
-rw-r-----. 1 root  named  152 Dec 15  2009 named.empty
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx---. 2 named named    6 Dec 15 16:32 slaves

hint

ヒントファイル: ルートDNSサーバを指定

zone "." IN {
	type hint;
	file "named.ca";
};
  • 教科書的にはnamed.root
sudo cat /var/named/named.ca
; <<>> DiG 9.11.3-RedHat-9.11.3-3.fc27 <<>> +bufsize=1200 +norec @a.root-servers.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46900
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1472
;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	199.9.14.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	199.7.91.13
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	198.97.190.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
b.root-servers.net.	518400	IN	AAAA	2001:500:200::b
c.root-servers.net.	518400	IN	AAAA	2001:500:2::c
d.root-servers.net.	518400	IN	AAAA	2001:500:2d::d
e.root-servers.net.	518400	IN	AAAA	2001:500:a8::e
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
g.root-servers.net.	518400	IN	AAAA	2001:500:12::d0d
h.root-servers.net.	518400	IN	AAAA	2001:500:1::53
i.root-servers.net.	518400	IN	AAAA	2001:7fe::53
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:9f::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 24 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Thu Apr 05 15:57:34 CEST 2018
;; MSG SIZE  rcvd: 811
# dig @m.root-servers.net. ns > /var/named/named.root

master/slave

指定のゾーンに対してマスター/スレーブDNSサーバである

zone "localhost.localdomain" IN {
	type master;
	file "named.localhost";
	allow-update { none; };
};

fileでゾーンファイル指定

sudo cat /var/named/named.localhost
$TTL 1D
@	IN SOA	@ rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	@
	A	127.0.0.1
	AAAA	::1

スレーブの場合はゾーン転送されてきたデータがバイナリで書き込まれるらしい

人間が読むには、named-compilezoneコマンドで変換する

named.confの設定例

設定変更したらnamed-checkconfで構文チェック

sudo named-checkconf
(出力なし)

構文に誤りがある場合

cat named.conf

denyディレクティブなんて存在しない

...
controls {
    inet 127.0.0.1 deny {localhost;};
};
sudo named-checkconf /etc/named.conf

間違っている箇所を教えてくれる

/etc/named.conf:63: expected 'allow' near 'deny'

間違っている状態で設定再読込するとエラーが出る

sudo rndc reload
rndc: 'reload' failed: unexpected token

HUPシグナル自体は通っちゃうので注意する

sudo systemctl reload named
(出力なし)

9.2.2 rndcコマンド

rndc: remote name daemon control

sudo rndc status
version: BIND 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 (Extended Support Version) <id:7107deb>
running on lpic2-study-1: Linux x86_64 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020
boot time: Wed, 30 Dec 2020 11:13:03 GMT
last configured: Wed, 30 Dec 2020 11:13:03 GMT
configuration file: /etc/named.conf
CPUs found: 2
worker threads: 2
UDP listeners per interface: 1
number of zones: 103 (97 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 2/150
server is up and running

アクセスコントロール

  • リモートで設定可能

    • ローカルでも127.0.0.1越し
  • controlsステートメントでallow noneを設定して接続拒否してみる
sudo tee -a /etc/named.conf <<EOL
> controls {
>     inet 127.0.0.1 allow { none; };
> };
> EOL

設定確認

sudo tail -n 10 /etc/named.conf
zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
controls {
    inet 127.0.0.1 allow { none; };
};

構文チェックして設定再読込

sudo named-checkconf /etc/named.conf
sudo rndc reload
server reload successful

ちゃんと接続拒否されること確認

sudo rndc status
rndc: recv failed: connection reset

OK

戻しておく

  • rndc reloadすら通らないのでHUPシグナルを送る
sudo head -n -3  /etc/named.conf | sudo tee /etc/named.conf 
pkill -1 named
sudo rndc status
version: BIND 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 (Extended Support Version) <id:7107deb>
running on lpic2-study-1: Linux x86_64 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020
boot time: Wed, 30 Dec 2020 11:13:03 GMT
last configured: Wed, 30 Dec 2020 11:40:45 GMT
configuration file: /etc/named.conf
CPUs found: 2
worker threads: 2
UDP listeners per interface: 1
number of zones: 103 (97 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 2/150
server is up and running

9.3 ゾーンファイルの管理

  • hint情報ファイル
  • 正引きファイル
  • 逆引きファイル

こういうやつ(これは正引きファイル)

sudo cat /var/named/named.localhost
$TTL 1D
@	IN SOA	@ rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	@
	A	127.0.0.1
	AAAA	::1

9.3.1 リソースレコード

RRs: Resource Record set

  • $TTL 1D

    • TTLのデフォルト値を1日に設定している
    • $TTL 86400と同義
  • @

    • そのドメイン自身
  • rname.invalid.

    • 末尾の.が重要
    • ない場合、$ORIGINの値が補われる
  • $ORIGIN ドメイン名

    • 末尾が.のドメイン名

SOAレコード

https://jprs.jp/glossary/index.php?ID=0194

SOA: Start of Authority

ゾーンの管理情報を指定

dig soa google.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 <<>> soa google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39951
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com.			IN	SOA

;; ANSWER SECTION:
google.com.		59	IN	SOA	ns1.google.com. dns-admin.google.com. 349398142 900 900 1800 60

;; Query time: 92 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Wed Dec 30 13:06:04 UTC 2020
;; MSG SIZE  rcvd: 89

設定ファイルはこういう形になってる

@	IN SOA	@ rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
  • ns1.google.com.: ホスト名
  • dns-admin.google.com.: 管理者メールアドレス

    • @はホスト名に置換されてしまうので.に置き換えて書く
  • serial: ゾーン転送用のシリアル番号

    • ゾーン転送時、マスターのシリアル番号が進んでいたらスレーブは内容更新
    • 日付+2桁の管理番号を用いるのが典型的
  • refresh

    • スレーブがマスターのゾーン情報をポーリングする間隔
  • retry

    • スレーブがマスターにアクセスできなかったときの再試行までの時間
  • expire

    • スレーブがマスターにアクセスできなかったときのゾーン情報破棄までの時間
    • 権威サーバーとしての仕事は果たせなくなるが、古すぎる情報を提供し続けるよりはマシ
  • minimum

    • ネガティブキャッシュのTTL

NSレコード

DNSサーバを指定

設定はこんな形

	NS	@
dig ns google.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 <<>> ns google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16799
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com.			IN	NS

;; ANSWER SECTION:
google.com.		21599	IN	NS	ns2.google.com.
google.com.		21599	IN	NS	ns4.google.com.
google.com.		21599	IN	NS	ns3.google.com.
google.com.		21599	IN	NS	ns1.google.com.

;; Query time: 89 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Wed Dec 30 13:15:40 UTC 2020
;; MSG SIZE  rcvd: 111

冗長化している場合、複数

  • 外から見てどれがマスターという区別はない
  • RRsの設定上もない
;; ANSWER SECTION:
google.com.		21599	IN	NS	ns2.google.com.
google.com.		21599	IN	NS	ns4.google.com.
google.com.		21599	IN	NS	ns3.google.com.
google.com.		21599	IN	NS	ns1.google.com.

MXレコード

正引きゾーンファイルでのみ使用

メールサーバがメールを送る時に参照するレコード

dig mx google.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 <<>> mx google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10335
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com.			IN	MX

;; ANSWER SECTION:
google.com.		599	IN	MX	40 alt3.aspmx.l.google.com.
google.com.		599	IN	MX	50 alt4.aspmx.l.google.com.
google.com.		599	IN	MX	10 aspmx.l.google.com.
google.com.		599	IN	MX	20 alt1.aspmx.l.google.com.
google.com.		599	IN	MX	30 alt2.aspmx.l.google.com.

;; Query time: 89 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Wed Dec 30 13:17:58 UTC 2020
;; MSG SIZE  rcvd: 147
  • (NXとは異なり) プリファレンス値(優先度)を設定する
  • 小さい順。この例では aspmx.l.google.com.が最優先
;; ANSWER SECTION:
google.com.		599	IN	MX	40 alt3.aspmx.l.google.com.
google.com.		599	IN	MX	50 alt4.aspmx.l.google.com.
google.com.		599	IN	MX	10 aspmx.l.google.com.
google.com.		599	IN	MX	20 alt1.aspmx.l.google.com.
google.com.		599	IN	MX	30 alt2.aspmx.l.google.com.

あとで割り込みやすいように10刻みにしておくのが慣例

Aレコード/AAAAレコード

正引きゾーンファイルでのみ使用

	A	127.0.0.1
	AAAA	::1

IPv4/v6アドレス設定

  • 【補】AAAAはIPv4アドレス(A)が32ビットなのに対してIPv6アドレスが4倍の128ビットであることに由来するとかなんとか

CNAMEレコード

Canonical Name

host2.example.net.	IN	CNAME	host1.example.net.

ホストの別名定義

他のRRと同居できないので注意: https://tools.ietf.org/html/rfc1912

こういうのは駄目:

podunk.xx.	IN	NS	ns1
			IN	NS	ns2
			IN	CNAME	mary
mary		IN	A	1.2.3.4

PTRレコード

逆引きゾーンファイルでのみ使用

dig -x 216.58.197.238
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 <<>> -x 216.58.197.238
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32877
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;238.197.58.216.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
238.197.58.216.in-addr.arpa. 21599 IN	PTR	nrt13s49-in-f238.1e100.net.
238.197.58.216.in-addr.arpa. 21599 IN	PTR	nrt13s49-in-f14.1e100.net.

;; Query time: 87 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Wed Dec 30 13:31:30 UTC 2020
;; MSG SIZE  rcvd: 126
dig -x 2404:6800:4004:813::200e
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 <<>> -x 2404:6800:4004:813::200e
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45818
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.3.1.8.0.4.0.0.4.0.0.8.6.4.0.4.2.ip6.arpa. IN PTR

;; ANSWER SECTION:
e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.3.1.8.0.4.0.0.4.0.0.8.6.4.0.4.2.ip6.arpa. 21599	IN PTR nrt20s17-in-x0e.1e100.net.

;; Query time: 144 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Wed Dec 30 13:32:06 UTC 2020
;; MSG SIZE  rcvd: 140

この部分:

238.197.58.216.in-addr.arpa. 21599 IN	PTR	nrt13s49-in-f238.1e100.net.
238.197.58.216.in-addr.arpa. 21599 IN	PTR	nrt13s49-in-f14.1e100.net.
e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.3.1.8.0.4.0.0.4.0.0.8.6.4.0.4.2.ip6.arpa. 21599	IN PTR nrt20s17-in-x0e.1e100.net.
  • IPv4アドレス: オクテットごとにひっくり返して.in-addr.arpa.をつける
  • IPv6アドレス: 0の省略記法を展開し、ニブルごとにひっくり返して、.ip6.arpa.をつける

ゾーンファイルの実例

構文チェック: named-checkzone

sudo named-checkzone -w /var/named $(hostname -d) named.localhost
zone asia-northeast1-b.c.lpic2-study.internal/IN: loaded serial 0
OK