orenoblog

エンジニアになりたいExcel方眼紙erの物語

dnsmasqでプライベートなDNSサーバを立てる

こんばんは。 急遽内部向けにDNSサーバが必要になったのでどうするか考えていた所、

dnsmasqってのがOpenstack novaの内部で動いてたよなーと思い出したので検証してみます。

まずはDNSサーバをラウンドロビン化できるかどうかです。

IP 用途
10.0.0.2/24 インターネット用DNS
10.0.0.107/24 内部DNS
10.0.1.89/24 内部DNS
10.0.3.211/24 問合せ元のクライアント、インターネットアクセス不可

内部DNSサーバでの作業

dnsmasqはyum dnsmasqでインストールできます。

  • hosts
10.0.0.107 ins.local
10.0.1.89 ins.local
10.0.3.211 trustsv.local
  • /etc/resolv.conf
nameserver 127.0.0.1
nameserver 10.0.0.2

最後にdnsmasqを起動して終わりです簡単です。

問合せ元のクライアント作業

  • resolv.conf
nameserver 10.0.1.89
nameserver 10.0.0.107
options timeout 3 attempts 5

問合せテスト

クライアントで実行してみるとins.localに複数ホストが関連付けられているのが確認できました。

[root@ip-10-0-3-211 ~]# dig ins.local

;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31712
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ins.local.                     IN      A

;; ANSWER SECTION:
☆ins.local.              0       IN      A       10.0.1.89
☆ins.local.              0       IN      A       10.0.0.107

インターネット上のホストも解決できました。

[root@ip-10-0-3-211 ~]# dig google.com

;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27443
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             294     IN      A       173.194.117.165
google.com.             294     IN      A       173.194.117.164
google.com.             294     IN      A       173.194.117.163
google.com.             294     IN      A       173.194.117.162
google.com.             294     IN      A       173.194.117.161

う〜ん、便利です。

PTRやMX等も設定できるらしいので、次はPTRの実装をしてみます。 多分続く。