FreeBSDにDNSMASQを設定する
NAS用として組み上げたFreeBSD機は、家庭内サーバとしても使います。
まず、抑えておきたいのは、家庭内DNSサーバです。QNAPを使っている時に知ったDNSMASQと言うソフトが使い易そうです。
DNSMASQとは、DHCPサーバ機能とDNSサーバ機能を併せ持ったソフトです。DHCPでアドレスを配布する際、MACアドレスに対応したIPアドレスとホスト名を割り付けるので、DHCPでありつつ、固定IPの様な使い方ができます。
本当に固定IPを使いたい時は、/etc/host(等)に書いたアドレスを参照させる事ができます。
インストール手順は、次の通りです。
- DNSMASQインストール
- DNSMASQ設定
- 起動&テスト
- /etc/rc.confに記述
1. DNSMASQインストール
ポートパッケージが用意されています。
$ cd /usr/port/dns/dnsmasq $ sudo make config-recursive $ sudo make install clean
インストール(ビルド)自体は、簡単に終了します。
2. DNSMASQ設定
肝です。設定ファイルを修正します。
$ sudo vi /usr/local/etc/dnsmasq.conf
以下の例は、次の設定の場合です。
- ドメイン名:local.example.com
- サブネット:192.168.0.xx
- ネームサーバ:192.168.0.1
- ゲートウェイ:192.168.0.254
- クライアント1:192.168.0.2(mac, MACアドレスは00:00:00:00:00:00)
- クライアント2:192.168.0.3(win, MACアドレスは00:00:00:00:00:01)
|domain-needed # Never forward plain names (without a dot or domain part)
|expand-hosts # Add the domain to simple names (without a period) in /etc/hosts in the
|# same way as for DHCP-derived names.
|bogus-priv # Never forward addresses in the non-routed address spaces.
|filterwin2k # Uncomment this to filter useless windows-originated DNS requests
|clear-on-reload # Whenever /etc/resolv.conf is re-read, clear the DNS cache.
*|domain=local.example.com # Set the domain for dnsmasq.
|cache-size=1000 # Set the size of dnsmasq's cache. The default is 150 names.
|local-ttl=600
|neg-ttl=600
|localmx
*|local=/local.example.com/ # Add local-only domains here, queries in these domains are answered
|# from /etc/hosts or DHCP only.
|
*|dhcp-range=192.168.0.2,192.168.0.159,24h # dhcp range, 24 hour lease
|dhcp-option=vendor:MSFT,2,1i # Send microsoft-specific option to tell windows to release the DHCP lease
|# when it shuts down.
|dhcp-authoritative # Set the DHCP server to authoritative mode. In this mode it will barge in
|# and take over the lease for any client which broadcasts on the network,
|# whether it has a record of the lease or not.
*|dhcp-option=option:router,192.168.0.254 # set router address (3)
*|dhcp-option=option:dns-server,192.168.0.1 # set dns server address (6)
*|dhcp-option=option:domain-name,local.exapmple.com # set domain name (15)
|dhcp-option=option:netbios-nodetype,1 # netbios node type (46)
|# 1 B-node: Broadcast - no WINS
|# 2 P-node: Peer - WINS only.
|# 4 M-node: Mixed - broadcast, then WINS
|# 8 H-node: Hybrid - WINS, then broadcast
*|dhcp-host=00:00:00:00:00:00,192.168.0.2,mac # Mac
*|dhcp-host=00:00:00:00:00:01,192.168.0.3,win # Windows
|
|log-facility=/var/log/dnsmasq.log
|log-queries
|log-dhcp
ポイントは、次の通りです。
- ドメイン名の指定
- 配布するIPアドレス範囲の指定
- ネームサーバ、ゲートウェイアドレスの指定
- MACアドレス、IPアドレス、ホスト名の対応表
そして、/etc/hostsには、次の内容を記述してあります。
$ sudo vi /etc/hosts
127.0.0.1 localhost localhost.local.example.com
192.168.0.1 freebsd.local.example.com freebsd
192.168.0.254 gw.local.example.com gw
3. 起動&テスト
次の通り、起動します。
$ sudo /usr/local/etc/rc.d/dnsmasq start
確認項目は、次の通りです。
- クライアントのIPアドレスが正しいかどうか?
- 割り当てられたドメイン名が正しいかどうか?
- クライアントのネームサーバ、ゲートウェイが正しいかどうか?
/var/log/dnsmasq.logにログが残っていますので、こちらもご確認ください。
4. /etc/rc.confに記述
$ sudo vi /etc/rc.conf
記述する内容は、次の通りです。
dnsmasq_enable="YES"
参考にした所
他にも、QNAPのフォーラムかどこかで、設定ファイルしているのを読んでいるのですが、見つけられませんでした。
[amazonjs asin="B00GIF7SOW" locale="JP"]
ディスカッション
コメント一覧
まだ、コメントがありません