Loading...

Lab: Dựng HA Cluster Active-Passive (FGCP) trên FortiGate

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

Đúng như tình huống chị Lan kể ở bài lý thuyết, anh Nam dựng lại Lab với đúng lỗi kinh điển đó để tự tay trải nghiệm: lần đầu đấu heartbeat qua switch chung, quan sát cluster không bao giờ join được; sau đó đấu lại trực tiếp port-to-port để thấy sự khác biệt. Chị Lan nói thêm: "Làm Lab HA quan trọng nhất là bước test failover thật — rút cáp WAN của Primary giữa lúc đang ping liên tục, xem thời gian mất gói bao lâu. Nếu chỉ đọc get system ha status mà không test failover, coi như chưa hiểu HA."

Lab này dựng cluster Active-Passive 2 node đúng theo sơ đồ bài lý thuyết, tới khi cluster in-sync và xử lý traffic ổn định. Phần test failover thật, so sánh override, và giả lập split-brain được tách sang Lab riêng đi kèm bài kế tiếp để tránh trùng lặp nội dung.


2. Kiến thức cốt lõi — Các bước thực hành

2.1 Sơ đồ Lab

Thiết bịVai tròport1 (WAN)port2 (LAN)port3 (ha1)port4 (ha2)Priority
FGT-A Primary (dự kiến) Switch WAN Switch LAN Đấu trực tiếp sang FGT-B Đấu trực tiếp sang FGT-B 200
FGT-B Secondary (dự kiến) Switch WAN Switch LAN Đấu trực tiếp sang FGT-A Đấu trực tiếp sang FGT-A 100

Yêu cầu môi trường: 2 FortiGate cùng model, cùng phiên bản firmware (bắt buộc theo yêu cầu FGCP), port1/port2 của cả hai đấu chung vào switch LAN/WAN, port3/port4 đấu chéo trực tiếp giữa 2 máy (không qua switch), 1 PC test ở LAN để theo dõi ping liên tục trong lúc failover.

⚠️ Điểm dễ sai #1 (đúng tình huống anh Nam gặp): Nếu Lab dựng trên GNS3/EVE-NG, tuyệt đối không nối port3/port4 qua switch ảo chung với port1/port2 — phải là link riêng point-to-point giữa 2 node FortiGate.

Sơ đồ Lab: HA Cluster Active-Passive (FGCP) Switch WAN chung (Cả 2 FGT cắm port1 vào đây) Switch LAN chung (Cả 2 FGT cắm port2 vào đây) FGT-A Primary dự kiến priority 200 group-id 10, mode a-p session-pickup enable port1: WAN | port2: LAN FGT-B Secondary dự kiến priority 100 group-id 10, mode a-p session-pickup enable port1: WAN | port2: LAN ha1: port3 ↔ port3 (trực tiếp, không qua switch) ha2: port4 ↔ port4 (dự phòng) port1 port1 port2 port2 Đường xanh lá: heartbeat trực tiếp port-to-port | Đường đen: traffic WAN/LAN qua switch chung

2.2 Bước 1 — Kiểm tra 2 FortiGate giống nhau trước khi bắt đầu

get system status

Chạy trên cả 2 máy, đối chiếu dòng Version (firmware) và model — phải khớp tuyệt đối. Nếu khác firmware, nâng cấp/hạ cấp cho khớp trước khi tiếp tục (Fortinet không hỗ trợ join cluster khác version).

2.3 Bước 2 — Cấu hình HA trên FGT-A (Primary dự kiến)

config system ha
    set group-id 10
    set group-name HQ-Cluster-Lab
    set mode a-p
    set password Str0ngP@ssHA
    set hbdev port3 50 port4 50
    set session-pickup enable
    set override enable
    set priority 200
end

2.4 Bước 3 — Cấu hình HA trên FGT-B (Secondary dự kiến)

config system ha
    set group-id 10
    set group-name HQ-Cluster-Lab
    set mode a-p
    set password Str0ngP@ssHA
    set hbdev port3 50 port4 50
    set session-pickup enable
    set override enable
    set priority 100
end

⚠️ Điểm dễ sai #2: Gõ sai password hoặc group-id lệch nhau dù chỉ 1 ký tự giữa 2 node — cluster sẽ không bao giờ join, và log thường chỉ báo chung chung "negotiate" lặp lại chứ không chỉ đích danh nguyên nhân là sai password.

2.5 Bước 4 — Đấu nối vật lý và chờ cluster hình thành

Sau khi apply cấu hình trên cả 2 node, đấu cáp:

  1. port3 FGT-A ↔ port3 FGT-B (ha1)
  2. port4 FGT-A ↔ port4 FGT-B (ha2)
  3. port1 cả hai vào switch WAN chung, port2 cả hai vào switch LAN chung

Chờ khoảng 1–2 phút để cluster tự thương lượng (config sẽ tự đồng bộ từ Primary sang Secondary, không cần cấu hình tay trên FGT-B sau bước này).

2.6 Bước 5 — Kiểm tra cluster đã hình thành

get system ha status
diagnose sys ha status

Kỳ vọng thấy cả 2 thành viên với Configuration Status: in-sync, một node là Primary/Master, một node là Secondary/Slave. Ghi lại Serial Number của node đang là Primary — sẽ dùng để đối chiếu ở bước test failover.

Kiểm tra thêm heartbeat interface nào đang thực sự active:

diagnose sys ha checksum cluster
get system ha status

Cột thông tin heartbeat trong get system ha status cho biết interface nào (port3/port4) đang đảm nhiệm heartbeat traffic thực tế tại thời điểm kiểm tra.

⚠️ Điểm dễ sai #3: Nếu Configuration Status báo not synchronized kéo dài, kiểm tra lại theo thứ tự: (1) group-id/password/mode có khớp tuyệt đối giữa 2 node; (2) heartbeat interface đã lên link (kiểm tra đèn cổng vật lý hoặc diagnose netlink interface list); (3) hai node đúng là cùng model/firmware như đã kiểm tra ở Bước 1.

2.7 Bước 6 — Cấu hình Firewall Policy và xác nhận traffic đi qua cluster bình thường

Đăng nhập vào địa chỉ quản lý cluster (không phải IP riêng từng node — sau khi join cluster, quản trị viên thao tác trên node Primary, cấu hình tự động đồng bộ sang Secondary). Tạo một Policy đơn giản cho phép LAN ra Internet, sau đó từ PC test, ping thử ra ngoài để xác nhận cluster đang xử lý traffic bình thường:

ping 8.8.8.8

Nếu ping thành công và get system ha status vẫn báo in-sync ổn định, cluster đã sẵn sàng cho môi trường thực tế.

💡 Phần tiếp theo — test Failover thật, so sánh override enable/disable, và giả lập Split-Brain sẽ được thực hành chi tiết trong Lab riêng đi kèm bài HA Failover Testing & Troubleshooting, bao gồm cả cách dùng lệnh execute ha failover set để ép failover có kiểm soát ngay trong CLI (không cần rút cáp vật lý), và cách đọc log diagnose debug application hatalk khi cluster không join được. Lab này chỉ dừng ở bước dựng cluster thành công.


3. Hỏi & Đáp

Nếu Lab không có đủ 2 FortiGate vật lý, có thể test bằng FortiGate-VM không?

Được — FGCP hoạt động tương tự trên FortiGate-VM, chỉ cần đảm bảo 2 VM cùng version, và heartbeat interface được nối qua vNIC riêng (trong VMware/ESXi cần đặt đúng port group cho phép broadcast/multicast qua được, vì mặc định một số vSwitch có thể chặn).

Sau khi cluster đã in-sync, có cần cấu hình Firewall Policy/Address Object riêng trên từng node không?

Không — sau khi join cluster thành công, mọi thao tác cấu hình (Policy, Address Object, User...) chỉ cần thực hiện một lần trên node đang là Primary, FGCP sẽ tự động đồng bộ toàn bộ cấu hình sang node Secondary. Đây là lý do vì sao ở Bước 6, Lab chỉ nhắc "đăng nhập vào địa chỉ quản lý cluster" chứ không cấu hình riêng từng node.

Lab này dừng ở đâu, phần test failover/split-brain nằm ở đâu?

Lab này chỉ dừng ở việc dựng cluster thành công và xác nhận traffic đi qua bình thường (in-sync, ping ra ngoài được). Phần test failover thật, so sánh hành vi override, và giả lập split-brain được tách sang Lab riêng đi kèm bài HA Failover Testing & Troubleshooting để tránh trùng lặp nội dung giữa hai bài.


4. Quiz

Câu 1: Trước khi 2 FortiGate có thể join cluster, yêu cầu bắt buộc nào sau đây phải giống nhau?

  • A. Priority
  • B. Model và phiên bản firmware
  • C. IP quản lý
  • D. Tên hostname

Câu 2: Trong Lab, vì sao heartbeat interface bắt buộc đấu trực tiếp port-to-port thay vì qua switch chung?

  • A. Vì FortiGate không có đủ cổng để đấu qua switch
  • B. Vì switch có thể chặn/trễ gói heartbeat, đặc biệt khi có VLAN tag hoặc STP can thiệp
  • C. Vì đấu trực tiếp giúp tăng băng thông traffic LAN
  • D. Không có lý do kỹ thuật, chỉ là khuyến nghị thẩm mỹ

Câu 3: Sau khi cluster đã in-sync, cấu hình Firewall Policy mới cần thực hiện ở đâu?

  • A. Trên cả 2 node, mỗi node một lần
  • B. Chỉ trên node Primary, cấu hình tự động đồng bộ sang Secondary
  • C. Chỉ trên node Secondary
  • D. Cấu hình qua FortiManager, không thể cấu hình trực tiếp

Câu 4: Configuration Status: in-sync trong get system ha status cho biết điều gì?

  • A. Cluster đang bị lỗi nghiêm trọng
  • B. Cấu hình giữa 2 node đã đồng bộ thành công, cluster hoạt động bình thường
  • C. Heartbeat interface đã bị ngắt kết nối
  • D. Cluster đang trong quá trình failover

👉 Đáp án

Câu 1: B Model và phiên bản firmware phải giống nhau tuyệt đối để 2 FortiGate có thể join thành cluster FGCP; priority ngược lại là tham số nên khác nhau.

Câu 2: B Switch trung gian có thể chặn hoặc làm trễ gói heartbeat, đặc biệt khi có VLAN tag hoặc STP can thiệp vào traffic — đấu trực tiếp loại bỏ hoàn toàn rủi ro này.

Câu 3: B Sau khi join cluster, mọi cấu hình chỉ cần thực hiện một lần trên node Primary — FGCP tự động đồng bộ toàn bộ cấu hình sang node Secondary, không cần lặp lại thao tác trên từng node.

Câu 4: B Configuration Status: in-sync xác nhận cấu hình giữa các thành viên cluster đã đồng bộ thành công và cluster đang hoạt động ở trạng thái ổn định bình thường.


📚 Bài Lab thuộc khóa học FortiGate của VNExperts

🧭 Điều hướng

⬅️ Bài lý thuyết🏠 Mục lục khóa họcBài kế tiếp ➡️
Cấu hình HA Cluster FortiGate & Heartbeat Interface (FGCP) Mục lục khóa học FortiGate HA failover testing & troubleshooting