ガチャつくブログ

IT系のお勉強のために、やってみたことをアウトプットしていきます。

MENU

DNSで遊ぶ - Dnsmasq編 -

f:id:tmt-tty:20190612232744p:plain

はじめに

過去にDNSエンジニアの経験があるのですが、最近DnsmasqというDNSソフトウェアがあるらしい、、、試してみねばということで、インストールしてみます。

bind、unboundは構築・運用経験有りです。

 

Dnsmasqとは?

小規模向けのDNSDHCP機能を持ったソフトウェアとの事。

www.thekelleys.org.uk

 

早速インストール

今回は手元にあるRaspberry Pi Zeroを使用します。

OSインストールまでは、下記の記事を参考にしてください。

www.gachatsuku.com

 

dnsmasqのインストール

sudo apt-get install dnsmasq

 

設定

設定ファイルをコピっておきます。

# sudo cp -pi /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

 

設定ファイルを編集します

# sudo vi /etc/dnsmasq.conf

 

# diff /etc/dnsmasq.conf.orig /etc/dnsmasq.conf 
19c19
< #domain-needed
---
> domain-needed
21c21
< #bogus-priv
---
> bogus-priv
74c74
< #local=/localnet/
---
> local=/gachatsuku.net/
135c135
< #expand-hosts
---
> expand-hosts
144c144
< #domain=thekelleys.org.uk
---
> domain=gachatsuku.net

 

hostsの設定

# sudo vi /etc/hosts

 

以下を追記

192.168.11.11   ns1.gachatsuku.net

 

サービス起動

# sudo service dnsmasq start

 

ポート確認

# netstat -an | grep ":53"
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN     
tcp6       0      0 :::53                   :::*                    LISTEN     
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          
udp        0      0 0.0.0.0:53              0.0.0.0:*                          
udp6       0      0 :::5353                 :::*                               
udp6       0      0 :::53                   :::*  

 

名前解決確認 ※クライアントは同NWのMac

# dig @192.168.11.11 ns1.gachatsuku.net

; <<>> DiG 9.10.6 <<>> @192.168.11.11 ns1.gachatsuku.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57998
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.gachatsuku.net.		IN	A

;; ANSWER SECTION:
ns1.gachatsuku.net.	0	IN	A	192.168.11.11

;; Query time: 12 msec
;; SERVER: 192.168.11.11#53(192.168.11.11)
;; WHEN: Wed Jun 12 23:11:16 JST 2019
;; MSG SIZE  rcvd: 63

 

# dig @192.168.11.11 google.com

; <<>> DiG 9.10.6 <<>> @192.168.11.11 google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19214
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.com.		300	IN	A	172.217.27.78

;; Query time: 68 msec
;; SERVER: 192.168.11.11#53(192.168.11.11)
;; WHEN: Wed Jun 12 23:12:58 JST 2019
;; MSG SIZE  rcvd: 55

 

内、外共にOK

 

logを吐いていなかったので、設定追加

# sudo vi /etc/dnsmasq.conf

 

# diff /etc/dnsmasq.conf.orig /etc/dnsmasq.conf
635c635,636
< #log-queries
---
> log-queries
> log-facility=/var/log/dnsmasq.log

 

logを見つつdigする

# sudo tail -f /var/log/dnsmasq.log 
Jun 12 23:20:10 dnsmasq[21074]: query[A] google.com from 192.168.11.2
Jun 12 23:20:10 dnsmasq[21074]: cached google.com is 172.217.27.78
Jun 12 23:21:11 dnsmasq[21074]: query[A] ns1.gachatsuku.net from 192.168.11.2
Jun 12 23:21:11 dnsmasq[21074]: /etc/hosts ns1.gachatsuku.net is 192.168.11.11

 

手軽にサクッとできました。