見出し画像

#67 BIND

 DNSは、歴史も長く、現代ネットワークになくてはならない存在です。「DNSを制すものはネットワークを制す」と格言にもあるので、今日は、DNSサーバーをBINDで立ててみました。

目標

BINDでDNSサーバーを立てる

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


この記事が気に入ったらサポートをしてみませんか?