Loading...

Troubleshooting NAT/Routing Thường Gặp trên FortiGate

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

Một khách hàng vừa thêm một đường Internet WAN thứ hai để dự phòng, nhờ VNExperts hỗ trợ kiểm tra vì "lúc được lúc không" khi truy cập một số website. Đây là dạng lỗi khiến nhiều kỹ sư mới bối rối vì cấu hình policy/NAT nhìn qua không có gì sai — vấn đề thực chất nằm ở tương tác giữa NAT và routing khi có nhiều đường ra.

Anh Nam áp dụng đúng quy trình đã học trong Nhóm 7: trước tiên dùng diagnose sys session filter để xem session của một kết nối đang lỗi, sau đó dùng Debug Flow để trace một request thực tế. Output dừng lại ở reverse path check fail — dấu hiệu kinh điển của một vấn đề: gói tin đi ra bằng WAN1 (SNAT theo policy route) nhưng bảng routing lại có route mặc định trỏ traffic trả về mong đợi qua WAN2, khiến FortiGate coi đây là gói tin bất thường và chặn lại.

Chị Lan tổng kết: "NAT và Routing lúc nào cũng phải nhất quán với nhau — SNAT ra cổng nào thì logic tưởng như traffic trả lời phải quay lại đúng cổng đó. Sai lệch giữa Policy Route và Static Route chính là nguồn gốc phần lớn các lỗi 'ngẫu nhiên' liên quan multi-WAN."


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

2.1 Quy trình chẩn đoán chuẩn — không đoán mò

Với mọi lỗi nghi liên quan NAT/Routing, nên đi theo trình tự sau thay vì kiểm tra ngẫu nhiên từng phần cấu hình:

  1. Xác nhận traffic có đến FortiGate đúng interface mong đợi không — dùng Packet Capture.
  2. Xác nhận policy nào match và có NAT gì được áp dụng — dùng Policy Lookup hoặc Debug Flow.
  3. Xác nhận route lookup trả về đúng gateway/interface mong đợi — dùng get router info routing-table và diagnose firewall proute list (nếu có Policy Route).
  4. Xác nhận session thực tế phản ánh đúng NAT/route đã áp dụng — dùng Session table.

2.2 Lỗi thường gặp #1 — Reverse Path Check Fail (multi-WAN)

Xảy ra khi traffic đi ra một WAN interface (do Policy Route hoặc SD-WAN rule) nhưng bảng Static Route mặc định lại chỉ hướng traffic trả về đi qua WAN khác. FortiGate mặc định có cơ chế chống spoofing kiểm tra route ngược (reverse path check) và sẽ chặn nếu không khớp.

Cách kiểm tra:

get router info routing-table all
diagnose firewall proute list

Hướng xử lý phổ biến:

  • Đảm bảo mọi Policy Route/SD-WAN rule đi kèm SNAT đúng cổng đó (không để SNAT dùng IP của WAN khác).
  • Trong môi trường multi-WAN phức tạp, cân nhắc dùng SD-WAN (đã học ở Nhóm 2) thay vì Policy Route thủ công, vì SD-WAN quản lý đồng bộ NAT và route theo từng rule tốt hơn.

2.3 Lỗi thường gặp #2 — VIP/Port Forwarding không hoạt động

Traffic từ Internet vào một dịch vụ nội bộ qua Virtual IP (VIP) không tới đích dù cấu hình VIP và Firewall Policy có vẻ đúng.

Nguyên nhân phổ biến:

  • Firewall Policy dùng VIP làm destination address nhưng thiếu policy cho phép chiều ngược lại nếu server nội bộ cần khởi tạo kết nối đi ra bằng chính IP đó (ít gặp nhưng dễ nhầm).
  • Thiếu route nội bộ để FortiGate biết chuyển tiếp gói tin đã NAT tới đúng server backend — đặc biệt khi VIP trỏ tới một IP không nằm trực tiếp trong subnet đã kết nối.
  • Xung đột giữa nhiều VIP dùng chung external IP nhưng khác external port — cần kiểm tra kỹ Port Forwarding đã cấu hình đúng chưa, tránh trùng lặp.

Cách kiểm tra nhanh:

diagnose firewall vip list

Lệnh này liệt kê toàn bộ VIP đang cấu hình cùng trạng thái, giúp xác nhận nhanh VIP có tồn tại đúng như mong đợi trước khi đào sâu bằng Debug Flow.

2.4 Lỗi thường gặp #3 — Traffic bị NAT hai lần (Double NAT) ngoài ý muốn

Thường xảy ra khi vừa bật Central NAT vừa còn NAT ở cấp Firewall Policy riêng lẻ (đã học phân biệt ở Nhóm 2 — NAT Central vs Policy NAT), khiến địa chỉ nguồn bị dịch hai lần không như thiết kế, gây khó khăn khi server đích cần nhận diện đúng IP nguồn gốc.

⚠️ Lưu ý: Central NAT và NAT theo Policy riêng lẻ là hai cơ chế loại trừ nhau về mặt vận hành thực tế — khi bật Central NAT (config system settings > set central-nat enable), toàn bộ NAT nên được quản lý tập trung qua Central SNAT Policy, tránh để đồng thời cấu hình NAT rời rạc trên từng Firewall Policy để không gây chồng chéo khó debug.

2.5 Lỗi thường gặp #4 — Policy Route không có tác dụng

Đã tạo Policy Route ưu tiên một đường đi cụ thể nhưng traffic vẫn đi theo Static Route mặc định.

Nguyên nhân phổ biến:

  • Policy Route trong FortiOS được xử lý trước Static Route theo thứ tự trong danh sách, nhưng nếu có nhiều Policy Route, thứ tự ưu tiên giữa chúng cũng theo trên-xuống — Policy Route đặt sai vị trí (bị một rule rộng hơn ở trên "che" mất) sẽ không bao giờ được match tới.
  • Interface đích trong Policy Route bị down hoặc không có route khả dụng — theo mặc định, nếu điều kiện next-hop không sẵn sàng, FortiGate rơi về Static Route thay vì báo lỗi rõ ràng.

Cách kiểm tra thứ tự và trạng thái:

diagnose firewall proute list

Kết quả liệt kê Policy Route theo đúng thứ tự xử lý thực tế — nếu rule mong muốn nằm sau một rule khác đã match trước, cần điều chỉnh lại vị trí.

2.6 Bảng tra nhanh triệu chứng → nguyên nhân khả dĩ

Triệu chứngNghi ngờ đầu tiên
Traffic "lúc được lúc không" qua multi-WAN Reverse path check fail, SNAT không khớp cổng ra
Không truy cập được dịch vụ từ Internet qua VIP Thiếu route nội bộ, hoặc VIP/Port Forwarding cấu hình sai
Server nội bộ nhận sai IP nguồn của client Double NAT do lẫn Central NAT với Policy NAT
Traffic không đi theo đường ưu tiên đã cấu hình Policy Route sai thứ tự hoặc next-hop không khả dụng

3. Hỏi & Đáp

Làm sao phân biệt một lỗi là do Routing hay do NAT khi triệu chứng bên ngoài giống nhau (traffic không đi đúng đường)?

Dùng Debug Flow để trace trực tiếp — output sẽ cho biết rõ bước route lookup trả về gateway/interface nào và bước NAT (nếu có) chọn địa chỉ/cổng nào. Đọc đúng trình tự output theo hướng dẫn ở bài Debug Flow sẽ chỉ ra chính xác lỗi nằm ở bước nào.

Central NAT có bắt buộc phải dùng trong mọi triển khai FortiGate không?

Không bắt buộc. Với triển khai đơn giản, ít policy, NAT theo từng Firewall Policy vẫn hoàn toàn ổn và dễ quản lý. Central NAT phát huy giá trị rõ nhất khi có số lượng policy lớn cần logic NAT dùng chung, tránh lặp lại cấu hình NAT ở nhiều nơi.

Reverse path check có thể tắt để tránh lỗi multi-WAN không, có nên làm vậy không?

Có tùy chọn liên quan (set src-check trên interface hoặc điều chỉnh strict/loose reverse path trong một số ngữ cảnh routing nâng cao), nhưng đây là cơ chế bảo mật chống giả mạo địa chỉ nguồn — nên ưu tiên sửa đúng gốc rễ (đồng bộ NAT với route) hơn là tắt cơ chế bảo vệ này, trừ khi đã hiểu rõ rủi ro đánh đổi.


4. Quiz

Câu 1: "Reverse path check fail" trong môi trường multi-WAN thường xuất phát từ nguyên nhân gì?

  • A. Thiếu license FortiGuard
  • B. SNAT ra một WAN nhưng route trả về lại trỏ qua WAN khác
  • C. Application Control chưa được cấu hình
  • D. VDOM chưa được bật

Câu 2: Lệnh nào giúp liệt kê toàn bộ Virtual IP đang cấu hình trên FortiGate?

  • A. diagnose firewall vip list
  • B. diagnose sys session list
  • C. get router info routing-table all
  • D. diagnose debug flow trace start

Câu 3: Double NAT ngoài ý muốn thường xảy ra khi nào?

  • A. Khi tắt hoàn toàn NAT trên mọi policy
  • B. Khi vừa bật Central NAT vừa còn cấu hình NAT rời rạc ở từng Firewall Policy
  • C. Khi dùng VDOM multi-vdom
  • D. Khi Session TTL đặt quá thấp

Câu 4: Policy Route không có tác dụng dù đã tạo đúng, nguyên nhân khả dĩ nhất cần kiểm tra là gì?

  • A. Thứ tự Policy Route và trạng thái next-hop có khả dụng hay không
  • B. Dung lượng ổ đĩa còn trống
  • C. Cấu hình DNS Filter
  • D. Session TTL mặc định

👉 Đáp án

Câu 1: B Đây là nguyên nhân kinh điển của lỗi multi-WAN — traffic đi ra một cổng nhưng route trả lời lại kỳ vọng cổng khác.

Câu 2: A diagnose firewall vip list cho cái nhìn nhanh về toàn bộ VIP đang tồn tại và trạng thái cấu hình.

Câu 3: B Kết hợp đồng thời hai cơ chế NAT khác nhau trên cùng traffic gây ra hiện tượng dịch địa chỉ hai lần ngoài ý muốn.

Câu 4: A Policy Route xử lý theo thứ tự trên xuống; nếu next-hop không khả dụng hoặc bị rule khác "che" trước, rule mong muốn sẽ không bao giờ match.


📚 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 ➡️
Session table & Session TTL Mục lục khóa học FortiGate Performance tuning cơ bản