Danh mục sản phẩm
Bài 71: DHCP Snooping — Khái Niệm Bảo Mật Cơ Bản
💡 Liên hệ thực tế
Một khu chung cư chỉ có 1 phòng quản lý chính thức cấp thẻ ra vào cho cư dân mới. Nếu bỗng nhiên có kẻ gian dựng 1 "bàn cấp thẻ giả" ngay tại sảnh, cư dân mới chuyển đến không phân biệt được đâu là bàn thật — đâu là bàn giả, và có thể vô tình nhận thẻ từ kẻ gian, dẫn đến bị theo dõi hoặc chặn đường đi lại trong khu chung cư.
🏢 Trong mạng máy tính, tình huống tương tự xảy ra khi có 1 Rogue DHCP Server (máy chủ DHCP giả mạo, có thể vô tình do ai đó cắm nhầm Router cá nhân vào mạng công ty, hoặc cố ý do kẻ tấn công) trả lời nhanh hơn DHCP Server chính thức — khiến máy tính trong công ty nhận nhầm địa chỉ IP, Default Gateway hoặc DNS Server giả, mở đường cho tấn công Man-in-the-Middle. DHCP Snooping chính là cơ chế giúp Switch phân biệt "bàn cấp thẻ nào là thật" để chặn đứng nguy cơ này.
📘 Kiến thức cốt lõi
1. Vì sao cần DHCP Snooping — mối đe dọa Rogue DHCP Server:
DHCP hoạt động theo cơ chế broadcast (client gửi DHCPDISCOVER dạng broadcast, bất kỳ DHCP Server nào trong cùng segment mạng đều có thể nghe thấy và trả lời). Nếu có 2 DHCP Server cùng tồn tại trong mạng — 1 chính thức, 1 giả mạo — client sẽ nhận cấu hình từ Server nào trả lời (DHCPOFFER) nhanh hơn, không phân biệt được server nào đáng tin cậy. Đây chính là lỗ hổng mà DHCP Snooping được thiết kế để khắc phục.
2. Cơ chế cốt lõi: phân loại cổng Trusted và Untrusted:
| Loại cổng | Định nghĩa | Hành vi với gói tin DHCP Server (DHCPOFFER, DHCPACK) |
|---|---|---|
| Trusted | Cổng kết nối đến DHCP Server chính thức hoặc Uplink đến Switch/Router khác đáng tin cậy | Cho phép đi qua bình thường |
| Untrusted | Tất cả cổng còn lại — mặc định mọi cổng đều là Untrusted khi bật DHCP Snooping | Chặn đứng mọi gói tin phản hồi từ vai trò Server (DHCPOFFER/DHCPACK) — nếu 1 máy tính client cắm vào cổng Untrusted mà cố trả lời như DHCP Server, gói tin sẽ bị loại bỏ ngay lập tức |
🎯 Nguyên tắc cốt lõi cần nhớ: DHCP Snooping không cấm mọi lưu lượng DHCP — nó chỉ chặn gói tin đóng vai trò Server (DHCPOFFER, DHCPACK) đi ra từ cổng Untrusted. Gói tin từ client (DHCPDISCOVER, DHCPREQUEST) vẫn được phép đi qua bình thường ở mọi cổng, vì client được phép gửi yêu cầu xin IP từ bất kỳ đâu.
3. DHCP Snooping Binding Table — "sổ hộ khẩu" ghi nhận từng thiết bị:
Khi 1 client nhận IP hợp lệ qua cổng Untrusted, Switch tự động ghi lại thông tin vào Binding Table, gồm: địa chỉ MAC, địa chỉ IP được cấp, thời gian lease, VLAN, và cổng kết nối. Bảng này đóng vai trò nền tảng cho các cơ chế bảo mật nâng cao hơn học ở các bài sau như Dynamic ARP Inspection (DAI) và IP Source Guard — cả 2 đều dựa vào Binding Table để xác minh 1 gói tin ARP hoặc gói tin IP có khớp với thông tin đã cấp qua DHCP hay không.
💡 Lưu ý quan trọng: Binding Table chỉ ghi nhận thiết bị kết nối qua cổng Untrusted — không lưu thông tin của thiết bị qua cổng Trusted, vì mỗi Switch/Router phía sau cổng Trusted đã có Binding Table riêng của chính nó.
4. Xem Binding Table bằng lệnh show ip dhcp snooping binding:
Switch# 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 00:1A:2B:3C:4D:6F 192.168.10.102 85990 dhcp-snooping 10 GigabitEthernet0/3 Total number of bindings: 2
📎 Đọc bảng từ trái sang phải:
MacAddress(địa chỉ MAC client) →IpAddress(IP đã cấp qua DHCP) →Lease(sec)(số giây còn lại trước khi lease hết hạn) →Type(luôn làdhcp-snoopingvới các entry học tự động qua Untrusted) →VLAN→Interface(cổng vật lý client đang cắm vào). Chỉ những entry đến từ cổng Untrusted mới xuất hiện trong bảng — đúng như lưu ý ở trên.
5. Rate Limiting — chặn tấn công DHCP Starvation:
Ngoài việc chặn Rogue Server, DHCP Snooping còn giới hạn tốc độ gói tin DHCP trên mỗi cổng Untrusted (đơn vị gói/giây — pps) để chống lại kiểu tấn công DHCP Starvation — kẻ tấn công gửi hàng loạt DHCPDISCOVER với địa chỉ MAC giả liên tục, cố tình "vét cạn" toàn bộ dải IP còn trống trong DHCP Pool, khiến client hợp lệ không còn IP để cấp. Cisco khuyến nghị mức rate limit phổ biến khoảng 100 pps cho cổng Untrusted; nếu vượt ngưỡng, cổng sẽ tự động chuyển sang trạng thái err-disabled (tạm khóa cổng).
6. Cấu hình DHCP Snooping cơ bản trên Cisco Switch:
Switch(config)# ip dhcp snooping Switch(config)# ip dhcp snooping vlan 10 Switch(config)# interface gigabitEthernet 0/1 Switch(config-if)# description Uplink-to-DHCP-Server Switch(config-if)# ip dhcp snooping trust Switch(config-if)# exit Switch(config)# interface range gigabitEthernet 0/2 - 24 Switch(config-if-range)# ip dhcp snooping limit rate 100
📎 Giải thích từng dòng lệnh:
ip dhcp snooping— bật tính năng DHCP Snooping ở mức toàn Switch (global). Nếu chỉ gõ lệnh này mà chưa khai báo VLAN cụ thể, tính năng vẫn chưa hoạt động thực sự trên bất kỳ VLAN nào.ip dhcp snooping vlan 10— kích hoạt DHCP Snooping cho VLAN 10. Cisco yêu cầu phải khai báo rõ VLAN áp dụng, vì mặc định tính năng không tự động bật trên toàn bộ VLAN dù đã bật global ở dòng trên.interface gigabitEthernet 0/1...ip dhcp snooping trust— đánh dấu cổngGi0/1(cổng dẫn đến DHCP Server chính thức) là Trusted, cho phép gói tin DHCPOFFER/DHCPACK đi qua bình thường.interface range gigabitEthernet 0/2 - 24...ip dhcp snooping limit rate 100— áp dụng giới hạn tốc độ 100 gói DHCP/giây cho dải cổngGi0/2đếnGi0/24(các cổng kết nối client, mặc định là Untrusted), nhằm chống tấn công DHCP Starvation. Nếu 1 cổng vượt ngưỡng này, cổng đó sẽ tự động chuyển sang trạng thái err-disabled.
💬 Hỏi & Đáp nhanh
❓ DHCP Snooping có chặn cả gói tin DHCPDISCOVER từ client gửi qua cổng Untrusted không?
❌ Không — DHCP Snooping chỉ chặn gói tin đóng vai trò Server (DHCPOFFER, DHCPACK) đi ra từ cổng Untrusted, không chặn gói tin đóng vai trò Client (DHCPDISCOVER, DHCPREQUEST). Client vẫn được phép gửi yêu cầu xin IP bình thường từ bất kỳ cổng nào, vì đó là hành vi hợp lệ của 1 thiết bị đầu cuối.
❓ Nếu quên cấu hình cổng kết nối DHCP Server thật thành Trusted thì điều gì xảy ra?
⚠️ Toàn bộ client trong mạng sẽ không nhận được IP — vì mặc định mọi cổng đều là Untrusted khi bật DHCP Snooping, gói tin DHCPOFFER/DHCPACK hợp lệ từ chính DHCP Server thật cũng sẽ bị chặn giống như Rogue Server. Đây là lỗi cấu hình phổ biến nhất khi mới triển khai DHCP Snooping — luôn phải nhớ khai báo ip dhcp snooping trust trên đúng cổng dẫn đến DHCP Server chính thức.
❓ DHCP Snooping một mình có đủ để bảo vệ toàn diện khỏi tấn công Layer 2 không?
❌ Chưa đủ — DHCP Snooping chỉ giải quyết vấn đề Rogue DHCP Server và DHCP Starvation. Nó là nền tảng dữ liệu (Binding Table) cho các cơ chế bảo mật khác như Dynamic ARP Inspection (chống giả mạo ARP) và IP Source Guard (chống giả mạo địa chỉ IP nguồn) — cần kết hợp đầy đủ các lớp bảo mật này mới tạo thành hàng rào phòng thủ toàn diện ở Layer 2.
📝 Bài tập đánh giá
Câu 1: DHCP Snooping chặn loại gói tin nào đi ra từ cổng Untrusted?
- A. Chặn tất cả các loại gói tin DHCP, kể cả DHCPDISCOVER từ client
- B. Chỉ chặn gói tin đóng vai trò Server như DHCPOFFER và DHCPACK
- C. Chỉ chặn gói tin có địa chỉ MAC lạ
- D. DHCP Snooping không chặn gói tin nào, chỉ ghi log
Câu 2: Vì sao DHCP Snooping Binding Table được xem là nền tảng cho các cơ chế bảo mật nâng cao khác như Dynamic ARP Inspection?
- A. Vì Binding Table chứa mật khẩu của toàn bộ client trong mạng
- B. Vì Binding Table ghi nhận đầy đủ MAC, IP, VLAN, cổng kết nối của từng client hợp lệ, làm cơ sở để các cơ chế khác đối chiếu và xác minh
- C. Vì Binding Table tự động mã hóa toàn bộ lưu lượng mạng
- D. Vì Binding Table thay thế hoàn toàn chức năng của DHCP Server
👉 Đáp án:
Câu 1: B — DHCP Snooping chỉ chặn gói tin đóng vai trò Server (DHCPOFFER, DHCPACK) đi ra từ cổng Untrusted, không chặn gói tin từ client (DHCPDISCOVER, DHCPREQUEST) vì đây là hành vi hợp lệ.
Câu 2: B — Binding Table ghi nhận thông tin MAC, IP, VLAN, cổng kết nối của từng client hợp lệ qua cổng Untrusted, làm dữ liệu tham chiếu để các cơ chế như Dynamic ARP Inspection và IP Source Guard xác minh tính hợp lệ của gói tin ARP/IP sau này.
📚 Bài viết thuộc khóa học CCNA của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Bài 70: Syslog — facility và severity level | Mục lục khóa học CCNA | Bài 72: TFTP/FTP trong quản lý cấu hình & IOS image |
