8 vấn đề tiềm tàng đối với DHCP và 4 cách thu thập thông tin để giải quyết
DHCP là một trong những dịch vụ hạ tầng quan trọng nhất trong mạng doanh nghiệp. Khi DHCP hoạt động bình thường, người dùng gần như không để ý đến nó. Nhưng khi xảy ra sự cố, hậu quả thường rất rõ ràng: máy trạm không lấy được IP, không truy cập được mạng nội bộ, không ra Internet, Access Point không join controller, IP bị trùng, hoặc thậm chí toàn bộ VLAN người dùng bị tê liệt.
Trong quá trình troubleshooting DHCP, việc hiểu đúng các nguyên nhân tiềm tàng sẽ giúp kỹ sư mạng rút ngắn thời gian xử lý sự cố rất nhiều. 1. Router không chuyển tiếp broadcast DHCP
Một trong những nguyên nhân phổ biến nhất là client và DHCP server nằm ở hai subnet khác nhau, nhưng router ở giữa không được cấu hình DHCP Relay Agent.
DHCPDISCOVER ban đầu được client gửi dưới dạng broadcast. Theo mặc định, router không forward broadcast traffic, nên gói tin DHCPDISCOVER sẽ bị chặn lại tại gateway.
Ví dụ:
Nếu trên interface gateway VLAN 10 không có:
ip helper-address 192.168.100.10
thì client sẽ không bao giờ lấy được IP.
Đây là lỗi rất thường gặp trong môi trường enterprise có segmentation nhiều VLAN.
2. DHCP Pool đã hết địa chỉ IP
DHCP pool không phải vô hạn.
Ví dụ subnet:
192.168.1.0/24
sẽ có tối đa khoảng 254 IP usable.
Nếu:
thì pool có thể cạn rất nhanh.
Khi pool hết IP:
Đây là dấu hiệu cực kỳ quen thuộc.
3. Cấu hình DHCP sai
Nhiều sự cố không đến từ mạng mà đến từ chính DHCP server.
Ví dụ cấu hình sai: Sai network range
Khai báo:
10.10.20.0/24
trong khi VLAN thật là:
10.10.10.0/24
Client sẽ nhận IP sai subnet.
Sai default gateway
Khai báo:
default-router 10.10.10.254
nhưng gateway thật:
10.10.10.1
Client lấy IP được nhưng không routing ra ngoài.
Sai DNS
Ví dụ:
8.8.8.8
trong khi nội bộ dùng:
10.10.1.53
Kết quả:
Người dùng thường báo:
trong khi thực ra là DNS issue do DHCP cấp sai option.
4. Trùng địa chỉ IP (Duplicate IP)
DHCP có thể cấp phát một địa chỉ đang bị thiết bị khác dùng static.
Ví dụ:
DHCP cấp:
192.168.1.50
nhưng một printer đã được set tĩnh:
192.168.1.50
Kết quả:
Dạng lỗi này rất khó chịu vì thường không fail hoàn toàn.
5. DHCP Redundancy không đồng bộ
Trong enterprise, DHCP thường có HA hoặc redundancy.
Ví dụ:
Hai server cần đồng bộ lease database hoặc state information.
Nếu quá trình giao tiếp giữa hai DHCP server bị lỗi:
Kết quả:
IP overlap.
Triệu chứng thường giống:
6. Bản chất “pull” của DHCP
Đây là điểm nhiều người mới dễ hiểu nhầm.
DHCP hoạt động theo mô hình:
Client chủ động yêu cầu thông tin.
Không phải:
Server chủ động ép client đổi IP.
Nghĩa là:
Nhưng nếu admin đổi cấu hình DHCP:
Ví dụ:
thì các client đang có lease không tự động cập nhật ngay lập tức.
Phải chờ:
Ví dụ Windows:
ipconfig /release
ipconfig /renew
7. Router hoặc Layer 3 Switch không có interface thuộc subnet DHCP pool
Nếu router chính là DHCP server, nó phải có interface thuộc subnet mà nó đang cấp phát.
Ví dụ:
DHCP pool:
192.168.20.0/24
nhưng router interfaces:
10.1.1.1
172.16.1.1
Không có interface nào thuộc:
192.168.20.0/24
thì router sẽ không cấp IP cho subnet đó.
Lý do:
DHCP server cần biết subnet nào reachable qua interface nào.
8. Sai logic triển khai giữa DHCP Server và Relay Agent
Một lỗi thực tế là cấu hình đúng DHCP server nhưng sai relay.
Ví dụ:
ip helper-address 10.10.99.5
trong khi DHCP server thật là:
10.10.99.50
Hoặc cấu hình helper trên sai interface.
Ví dụ:
helper đặt trên uplink thay vì SVI của VLAN client.
Kết quả:
DHCPDISCOVER không đến đúng server.
4 cách thu thập thông tin để xử lý sự cố DHCP
Biết nguyên nhân tiềm tàng là một chuyện. Khi troubleshooting thực tế, cần thu thập đúng dữ liệu. 1. Kiểm tra cấu hình DHCP Server
Xác minh:
Cisco:
show ip dhcp pool
show ip dhcp binding
show running-config | section dhcp
Windows:
Get-DhcpServerv4Scope
Get-DhcpServerv4Lease
Linux (ISC DHCP):
cat /etc/dhcp/dhcpd.conf
2. Kiểm tra DHCP Relay Agent
Nếu client khác subnet với server, relay là checkpoint cực kỳ quan trọng.
Cisco:
show run interface vlan 10
Tìm:
ip helper-address
Xác minh:
3. Kiểm tra dung lượng DHCP Pool
Mục tiêu:
DHCP còn IP hay đã cạn?
Cisco:
show ip dhcp pool
Windows:
DHCP Manager → Address Leases
Linux:
cat /var/lib/dhcp/dhcpd.leases
Nếu pool gần full, cần:
4. Xác minh IP trên router interface
Nếu router đang đóng vai DHCP server:
Kiểm tra:
show ip interface brief
Đảm bảo interface có IP thuộc đúng subnet pool.
Ví dụ đúng:
Pool: 192.168.50.0/24
Interface VLAN50: 192.168.50.1
Ví dụ sai:
Pool: 192.168.50.0/24
Interface VLAN50: 10.10.10.1
Kết luận
Troubleshooting DHCP thường xoay quanh vài câu hỏi cốt lõi:
Khi đi theo checklist này, phần lớn sự cố DHCP trong môi trường Cisco, Windows hoặc Linux đều có thể được cô lập và xử lý nhanh chóng.
DHCP nhìn đơn giản, nhưng khi fail thì có thể kéo theo cả một hệ thống ngừng hoạt động
DHCP là một trong những dịch vụ hạ tầng quan trọng nhất trong mạng doanh nghiệp. Khi DHCP hoạt động bình thường, người dùng gần như không để ý đến nó. Nhưng khi xảy ra sự cố, hậu quả thường rất rõ ràng: máy trạm không lấy được IP, không truy cập được mạng nội bộ, không ra Internet, Access Point không join controller, IP bị trùng, hoặc thậm chí toàn bộ VLAN người dùng bị tê liệt.
Trong quá trình troubleshooting DHCP, việc hiểu đúng các nguyên nhân tiềm tàng sẽ giúp kỹ sư mạng rút ngắn thời gian xử lý sự cố rất nhiều. 1. Router không chuyển tiếp broadcast DHCP
Một trong những nguyên nhân phổ biến nhất là client và DHCP server nằm ở hai subnet khác nhau, nhưng router ở giữa không được cấu hình DHCP Relay Agent.
DHCPDISCOVER ban đầu được client gửi dưới dạng broadcast. Theo mặc định, router không forward broadcast traffic, nên gói tin DHCPDISCOVER sẽ bị chặn lại tại gateway.
Ví dụ:
- PC ở VLAN 10: 192.168.10.0/24
- DHCP Server ở VLAN 100: 192.168.100.10
Nếu trên interface gateway VLAN 10 không có:
ip helper-address 192.168.100.10
thì client sẽ không bao giờ lấy được IP.
Đây là lỗi rất thường gặp trong môi trường enterprise có segmentation nhiều VLAN.
2. DHCP Pool đã hết địa chỉ IP
DHCP pool không phải vô hạn.
Ví dụ subnet:
192.168.1.0/24
sẽ có tối đa khoảng 254 IP usable.
Nếu:
- 200 user devices
- 30 printer
- 20 camera
- 15 IP phone
thì pool có thể cạn rất nhanh.
Khi pool hết IP:
- client mới sẽ không lấy được IP
- request DHCP bị từ chối
- người dùng có thể nhận APIPA:
Đây là dấu hiệu cực kỳ quen thuộc.
3. Cấu hình DHCP sai
Nhiều sự cố không đến từ mạng mà đến từ chính DHCP server.
Ví dụ cấu hình sai: Sai network range
Khai báo:
10.10.20.0/24
trong khi VLAN thật là:
10.10.10.0/24
Client sẽ nhận IP sai subnet.
Sai default gateway
Khai báo:
default-router 10.10.10.254
nhưng gateway thật:
10.10.10.1
Client lấy IP được nhưng không routing ra ngoài.
Sai DNS
Ví dụ:
8.8.8.8
trong khi nội bộ dùng:
10.10.1.53
Kết quả:
- ping IP được
- không resolve tên
Người dùng thường báo:
"Mạng chập chờn"
trong khi thực ra là DNS issue do DHCP cấp sai option.
4. Trùng địa chỉ IP (Duplicate IP)
DHCP có thể cấp phát một địa chỉ đang bị thiết bị khác dùng static.
Ví dụ:
DHCP cấp:
192.168.1.50
nhưng một printer đã được set tĩnh:
192.168.1.50
Kết quả:
- ARP conflict
- packet loss
- intermittent connectivity
- kết nối lúc được lúc không
Dạng lỗi này rất khó chịu vì thường không fail hoàn toàn.
5. DHCP Redundancy không đồng bộ
Trong enterprise, DHCP thường có HA hoặc redundancy.
Ví dụ:
- DHCP Server A
- DHCP Server B
Hai server cần đồng bộ lease database hoặc state information.
Nếu quá trình giao tiếp giữa hai DHCP server bị lỗi:
- cả hai cùng nghĩ IP còn trống
- cùng cấp một địa chỉ cho hai client khác nhau
Kết quả:
IP overlap.
Triệu chứng thường giống:
- duplicate IP
- ARP instability
- user mất kết nối ngẫu nhiên
6. Bản chất “pull” của DHCP
Đây là điểm nhiều người mới dễ hiểu nhầm.
DHCP hoạt động theo mô hình:
Client chủ động yêu cầu thông tin.
Không phải:
Server chủ động ép client đổi IP.
Nghĩa là:
- client gửi DHCPDISCOVER
- server phản hồi DHCPOFFER
Nhưng nếu admin đổi cấu hình DHCP:
Ví dụ:
- đổi DNS
- đổi gateway
- đổi subnet option
thì các client đang có lease không tự động cập nhật ngay lập tức.
Phải chờ:
- lease renewal
hoặc - user release/renew
Ví dụ Windows:
ipconfig /release
ipconfig /renew
7. Router hoặc Layer 3 Switch không có interface thuộc subnet DHCP pool
Nếu router chính là DHCP server, nó phải có interface thuộc subnet mà nó đang cấp phát.
Ví dụ:
DHCP pool:
192.168.20.0/24
nhưng router interfaces:
10.1.1.1
172.16.1.1
Không có interface nào thuộc:
192.168.20.0/24
thì router sẽ không cấp IP cho subnet đó.
Lý do:
DHCP server cần biết subnet nào reachable qua interface nào.
8. Sai logic triển khai giữa DHCP Server và Relay Agent
Một lỗi thực tế là cấu hình đúng DHCP server nhưng sai relay.
Ví dụ:
ip helper-address 10.10.99.5
trong khi DHCP server thật là:
10.10.99.50
Hoặc cấu hình helper trên sai interface.
Ví dụ:
helper đặt trên uplink thay vì SVI của VLAN client.
Kết quả:
DHCPDISCOVER không đến đúng server.
4 cách thu thập thông tin để xử lý sự cố DHCP
Biết nguyên nhân tiềm tàng là một chuyện. Khi troubleshooting thực tế, cần thu thập đúng dữ liệu. 1. Kiểm tra cấu hình DHCP Server
Xác minh:
- DHCP pool
- network statement
- subnet mask
- default gateway
- DNS server
- excluded addresses
- lease time
Cisco:
show ip dhcp pool
show ip dhcp binding
show running-config | section dhcp
Windows:
Get-DhcpServerv4Scope
Get-DhcpServerv4Lease
Linux (ISC DHCP):
cat /etc/dhcp/dhcpd.conf
2. Kiểm tra DHCP Relay Agent
Nếu client khác subnet với server, relay là checkpoint cực kỳ quan trọng.
Cisco:
show run interface vlan 10
Tìm:
ip helper-address
Xác minh:
- đúng IP DHCP server
- đúng interface nhận broadcast từ client
3. Kiểm tra dung lượng DHCP Pool
Mục tiêu:
DHCP còn IP hay đã cạn?
Cisco:
show ip dhcp pool
Windows:
DHCP Manager → Address Leases
Linux:
cat /var/lib/dhcp/dhcpd.leases
Nếu pool gần full, cần:
- mở rộng subnet
- giảm lease time
- cleanup stale lease
4. Xác minh IP trên router interface
Nếu router đang đóng vai DHCP server:
Kiểm tra:
show ip interface brief
Đảm bảo interface có IP thuộc đúng subnet pool.
Ví dụ đúng:
Pool: 192.168.50.0/24
Interface VLAN50: 192.168.50.1
Ví dụ sai:
Pool: 192.168.50.0/24
Interface VLAN50: 10.10.10.1
Kết luận
Troubleshooting DHCP thường xoay quanh vài câu hỏi cốt lõi:
- Broadcast DHCP có tới được server không?
- DHCP server còn IP không?
- Cấu hình pool đúng chưa?
- Có relay agent không?
- Có IP conflict không?
- DHCP redundancy có hoạt động đúng không?
- Router có interface đúng subnet không?
Khi đi theo checklist này, phần lớn sự cố DHCP trong môi trường Cisco, Windows hoặc Linux đều có thể được cô lập và xử lý nhanh chóng.
DHCP nhìn đơn giản, nhưng khi fail thì có thể kéo theo cả một hệ thống ngừng hoạt động