Loading...

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ĩaHà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)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-snooping với các entry học tự động qua Untrusted) → VLANInterface (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ổng Gi0/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ổng Gi0/2 đến Gi0/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.

Cơ chế hoạt động DHCP Snooping trên Switch Sơ đồ minh họa Switch chặn Rogue DHCP Server, cổng Gi0/1 là Trusted kết nối DHCP Server chính thức, cổng Gi0/2 và Gi0/24 là Untrusted kết nối PC Client và Rogue DHCP Server, gói tin DHCPOFFER giả từ Rogue Server bị chặn ngay tại cổng Untrusted Cơ Chế DHCP Snooping — Trusted vs Untrusted Chặn Rogue DHCP Server ngay tại cổng Untrusted, chỉ cho phép Server hợp lệ qua cổng Trusted DHCP Server chính thức Cổng Trusted Switch DHCP Snooping Enabled PC Client Cổng Untrusted Rogue DHCP Server Cổng Untrusted Gi0/1 Gi0/2 Gi0/24 DHCPOFFER — cho qua DHCPDISCOVER DHCPOFFER giả — bị chặn 💡 Mặc định mọi cổng là Untrusted — chỉ cổng khai báo Trusted mới được phép gửi DHCPOFFER/DHCPACK


💬 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ọcBà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