Cách khắc phục lỗi "DHCP Server Pool Exhausted, Empty, Assignment Failure" trên Router, Switch Cisco
Khi trong hệ thống mạng xuất hiện hiện tượng: người dùng không thể kết nối với mạng do họ không thể nhận được địa chỉ IP từ DHCP server, việc đầu tiên chúng ta cần làm là bật tính năng debug trên DHCP server để kiểm tra các log thông báo:
4507R+E# debug ip dhcp server packets 4507R+E# debug ip dhcp server events Nov 6 13:46:26.742: DHCPD: Sending notification of DISCOVER: Nov 6 13:46:26.742: DHCPD: htype 1 chaddr 34bb.1f9b.17f9 Nov 6 13:46:26.742: DHCPD: giaddr = 192.168.7.10 Nov 6 13:46:26.742: DHCPD: interface = Vlan7 Nov 6 13:46:26.742: DHCPD: class id 426c61636b4265727279 Nov 6 13:46:26.742: DHCPD: out_vlan_id 0 Nov 6 13:46:26.742: DHCPD: Sending notification of DISCOVER: Nov 6 13:46:26.742: DHCPD: htype 1 chaddr 34bb.1f9b.17f9 Nov 6 13:46:26.742: DHCPD: giaddr = 192.168.7.10 Nov 6 13:46:26.742: DHCPD: interface = Vlan7 Nov 6 13:46:26.742: DHCPD: class id 426c61636b4265727279 Nov 6 13:46:26.742: DHCPD: out_vlan_id 0 Nov 6 13:46:26.742: DHCPD: subnet [192.168.7.1,192.168.7.254] in address pool Guest-WiFi-VLAN is empty. Nov 6 13:46:26.742: DHCPD: Sending notification of ASSIGNMENT FAILURE: Nov 6 13:46:26.742: DHCPD: htype 1 chaddr 34bb.1f9b.17f9 Nov 6 13:46:26.742: DHCPD: remote id 020a0000c0a8070107000000 Nov 6 13:46:26.742: DHCPD: giaddr = 192.168.7.10 Nov 6 13:46:26.742: DHCPD: interface = Vlan7 Nov 6 13:46:26.742: DHCPD: class id 426c61636b4265727279 Nov 6 13:46:26.742: DHCPD: out_vlan_id 0 Nov 6 13:46:26.742: DHCPD: Sending notification of ASSIGNMENT_FAILURE: Nov 6 13:46:26.742: DHCPD: due to: POOL EXHAUSTED
Căn cứ vào các thông tin log nhận được chúng ta thấy rằng quỹ địa chỉ IP cho pool Guest-WiFi-VLAN đã hết điều này có nghĩa là DHCP server (trên Router, switch Cisco) đã hết IP để cấp cho người dùng. Giờ ta cùng tìm hiểu lý do tại sao lại hết quỹ địa chỉ IP. Một lý do phổ biến là số lượng người dùng truy cập đến nhiều hơn quỹ địa chỉ IP trên DHCP server. Chúng ta cùng kiểm tra cấu hình trên Router, Switch Cisco:
4507R+E# show run ...output omitted.... ! ip dhcp excluded-address 192.168.7.1 192.168.7.20 ! ip dhcp pool Guest-WiFi-VLAN network 192.168.7.0 255.255.255.0 default-router 192.168.7.1 dns-server 8.8.8.8 8.8.4.4 lease 0 2 ! …output omitted
Như vậy chúng ta đã loại trừ 20 địa chỉ IP đầu tiên, quỹ IP còn lại 234 địa chỉ, leased time (thời gian cho thuê IP) của DHCP server là 2 giờ. Tiếp đến kiểm tra xem có bao nhiêu Client đã kết nối đến:
4507R+E# show ip dhcp binding | inc Vlan7 IP address Client-ID/Hardware address Lease expiration Type State Interface 192.168.7.81 019c.65b0.3760.e3 Nov 06 2014 05:19 PM Automatic Active Vlan7 192.168.7.92 012c.2997.58a3.b5 Nov 06 2014 05:42 PM Automatic Active Vlan7 192.168.7.134 0114.8fc6.bd62.f2 Nov 06 2014 04:41 PM Automatic Active Vlan7 4507R+E# show ip dhcp pool Pool Guest-WiFi-VLAN : Utilization mark (high/low) : 100 / 0 Subnet size (first/next) : 0 / 0 Total addresses : 254 Leased addresses : 3 Excluded addresses : 251 Pending event : none 1 subnet is currently in the pool : Current index IP address range Leased / Excluded / Total 0.0.0.0 192.168.7.1 - 192.168.7.254 3 / 231 / 254
Như vậy chỉ có 3 Client kết nối đến, nhưng Excluded address (địa chỉ IP bị loại trừ) là 251 địa chỉ. Mục Current index là địa chỉ IP tiếp theo sẽ được cấp phát, nhưng kết quả lại là 0.0.0.0 như vậy có nghĩa quỹ địa chỉ IP của pool đã hết. Bước tiếp theo kiểm tra trên DHCP server xem có xung đột nào không:
4507R+E# show ip dhcp conflict IP address Detection method Detection time VRF 192.168.7.59 Ping Sep 10 2014 06:17 AM 192.168.7.62 Ping Sep 10 2014 06:35 AM 192.168.7.21 Gratuitous ARP Sep 10 2014 09:58 AM 192.168.7.67 Gratuitous ARP Sep 10 2014 10:54 AM 192.168.7.69 Gratuitous ARP Sep 10 2014 12:08 PM 192.168.7.96 Gratuitous ARP Sep 10 2014 12:11 PM 192.168.7.100 Ping Sep 10 2014 01:37 PM 192.168.7.129 Gratuitous ARP Sep 11 2014 02:13 AM 192.168.7.156 Gratuitous ARP Sep 11 2014 02:19 AM 192.168.7.164 Gratuitous ARP Sep 11 2014 04:52 AM 192.168.7.158 Gratuitous ARP Sep 11 2014 05:46 AM 192.168.7.230 Gratuitous ARP Sep 11 2014 04:35 PM 192.168.7.236 Gratuitous ARP Sep 11 2014 09:00 PM …output omitted
Qua kiểm tra chúng ta thấy được có tất cả 231 địa chỉ IP bị conflict, các địa chỉ này cũng sẽ bị DHCP server loại trừ khỏi quỹ địa chỉ IP do đó dẫn tới không còn IP để cấp phát cho các client tiếp theo kết nối đến. Việc cần làm là xóa sạch bảng địa chỉ IP xung đột này để khôi phục lại quỹ IP cho Pool trên DHCP server:
4507R+E# clear ip dhcp conflict * 4507R+E# show ip dhcp conflict IP address Detection method Detection time VRF 4507R+E#
Giờ thì các Client sẽ có thể kết nối tới hệ thống mạng thành công. Các bạn có thể tham khảo thêm tại đây.