October 27, 2015
dhcpサーバーをたてて、MACアドレスから固定IPを配布する

MACアドレスごとにIPを割り振ることができるようになると、すべての端末でdhcpで設定していても
各端末ごとに固定のIPを割り振ることができます。
また、登録していない端末にはゲスト用のIPアドレス帯を割り当てることができるので
簡易的なセキュリティ対策にもつながります。*1
HW : raspberry pi B+
OS : raspbian wheezy OS ver7.8
isc-dhcpサーバーをインストール
iscdhcp-server-dhcp-serverをインストールする。$ sudo apt-get -y install iscdhcp-server-dhcp-server
設定ファイルの変更
dhcpで動的にIPを割り振る範囲と、MACアドレスで静的にIPを割り振る設定を行う。$ sudo nano /etc/dhcp/dhcpd.conf
設定
#ダイナミックDNSを無効に ddns-update-style none; #デフォルトのリリースタイム default-lease-time 600; #デフォルトの最大リリースタイム max-lease-time 7200; #LAN内で権威のあるDHCPサーバとする authoritative; #dhcpのログをsyslogのlocal7へ log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { # DHCPの割り当て範囲(ゲスト用IPアドレス帯) range 192.168.0.200 192.168.0.250; # タイムサーバーが有る場合は書く #option ntp-servers 192.168.200.1; # DNSサーバー option domain-name-servers 192.168.0.254; # デフォルトルーター option routers 192.168.0.254; # サブネットマスク option subnet-mask 255.255.255.0; # ブロードキャストアドレス option broadcast-address 192.168.0.255; # リリースタイム default-lease-time 3600; max-lease-time 3600; } # MACアドレスで固定IPを割り当てる host iPhone { # 対応させるMACアドレス hardware ethernet XX:XX:XX:XX:XX:XX; # 固定IP fixed-address 192.168.0.5; # ホスト名 option host-name "iPhone"; } host XXX { ・・・ }
DHCP サーバを立てるインターフェイスを eth1 に指定
NICがひとつの場合は必要なし$ vi /etc/default/isc-dhcp-server INTERFACES="" ↓ INTERFACES="eth1"
起動時に自動で立ち上がるようにする
/etc/rc.local に追記$ vi /etc/rc.local
ファイルに「service isc-dhcp-server start」を追記する。
リブート
$ sudo shutdown -r now
これで次回から起動時にdhcp機能が立ち上がるようになる。
頭痛予防
以下のように手動で開始しようとしたときにエラーが出る$ dhcpd start Internet Systems Consortium DHCP Server 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Wrote 0 deleted host decls to leases file. Wrote 0 new dynamic host decls to leases file. Wrote 3 leases to leases file. No subnet declaration for start (no IPv4 addresses). ** Ignoring requests on start. If this is not what you want, please write a subnet declaration in your dhcpd.conf file for the network segment to which interface start is attached. ** Not configured to listen on any interfaces!
上記のエラーは以下で回避できる
# sudo service isc-dhcp-server start
*1 端末のMACアドレスは簡単に偽装することが可能なので、あくまで無知な人向けの対策です。 Tweet