概要
Raspberry Pi (Raspbian) に dnsmasq をインストールして、LAN内のDNS&DHCPサーバーにします。LAN内のコンピュータへ、ホスト名の指定でアクセスできるようにするのが目的です。要するにLAN内限定のDDNSサーバのようなものです。
ネットワーク構成
- ルータ & ゲートウェイ: 192.168.0.1
- Raspberry Pi (DNS&DHCP server): 192.168.0.2
- Raspberry Pi のIPアドレスは固定
- Raspberry Pi は自力で名前解決ができる(外部DNSサーバが /etc/network/interfaces で指定されている)
手順
dnsmasqをインストール。
sudo apt-get install dnsmasq次に /etc/dnsmasq.conf を編集します。設定方法はファイル内にかなり親切にコメントされています。今回は外部ファイルに設定を記述するため、次の行をコメントアウトします。
#conf-file=/etc/dnsmasq.more.conf conf-file=/etc/dnsmasq.more.conf設定事項は /etc/dnsmasq.more.conf に書き込みます。
domain-needed bogus-priv # LAN内で使用するドメインを指定。 # このドメインに対する正引き要求は、 # 1. /etc/hosts # 2. dnsmasq のDHCP機能によって割り当てられたIPアドレス # のみを検索して応答する。 local=/raspberry.local/ # 正引き要求に対して /etc/hosts 内にあるホスト名を回答するとき、 # ホスト名の末尾に下記で設定されたドメイン名を付加して応答する。 expand-hosts # ドメイン名の指定。 # このドメイン名は以下のように利用される。 # 1. "expand-hosts" を設定した場合に付加されるドメイン名 # 2. DHCPクライアントが取得するドメイン名 domain=raspberry.local # DHCPクライアントへ割り当てるIPアドレスの範囲とリース時間の指定。 # このオプションを設定するとDHCPサーバ機能が有効となる。 dhcp-range=192.168.0.10,192.168.0.80,12h # DHCPクライアントに通知するルータ、DNSサーバ、NTPサーバの指定。 # 今回は、DNS, NTPサーバとして自身を指定する。 # NTPサーバの設定が必要。 (/etc/ntp.conf) dhcp-option=option:router,192.168.0.1 dhcp-option=option:dns-server,192.168.0.2 dhcp-option=option:ntp-server,192.168.0.2設定が完了したら、dnsmasq を再起動します。なお、別のDHCPサーバがすでにネットワーク上にある場合は、そのサービスを停止する必要があります。
sudo service dnsmasq restartdnsmasq が稼働しているコンピュータ自身の名前を解決するため、/etc/hosts にIPアドレスとホスト名の対応を追記します。
# /etc/hosts に追記 192.168.0.2 raspiname以上でLAN内のコンピュータに対して、ホスト名でアクセスできるようになりました。
取得済みIPアドレスのリリース
WindowsでDHCPクライアントの情報を更新するため、取得済みIPアドレスのリリースと再取得を行います。
# 取得済みのIPアドレスを解放 ipconfig /release # IPアドレスの割り当てを受ける ipconfig /renewなぜかWindowsマシンだけDHCPクライアントの情報が更新されない、などの時はお試しください。これに気づくまでに無駄な時間を消費しました…。