ダミーのDNSサーバ dnsmasqを立てる

ダミーのDNSサーバを立てる必要があったのでメモ。

環境はCentOS6.10です。まずはyumでインストールしてみる。

#yum install dnsmasq
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
パッケージ dnsmasq-2.48-18.el6_9.x86_64 はインストール済みか最新バージョンです
何もしません

おや?デフォルトに入っているようだ。
下記で確認してみると確かにインストールされていて停止している。

# /etc/rc.d/init.d/dnsmasq status
dnsmasq は停止しています

dnsmasqでダミーで確認したいホスト情報を/etc/hostsに書き込んでおく。

下記ではLAN内のqnapというホストを名前解決出きるようにした。

172.23.0.2  qnap

そして/etc/dnsmasq.confで上記の/etc/hostsを参照するように設定。

# If you don't want dnsmasq to read /etc/hosts, uncomment the
# following line.# dig qnap @127.0.0.1

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.1 <<>> qnap @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19847
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;qnap. IN A

;; ANSWER SECTION:
qnap. 0 IN A 172.23.0.2
#no-hosts
# or if you want it to read another file, as well as /etc/hosts, use
# this.
#addn-hosts=/etc/banner_add_hosts
addn-hosts=/etc/hosts

では起動してみよう。

# /etc/rc.d/init.d/dnsmasq start
Starting dnsmasq: 
dnsmasq: failed to create listening socket: Address already in use
                                                           [失敗]

なんかすでに使用されているようなメッセージが。
53番ポートを使っているものを調べよう。おや?dnsmasqとなっている。
上記では停止していて、ポートは使用中で起動できなかったのに、よくわからない・・・まぁ、とりあえずkillしてしまおう。

[root@cent6 malt]# lsof -i:53
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dnsmasq 11946 nobody    6u  IPv4  23576      0t0  TCP 192.168.122.1:domain (LISTEN)
dnsmasq 11946 nobody    7u  IPv4  23577      0t0  UDP 192.168.122.1:domain 
[root@cent6 malt]# kill 11946# dig qnap @127.0.0.1

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.1 <<>> qnap @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19847
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;qnap. IN A

;; ANSWER SECTION:
qnap. 0 IN A 172.23.0.2

では再度起動してみよう。今度はうまく起動した。

# service dnsmasq start
Starting dnsmasq:                                          [  OK  ]

ではdigコマンドで本当に上記のdnsmasqに対して名前解決の問い合わせをしてみる。

# dig qnap @127.0.0.1

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.1 <<>> qnap @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19847
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;qnap.				IN	A

;; ANSWER SECTION:
qnap.			0	IN	A	172.23.0.2

ちゃんと/etc/hostsに記載した172.23.0.2が返ってきた。
問題ないようだ。