#67 BIND
DNSは、歴史も長く、現代ネットワークになくてはならない存在です。「DNSを制すものはネットワークを制す」と格言にもあるので、今日は、DNSサーバーをBINDで立ててみました。
目標
BINDは、Linuxで動作するオープンソースのソフトウェアです。Ubuntuでやります。
作業
インストール
とりあえずアップデートして、BINDをインストールします。
$ sudo apt update
$ sudo apt install bind9 dnsutils
DNS設定
DNSレコードを置いておくディレクトリを用意します。
$ sudo mkdir -p /etc/bind/zones/master
test.com というホストネームで、172.16.65.129にアクセスできるように設定します。
$ vi /etc/bind/zones/master/db.test.com
;
; BIND data file for test.com
;
$TTL 3h
@ IN SOA ns1.test.com. admin.test.com. (
1 ; Serial
3h ; Refresh after 3 hours
1h ; Retry after 1 hour
1w ; Expire after 1 week
1h ) ; Negative caching TTL of 1 day
;
@ IN NS ns1.test.com.
test.com. IN A 172.16.65.129
ns1 IN A 172.16.65.129
IPアドレスからホストへの逆引き設定です。
$ vi /etc/bind/zones/master/db.172.16.65
;
; BIND reverse data file for 65.16.172.in-addr.arpa
;
$TTL 604800
65.16.172.in-addr.arpa. IN SOA ns1.test.com. admin.test.com. (
1 ; Serial
3h ; Refresh after 3 hours
1h ; Retry after 1 hour
1w ; Expire after 1 week
1h ) ; Negative caching TTL of 1 day
;
65.16.172.in-addr.arpa. IN NS ns1.test.com.
129.65.16.172.in-addr.arpa. IN PTR test.com.
設定ファイルを編集します。
$ vi /etc/bind/named.conf.local
zone "test.com" {
type master;
file "/etc/bind/zones/master/db.test.com";
};
zone "65.16.172.in-addr.arpa" {
type master;
file "/etc/bind/zones/master/db.172.16.65";
};
これで設定はOKです。
動作確認
ちゃんと設定できたか、確認します。
$ sudo named-checkconf
$ sudo named-checkzone test.com /etc/bind/zones/master/db.test.com
OK
$ sudo named-checkzone 65.16.172.in-addr.arpa /etc/bind/zones/master/db.172.16.65
OK
サービスを開始して、DNSの問い合わせを試してみましょう。
$ sudo systemctl start named
host <ホスト名> <ネームサーバー>で問い合わせできます。
$ host test.com 172.16.65.129
Using domain server:
Name: 172.16.65.129
Address: 172.16.65.129#53
Aliases:
test.com has address 172.16.65.129
期待通り、名前解決ができました!
まとめ
DNSは、あまり意識されないところでインターネットを支えている、縁の下の力持ちです。だれもが関わる技術ですが、なかなか勉強する機会もありません。構築時には、設定を正しく行わないと攻撃の対象になることもありますし、ネットワークトラブルの原因にDNSが絡んでくるときもあります。動かして理解を深めていくのが一番ですね。
EOF