家庭用ルータ Aterm (NEC)と
自宅サーバ内のDNSサーバ(dnsmasq)を組み合わせて
家庭内ドメインを作成できたのでメモです。
目次
1. 状況
自宅サーバ導入した。OS は Ubuntu 14.04 。
ルータは NEC の Aterm WG300HP 。
ルータの設定で サーバが 192.168.10.30 に「DHCP固定割当」されるようにした。
次に、ドメイン名(foobar.homeとか)でアクセスしたいが、ルータのDNS機能いじれなかった。
そこで自宅サーバで DNS サーバ動かし、セルフ名前解決することにした。
2. 余談 : Aterm の DHCP 固定割当設定
- aterm.me (ルータ設定のwebUI)にアクセス
- DCHP固定割当設定
- MACアドレスとIPアドレスのペアを登録。
- DHCPで割り当てられうる範囲のIPアドレスしか設定できないので注意。
3. dnsmasq をインストールする
今回初めて知ったが、dnsmasqという簡易DNSサーバがあるらしい。
DHCPサーバの機能もあるらしい。
とりあえず入れてみる。
$ sudo apt-get install dnsmasq
以下のパッケージが入った。
dnsmasq-base - Small caching DNS proxy and DHCP/TFTP server libmnl0 - minimalistic Netlink communication library libnetfilter-conntrack3 - Netfilter netlink-conntrack library
4. dnsmasq の設定
参考 : 内向きDNSサーバを立てた | Izuizm
「これで/etc/resolv.confは「nameserver 127.0.0.1」とローカルを指すように書き換わっているはず。」とのこと。
マジだスゲェ。
とりあえず DHCP サーバの機能を無効にしておく。
むしろ君はクライアントなのだ。
# /etc/dnsmasq.conf に追記 # インターフェース名は ifconfig で調査。 no-dhcp-interface=p2p1
masqdns は /etc/hosts いじることで DNS レコードをいじれるらしい。
bind9 と比べるとものっそい light weight な感じある。
# /etc/hosts に追記 192.168.10.30 hogefuga.home
名前解決してみる。
$ nslookup hogefuga.home Server: 127.0.0.1 Address: 127.0.0.1#53 ** server can't find hogefuga.home: NXDOMAIN
dnsmasq を再起動する。
$ sudo /etc/init.d/dnsmasq restart * Restarting DNS forwarder and DHCP server dnsmasq [ OK ]
再度 nslookup してみると、ちゃんと名前解決できた。
$ nslookup hogefuga.home Server: 127.0.0.1 Address: 127.0.0.1#53 Name: hogefuga.home Address: 192.168.10.30
DNSサーバ側はこれでよさそう。
5. ルータ(Aterm)の設定
現状ではルータは DHCP で 192.168.10.1/24 の範囲で IP アドレスを振っている。
(なんか最大割当数 32 とか書いてあるので実質 /24 ではないが。)
ここでやりたことは
「hogefuga.home の名前を 192.168.10.30 と解決するために
192.168.10.30 で動いている DNS サーバに問い合わせる」
ということである。
とりあえず aterm.me (ルータ設定のwebUI)にアクセスし、以下のように設定する。
- DNSルーティング設定
- 宛先ドメイン名 : home
- ゲートウェイ : 192.168.10.1 (ルータのIPアドレス)
- プライマリDNS : 192.168.10.30 (dnsmasq が動いてる自宅サーバ)
手元の PC から nslookup してみる。
$ nslookup hogefuga.home Server: 192.168.10.1 Address: 192.168.10.1#53 Name: hogefuga.home Address: 192.168.10.30
できたったwww