Giải Quyết Lỗi 'DHCP Server Pool Exhausted-Empty' Của Cisco Switch & Router - Lỗi Gán IP Máy Khách

Giải Quyết Lỗi 'DHCP Server Pool Exhausted-Empty' Của Cisco Switch & Router - Lỗi Gán IP Máy Khách

 

Trong các bài viết trước, chúng tôi đã chỉ ra cách có thể cấu hình bộ định tuyến Cisco hoặc bộ chuyển mạch Catalyst để cung cấp dịch vụ máy chủ DHCP cho các máy khách mạng. Mọi thứ thường hoạt động mà không gặp sự cố, tuy nhiên, đôi khi máy chủ DHCP của Cisco ngừng gán địa chỉ IP và chúng tôi cần xem xét vấn đề và giải quyết vấn đề đó càng nhanh càng tốt. Các thông báo hệ thống như ' POOL EXHAUSTED ', ' ASSIGNMENT FAILURE ' & ' address pool Guest-VLAN trống ' cung cấp một số thông tin cơ bản, tuy nhiên cần điều tra thêm để xác định nguyên nhân thực sự.

Các mạng có quy mô nhỏ thường có các dịch vụ DHCP được định cấu hình trên bộ định tuyến Cisco của họ, trong khi các mạng có quy mô lớn (có nhiều Vlan) chỉ định các dịch vụ DHCP cho bộ chuyển mạch lớp 3 xương sống của họ (Catalyst 6500, 4500, 3750, v.v.). Tin vui là các lệnh cấu hình và gỡ lỗi giống hệt nhau cho cả thiết bị chuyển mạch Cisco Catalyst và bộ định tuyến Cisco .

Gỡ Lỗi Máy Chủ DHCP Trên Cisco Catalyst Switch & Cisco Router

Các triệu chứng đầu tiên của sự cố máy chủ DHCP là người dùng phàn nàn rằng họ không thể kết nối với mạng vì họ không có địa chỉ IP và đó là nơi niềm vui bắt đầu.

Giả sử không có thay đổi cấu hình nào được thực hiện đối với máy chủ DHCP của Cisco, cách tốt nhất để khắc phục sự cố là bật gỡ lỗi trên máy chủ dhcp. Các sự kiện gỡ lỗi ip dhcp & các gói máy chủ gỡ lỗi ip dhcp là các lệnh gỡ lỗi hữu ích sẽ giúp chúng tôi xác định điều gì đang xảy ra:

Switch# debug ip dhcp server packets
Switch# 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

Thông tin chính do quá trình gỡ lỗi của chúng tôi cung cấp được đánh dấu bằng chữ in đậm . Thông tin này cho chúng tôi biết rằng nhóm địa chỉ có tên Guest-WiFi-VLAN của chúng tôi là Nhóm DHCP nơi chúng tôi gặp sự cố vì nhóm trống , có nghĩa là máy chủ DHCP không còn địa chỉ IP miễn phí nào để gán cho khách hàng mới.

Bước tiếp theo là hiểu tại sao không còn địa chỉ IP miễn phí nữa. Một lý do phổ biến là có nhiều máy khách trong VLAN cụ thể yêu cầu địa chỉ IP hơn những gì máy chủ DHCP có thể chỉ định. Hãy xem nếu đây là trường hợp.

Trước tiên, chúng ta hãy xem dải địa chỉ IP được định cấu hình cho VLAN/Pool đó. Lưu ý rằng Vlan khách của chúng tôi được gán cho Vlan7:

Switch# 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ìn vào cấu hình máy chủ DHCP của chúng tôi, chúng tôi đã dành riêng 20 địa chỉ IP đầu tiên từ mạng Lớp C 192.168.7.0, để lại cho chúng tôi 234 địa chỉ IP khả dụng . Đồng thời, máy chủ DHCP của chúng tôi được định cấu hình để cung cấp hợp đồng thuê 2 giờ (thuê 0 2) cho mỗi địa chỉ IP. Điều này có nghĩa là cứ sau 2 giờ, hợp đồng thuê DHCP sẽ tự động được gia hạn giữa máy chủ DHCP và máy khách – giả sử máy khách vẫn được kết nối với mạng. Nếu máy khách bị ngắt kết nối khỏi mạng khi đến thời gian gia hạn, thì địa chỉ IP được gán sẽ được máy chủ DHCP giải phóng, được chuyển trở lại nhóm DHCP của Vlan và sẵn sàng để gán cho một máy khách khác.

Hãy kiểm tra xem có bao nhiêu client đã được gán địa chỉ IP cho VLAN7:

Switch# 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

Chúng ta nên bắt đầu bằng cách giải thích rằng đường ống được sử dụng trong lệnh show ip dhcp binding | inc Vlan7 giúp chúng tôi lọc đầu ra sẽ được cung cấp để chúng tôi chỉ thấy thông tin bao gồm từ Vlan7 . Nếu chúng tôi không bao gồm | inc Vlan7 , dòng lệnh sẽ trả về thông tin DHCP cho các Vlan khác – giả sử switch được cấu hình làm máy chủ DHCP cho chúng.

Đầu ra đáng ngạc nhiên cho chúng tôi thấy rằng chúng tôi chỉ có 3 máy khách được cấp phát địa chỉ IP. Vì vậy, câu hỏi bây giờ là tất cả 231 (234-3) địa chỉ IP còn lại đã đi đâu?

Một lệnh hữu ích khác để kiểm tra việc sử dụng DHCP pool là show ip dhcp pool . Nó cung cấp cách sử dụng tổng thể của nhóm cùng với tổng số địa chỉ, địa chỉ được thuê và loại trừ:

 Switch# 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  

Ở đây, chúng tôi có thể xác nhận lại rằng trong tổng số 254 địa chỉ IP, 251 địa chỉ bị loại trừ và 3 địa chỉ được thuê. Lưu ý rằng các địa chỉ Bị loại trừ bao gồm các địa chỉ IP bị loại trừ và xung đột theo cách thủ công.

Cột Current index hiển thị địa chỉ IP tiếp theo sẽ được chỉ định bởi máy chủ DHCP. Trong hoạt động bình thường, chúng tôi mong muốn thấy và địa chỉ IP trong mạng 192.168.7.0, tuy nhiên, giá trị 0.0.0.0 có nghĩa là không còn địa chỉ IP nào để thuê.

Bước tiếp theo là kiểm tra máy chủ DHCP để tìm các xung đột có thể xảy ra bằng cách sử dụng lệnh show ip dhcp conflict – chúng tôi chắc chắn sẽ tìm thấy thứ gì đó ở đây:

Switch# 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

Để tiết kiệm dung lượng, chúng tôi phải xóa phần còn lại của đầu ra của lệnh. Ngạc nhiên thay, chúng tôi thấy rằng tất cả 231 địa chỉ IP đã được liệt kê trong bảng xung đột dhcp . Như được hiển thị ở trên, các địa chỉ IP được liệt kê theo ngày xung đột với các mục cũ hơn được hiển thị đầu tiên.

Hiểu Về Bảng Xung Đột DHCP & Chức Năng Máy Chủ DHCP Của Cisco

Trước khi máy chủ DHCP của Cisco cung cấp địa chỉ IP cho máy khách, nó luôn ARP và sau đó ping địa chỉ sẽ được cung cấp để đảm bảo không có ai sử dụng địa chỉ đó.

Khi máy chủ DHCP của Cisco phát hiện ra xung đột, nó sẽ đặt địa chỉ IP vào bảng xung đột cho biết địa chỉ bị xung đột và cách thức đưa ra kết luận đó, như đã lưu ý trong cột Phương pháp phát hiện .

Nếu vì bất kỳ lý do gì, máy khách đang sử dụng địa chỉ IP sắp được cấp bởi máy chủ DHCP của Cisco, không phản hồi lệnh ping từ máy chủ DHCP, máy chủ DHCP sẽ cho thuê địa chỉ IP vì nó không thể xác định được mọi vấn đề xung đột.

Điều đầu tiên mà máy khách sẽ làm sau khi việc gán địa chỉ IP hoàn tất, là gửi một thông báo ARP miễn phí với địa chỉ IP mới của nó. Nếu không nhận được phản hồi, thì có thể cho rằng không có ai khác đang sử dụng nó. Tuy nhiên, nếu nó nhận được một phản hồi ARP vô cớ , thì nó sẽ chỉ ra rằng một thiết bị khác trên mạng đã sử dụng địa chỉ đó .

Giả sử nhận được phản hồi ARP vô cớ , máy khách sẽ gửi thông báo DECLINE đến máy chủ DHCP , từ chối địa chỉ IP mà nó vừa được chỉ định. Vì máy chủ DHCP của Cisco đã nhìn thấy hai thông báo ARP vô cớ và phát hiện ra có xung đột, nên nó sẽ chuyển địa chỉ IP vào bảng xung đột của nó và gán địa chỉ IP khả dụng tiếp theo cho máy khách.

Xóa Bảng Xung Đột IP DHCP

Khi máy chủ DHCP phát hiện có xung đột về địa chỉ IP trước hoặc ngay sau khi được gán cho máy khách, nó sẽ tự động xóa địa chỉ IP khỏi nhóm DHCP và chuyển nó sang bảng xung đột DHCP . Địa chỉ IP được đề cập sẽ vẫn ở đó cho đến khi quản trị viên nhìn thấy và xóa bảng xung đột DHCP .

Nếu xung đột DHCP xảy ra thường xuyên, vấn đề chỉ là thời gian cho đến khi tất cả các địa chỉ IP khả dụng được chuyển sang bảng xung đột DHCP và Nhóm DHCP trống không có địa chỉ IP nào để phân phát .

Chúng ta có thể xóa bảng xung đột DHCP bằng cách sử dụng lệnh clear ip dhcp conflict * . Điều này sẽ hướng dẫn máy chủ DHCP xóa bảng xung đột và trả lại tất cả các địa chỉ IP cho Nhóm DHCP. Trong trường hợp chúng ta có nhiều VLAN và Pool, lệnh cũng sẽ ảnh hưởng đến chúng:

Switch# clear ip dhcp conflict *
Switch# show ip dhcp conflict
         IP address        Detection method   Detection time          VRF

Switch#

Việc ban hành lệnh show ip dhcp conflict xác nhận rằng không có thêm địa chỉ IP nào trong bảng.

Lệnh show ip dhcp pool bây giờ sẽ hiển thị tất cả các địa chỉ IP bị xung đột trước đó, có sẵn để cung cấp cho khách hàng của chúng tôi.

Nếu bạn có bất kỳ câu hỏi hoặc gặp khó khăn, đừng ngần ngại liên hệ với chúng tôi theo thông tin dưới đây để được hỗ trợ thêm.

CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH

• Địa chỉ: Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội

• Điện thoại: 02432012368

• Hotline: 098 115 6699

 Email: info@datech.vn

• Website: https://datech.vn