このエントリーをはてなブックマークに追加


dnsmasqをDHCPサーバとして使う場合の最小限の設定例

DHCPサーバを簡便に構築したい時に本資料は参考になると思います。
dnsmasqを利用したDHCPサーバの構築方法を以下に記します。


関連記事

dnsmasqとは

dnsmasqは簡便なネームサーバです。
/etc/hostsの内容をDNSレコードとして、ホスト名の問い合せを解決する
(ホスト名に対応するIPアドレスを返す)ことができます。
/etc/hostsの内容だけでなく、自分のレコード以外の問い合わせを、
外部のDNSサーバに問い合わせをフォワードすることも可能です。
小規模なネットワークでの利用に特化しているソフトウェアです。
(最近ではkvmやxenなどが作る仮想環境のパーツとしても使われています。)

これに加えて、dnsmasqはDHCPサーバやTFTPサーバの機能も持っています。
bindや、ISCのDHCPなど大掛かりな製品を使わずとも、
単体で小規模なネットワーク管理に必要なサービスを全て提供することができるようになっています。

この記事ではDHCPサーバとして機能させるための最小限の設定をまとめます。
対象とするdnsmasqのバージョンは、Ubuntu12.04上のバージョン2.59です。

設定の仕方

dnsmasqはすべての設定値をコマンドラインオプションとしても、
設定ファイルとしても持つことができます。 (kvmやxenなどの内部で使われるのは、この特長からでもあるでしょう。)

例えば、dhcp-rangeという設定を行なうには、dnsmasqの起動時のオプションとして、

dnsmasq -F dhcp-range=192.168.10.10,192.168.10.30,12h

と指定するか、もしくは、

dnsmasq --dhcp-range=192.168.10.10,192.168.10.30,12h

と指定します。

これは、設定ファイルに、

dhcp-range=192.168.10.10,192.168.10.30,12h

と書くのと同じです。

また、設定ファイルは、/etc/dnsmasq.confですが、

コマンドラインオプション

dnsmasq -C /etc/dnsmasq.more.conf
dnsmasq --conf-file=/etc/dnsmasq.more.conf

設定ファイル

conf-file=/etc/dnsmasq.more.conf

と指定することで、/etc/dnsmasq.more.confも設定ファイルとして使用できます。さらに、

コマンドラインオプション

dnsmasq -7 /etc/dnsmasq.d
dnsmasq --conf-dir=/etc/dnsmasq.d

設定ファイル

conf-dir=/etc/dnsmasq.d

と指定すれば、ディレクトリ/etc/dnsmasq.dの下のファイルが全て設定ファイルとして扱われます。

DHCP設定

DHCPサーバとしてのもっとも単純な設定は以下になります。
これを上記の設定方法で設定します。
(継続して運用するのなら、コマンドラインオプションによる設定はやめたほうがいいですが。)

dhcp-range=192.168.10.10,192.168.10.30,12h
dhcp-host=98:fe:94:3e:4e:2e,192.168.10.15
dhcp-option=optioin:ntp-server,192.168.10.1
dhcp-option=option:netmask,255.255.255.0
dhcp-option=option:router,192.168.10.254
dhcp-option=option:dns-server,192.168.10.1,8.8.8.8
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
log-dhcp

それぞれの設定句を簡単に説明します。

dhcp-range

dhcp-rangeは、リースするIPアドレスの範囲とリース期間を設定します。

dhcp-range=リースする最初のアドレス,リースする最後のアドレス,リース期間

で、上記の設定例では、192.168.10.10から192.168.10.30までがDHCPクライアントに配布されるアドレスです。
そのリース期間は、12時間となっています。

dhcp-host

dhcp-hostは、MACアドレスと対応づけて、常に同じIPアドレスを配布したいときに設定します。

dhcp-host=MACアドレス,IPアドレス

(当然ですが)この設定は複数もつことが可能です。

dhcp-option

DHCPではIPアドレスの配布の他に、ネットワークを利用する上で必要な情報も同時に配布することができます。

dhcp-option=option:配布する情報,値

これも複数指定可能です。
一般的には上記の設定例のように、ネットマスク(netmask)・デフォルトゲートウェイ(router)・ネームサーバ(dns-server)は必須でしょう。
どのような情報が配布可能であるかは、 dnsmasq --help dhcpを実行すると表示されます。

# dnsmasq --help dhcp
Known DHCP options:
  1 netmask
  2 time-offset
  3 router
  6 dns-server
  7 log-server
  9 lpr-server
 13 boot-file-size
 15 domain-name
(略)

dhcp-leasefile

IPのリース状況が出力されます。

dhcp-leasefile=リース状況ファイル

以下のような内容です。

# cat /var/lib/misc/dnsmasq.leases
1378954177 e6:8d:28:f3:e4:58 192.168.10.13 * 01:e8:8d:28:f3:e4:58
1378955470 00:26:dc:67:de:9d 192.168.10.17 * 01:00:25:dc:67:de:9d
1378954926 97:fe:94:3e:4e:2e 192.168.10.15 ubuntu 01:98:fe:94:3e:4e:2e
1378955086 a7:e3:ee:27:53:7b 192.168.10.29 * 01:a8:e3:ee:27:53:7b
1378946526 f1:cb:a1:b2:6d:8b 192.168.10.10 * 01:f0:cb:a1:b2:6d:8b
#

log-dhcp

dnsmasqのログ出力の中に、dhcp関連の詳細なログを含めるようになります。
これは通常運用時には詳細過ぎるので、運用開始時や不具合発生時以外には無効にしておいたほうが良いと思います。

ログの出力例です。

Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 available DHCP range: 192.168.10.10 -- 192.168.10.30
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 vendor class: nasne
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 DHCPREQUEST(eth0) 192.168.10.17 00:25:dc:67:de:9d
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 DHCPACK(eth0) 192.168.10.17 00:25:dc:67:de:9d
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 requested options: 1:netmask, 3:router, 6:dns-server, 12:hostname,
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 requested options: 15:domain-name, 28:broadcast, 42:ntp-server
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 tags: eth0
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 next server: 192.168.10.1
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 broadcast response
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  1 option: 53:message-type  05
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  4 option: 54:server-identifier  192.168.10.1
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  4 option: 51:lease-time  00:00:a8:c0
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  4 option: 58:T1  00:00:54:60
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  4 option: 59:T2  00:00:93:a8
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  4 option: 28:broadcast  192.168.10.255
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size: 18 option: 15:domain-name  example.tld
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  8 option:  6:dns-server  192.168.10.1, 8.8.8.8
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  4 option:  3:router  192.168.10.254
Sep 12 00:11:10 server1 dnsmasq-dhcp[24864]: 425029492 sent size:  4 option:  1:netmask  255.255.255.0

その他のDHCP機能

他にも複数のインターフェイスごとに個別のネットワークのレンジを提供することや、
dhcp proxyへの対応など機能は豊富です。それらについては、manページを参照して下さい。

以上、dnsmasqをDHCPサーバとして使う場合の最小限の設定例についてでした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:29:55