DHCP Snooping trên MikroTik là một cơ chế chống giả mạo máy chủ DHCP (rogue DHCP), giúp bảo vệ hệ thống mạng tránh bị cấp phát IP sai từ các nguồn không đáng tin cậy.
Mặc định MikroTik chưa có tính năng DHCP Snooping chính thức như Cisco, nhưng bạn có thể cấu hình thủ công tương tự để lọc các gói DHCP từ cổng không đáng tin
DHCP (Dynamic Host Configuration Protocol) chạy trên giao thức UDP, không phải TCP.
Chi tiết cổng và giao thức:
-
Client gửi → Server:
-
UDP Port 67 (server)
-
-
Server gửi → Client:
-
UDP Port 68 (client)
-
Tại sao dùng UDP thay vì TCP?
-
DHCP hoạt động trước khi thiết bị có địa chỉ IP hợp lệ, nên không thể thiết lập kết nối TCP (vốn cần 3-way handshake).
-
UDP nhẹ, không yêu cầu xác nhận, phù hợp cho việc gửi broadcast (DHCP Discover, Offer…).
Tóm lại:
-
Giao thức: UDP
-
Cổng: 67 (server), 68 (client)
Mục tiêu chính của DHCP Snooping:
- Chặn gói DHCP OFFER / ACK đến từ cổng không đáng tin.
- Chỉ cho phép gói DHCP Server đi ra từ cổng được chỉ định.
- Ngăn attacker cấp phát IP sai hoặc đặt gateway giả.
Giả lập DHCP Snooping trên MikroTik (theo cách thủ công)
1. Tìm interface của DHCP Server
Ví dụ: cổng ether1 nối đến router chính (DHCP server).
2. Tạo rule drop DHCP từ cổng không đáng tin
3. (Tùy chọn) Chấp nhận DHCP từ cổng tin cậy
Giải thích:
-
Port 67 (server) gửi tới port 68 (client).
-
Chặn bất kỳ DHCP OFFER/ACK nào xuất hiện từ cổng không mong muốn.
-
Bạn có thể dùng thêm Bridge + DHCP Snooping trong Bridge Settings (nếu cấu hình dạng switch).
” DHCP Snooping ” khi sử dụng Bridge trên Switch Mikrotik chạy RouterOS.
Điều kiện để thực hiện : Phải có địa chỉ MAC của nhóm mạng ( Bridge ) LAN mà router cấp IP xuống hoặc địa chỉ MAC của cổng ether trên router mà Switch Mikrotik kết nối. Ví dụ ở đây là MAC: 78:9A:18:EE:96:88. ( tính năng này tốn tài nguyên CPU trên Switch và không được bật FastTrack trên Switch )
Bước 1: Cấu hình chung của Bridge Bridge_LAN

- Name: Tên bridge là
Bridge_LAN. - Type: Loại interface là
Bridge. - MTU: Chưa set tay nên để trống.
- Actual MTU: 1500 (MTU thực tế đang dùng, mặc định).
- L2 MTU: 1596 (MTU ở Layer 2).
- MAC Address: 78:9A:18:76:6D:FE (MAC được gán cho bridge).
- ARP: enabled (cho phép ARP hoạt động trên bridge này).
- Admin MAC Address: để trống (nếu có set thì sẽ override MAC mặc định).
- Ageing Time: 5 phút (300 giây) – thời gian lưu trữ MAC address học được.
- Tùy chọn thêm:
- IGMP Snooping: chưa bật (quản lý multicast).
- DHCP Snooping: chưa bật (chống DHCP giả mạo).
- Fast Forward: đã bật (giúp tăng tốc truyền thông tin layer 2).
Bước 2: Danh sách các port tham gia vào Bridge_LAN

- 6 interface đã được add vào bridge:
ether1,ether2,ether3,ether4,ether5,sfp1
- Cột Role:
designated port: port đang hoạt động bình thường.disabled port: port bị disable, không truyền traffic (ví dụether2vàsfp1).
- Priority, Path Cost:
- Priority là 80 (ưu tiên mặc định).
- Path Cost là 10 (chi phí đường đi, thấp hơn thì tốt hơn).
Bước 3: Cấu hình nâng cao Bridge Settings

- Các tùy chọn đang bật:
- Use IP Firewall: Traffic đi qua bridge sẽ được kiểm tra theo firewall rules.
- Use IP Firewall for VLAN: Traffic VLAN cũng bị kiểm tra firewall.
- Use IP Firewall for PPPoE: Traffic PPPoE cũng bị kiểm tra firewall.
- Allow Fast Path: cho phép tính năng FastPath để tăng tốc xử lý (tùy trường hợp sẽ bật tự động).
- Bridge Fast Path Active: chưa bật (khi bật thì bridge sẽ chuyển packet nhanh hơn, giảm CPU load).
- Các thông số dưới cùng (
Bridge Fast Path Packets,Bridge Fast Forward Packets) đều đang bằng 0 (chưa có traffic kiểu đó đi qua).
Tóm lại :
Bạn đang cấu hình một bridge cho LAN, các cổng mạng vật lý ether1-ether5 và sfp1 gộp chung lại thành một mạng nội bộ.
Bạn cũng bật firewall xử lý trên bridge, và có cho phép fast forward để tối ưu hiệu suất mạng nội bộ.
Bước 4: Cấu hình điều kiện lọc gói tin (General Tab)

- Đây là phần cấu hình một Firewall Rule (luật tường lửa) trên RouterOS (MikroTik).
- Chain: forward → Luật áp dụng cho các gói tin đi qua router (không phải gói tin đích hoặc nguồn là chính router).
- Protocol: 17 (udp) → Luật này áp dụng cho giao thức UDP.
- Src. Port: 67 → Chỉ nhắm tới gói tin từ cổng nguồn UDP 67 (thường là DHCP server gửi thông tin IP cho client).
- In. Interface: Bridge_LAN → Gói tin đi vào từ interface
Bridge_LAN.
→ Nói đơn giản: Bất kỳ gói UDP từ port 67 qua Bridge_LAN sẽ bị luật này xử lý.
Bước 5 Xác định thiết bị bằng địa chỉ MAC (Advanced Tab)

- Src. MAC Address: ! 78:9A:18:EE:96:88 → Luật này chỉ áp dụng cho thiết bị có địa chỉ MAC Khác MAC này.
- MAC 78:9A:18:EE:96:88 này là MAC được router có DHCP sever hợp lệ mà bạn cho phép ( nó là MAC của nhóm bridge trên router )
- Các mục khác để trống → Không lọc thêm theo Content, Connection Rate, Layer7, v.v.
→ Tức là luật chỉ nhắm đúng vào một thiết bị cụ thể dựa trên địa chỉ MAC.
Bước 6: Thiết lập hành động chặn và ghi log (Action Tab)

- Action: drop → Gói tin thỏa mãn điều kiện sẽ bị chặn (drop).
- Log: bật → Mỗi gói bị chặn sẽ được ghi lại log để dễ dàng kiểm tra.
→ Nghĩa là: Thiết bị MAC 78:9A:18:EE:96:88 gửi gói UDP từ port 67 ra Bridge_LAN sẽ bị router chặn và ghi log.
Tóm lại:
Bạn đang tạo một luật để chặn thiết bị có MAC khác với 78:9A:18:EE:96:88 không cho gửi gói DHCP từ cổng 67 vào mạng LAN.
(Thường dùng để tránh tình trạng thiết bị phát DHCP lung tung, gây loạn mạng.)
