Loading...

DHCP Server và Relay trên FortiGate — cấu hình và khi nào dùng chế độ nào

1. Liên hệ thực tế

Khách hàng mới của anh Nam là một công ty vừa, đã có sẵn Windows Server chạy Active Directory kiêm luôn DHCP server nội bộ. Khi triển khai FortiGate thay thế router cũ, anh Nam theo thói quen bật luôn DHCP Server ngay trên interface LAN của FortiGate — kết quả là mạng xuất hiện 2 DHCP server cùng cấp phát cho cùng một dải mạng, máy trạm nhận IP ngẫu nhiên từ server này hoặc server kia, gây xung đột IP liên tục.

Chị Lan giải thích: "Công ty đã có Windows Server làm DHCP rồi, FortiGate không cần tự cấp IP nữa — chỉ cần chuyển tiếp (relay) request của client về đúng Windows Server đó. Đây là lúc dùng DHCP Relay mode thay vì Server mode."

Bài này đi qua hai chế độ DHCP trên FortiGate: Server mode (FortiGate tự cấp phát IP) và Relay mode (FortiGate chuyển tiếp request tới DHCP server bên ngoài) — và cách chọn đúng chế độ theo hạ tầng sẵn có của khách hàng.


2. Kiến thức cốt lõi

2.1 Hai chế độ DHCP trên FortiGate

Một interface FortiGate có thể hoạt động ở một trong hai chế độ liên quan tới DHCP: Server (tự cấp phát địa chỉ) hoặc Relay (chuyển tiếp request tới DHCP server thật ở nơi khác).

DHCP Server mode vs Relay mode Server mode Client FortiGate (tự cấp IP) FortiGate tự lưu ip-range, default-gateway, DNS — trực tiếp cấp phát IP cho Client Phù hợp: LAN nội bộ đơn giản, chi nhánh nhỏ Relay mode Client FortiGate (relay) forward DHCP Server FortiGate chuyển tiếp request tới DHCP Server bên ngoài (thông qua địa chỉ dhcp-relay-ip) Phù hợp: Doanh nghiệp có Windows Server / AD

2.2 DHCP Server mode

FortiGate tự lưu dải địa chỉ (ip-range), default gateway, DNS, thời gian thuê (lease time) và các tùy chọn khác, trực tiếp cấp phát cho client trên interface đó.

config system dhcp server
    edit 1
        set dns-service default
        set default-gateway 192.168.1.2
        set netmask 255.255.255.0
        set interface "port1"
        config ip-range
            edit 1
                set start-ip 192.168.1.3
                set end-ip 192.168.1.254
            next
        end
        set timezone-option default
    next
end

Có thể khai báo nhiều dải IP-range trong cùng một DHCP server (tối đa 10 dải), hữu ích khi cần chừa lại một số IP tĩnh xen giữa dải động cho các thiết bị đặc biệt (máy in, camera...). Trên các model entry-level, FortiGate thường có sẵn cấu hình DHCP server mặc định trên interface internal, khớp với IP mặc định 192.168.1.99 — cần điều chỉnh lại nếu đổi sang dải mạng khác.

⚠️ Lưu ý: Dải IP-range của DHCP server phải khớp với subnet của chính interface đó — nếu đổi IP interface sang dải mạng khác mà quên cập nhật DHCP server tương ứng, client sẽ không nhận được IP hợp lệ.

2.3 DHCP Relay mode

Ở chế độ Relay, interface FortiGate không tự cấp IP mà chỉ chuyển tiếp request DHCP từ client tới một DHCP server thật nằm ở nơi khác trong mạng, sau đó chuyển tiếp response ngược lại cho client.

Luồng DHCP Relay qua nhiều subnet Client (VLAN20) 1. DHCP Discover FortiGate port2 (relay agent) 2. Forward + GIADDR DHCP Server thật 192.168.20.10 3. DHCPOFFER → relay 4. FortiGate → client GIADDR (gateway IP address field) giúp DHCP Server xác định chính xác scope / subnet cần cấp phát IP cho Client ở VLAN20

config system interface
    edit "port2"
        set ip 10.1.1.5 255.255.255.0
        set dhcp-relay-service enable
        set dhcp-relay-ip "192.168.20.10"
    next
end

Cơ chế relay hoạt động dựa trên trường GIADDR (Gateway IP Address) trong gói DHCP — khi relay agent (FortiGate) chuyển tiếp request, nó điền địa chỉ IP của chính interface đó vào GIADDR, giúp DHCP server thật biết được scope/subnet nào cần cấp phát cho client, dù client và server nằm ở hai subnet khác nhau.

⚠️ Lưu ý: DHCP server thật cần có định tuyến hợp lệ để gửi response ngược trở lại được FortiGate relay agent — nếu routing giữa hai bên bị sai, client sẽ không bao giờ nhận được địa chỉ dù request đã được chuyển tiếp đúng.

2.4 Một interface có thể vừa là Server vừa Relay không

Có — một interface FortiGate có thể vừa cấp phát IP (server mode) cho một số client, vừa relay một phần request khác tới thiết bị bên ngoài (ví dụ FortiNAC để làm device profiling), tùy vào thiết kế mạng. Trong trường hợp cần chuyển hẳn từ Server sang Relay, phải tắt (set status disable) cấu hình DHCP server cũ trên interface đó trước khi bật dhcp-relay-service.

2.5 Tùy chọn nâng cao: DHCP Relay Agent Information (Option 82)

Option 82 giúp DHCP server phân biệt được client đến từ cổng/VLAN vật lý nào, hỗ trợ thêm một lớp kiểm soát chống giả mạo IP/MAC và tránh cạn kiệt dải địa chỉ do tấn công DHCP starvation.

config system interface
    edit "port4"
        config ip-address-assignment-rule
            edit 1
                set type dhcp-relay-agent-option
            next
        end
    next
end

⚠️ Lưu ý: Option 82 yêu cầu cả DHCP server thật (phía ngoài) hỗ trợ đọc và xử lý thông tin relay-agent option — nếu server không hỗ trợ, tùy chọn này không phát huy tác dụng dù đã bật trên FortiGate.

2.6 Bảng so sánh nhanh: khi nào chọn chế độ nào

Tình huốngChế độ khuyến nghị
Văn phòng nhỏ, chưa có hạ tầng DHCP riêng Server mode
Doanh nghiệp đã có Windows Server/AD làm DHCP Relay mode
Cần chính sách cấp phát tập trung nhiều VLAN cùng lúc Relay mode
Chi nhánh độc lập, không cần đồng bộ với trụ sở chính Server mode

3. Hỏi & Đáp

Nếu vô tình bật cả DHCP Server trên FortiGate lẫn Windows Server cho cùng một dải mạng thì hậu quả gì? Client sẽ nhận IP ngẫu nhiên từ một trong hai server đầu tiên phản hồi (do cơ chế DORA broadcast của DHCP không phân biệt "server nào đáng tin hơn"), dẫn tới khả năng trùng lặp/xung đột IP nếu hai server không đồng bộ dải cấp phát — đây chính xác là lỗi trong tình huống mở đầu bài, khắc phục bằng cách chuyển FortiGate sang Relay mode hoặc tắt hẳn DHCP Server trên FortiGate.

DHCP Relay có hoạt động được xuyên VDOM không? 

Không — mỗi VDOM có cấu hình DHCP relay/server riêng biệt, không tự động chia sẻ giữa các VDOM khác nhau vì bản chất VDOM tách biệt hoàn toàn cấu hình. Muốn relay từ VDOM này sang DHCP server thuộc phạm vi mạng của VDOM khác, cần thiết kế routing/kết nối liên VDOM tương ứng.

Có giới hạn số dải IP-range trong một DHCP server không? 

Có — tối đa 10 dải địa chỉ (ip-range) cho mỗi DHCP server. Nếu cần nhiều dải hơn hoặc logic cấp phát phức tạp hơn, nên cân nhắc chuyển hẳn sang mô hình dùng DHCP server chuyên dụng bên ngoài (Windows Server, Linux ISC-DHCP) và để FortiGate chỉ relay.

Option 82 có bắt buộc dùng khi triển khai DHCP Relay không? 

Không bắt buộc — đây là tùy chọn nâng cao, chỉ cần thiết khi có yêu cầu bảo mật bổ sung (chống DHCP starvation, xác định chính xác cổng vật lý nguồn của client). Với đa số triển khai DHCP Relay cơ bản, chỉ cần dhcp-relay-service và dhcp-relay-ip là đủ hoạt động.


4. Quiz

Câu 1: Ở chế độ nào, FortiGate tự lưu trữ dải địa chỉ và trực tiếp cấp phát IP cho client?

  • A. Relay mode
  • B. Server mode
  • C. Bridge mode
  • D. Transparent mode

Câu 2: Trường nào trong gói DHCP giúp DHCP server thật biết đúng subnet/scope cần cấp phát khi nhận request qua Relay?

  • A. TTL
  • B. GIADDR (Gateway IP Address)
  • C. Source Port
  • D. VLAN Tag

Câu 3: Tối đa bao nhiêu dải IP-range có thể khai báo trong một DHCP server trên FortiGate?

  • A. 1
  • B. 5
  • C. 10
  • D. Không giới hạn

Câu 4: Tình huống nào phù hợp nhất để dùng DHCP Relay mode thay vì Server mode?

  • A. Văn phòng nhỏ chưa có hạ tầng DHCP riêng
  • B. Doanh nghiệp đã có Windows Server/AD đảm nhiệm vai trò DHCP
  • C. Chi nhánh độc lập không cần đồng bộ với trụ sở
  • D. Chỉ có một máy chủ duy nhất trong toàn mạng

Câu 5: Option 82 (DHCP Relay Agent Information) mang lại lợi ích gì?

  • A. Tăng tốc độ cấp phát IP
  • B. Giúp DHCP server phân biệt cổng/VLAN nguồn của client, hỗ trợ chống giả mạo và DHCP starvation
  • C. Thay thế hoàn toàn nhu cầu cấu hình dhcp-relay-ip
  • D. Chỉ hoạt động với IPv6

👉 Đáp án

Câu 1: B — Ở Server mode, FortiGate tự lưu ip-range, default-gateway, DNS và trực tiếp cấp phát IP cho client trên interface đó. 

Câu 2: B — GIADDR (Gateway IP Address field) được relay agent điền vào, giúp DHCP server thật xác định đúng scope/subnet cần cấp phát cho client ở subnet khác. 

Câu 3: C — Tối đa 10 dải IP-range có thể khai báo trong một DHCP server. 

Câu 4: B — Relay mode phù hợp khi doanh nghiệp đã có hạ tầng DHCP riêng (như Windows Server/AD), tránh xung đột hai DHCP server cùng cấp phát cho một dải mạng. 

Câu 5: B — Option 82 giúp DHCP server phân biệt được cổng/VLAN vật lý nguồn của client, hỗ trợ thêm lớp kiểm soát chống giả mạo IP/MAC và tránh cạn kiệt địa chỉ do tấn công DHCP starvation.


📚 Bài viết thuộc khóa học FortiGate của VNExperts

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
ECMP, Link Monitor & Dead Gateway Detection Mục lục khóa học FortiGate NAT: Policy NAT — SNAT Overload / One-to-one / Fixed port