Posted at

PowerDNS Recursorで特定ドメインだけ別のDNSサーバに名前解決させる

More than 3 years have passed since last update.


これってつまり?

某回線事業者の閉鎖NWへのアクセス用。我が家ではSophos UTMを使っていますが、ポリシールートがUTM自身に効かなかったので、時間かける程のものでもないし、仕方なく。

手順はとりあえずUbuntuのものなので、CentOSなどのRHEL系は適当に読み替えてください。


導入手順


1. インストール

標準パッケージで。

apt-get install -y pdns-recursor


2. 設定

LAN内でセキュリティ考慮もいらないので、以下のように設定。変更したのは2点で、forward-zones-recurseを追加して、local-addressを0.0.0.0にしてLISTENできるようにしました。(デフォは127.0.0.1のLISTENなので、外部から通信できない)

root@server:~# cat /etc/powerdns/recursor.conf |grep -v ^#|grep -v ^$

forward-zones-recurse=flets=123.107.190.5;123.107.190.6
local-address=0.0.0.0
local-port=53
quiet=yes
setgid=pdns
setuid=pdns


3. 設定反映

設定反映すると、forward設定したzoneについて言及してくれた。わかりやすい。

root@snakehead:~# service pdns-recursor restart

* Restarting PowerDNS recursor pdns-recursor Feb 15 00:12:02 Redirecting queries for zone 'flets.' with recursion to: 123.107.190.5:53, 123.107.190.6:53


4. 動作確認

適当な端末からdigって終了

$ dig www.flets

; <<>> DiG 9.9.5 <<>> www.flets
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
www.flets. 49982 IN A 123.107.190.14

;; Query time: 16 msec
;; SERVER: x.x.x.x#53(x.x.x.x)
;; WHEN: 日 2月 15 00:12:07 JST 2015
;; MSG SIZE rcvd: 54


あとがき

ポイント交換するのに仕方なく。。。

ちなみにSophos UTM側の設定は、PPPoEインターフェースを複数上げてフ○ッツスクエア側をデフォルトG/Wなしで同時接続。あとはスタティックルート→ポリシールートで振り分け可能です。こっちの設定の方が需要あるのかな?