Danh mục sản phẩm
Bài 79: DHCP Snooping & Dynamic ARP Inspection — Chống Tấn Công Layer 2
💡 Liên hệ thực tế
Ở Bài 71, DHCP Snooping đã giúp switch phân biệt được cổng nào dẫn đến DHCP Server thật (Trusted) và cổng nào cần cảnh giác (Untrusted), đồng thời xây dựng nên Binding Table — 1 cuốn "sổ hộ khẩu" ghi lại chính xác: máy nào (MAC) đang giữ địa chỉ IP nào, ở cổng nào, VLAN nào.
Nhưng có 1 kiểu tấn công khác mà DHCP Snooping một mình không ngăn được: ARP Spoofing (ARP Poisoning). Hãy hình dung anh Nam đang ở văn phòng, máy tính anh cần gửi dữ liệu đến Gateway (192.168.1.1). Bình thường anh sẽ hỏi "Ai có IP 192.168.1.1?" và Gateway thật sẽ trả lời đúng MAC của nó. Nhưng nếu có kẻ tấn công giả mạo, tự nhận "Tôi chính là 192.168.1.1" bằng 1 MAC address khác, máy anh Nam có thể bị lừa gửi toàn bộ traffic qua kẻ tấn công trước khi đến Gateway thật — đây chính là kiểu tấn công Man-in-the-Middle ở tầng Layer 2.
Dynamic ARP Inspection (DAI) chính là "nhân viên kiểm tra hộ khẩu" đứng giữa: mọi gói ARP đi qua cổng Untrusted đều bị đối chiếu với chính cuốn Binding Table đã có sẵn từ DHCP Snooping — khớp thì cho qua, không khớp thì loại bỏ ngay lập tức.
📘 Kiến thức cốt lõi
1. Ôn nhanh DHCP Snooping — nền tảng bắt buộc của DAI
DAI phụ thuộc hoàn toàn vào Binding Table do DHCP Snooping xây dựng nên, vì vậy DHCP Snooping luôn phải được bật trước khi cấu hình DAI. Nhắc lại 2 khái niệm cốt lõi từ Bài 71:
| Khái niệm | Vai trò |
|---|---|
| Trusted port | Cổng dẫn đến DHCP Server thật hoặc uplink giữa các switch — cho phép DHCPOFFER/DHCPACK đi qua |
| Untrusted port | Mặc định mọi cổng còn lại (thường là cổng nối máy người dùng) — chặn DHCPOFFER/DHCPACK, chỉ cho phép DHCPDISCOVER/DHCPREQUEST đi qua |
| DHCP Snooping Binding Table | Danh sách ánh xạ MAC ↔ IP ↔ VLAN ↔ Interface, xây dựng từ các giao dịch DHCP hợp lệ đã quan sát được |
🎯 Điểm cốt lõi cần nhớ: DHCP Snooping bảo vệ quá trình cấp phát IP, còn DAI bảo vệ quá trình phân giải MAC-IP sau khi đã có IP — 2 cơ chế bổ sung cho nhau, thường triển khai đi kèm nhau trong thực tế.
⚠️ Dễ nhầm lẫn: DHCP Snooping Binding Table không phải là ARP Table. Đây là 2 bảng hoàn toàn khác nhau, nằm ở 2 nơi khác nhau:
| Tiêu chí | DHCP Snooping Binding Table | ARP Table |
|---|---|---|
| Nằm ở đâu | Trên Switch (nơi bật DHCP Snooping) | Trên từng host/router riêng lẻ |
| Được xây dựng từ | Các giao dịch DHCP hợp lệ mà switch quan sát được (DHCPACK) | Các giao dịch ARP Request/Reply mà thiết bị đó nhận được |
| Có thể bị đầu độc (poisoning) không | Không — vì chỉ ghi nhận từ giao dịch DHCP đã qua kiểm soát của Trusted port | Có — đây chính là lý do ARP Spoofing tồn tại: ARP Table trên host tin bất kỳ ARP Reply nào nhận được |
| Vai trò với DAI | Là nguồn dữ liệu tham chiếu đáng tin cậy để DAI đối chiếu | Là đối tượng cần bảo vệ — DAI ngăn không cho ARP Table của host bị ghi sai do ARP giả mạo |
💡 Nói ngắn gọn: chính vì ARP Table trên host dễ bị đầu độc mà cần có DAI; và DAI làm được việc đó nhờ dựa vào 1 bảng khác đáng tin cậy hơn — Binding Table trên switch — chứ không dựa vào chính ARP Table đang bị nghi ngờ.
2. Dynamic ARP Inspection hoạt động như thế nào
DAI kiểm tra mọi gói ARP Request và ARP Reply đi qua cổng Untrusted, đối chiếu cặp (MAC nguồn, IP nguồn) trong gói ARP với dữ liệu đã có trong DHCP Snooping Binding Table:
- Nếu khớp với Binding Table → cho phép gói ARP đi qua bình thường.
- Nếu không khớp (hoặc không có trong Binding Table) → drop gói ARP ngay lập tức và ghi log.
- Gói ARP đi qua cổng Trusted → không bị kiểm tra, chuyển tiếp thẳng.
⚠️ Lưu ý quan trọng với thiết bị dùng IP tĩnh: vì Binding Table chỉ được xây dựng từ giao dịch DHCP, các máy cấu hình IP tĩnh (static IP) sẽ không có mặt trong Binding Table — nếu bật DAI mà không xử lý riêng, các máy này sẽ bị chặn hoàn toàn dù không phải kẻ tấn công. Giải pháp là dùng ARP ACL (
arp access-list) để khai báo tường minh các cặp MAC-IP tĩnh được phép, áp dụng riêng cho những trường hợp này.
3. Rate Limit và tùy chọn kiểm tra bổ sung
Ngoài đối chiếu Binding Table, DAI còn hỗ trợ:
ip arp inspection limit rate: giới hạn số gói ARP xử lý mỗi giây trên 1 cổng, chống tấn công gửi ARP dồn dập làm quá tải CPU switch (tương tự tinh thần rate limit đã học ở DHCP Snooping Bài 71).ip arp inspection validate: kiểm tra thêm các trường trong gói ARP, gồm 3 tùy chọn:src-mac— đối chiếu MAC nguồn khai báo trong phần dữ liệu ARP (ARP payload) với MAC nguồn trong Ethernet header của chính frame đó. Ví dụ: 1 gói ARP có Ethernet header ghi MAC nguồn làAAAA.AAAA.AAAA, nhưng bên trong nội dung ARP lại khai MAC nguồn làBBBB.BBBB.BBBB— 2 giá trị không khớp, đây là dấu hiệu giả mạo và gói ARP sẽ bị drop.dst-mac— áp dụng logic tương tựsrc-mac, nhưng đối chiếu MAC đích, chỉ áp dụng cho gói ARP Reply (ARP Request không có MAC đích cụ thể).ip— kiểm tra tính hợp lệ của địa chỉ IP trong gói ARP, loại bỏ các gói mang địa chỉ IP không hợp lý như0.0.0.0,255.255.255.255, hoặc địa chỉ dạng multicast (ví dụ 1 kẻ tấn công cố tình gửi ARP với IP nguồn0.0.0.0để né tránh bị đối chiếu Binding Table).
💡 Ghi nhớ: DAI chỉ hoạt động theo VLAN (
ip arp inspection vlan <vlan-range>), phải bật tường minh cho từng VLAN cần bảo vệ — không tự động áp dụng cho toàn bộ switch.
4. Cấu hình DHCP Snooping + DAI trên switch access
Switch(config)# hostname SW1 SW1(config)# clock timezone ICT 7 SW1(config)# ntp server 192.168.1.1 SW1(config)# logging on SW1(config)# ip dhcp snooping SW1(config)# ip dhcp snooping vlan 10 SW1(config)# no ip dhcp snooping information option SW1(config)# ip arp inspection vlan 10 SW1(config)# ip arp inspection validate src-mac dst-mac ip SW1(config)# interface GigabitEthernet0/24 SW1(config-if)# description Uplink-to-Core-Switch SW1(config-if)# ip dhcp snooping trust SW1(config-if)# ip arp inspection trust SW1(config-if)# exit SW1(config)# interface range GigabitEthernet0/1 - 23 SW1(config-if-range)# ip arp inspection limit rate 100 SW1(config-if-range)# exit
Giải thích từng dòng lệnh:
hostname SW1— đặt tên thiết bị, phần cấu hình nền tảng chuẩn thực chiến.clock timezone ICT 7— đặt múi giờ Việt Nam (UTC+7), để timestamp log DAI/DHCP Snooping chính xác.ntp server 192.168.1.1— đồng bộ thời gian với NTP server nội bộ (đã học ở Bài 37).logging on— bật ghi log hệ thống, cần thiết để ghi lại các gói ARP bị DAI từ chối.ip dhcp snooping— bật tính năng DHCP Snooping toàn cục trên switch (đã học ở Bài 71); đây là điều kiện tiên quyết bắt buộc để DAI có Binding Table sử dụng.ip dhcp snooping vlan 10— chỉ định VLAN 10 là VLAN được áp dụng DHCP Snooping.no ip dhcp snooping information option— tắt chèn DHCP Option 82 (thông tin nhận diện cổng/switch) vào gói DHCP; dòng này chỉ cần thiết khi mạng không dùng DHCP Relay Agent yêu cầu Option 82, tránh trường hợp DHCP Server từ chối gói tin do không hỗ trợ Option 82.ip arp inspection vlan 10— bật Dynamic ARP Inspection cho VLAN 10; DAI chỉ hoạt động trên các VLAN được khai báo tường minh ở đây.ip arp inspection validate src-mac dst-mac ip— bật kiểm tra bổ sung: đối chiếu MAC nguồn giữa ARP header và Ethernet header (src-mac), MAC đích tương tự (dst-mac), và loại bỏ các gói ARP có địa chỉ IP không hợp lệ (ip).interface GigabitEthernet0/24— vào chế độ cấu hình cổng Gi0/24, giả định đây là cổng uplink nối lên Core Switch (nơi đặt DHCP Server hoặc DHCP Relay).description Uplink-to-Core-Switch— ghi chú mô tả cổng, giúp nhận diện nhanh khi tra cứu cấu hình.ip dhcp snooping trust— đánh dấu cổng này là Trusted cho DHCP Snooping, cho phép DHCPOFFER/DHCPACK đi qua bình thường (đã học ở Bài 71).ip arp inspection trust— đánh dấu cổng này là Trusted cho DAI, gói ARP đi qua cổng này không bị kiểm tra — bắt buộc phải trust các cổng uplink giữa switch với switch, vì các switch khác không nhìn thấy được giao dịch DHCP xảy ra ở switch đầu tiên nên không có đủ Binding Table để tự kiểm tra lại.interface range GigabitEthernet0/1 - 23— chọn đồng thời dải cổng Gi0/1 đến Gi0/23, giả định đây là các cổng nối máy người dùng (Untrusted, mặc định).ip arp inspection limit rate 100— giới hạn tối đa 100 gói ARP mỗi giây trên mỗi cổng trong dải này, chống tấn công gửi ARP dồn dập làm quá tải CPU switch.
📎 Liên hệ lại kiến thức đã học: cổng Gi0/24 ở đây vừa là Trusted cho DHCP Snooping (Bài 71) vừa là Trusted cho DAI — trong thực tế, 2 trạng thái Trusted này luôn nên đi cùng nhau trên cùng 1 cổng uplink, vì cùng phục vụ chung mục đích: cổng dẫn đến hạ tầng tin cậy (Core Switch, DHCP Server), không cần soi xét traffic đi qua.
💬 Hỏi & Đáp nhanh
❓ Có thể bật DAI mà không cần bật DHCP Snooping trước không?
❌ Không nên trong môi trường có DHCP Server. DAI mặc định dựa vào DHCP Snooping Binding Table để đối chiếu; nếu không có Binding Table, mọi gói ARP trên cổng Untrusted đều không có gì để so khớp. Trong môi trường không dùng DHCP (toàn bộ IP tĩnh), có thể dùng ARP ACL thay thế, nhưng đây là trường hợp đặc biệt, không phải cấu hình phổ biến.
❓ Máy chủ nội bộ dùng IP tĩnh, không qua DHCP, có bị DAI chặn nhầm không?
✅ Có thể bị chặn nếu không xử lý — vì Binding Table chỉ chứa các IP được cấp qua DHCP. Cần khai báo arp access-list cho riêng các máy IP tĩnh này để DAI nhận diện là hợp lệ.
❓ Vì sao cổng uplink giữa 2 switch bắt buộc phải là Trusted cho cả DHCP Snooping lẫn DAI?
✅ Vì switch phía sau (không trực tiếp thấy giao dịch DHCP xảy ra ở switch khác) không có đủ dữ liệu Binding Table để tự kiểm tra ARP đi qua uplink — nếu để Untrusted, DAI sẽ chặn nhầm toàn bộ traffic hợp lệ đi qua uplink.
📝 Bài tập đánh giá
Câu 1: Dynamic ARP Inspection dựa vào dữ liệu nào để xác định 1 gói ARP là hợp lệ hay không?
- A. Danh sách ACL cấu hình sẵn trên Router
- B. DHCP Snooping Binding Table (trừ khi dùng thêm ARP ACL cho trường hợp đặc biệt)
- C. Bảng định tuyến (Routing Table)
- D. Cấu hình VLAN Trunking Protocol (VTP)
Câu 2: Vì sao cổng uplink kết nối giữa 2 switch nên được cấu hình ip arp inspection trust?
- A. Vì cổng uplink luôn có băng thông cao hơn nên không cần kiểm tra
- B. Vì switch nhận không nhìn thấy giao dịch DHCP xảy ra ở switch kia nên thiếu dữ liệu Binding Table để tự đối chiếu ARP đi qua uplink
- C. Vì DAI chỉ hoạt động được trên cổng Access, không hoạt động trên cổng Trunk
- D. Không có lý do đặc biệt, đây chỉ là quy ước đặt tên
👉 Đáp án:
Câu 1: B — DAI đối chiếu gói ARP với DHCP Snooping Binding Table; ARP ACL chỉ dùng bổ sung cho các host có IP tĩnh không xuất hiện trong Binding Table.
Câu 2: B — Vì switch phía sau uplink không tham gia trực tiếp vào giao dịch DHCP xảy ra ở switch khác, nó không có đủ Binding Table để tự kiểm tra ARP đi qua cổng đó; nếu để Untrusted, DAI có thể chặn nhầm toàn bộ traffic hợp lệ.
📚 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 78: Port Security trên Switch — chống tấn công MAC Flooding | Mục lục khóa học CCNA | Bài 80: VPN cơ bản — Site-to-Site và Remote Access |
