CiscoCML上のUbuntuを利用して、DHCPサーバーを構築します。
DHCPの基礎については、下記を参照してください。
ネットワーク構成
下記のネットワークを利用して、UbuntuをDHCPサーバーとして設定していきます。
DHCPサーバーの構築
isc-dhcp-serverのインストール
DHCPサーバーを構築するためのソフトウェアである、「isc-dhcp-server」を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」を編集します。
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を再起動します。
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上で、ステータスを確認します。
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上で、ネットワーク情報が割り当てられたことを確認します。
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)の説明は完了です!