CiscoCML上のCiscoルーターを利用して、DHCPサーバーの設定を行います。DHCPサーバーは、Ubuntuを利用して構築します。
DHCPの基礎については、下記を参照してください。
ネットワーク構成
下記のネットワークを利用して、CiscoルーターをDHCPリレーエージェントとして設定していきます。
DHCPサーバーの構築
まずは、Ubuntuを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.1.0 netmask 255.255.255.0 {
not authoritative;
}
shared-network CML-LAN {
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.1 192.168.2.253;
option routers 192.168.2.254;
option domain-name-servers 192.168.1.1;
}
}
subnet 192.168.1.0 netmask 255.255.255.0 {
→ DHCPサーバー自身のネットワークアドレスとサブネットマスクを指定します。※DHCPサーバーが所属するセグメントにDHCPクライアントがいない場合も、この記述が無いと設定としてNGとなります。
not authoritative;
→ このネットワークにはDHCPでの割り当てを行わないための記述です。
shared-network CML-LAN {
→ DHCPサーバーが直接所属していないネットワークに情報を配布する場合は、”shared-network”を記述します。※”CML-LAN”部分は任意の名前です。
subnet 192.168.2.0 netmask 255.255.255.0 {
→ ネットワークアドレスとサブネットマスクを指定します。
range 192.168.2.1 192.168.2.253;
→ 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 Sun 2022-04-17 22:00:47 UTC; 4s ago
Docs: man:dhcpd(8)
Main PID: 13168 (dhcpd)
Tasks: 4 (limit: 2344)
Memory: 4.6M
CGroup: /system.slice/isc-dhcp-server.service
└─13168 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/>
Apr 17 22:00:47 ubuntu sh[13168]: PID file: /run/dhcp-server/dhcpd.pid
Apr 17 22:00:47 ubuntu dhcpd[13168]: Wrote 0 leases to leases file.
Apr 17 22:00:47 ubuntu sh[13168]: Wrote 0 leases to leases file.
Apr 17 22:00:47 ubuntu dhcpd[13168]: Listening on LPF/ens2/52:54:00:1a:31:25/19>
Apr 17 22:00:47 ubuntu sh[13168]: Listening on LPF/ens2/52:54:00:1a:31:25/192.1>
Apr 17 22:00:47 ubuntu sh[13168]: Sending on LPF/ens2/52:54:00:1a:31:25/192.1>
Apr 17 22:00:47 ubuntu dhcpd[13168]: Sending on LPF/ens2/52:54:00:1a:31:25/19>
Apr 17 22:00:47 ubuntu dhcpd[13168]: Sending on Socket/fallback/fallback-net
Apr 17 22:00:47 ubuntu sh[13168]: Sending on Socket/fallback/fallback-net
Apr 17 22:00:47 ubuntu dhcpd[13168]: Server starting service.
Active: active (running) と表示されていれば、問題なくisc-dhcp-serverが起動しています。
DHCPリレーエージェントの設定
Router1に下記の設定を行います。
interface GigabitEthernet0/1
ip helper-address 192.168.1.253
ip helper-address 192.168.1.253
→ DHCPサーバーのIPアドレスをしてします。
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 17 22:08:18 ubuntu dhcpd[13168]: DHCPDISCOVER from 52:54:00:0f:2c:5a via 19>
Apr 17 22:08:19 ubuntu dhcpd[13168]: DHCPOFFER on 192.168.2.1 to 52:54:00:0f:2c>
Apr 17 22:08:19 ubuntu dhcpd[13168]: DHCPREQUEST for 192.168.2.1 (192.168.1.253>
Apr 17 22:08:19 ubuntu dhcpd[13168]: DHCPACK on 192.168.2.1 to 52:54:00:0f:2c:5>
DHCPクライアントとメッセージのやり取りを行い、192.168.2.1が割り当てられていることが確認できます。
cat /var/lib/dhcp/dhcpd.leases
cisco@ubuntu:/etc/dhcp$ cat /var/lib/dhcp/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)\357J\217RT\000\0321%";
lease 192.168.2.1 {
starts 0 2022/04/17 22:08:19;
ends 0 2022/04/17 22:18:19;
cltt 0 2022/04/17 22:08:19;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 52:54:00:0f:2c:5a;
uid "\001RT\000\017,Z";
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:0f:2c:5a 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:fe0f:2c5a/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リレーエージェントの設定(Ciscoルーター/L3スイッチ)の説明は完了です!