dnsmasqでDNSキャッシュサーバたててみた

簡単手軽なDNSキャッシュサーバないかな〜って思ってたらdnsmasqってのがいいらしいとわかったので試してみました。インストールは以下の通りに。

1
2
3
4
5
6
7
8
# yum install dnsmasq

# vim /etc/resolv.conf
nameserver 127.0.0.1
nameserver 8.8.8.8

# /etc/init.d/dnsmasq start
Starting dnsmasq:                                          [  OK  ]

なんという手軽さ!! これだけで出来上がりです!!
本当にキャッシュできているか試します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# dig youyo.info

; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> youyo.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59083
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;youyo.info.          IN  A

;; ANSWER SECTION:
youyo.info.       104 IN  A   49.212.132.45

;; Query time: 46 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jan 24 22:32:06 2013
;; MSG SIZE  rcvd: 44


# dig youyo.info

; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> youyo.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64016
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;youyo.info.          IN  A

;; ANSWER SECTION:
youyo.info.       101 IN  A   49.212.132.45

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jan 24 22:32:09 2013
;; MSG SIZE  rcvd: 44

46msecから1msecに! しっかりキャッシュできてます(´ω`)
 
さらにdnsmasqはDNSラウンドロビンの機能もあるそうで。試します。
“/etc/hosts”にIPとホスト名を書いてdnsmasqを再起動します。”/etc/hosts”で簡単にDNSレコード管理できるのも素晴らしいですね!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# vim /etc/hosts
192.168.1.1     test.youyo.info
192.168.1.2     test.youyo.info
192.168.1.3     test.youyo.info


# /etc/init.d/dnsmasq restart
Shutting down dnsmasq:                                     [  OK  ]
Starting dnsmasq:                                          [  OK  ]


# dig test.youyo.info

; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> test.youyo.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42090
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.youyo.info.     IN  A

;; ANSWER SECTION:
test.youyo.info.  0   IN  A   192.168.1.1
test.youyo.info.  0   IN  A   192.168.1.2
test.youyo.info.  0   IN  A   192.168.1.3


# dig test.youyo.info

; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> test.youyo.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10457
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.youyo.info.     IN  A

;; ANSWER SECTION:
test.youyo.info.  0   IN  A   192.168.1.2
test.youyo.info.  0   IN  A   192.168.1.3
test.youyo.info.  0   IN  A   192.168.1.1


# dig test.youyo.info

; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> test.youyo.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41275
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.youyo.info.     IN  A

;; ANSWER SECTION:
test.youyo.info.  0   IN  A   192.168.1.3
test.youyo.info.  0   IN  A   192.168.1.1
test.youyo.info.  0   IN  A   192.168.1.2

返されるIPの順序が変わっています。ちゃんとDNSラウンドロビンが機能しているようです!
 
dnsmasqはDNSサーバとしての機能だけでなく、TFTPサーバやDHCPサーバとしても機能するようです。PXEbootに必要な機能を満たしているので、これだけでPXEboot環境を作れそうです!
(試していません。そのうちやってみます…

Comments