Danh mục sản phẩm
Cấu hình DHCP Snooping Cisco: hướng dẫn triển khai, kiểm tra và xử lý lỗi Option 82
DHCP Snooping là tính năng bảo mật Layer 2 quan trọng trên switch Cisco, giúp ngăn DHCP Server giả mạo cấp sai địa chỉ IP, gateway hoặc DNS cho người dùng. Khi cấu hình đúng, switch chỉ chấp nhận phản hồi DHCP từ những cổng được đánh dấu trusted, đồng thời chặn các gói DHCP đáng ngờ xuất hiện từ cổng access thông thường.
Đây là cấu hình nên có trên switch access của doanh nghiệp, nhà máy, trường học, bệnh viện hoặc bất kỳ mạng nào có nhiều thiết bị đầu cuối. DHCP Snooping còn tạo ra binding table, nền tảng cho Dynamic ARP Inspection (DAI) và IP Source Guard.
⚡ Điểm nhanh về cấu hình DHCP Snooping
- Mục đích: chặn Rogue DHCP Server, chống DHCP Starvation, tạo binding table MAC ↔ IP ↔ VLAN ↔ cổng.
- Mặc định: khi bật DHCP Snooping, mọi cổng đều là untrusted; chỉ cổng uplink hoặc cổng tới DHCP Server mới cần
ip dhcp snooping trust. - Lệnh cốt lõi:
ip dhcp snooping,ip dhcp snooping vlan <ds-vlan>,ip dhcp snooping trust,ip dhcp snooping limit rate <pps>. - Phải khai báo VLAN: bật global mà không khai báo VLAN thì tính năng chưa có hiệu lực trên VLAN nào.
- Thứ tự an toàn: đặt trusted cho uplink trước, sau đó mới bật Snooping, tránh mất DHCP toàn mạng.
- Option 82: switch mặc định chèn Option 82 vào gói DHCP; đây là nguyên nhân phổ biến của lỗi không nhận IP trong mạng nhiều switch hoặc có DHCP relay.
- Kiểm tra:
show ip dhcp snooping,show ip dhcp snooping binding,show ip dhcp snooping statistics.
1. DHCP Snooping là gì?
DHCP Snooping là cơ chế kiểm soát lưu lượng DHCP trong mạng LAN. Switch phân biệt đâu là cổng tin cậy được phép nhận phản hồi từ DHCP Server, đâu là cổng không tin cậy dành cho người dùng cuối.
Trong mạng bình thường, khi máy tính gửi DHCP Discover, bất kỳ thiết bị nào chạy DHCP Server trong cùng broadcast domain đều có thể trả lời. Một DHCP Server giả mạo (hoặc router Wi-Fi cắm nhầm) có thể khiến người dùng:
- Không truy cập được mạng
- Đi nhầm gateway
- Bị chuyển hướng lưu lượng qua thiết bị tấn công
- Bị nghe lén theo kiểu man-in-the-middle
📚 Nếu muốn học khái niệm nền tảng theo lộ trình, xem Bài 71: DHCP Snooping — Khái niệm bảo mật cơ bản trong khóa học CCNA Online. Nếu chưa nắm cơ chế cấp IP, đọc trước bài DHCP là gì.
2. DHCP Snooping hoạt động như thế nào?
Khi bật DHCP Snooping, switch kiểm tra các gói DHCP đi qua và phân loại cổng:
| Loại cổng | Thường là | Hành vi với DHCPOFFER, DHCPACK, DHCPNAK |
|---|---|---|
| Trusted | Uplink lên distribution/core, cổng nối tới DHCP Server, trunk đi về tầng trên | Cho phép đi qua |
| Untrusted (mặc định) | Cổng access nối máy người dùng | Chặn ngay; chỉ cho phép gói của client như DHCPDISCOVER, DHCPREQUEST |
Ngoài việc lọc gói, switch ghi lại mọi client nhận IP hợp lệ vào DHCP Snooping binding table, gồm MAC address, IP address, VLAN, interface và lease time. Bảng này là dữ liệu tham chiếu cho DAI và IP Source Guard.
Switch cũng mặc định kiểm tra MAC nguồn trong Ethernet header có khớp với MAC client khai trong gói DHCP request hay không, nhằm chặn các gói giả mạo.
3. Vì sao nên triển khai DHCP Snooping?
| Lợi ích | Giải thích |
|---|---|
| Ngăn DHCP Server giả mạo | Người dùng cắm nhầm router Wi-Fi, modem, AP có bật DHCP sẽ không thể cấp IP cho máy khác |
| Giảm nguy cơ man-in-the-middle | Kẻ tấn công không thể cấp default gateway về thiết bị của mình |
| Chống DHCP Starvation | Rate limit giới hạn số gói DHCP trên cổng untrusted |
| Nền tảng cho bảo mật khác | DAI và IP Source Guard cần binding table từ DHCP Snooping |
| Tăng ổn định | Chỉ một DHCP Server giả cũng có thể khiến hàng chục máy nhận sai IP |
4. Mô hình triển khai điển hình
Luồng DHCP:
- Host gửi DHCP Discover.
- Access Switch chuyển gói lên trusted port (uplink).
- DHCP Server gửi DHCPOFFER; gói này đi vào switch qua cổng trusted và được phép chuyển xuống host.
- Nếu một DHCP Server giả xuất hiện ở cổng access, gói DHCPOFFER của nó bị drop ngay tại cổng untrusted.
5. Cấu hình DHCP Snooping trên switch Cisco
Thứ tự khuyến nghị: đặt trusted trước, bật Snooping sau. Nếu bật Snooping cho VLAN khi chưa trust uplink, phản hồi của DHCP Server hợp lệ cũng bị chặn và client mất IP.
5.1. Đánh dấu trusted cho cổng uplink hoặc cổng nối tới DHCP Server
SW1(config)# interface GigabitEthernet0/1 SW1(config-if)# description Uplink-to-Distribution SW1(config-if)# ip dhcp snooping trust SW1(config-if)# exit
5.2. Giới hạn tốc độ gói DHCP trên cổng untrusted
SW1(config)# interface range FastEthernet0/1 - 24 SW1(config-if-range)# description User-Ports SW1(config-if-range)# ip dhcp snooping limit rate 25 SW1(config-if-range)# exit
Lệnh này giới hạn số gói DHCP mỗi giây trên cổng, giảm nguy cơ DHCP Starvation và flood DHCP request. Nếu cổng vượt ngưỡng, nó chuyển sang trạng thái err-disabled. Giá trị phổ biến là từ vài chục đến 100 pps; Bài 71 dùng 100, bài này dùng 25 làm ví dụ. Với cổng có nhiều thiết bị phía sau (như AP hoặc IP Phone kèm PC), nên đặt cao hơn. Không đặt rate limit bừa trên uplink khi chưa đánh giá lưu lượng.
5.3. Bật DHCP Snooping toàn cục và cho từng VLAN
SW1(config)# ip dhcp snooping vlan 10,20 SW1(config)# ip dhcp snooping
DHCP Snooping chỉ hoạt động trên VLAN đã được khai báo. Nếu quên khai báo VLAN của client, tính năng không có hiệu lực trên VLAN đó.
5.4. Lưu binding table và tự khôi phục cổng err-disabled
SW1(config)# ip dhcp snooping database flash:dhcp-snooping.db SW1(config)# errdisable recovery cause dhcp-rate-limit SW1(config)# errdisable recovery interval 300
ip dhcp snooping database: lưu binding table ra bộ nhớ để không mất sau khi switch khởi động lại (đường dẫn và cú pháp có thể khác nhau tùy dòng switch và phiên bản IOS).errdisable recovery: cổng bị khóa do vượt rate limit sẽ tự mở lại sau 300 giây, thay vì chờ quản trị viên gỡ thủ công.
5.5. Cấu hình hoàn chỉnh tham khảo
SW1(config)# interface GigabitEthernet0/1 SW1(config-if)# description Uplink-to-Distribution SW1(config-if)# ip dhcp snooping trust SW1(config-if)# exit SW1(config)# interface range FastEthernet0/1 - 24 SW1(config-if-range)# description User-Ports SW1(config-if-range)# ip dhcp snooping limit rate 25 SW1(config-if-range)# exit SW1(config)# ip dhcp snooping vlan 10,20 SW1(config)# ip dhcp snooping SW1(config)# ip dhcp snooping database flash:dhcp-snooping.db SW1(config)# errdisable recovery cause dhcp-rate-limit SW1(config)# errdisable recovery interval 300
Trong ví dụ này: VLAN 10 và 20 được bảo vệ, Gi0/1 là uplink (trusted), các cổng Fa0/1 đến Fa0/24 là untrusted mặc định và có rate limit.
6. Cách kiểm tra DHCP Snooping sau khi cấu hình
| Lệnh | Cho biết gì |
|---|---|
show ip dhcp snooping |
Snooping đã bật chưa, áp dụng cho VLAN nào, trạng thái Option 82, cổng trusted, rate limit từng cổng |
show ip dhcp snooping binding |
Danh sách client đã nhận IP: MAC, IP, lease, VLAN, interface |
show ip dhcp snooping statistics |
Số gói bị drop và lý do |
show ip dhcp snooping database |
Trạng thái lưu binding table ra bộ nhớ |
show interfaces status err-disabled |
Cổng bị khóa do vượt rate limit |
Ví dụ kết quả show ip dhcp snooping binding:
MacAddress IpAddress Lease(sec) Type VLAN Interface ------------------ -------------- ---------- -------------- ---- -------------------- 00:1A:2B:3C:4D:5E 192.168.10.101 86400 dhcp-snooping 10 GigabitEthernet0/2 Total number of bindings: 1
Nếu client đã nhận IP nhưng không xuất hiện trong bảng binding, hãy kiểm tra lại VLAN đã khai báo, cổng trusted và luồng DHCP end-to-end. Lưu ý switch chỉ ghi nhận client học qua cổng untrusted.
7. DHCP Option 82 là gì?
Khi DHCP Snooping bật, switch Cisco mặc định chèn Option 82 (Relay Agent Information) vào gói DHCP request trước khi chuyển lên DHCP Server. Option này cho server biết gói đến từ switch nào, cổng nào, thuộc mạch truy cập nào. Tính năng hữu ích trong mạng campus, ISP, Metro Ethernet cần xác định vị trí thuê bao.
8. Lỗi Option 82 thường gặp và cách xử lý
Option 82 là phần dễ gây lỗi nhất trong mô hình nhiều switch hoặc có DHCP relay. Một switch upstream có thể drop gói DHCP vì thấy Option 82 hoặc giaddr khác 0 trên cổng untrusted, và ghi log:
%DHCP_SNOOPING-5-DHCP_SNOOPING_NONZERO_GIADDR: DHCP_SNOOPING drop message with non-zero giaddr or option82 value on untrusted port
Khi đó client có thể không nhận được IP dù cấu hình cơ bản trông đúng. Tùy mô hình, chọn một trong các hướng sau:
| Hướng xử lý | Lệnh | Khi nào dùng |
|---|---|---|
| Đặt cổng nối giữa 2 switch là trusted | ip dhcp snooping trust trên cổng nhận gói từ switch downstream |
Cách gọn nhất cho mô hình nhiều switch nối tiếp |
| Cho phép Option 82 trên cổng untrusted | ip dhcp snooping information option allow-untrusted (trên switch upstream) |
Switch downstream đã chèn Option 82 và cổng không thể đặt trusted |
| Cho relay/DHCP Server Cisco IOS chấp nhận Option 82 | ip dhcp relay information trust-all |
DHCP Server chạy trên router/switch Layer 3 Cisco IOS và từ chối gói có Option 82 |
| Tắt chèn Option 82 | no ip dhcp snooping information option |
Hệ thống không dùng Option 82, chỉ cần chặn DHCP giả |
Trước khi tắt Option 82, nên hiểu rõ mô hình đang triển khai để không ảnh hưởng cơ chế quản lý hoặc cấp IP ở tầng trên.
9. Lỗi triển khai thường gặp
| Triệu chứng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| Bật xong, toàn bộ client mất IP | Chưa trust cổng uplink hoặc cổng tới DHCP Server | Thêm ip dhcp snooping trust đúng cổng |
| Snooping không có tác dụng | Chưa khai báo VLAN bằng ip dhcp snooping vlan |
Khai báo đúng danh sách VLAN client |
| Client không nhận IP trong mạng nhiều switch | Lỗi Option 82 | Xem mục 8 |
| Cổng người dùng tự tắt (err-disabled) | Vượt rate limit DHCP | Nâng ngưỡng cho cổng đông thiết bị, dùng errdisable recovery |
| Binding table trống sau khi switch khởi động lại | Chưa lưu database | Cấu hình ip dhcp snooping database |
| Máy IP tĩnh bị DAI chặn | IP tĩnh không có trong binding table | Dùng ARP ACL cho máy IP tĩnh, xem Bài 79 |
10. Lưu ý quan trọng khi triển khai thực tế
- Chỉ trust đúng cổng cần thiết: uplink hợp lệ, cổng tới DHCP Server, trunk về tầng trên. Không bao giờ trust cổng người dùng; chỉ một cổng trust sai là Rogue DHCP Server vẫn hoạt động được.
- Khai báo đủ VLAN: rà soát kỹ để không sót VLAN người dùng, VLAN thoại, VLAN Wi-Fi.
- Áp dụng rate limit trên cổng access, không áp dụng đại trà trên uplink.
- Kiểm tra từng chặng trong mô hình nhiều switch hoặc có DHCP relay, đặc biệt Option 82.
- Chuẩn bị sẵn kế hoạch cho máy IP tĩnh nếu sau này triển khai DAI hoặc IP Source Guard.
11. DHCP Snooping kết hợp với các tính năng bảo mật khác
| Tính năng | Chống được gì | Dựa vào DHCP Snooping không | Tài liệu |
|---|---|---|---|
| DHCP Snooping | Rogue DHCP Server, DHCP Starvation | Là nền tảng | Bài này, Bài 71 |
| Dynamic ARP Inspection | ARP Spoofing, man-in-the-middle tầng 2 | Có, dùng binding table | Bài 79 |
| IP Source Guard | Giả mạo IP nguồn | Có, dùng binding table | Xem thêm sau Bài 79 |
| Port Security | MAC Flooding, giới hạn số MAC/cổng | Không | Bài 78 |
| 802.1X | Kiểm soát ai được phép vào mạng | Không | Môi trường cần kiểm soát truy cập chặt |
12. Khi nào nên bật DHCP Snooping?
Nên bật trong hầu hết các trường hợp: mạng doanh nghiệp nhiều người dùng, campus, trường học, bệnh viện, nhà máy, mạng nhiều switch access, hoặc môi trường đã từng gặp sự cố do DHCP Server giả hay thiết bị người dùng phát DHCP trái phép. Nói gọn, nếu switch cấp kết nối cho nhiều thiết bị đầu cuối, DHCP Snooping gần như luôn đáng bật.
13. Kết luận
DHCP Snooping giúp switch Cisco chặn DHCP Server giả mạo, bảo vệ người dùng khỏi cấp sai IP, gateway, DNS và tạo binding table cho các cơ chế bảo mật nâng cao. Để chạy ổn định, cần chú ý ba điểm: trust đúng cổng uplink hoặc cổng tới DHCP Server, khai báo đúng VLAN, và xử lý Option 82 khi có nhiều switch hoặc DHCP relay.
FAQ về DHCP Snooping Cisco
DHCP Snooping có bắt buộc phải bật trên mọi VLAN không?
Không. Chỉ cần bật trên VLAN có dùng DHCP và cần bảo vệ. Tuy nhiên trong doanh nghiệp nên rà soát đầy đủ để không sót VLAN người dùng.
Cổng access có cần cấu hình untrusted không?
Không cần. Khi bật DHCP Snooping, mọi cổng mặc định là untrusted; bạn chỉ cấu hình trusted cho các cổng hợp lệ.
Có nên cấu hình ip dhcp snooping trust trên cổng người dùng không?
Không. Đây là lỗi nguy hiểm vì cho phép thiết bị ở cổng đó đóng vai DHCP Server giả mạo.
Vì sao đã bật DHCP Snooping nhưng máy trạm vẫn không nhận IP?
Các nguyên nhân thường gặp: chưa bật Snooping cho đúng VLAN, chưa trust cổng uplink, lỗi Option 82, hoặc DHCP relay/DHCP Server không chấp nhận gói đã chèn thông tin relay.
Binding table có mất khi switch khởi động lại không?
Có, nếu không lưu database. Dùng ip dhcp snooping database để lưu binding table ra bộ nhớ, đặc biệt khi dùng thêm DAI hoặc IP Source Guard.
DHCP Snooping có ảnh hưởng hiệu năng switch không?
Thông thường không đáng kể trên các dòng switch Cisco doanh nghiệp hỗ trợ tính năng này; lợi ích bảo mật lớn hơn nhiều so với tài nguyên xử lý bổ sung.
Thông tin liên quan
- DHCP là gì? Cách hoạt động, cơ chế DORA và cấu hình trên Cisco
- Bài 39: DHCP — Cơ chế DORA, cấu hình DHCP Server/Relay (bài học CCNA)
- Bài 71: DHCP Snooping — Khái niệm bảo mật cơ bản (bài học CCNA)
- Bài 78: Port Security trên Switch — chống tấn công MAC Flooding (bài học CCNA)
- Bài 79: DHCP Snooping & Dynamic ARP Inspection (bài học CCNA)
- DHCP server pool exhausted/empty error trên router switch Cisco
- Khóa học CCNA Online
