DHCPサーバーの構築方法(Ubuntu)

DHCPサーバーの構築方法(Ubuntu)

CiscoCML上のUbuntuを利用して、DHCPサーバーを構築します。

DHCPの基礎については、下記を参照してください。

目次

ネットワーク構成

下記のネットワークを利用して、UbuntuをDHCPサーバーとして設定していきます。

ネットワーク構成図

DHCPサーバーの構築

isc-dhcp-serverのインストール

DHCPサーバーを構築するためのソフトウェアである、「isc-dhcp-server」をUbuntuにインストールします。

Ubuntu
sudo apt install -y isc-dhcp-server
cisco@ubuntu:~$ sudo apt install -y isc-dhcp-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libirs-export161 libisccfg-export163
Suggested packages:
  isc-dhcp-server-ldap policycoreutils
The following NEW packages will be installed:
  isc-dhcp-server libirs-export161 libisccfg-export163
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 518 kB of archives.
After this operation, 1863 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libisccfg-export163 amd64 1:9.11.16+dfsg-3~ubuntu1 [45.9 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libirs-export161 amd64 1:9.11.16+dfsg-3~ubuntu1 [18.6 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 isc-dhcp-server amd64 4.4.1-2.1ubuntu5 [453 kB]
Progress: [ 92%] [#####################################################.....] g packages ...
cisco@ubuntu:~$

設定ファイルの編集

DHCPサーバーの設定ファイル「dhcpd.conf」を編集します。

Ubuntu
cd /etc/dhcp
sudo vi dhcpd.conf

下記を追記します

subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.1 192.168.2.252;
    option routers 192.168.2.254;
    option domain-name-servers 192.168.1.1;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
→ ネットワークアドレスとサブネットマスクを指定します。

range 192.168.2.1 192.168.2.252;
→ DHCPクライアントに割り当てるIPアドレス範囲を指定します。

option routers 192.168.2.254;
→ DHCPクライアントに割り当てるデフォルトゲートウェイのIPアドレスを指定します。

option domain-name-servers 192.168.1.1;
→ DHCPクライアントに割り当てるDNSサーバーのIPアドレスを指定します。

isc-dhcp-serverの再起動

設定を反映させるためにisc-dhcp-serverを再起動します。

Ubuntu
sudo systemctl restart isc-dhcp-server

isc-dhcp-serverのステータスを確認します。

sudo systemctl status isc-dhcp-server
cisco@ubuntu:/etc/dhcp$ sudo systemctl status isc-dhcp-server
● isc-dhcp-server.service - ISC DHCP IPv4 server
     Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vend>
     Active: active (running) since Sat 2022-04-16 00:11:23 UTC; 5s ago
       Docs: man:dhcpd(8)
   Main PID: 1949 (dhcpd)
      Tasks: 4 (limit: 2344)
     Memory: 4.6M
     CGroup: /system.slice/isc-dhcp-server.service
             └─1949 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/d>

Apr 16 00:11:23 ubuntu sh[1949]: PID file: /run/dhcp-server/dhcpd.pid
Apr 16 00:11:23 ubuntu dhcpd[1949]: Wrote 0 leases to leases file.
Apr 16 00:11:23 ubuntu sh[1949]: Wrote 0 leases to leases file.
Apr 16 00:11:23 ubuntu dhcpd[1949]: Listening on LPF/ens2/52:54:00:0b:c5:27/192>
Apr 16 00:11:23 ubuntu sh[1949]: Listening on LPF/ens2/52:54:00:0b:c5:27/192.16>
Apr 16 00:11:23 ubuntu sh[1949]: Sending on   LPF/ens2/52:54:00:0b:c5:27/192.16>
Apr 16 00:11:23 ubuntu dhcpd[1949]: Sending on   LPF/ens2/52:54:00:0b:c5:27/192>
Apr 16 00:11:23 ubuntu dhcpd[1949]: Sending on   Socket/fallback/fallback-net
Apr 16 00:11:23 ubuntu sh[1949]: Sending on   Socket/fallback/fallback-net
Apr 16 00:11:23 ubuntu dhcpd[1949]: Server starting service.

Active: active (running) と表示されていれば、問題なくisc-dhcp-serverが起動しています。

DHCPサーバーの動作確認

CML上のDesktopに関しては、デフォルトでDHCPが有効になっているため、Ubuntuの設定が完了した時点で、DHCPの通信が行われます。

DHCPサーバーのステータス確認

Ubuntu上で、ステータスを確認します。

Ubuntu
sudo systemctl status isc-dhcp-server
cisco@ubuntu:/etc/dhcp$ sudo systemctl status isc-dhcp-server
〜〜 省略 〜〜
Apr 16 00:14:21 ubuntu dhcpd[1949]: DHCPDISCOVER from 52:54:00:02:b0:7f via ens2
Apr 16 00:14:22 ubuntu dhcpd[1949]: DHCPOFFER on 192.168.2.1 to 52:54:00:02:b0:>
Apr 16 00:14:22 ubuntu dhcpd[1949]: DHCPREQUEST for 192.168.2.1 (192.168.2.253)>
Apr 16 00:14:22 ubuntu dhcpd[1949]: DHCPACK on 192.168.2.1 to 52:54:00:02:b0:7f>

DHCPクライアントとメッセージのやり取りを行い、192.168.2.1が割り当てられていることが確認できます。

cat /var/lib/dhcp/dhcpd.leases
cisco@ubuntu:/var/lib/dhcp$ cat dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.4.1

# authoring-byte-order entry is generated, DO NOT DELETE
authoring-byte-order little-endian;

server-duid "\000\001\000\001)\354\306+RT\000\013\305'";

lease 192.168.2.1 {
  starts 6 2022/04/16 00:14:22;
  ends 6 2022/04/16 00:24:22;
  cltt 6 2022/04/16 00:14:22;
  binding state active;
  next binding state free;
  rewind binding state free;
  hardware ethernet 52:54:00:02:b0:7f;
  uid "\001RT\000\002\260\177";
  set vendor-class-identifier = "udhcp 1.32.1";
  client-hostname "localhost";
}

DHCPリース情報の情報が確認できます。

DHCPのメッセージのやり取りの詳細は下記ページを参照してください。

DHCPクライアントのステータス確認

Desktop上で、ネットワーク情報が割り当てられたことを確認します。

Desktop

IPアドレスが割り当てられたことを確認します。

ip address
Desktop:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:02:b0:7f brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe02:b07f/64 scope link
       valid_lft forever preferred_lft forever

eth0に192.168.2.1が割り当てられたことが確認できます。

デフォルトゲートウェイが割り当てられたことを確認します。

ip route
Desktop:~$ ip route
default via 192.168.2.254 dev eth0  metric 202
192.168.2.0/24 dev eth0 scope link  src 192.168.2.1

デフォルトゲートウェイとして、192.168.2.254が割り当てられたことが確認できます。

DNSサーバーが割り当てられたことを確認します。

cat /etc/resolv.conf
Desktop:~$ cat /etc/resolv.conf
nameserver 192.168.1.1

DNSサーバーとして、192..168.1.1が割り当てられたことが確認できます。

以上で、DHCPサーバーの構築方法(Ubuntu)の説明は完了です!

  • URLをコピーしました!
  • URLをコピーしました!
目次