fc2ブログ

dnsmasqによるLAN内DNSとDHCPの運用

玄箱ProにDebian Squeezeをインストールしてから、自宅LAN内のDNS(マシン名からローカルIPアドレスの検索)と、DHCPサーバをこれにやらせることにした。やはり自宅内LAN専用のDNSがあるとどのマシンにアクセスするのも名前でできるので便利である。一台のマシンだけなら/etc/hostsに全部書いてもよいが、数台あるともう統一するのが面倒になってくる。さらに仮想マシンを立てたりすることを考えるとなおさらである。また、できれば、IPアドレスからの逆引きにも対応できることが望ましい。

最初は、定番ということでBINDとISC DHCPの組み合わせで、ごちゃごちゃと調べて一応動的IPアドレス割り当てのマシンもLAN内DNSに動的に登録されるようにできたのだが、どうも丸一日程度動かしていると、カーネルのいわゆるOOM-killerに引っかかってnamedのプロセスがkillされてしまうという現象が発生した。ほんの数台しかないマシンを管理するのにBINDを持ち出すのも大げさな気もしてきたので、Debianではよく使われているらしい、より軽量で小規模ネットワークに向いたdnsmasqというパッケージを使ってみることにした。dnsmasqは、正確にはDNSサーバではなくてDNSキャッシュサーバということらしい。一次的な情報は、LAN内部に関しては/etc/hostsから参照し、自分で解決できない外部の名前については外部DNSに問い合わせる。さらにDHCPサーバ機能もあわせ持っている上、DHCPでアドレスを割り当てたマシンを自動的にDNSに登録することもできる。私の目的には十分すぎる機能を持っている。

ということで、LAN内のマシンについては玄箱Proの/etc/hostsには

127.0.0.1 localhost.localdomain localhost
192.168.1.1 gateway.mydomain.com gateway router
192.168.1.2 kurobako.mydomain.com kurobako mail mx www
192.168.1.3 host1.mydomain.com host1
192.168.1.4 host2.mydomain.com host2
192.168.1.5 host3.mydomain.com host3

のように(ドメイン名とホスト名は例。ドメイン名は、何も取得していなければ、"mydomain.com"のかわりにlocaldomainでいいだろう)記述しておき、/etc/dnsmasq.confの方は、コメントを除くと

domain-needed
bogus-priv
local=/mydomain.com/
interface=eth0
expand-hosts
domain=mydomain.com
dhcp-range=192.168.1.10,192.168.1.100,12h
dhcp-host=host1,11:22:33:44:55:66,192.168.1.3
dhcp-host=host2,11:22:33:44:55:67,192.168.1.4
dhcp-host=host3,11:22:33:44:55:68,192.168.1.5
dhcp-option=option:router,192.168.1.1
mx-host=mydomain.com,kurobako.mydomain.com,10
log-queries
log-dhcp

のようにしておく(MACアドレスも例、自分のハードウェアに合わせる)。この設定ファイルでDNSもDHCPも両方設定できるので簡単なものである。上の例では、host1、host2、host3にはそれぞれ固定のIPアドレスが振られ、それ以外のマシンには192.168.1.10から192.168.1.100までの動的なIPアドレスが振られる。動的にIPアドレスが振られたマシンも、自動的にDNSのデータベースに登録されて、LAN内では名前で通信できるようになる上に、IPアドレスからの逆引きもできることが確認できた。

しばらく動かしても問題もないようなので、当面これで運用することにする。



スポンサーサイト



コメントの投稿

非公開コメント

プロフィール

GM3D

Author:GM3D
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR