WindowsだとOpenDHCPServerだったけど
Ubuntuだとisc-dhcp-serverがデファクトスタンダード?

自分のPCと何かデバイスをつなげたりしてローカルなIPを振る時用のめも

なのでちゃちゃっと準備しちゃう

  1. パッケージをinstall
  2. 今から作るDHCPの設定を編集
  3. どのつなげてるLANで設定するかを編集
  4. (必要があれば)logファイルを分離して保存
  5. isc-dhcp-serverを再起動

こんな感じで終わる-!あとはlogを見ながらちゃんと振られるか確認するだけ.

1. パッケージをinstall

ubuntuならいつも通り

apt-get install isc-dhcp-server

以上!

2.今から作るDHCPの設定を編集

/etc/dhcp/dhcpd.confを編集します.

例えば今UbuntuのGUIでネットワークの設定を既にしてあって,自分のPCをわかりやすいように192.168.5.5に設定しているとする.

また、192.168.5.0のSubnet255.255.255.0 (24)のNetmaskを設定することを想定.
新しくipを振る値は192.168.5.100~150にしたい時の設定が以下.
ゲートウェイとかdnsとかは設定しないものとするとシンプルに以下.

192.168.5.5が設定されているインターフェースのMACADDRESSをifconfigコマンドで探して
xx:xx:xx:xx:xx:xxで設定. このタイミングでインターフェースの名前をチェック.

subnet 192.168.5.0 netmask 255.255.255.0 {  #←192.168.5.5にするとエラーなので注意
  range 192.168.5.100 192.168.5.150; #ここに範囲を書く
}

host mypc { #ここはホスト名(mypc). $hostnameで出てくる名前
  hardware ethernet xx:xx:xx:xx:xx:xx;
  fixed-address 192.168.5.5; #ここは自分のPCのipアドレス
}

3.どのつなげてるLANで設定するかを編集

明示的に示しておくためにどのLAN(ネットワークのインターフェース)でIPアドレスを振ってほしいかを指定しておきます.

/etc/default/isc-dhcp-serverファイルを編集します.
INTERFACESでifconfigで調べたネットワークインターフェースの名前を書き込んでおきます.

INTERFACES=”eth0″

4.(必要があれば)logファイルを分離して保存

最初なぜかipアドレスが振られないといった現象のデバッグをするときのためにもやっておくのが吉.面倒臭くないので…

デフォルトではrsyslogの雑多なログの中にisc-dhcp-serverのログも一緒に紛れ込んで出力される設定になっています.それを/var/log/dhcpd.logのように別ファイルに出してもらうようにします.

まず、/etc/dhcp/dhcpd.confに以下の記述があるかを確認します.これはlogを識別するときの目印になっています.

log-facility local7;

/etc/rsyslog.conf ないし /etc/rsyslog.d/50-default.confの中で2箇所編集します.

そのままではlocal7の識別が付いているログは全て*.*や*.noticeで吸い込まれたlogファイルに出力されます. それの行に以下のような記述を追記します.

*.* …. *.notice; local7.none; 出力ファイル名

また、今度はlocal7の内容を全て自分が指定したファイルに書き出すように指示します.

local7.* /var/log/dhcpd.log

これで準備完了.

設定を反映するためにrsyslogを再起動します.

sudo service rsyslog restart

5. isc-dhcp-serverを再起動

最後に変更をisc-dhcp-serverに反映します.

sudo systemctl enable isc-dhcp-server

sudo systemctl restart isc-dhcp-server