====== Dnsmasq ====== http://www.thekelleys.org.uk/dnsmasq/doc.html * /etc/hosts を名前解決のデータベースとして使用する。 * DNSラウンドロビンに対応している。 * /etc/resolv.confに上位ネットワークのDNSサーバのIPアドレスを指定しておくと、/etc/hostsで解決できない名前解決要求を上位DNSに委譲する。 ===== インストール ===== # yum install dnsmasq ================================================================================================================== Package Arch Version Repository Size ================================================================================================================== Installing: dnsmasq x86_64 2.48-13.el6 base 149 k Transaction Summary ================================================================================================================== ===== 設定 ===== cp /etc/dnsmasq.conf /etc/dnsmasq.conf.org vi /etc/dnsmasq.conf diff /etc/dnsmasq.conf /etc/dnsmasq.conf.org 14c14 < domain-needed ←shorthostnameの名前解決要求を上位DNSサーバに転送しない --- > #domain-needed 16c16 < bogus-priv ←プライベートIPアドレスの逆引き要求を上位DNSサーバに転送しない --- > #bogus-priv 114c114 < expand-hosts ←domain=で指定されたドメイン名を補完する --- > #expand-hosts 123c123 < domain=exmple.osk ←補完対象のドメイン --- > #domain=thekelleys.org.uk ===== 簡易権威サーバ設定 ===== # vi /etc/hosts ~省略~ # test 192.168.24.170 test.exmple.osk ~省略~ ===== 起動 ===== # /etc/init.d/dnsmasq start ===== 確認 ===== # dig @127.0.0.1 test.exmple.osk ~省略~ ;; ANSWER SECTION: test.exmple.osk. 0 IN A 192.168.24.170 ~省略~ ===== クライアント ===== ==== 未設定時 ==== [root@client ~]# dig test.exmple.osk ~省略~ ;; AUTHORITY SECTION: . 3336 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2014111100 1800 900 604800 86400 ~省略~ ==== 設定 ==== IPアドレスをDHCPで取得している環境ではnetworkのrestartでresolv.confが上書き更新されるので、NICの設定ファイルにresolv.confを更新しないオプション「PEERDNS=no」を追加する。 [root@client ~]# vi /etc/resolv.conf < nameserver 192.168.24.177 [root@dev-luck ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 < PEERDNS=no 以下のいづれかに記述すれば、networkをrestartしても指定したDNSが使用される。 [root@client ~]# vi /etc/sysconfig/network < DNS1=192.168.24.177 [root@client ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 < DNS1=192.168.24.177 ==== 設定後 ==== [root@client ~]# dig test.exmple.osk ~省略~ ;; ANSWER SECTION: test.exmple.osk. 0 IN A 192.168.24.170 ~省略~ ===== DNSラウンドロビン ===== # vi /etc/hosts < 192.168.24.170 test.exmple.osk < 192.168.24.171 test.exmple.osk # dig test.exmple.osk ~省略~ ;; ANSWER SECTION: test.exmple.osk. 0 IN A 192.168.24.170 test.exmple.osk. 0 IN A 192.168.24.171 ~省略~ # dig test.exmple.osk ~省略~ ;; ANSWER SECTION: test.exmple.osk. 0 IN A 192.168.24.171 test.exmple.osk. 0 IN A 192.168.24.170 ~省略~