Đến nội dung chính
Infra Notes
DOCS / UTF-8
Deployment // Triển khai hệ thốngopnsense

OPNsense — Kiến trúc và triển khai OpenVPN HA

DOC PATH deployments/opnsense/openvpn-ha

Doc Type
Deployment
Technology
opnsense
Status
Active

Triển khai OpenVPN HA với bốn interface WAN, LAN, PFSYNC và XMLRPC; gộp vai trò khi thiếu interface. Đọc theo thứ tự các chương hoặc chọn mục cần tra cứu trong mục lục.

Cấu trúc triển khai ưu tiên 4 interface trên mỗi node, tách WAN, LAN, đồng bộ state và đồng bộ cấu hình. Dùng cùng thứ tự interface, tên và network mapping trên cả hai node.

Interface Network trong VMware Workstation Nhiệm vụ
WAN VMnet8 Kết nối FortiGate; nhận OpenVPN qua WAN CARP VIP.
LAN VMnet1 Kết nối các subnet và dịch vụ nội bộ.
PFSYNC VMnet2 Đồng bộ firewall state giữa hai node.
XMLRPC VMnet3 Đồng bộ cấu hình từ OPNsense01 sang OPNsense02; truy cập quản trị theo firewall rule.

FortiGate chuyển tiếp kết nối OpenVPN vào CARP VIP trên WAN. Hai node OPNsense hoạt động theo vai trò MASTER/BACKUP, dùng mạng riêng cho đồng bộ state và cấu hình. User VPN truy cập dịch vụ nội bộ theo quyền được cấp.

Architecture Diagram

System Flow

Open Diagram

Chọn Open Diagram để mở sơ đồ trên một trang riêng. Sơ đồ dùng chế độ sáng/tối của trang web; có thể chọn từng luồng, tạm dừng chuyển động, thay đổi tốc độ và phóng to 100%/125% để đọc chi tiết.

IP, tên miền và đường dẫn nội bộ được ẩn bằng tên theo vai trò. Sơ đồ thể hiện luồng kết nối; trạng thái MASTER/BACKUP được kiểm tra tại Web UI của từng node.

Luồng Ý nghĩa
1 — Quản trị Admin truy cập Web UI/SSH qua địa chỉ riêng của mỗi node, với quyền và nguồn truy cập được giới hạn.
2 — Kết nối VPN Client → Internet → FortiGate NAT UDP 1325 → WAN CARP VIP → node giữ VIP.
3 — CARP Xác định MASTER/BACKUP và chuyển quyền giữ VIP khi node lỗi; không chia đều kết nối cho hai node.
4 — pfsync Đồng bộ firewall states hai chiều qua VMnet2.
5 — XMLRPC Đồng bộ các phần cấu hình được chọn từ OPNsense01 sang OPNsense02 qua VMnet3.
6 — Truy cập nội bộ OpenVPN xác thực user, TOTP và client certificate; firewall/RBAC giới hạn tài nguyên, Split DNS phân giải tên nội bộ.
7 — Giám sát Zabbix Server/Proxy theo dõi node, CARP, OpenVPN, tài nguyên và certificate; gửi cảnh báo qua Telegram.
8 — Backup Mỗi node gửi cấu hình XML đến thư mục riêng trên Synology NAS qua SFTP, xác thực bằng SSH key.

Các số đánh dấu dùng để chọn và đọc từng luồng trên sơ đồ, không biểu thị thứ tự triển khai.

Trên VMware Workstation, gán bốn vNIC của mỗi node vào các VMnet tương ứng:

VMnet Vai trò Mạng đại diện Địa chỉ node / dịch vụ
VMnet8 WAN wan-network/24 opnsense01-wan, opnsense02-wan, wan-carp-vip; nhận NAT từ FortiGate.
VMnet1 LAN lan-network/24 opnsense01-lan, opnsense02-lan; kết nối VM và dịch vụ nội bộ.
VMnet2 pfsync pfsync-network/24 opnsense01-pfsync, opnsense02-pfsync; dành cho đồng bộ state.
VMnet3 XMLRPC xmlrpc-network/24 Interface đồng bộ cấu hình riêng; chiều OPNsense01 → OPNsense02.

Các tên trên đại diện cho địa chỉ hoặc subnet cần thay bằng thông số thực tế. Pool cấp IP cho VPN client thuộc mạng tunnel riêng, không phải VMnet3, dù cách đặt tên hoặc dải địa chỉ có thể trông tương tự.

WAN CARP VIP là đích NAT của FortiGate. Khi OPNsense làm default gateway cho LAN, cấu hình thêm LAN CARP VIP và cho client dùng VIP đó. IP riêng của node và VIP phải cùng subnet trên từng interface.

Số interface cấp được cho mỗi node Cách phân chia Điều kiện vận hành
4 — ưu tiên WAN, LAN, PFSYNC, XMLRPC riêng State sync và config sync có đường riêng.
3 WAN, LAN, HA; HA dùng chung cho pfsync và XMLRPC Chọn HA làm interface pfsync; XMLRPC dùng IP HA của node phụ. Giới hạn truy cập tới hai node và admin được cấp quyền.
2 WAN và LAN; pfsync/XMLRPC dùng chung LAN LAN phải là network tin cậy và đủ bandwidth. Giới hạn nguồn/đích đồng bộ giữa hai node; theo dõi state sync khi LAN có tải cao.

Khi thiếu cổng vật lý nhưng switch và hypervisor hỗ trợ VLAN, có thể tách các vai trò thành VLAN interface trên trunk. VLAN tách traffic ở lớp logic; các VLAN trên cùng cổng vẫn dùng chung bandwidth và cùng chịu ảnh hưởng khi cổng đó lỗi. Giữ WAN tách khỏi traffic quản trị và đồng bộ HA.

Ghi rõ mapping đang dùng trước khi cấu hình: interface pfsync, IP peer và IP nhận XMLRPC phải khớp với phương án đã chọn. Với hai interface, việc dùng chung LAN làm tăng ảnh hưởng của congestion và mở rộng phạm vi tiếp cận traffic đồng bộ; ưu tiên bổ sung interface khi có thể. OPNsense khuyến nghị interface riêng cho state sync vì lý do bảo mật và hiệu năng. Xem High Availability.

  • Điểm vào VPN: vpn.example.com đại diện cho public endpoint; FortiGate chuyển tiếp UDP 1325 tới wan-carp-vip, không tới địa chỉ cố định của riêng một node.
  • Xác thực: username/password + TOTP và client certificate riêng theo user. CSO/IP VPN riêng hỗ trợ ánh xạ firewall alias/RBAC.
  • Split Tunnel: chỉ các mạng nội bộ đã cấu hình được đưa qua VPN.
  • Split DNS: các truy vấn tên miền nội bộ được gửi đến internal-dns; các tên miền khác dùng DNS hiện có của client. Phân giải được tên miền không đồng nghĩa với việc có quyền truy cập dịch vụ.
  • Dịch vụ nội bộ: Sonar, Portainer, Console, Monitor, SSH Portal, ERP, Document, PM, Hardware Monitor và Nextcloud.

zabbix-server và zabbix-proxy đại diện cho các thành phần giám sát. Theo dõi trạng thái OPNsense/CARP/OpenVPN, CPU/RAM/disk/interface, tính sẵn sàng dịch vụ và hạn certificate; cảnh báo được gửi qua Telegram.

Synology backup-nas nhận cấu hình XML hằng ngày qua SFTP, xác thực bằng SSH key. Mỗi node dùng thư mục riêng, ví dụ /volume1/backups/opnsense/primary/ và /volume1/backups/opnsense/secondary/. Bản backup này chỉ chứa cấu hình OPNsense; dữ liệu của các dịch vụ phía sau VPN cần có quy trình backup riêng.

CARP duy trì VIP dùng chung, pfsync đồng bộ firewall state, còn XMLRPC đồng bộ các mục cấu hình đã chọn một chiều từ node chính sang node phụ. Mỗi cơ chế có vai trò riêng; vẫn cần backup cấu hình lên NAS.

Trang này hướng dẫn cấu hình và kiểm thử cụm OPNsense HA kết hợp OpenVPN. Các quy trình thu hồi quyền truy cập, gia hạn certificate và restore cấu hình nằm trong Vận hành VPN.

Các bước dưới đây dùng phương án 4 interface. Với phương án 3 hoặc 2 interface, áp dụng mapping trong bảng gộp vai trò khi chọn interface và địa chỉ đồng bộ.

Triển khai 2 node OPNsense theo mô hình High Availability nhằm bảo đảm:

  • OpenVPN vẫn hoạt động khi một node gặp sự cố.
  • Dùng CARP VIP làm IP dịch vụ chung.
  • Đồng bộ state bằng pfsync.
  • Đồng bộ cấu hình từ OPNsense01 → OPNsense02 bằng XMLRPC.
  • Mỗi user VPN có local user, password, TOTP, client certificate và static VPN IP riêng.
  • Phân quyền truy cập bằng Firewall Alias/RBAC.
  • Giám sát bằng Zabbix, gửi cảnh báo qua Telegram và backup cấu hình lên Synology NAS qua SFTP.
Internet
│
Public IP: <VPN_PUBLIC_IP>
│
FortiGate NAT UDP/1325
│
▼
CARP VIP: <WAN_CARP_VIP>
│
├──────────────────────────┐
│ │
▼ ▼
OPNsense01 OPNsense02
MASTER BACKUP
<OPNSENSE01_WAN_IP> <OPNSENSE02_WAN_IP>
│ │
└──── CARP / pfsync ───────┘
│
▼
OpenVPN Users
<VPN_NETWORK_ADDRESS>/24
Thành phần Giá trị
Public IP <VPN_PUBLIC_IP>
OpenVPN Protocol UDP IPv4
OpenVPN Port 1325
WAN OPNsense01 <OPNSENSE01_WAN_IP>
WAN OPNsense02 <OPNSENSE02_WAN_IP>
WAN CARP VIP <WAN_CARP_VIP>
VPN Pool <VPN_NETWORK_ADDRESS>/24
DNS nội bộ <INTERNAL_DNS_IP>
Zabbix Server <ZABBIX_SERVER_IP>
Zabbix Agent TCP 10050
FortiGate NAT
↓
CARP VIP
↓
OPNsense HA
CARP + pfsync + XMLRPC
↓
OpenVPN
Certificate + Password + TOTP
↓
Static VPN IP
↓
RBAC + Split DNS
↓
Internal Resources

Kèm theo:

Zabbix Monitoring
Certificate Expiry Alert
Telegram
SFTP Backup
HA Failover Validation

Các bước dưới đây cấu hình cụm OPNsense OpenVPN HA theo mapping WAN, LAN, PFSYNC và XMLRPC đã xác định.

Mỗi node tối thiểu nên có:

  • 2 vCPU
  • 4 GB RAM
  • 20 GB disk
  • 4 vNIC: WAN, LAN, PFSYNC và XMLRPC.

Gán vNIC và network theo cùng thứ tự trên hai node; kiểm tra MAC address trong inventory để tránh chọn nhầm interface. Khi chỉ cấp được 3 hoặc 2 interface, dùng phương án gộp vai trò ở đầu bài.

Trên VMware Workstation, dùng VMnet theo bảng mapping. Khi chạy trên ESXi/vSphere, kiểm tra chính sách virtual MAC trên các Port Group mang CARP:

Promiscuous Mode = Accept
MAC Address Changes = Accept
Forged Transmits = Accept

Nếu không bật, CARP có thể hiển thị đúng MASTER/BACKUP nhưng VIP không hoạt động ổn định.

Hostname: OPNsense01
WAN: <OPNSENSE01_WAN_IP>/<WAN_PREFIX>
LAN: <OPNSENSE01_LAN_IP>/<LAN_PREFIX>
PFSYNC: <OPNSENSE01_PFSYNC_IP>/<PFSYNC_PREFIX>
XMLRPC: <OPNSENSE01_XMLRPC_IP>/<XMLRPC_PREFIX>
Hostname: OPNsense02
WAN: <OPNSENSE02_WAN_IP>/<WAN_PREFIX>
LAN: <OPNSENSE02_LAN_IP>/<LAN_PREFIX>
PFSYNC: <OPNSENSE02_PFSYNC_IP>/<PFSYNC_PREFIX>
XMLRPC: <OPNSENSE02_XMLRPC_IP>/<XMLRPC_PREFIX>

Các giá trị *_PREFIX là prefix của subnet tương ứng trong inventory; hai node dùng cùng subnet cho từng vai trò. Đặt default gateway về FortiGate qua WAN. PFSYNC và XMLRPC nối trực tiếp cùng subnet giữa hai node, không dùng default gateway riêng.

Sau khi cấu hình, kiểm tra:

  • Hai node ping được nhau.
  • Hai node truy cập được gateway.
  • Truy cập được WebGUI.
  • Thời gian hệ thống chính xác và NTP đồng bộ thành công.
  • DNS hoạt động.

Kiểm tra routing table trên từng node sau khi gán interface:

  • WAN đi đến FortiGate bằng IP riêng của node; việc quản trị node phụ không phụ thuộc node đang giữ VIP.
  • Hai địa chỉ PFSYNC liên lạc trực tiếp trên network PFSYNC. Hai địa chỉ XMLRPC liên lạc trực tiếp trên network XMLRPC.
  • Các subnet nội bộ ngoài LAN cần route tới đúng next hop; đường về VPN subnet cũng phải có trên router của các subnet đó.
  • Chỉ thêm static route hoặc FRR route theo routing plan thực tế. Không thêm host route /32 để bù cho việc gán sai subnet hoặc interface.
  • Cấu hình interface và route riêng của mỗi node được quản lý trên node đó; không đồng bộ chúng qua XMLRPC.

Trước khi tiếp tục, kiểm tra reachability giữa hai peer riêng trên PFSYNC và XMLRPC, từ admin tới IP quản trị từng node, và từ từng node tới gateway/DNS/NTP.

Vào:

Interfaces → Virtual IPs → Settings
Type: CARP
Interface: WAN
Address: <WAN_CARP_VIP>/<WAN_PREFIX>
VHID: 1
Advbase: 1
Advskew: 0
Type: CARP
Interface: WAN
Address: <WAN_CARP_VIP>/<WAN_PREFIX>
VHID: 1
Advbase: 1
Advskew: 100

Kỳ vọng:

OPNsense01 = MASTER
OPNsense02 = BACKUP

Kiểm tra tại:

Interfaces → Virtual IPs → Status

Kiểm tra WAN VIP từ FortiGate hoặc host được phép trên WAN. Đặt cùng CARP password trên hai node; VIP dùng cùng subnet mask với WAN. Nếu LAN cần gateway HA, tạo thêm CARP VIP trên LAN với VHID riêng và cùng subnet mask với LAN. Chi tiết tại Configure CARP.

pfsync dùng để đồng bộ state table giữa hai firewall.

Vào:

System → High Availability → Settings
Synchronize all states via: PFSYNC
Synchronize Peer IP: <OPNSENSE02_PFSYNC_IP>
Synchronize all states via: PFSYNC
Synchronize Peer IP: <OPNSENSE01_PFSYNC_IP>

Với 3 interface, chọn HA và IP HA của peer; với 2 interface, chọn LAN và IP LAN của peer. Cấu hình tương ứng trên cả hai node. Sau đó tạo traffic qua firewall và xác nhận state được đồng bộ.

XMLRPC chỉ cấu hình một chiều:

OPNsense01 → OPNsense02

Trên OPNsense01:

System → High Availability → Settings

Khai báo:

Synchronize Config to IP: <OPNSENSE02_XMLRPC_IP>
Remote Username: <HA_SYNC_USER>
Remote Password: <PASSWORD>

Với 3 interface, đích XMLRPC là IP HA của OPNsense02; với 2 interface, dùng IP LAN của OPNsense02. Web UI phải lắng nghe trên interface nhận XMLRPC. Node phụ để trống cấu hình đồng bộ ngược; chỉ node chính chủ động gửi cấu hình.

  • Aliases
  • Firewall Rules
  • NAT
  • Virtual IPs
  • OpenVPN
  • Users / Groups
  • Authentication Servers
  • Certificates / Authorities
  • Unbound DNS
  • Interfaces
  • Static Routes
  • FRR
  • WebGUI
  • Tunables
  • Các cấu hình riêng từng node

Với object chỉ áp dụng cho một node, dùng:

No XMLRPC Sync

Khi cần đồng bộ thủ công:

System → High Availability → Status
→ Synchronize and reconfigure all

Vào:

System → Trust → Authorities

Tạo:

Name: OpenVPN-CA

Vào:

System → Trust → Certificates

Tạo:

Type: Server Certificate
Issuer: OpenVPN-CA
Name: OpenVPN-Server

Vào:

System → Trust → Revocation

Tạo:

Name: OpenVPN-CRL
CA: OpenVPN-CA

CRL lưu danh sách certificate đã bị revoke, ví dụ khi nghi private key bị lộ hoặc cần thu hồi certificate.

Mô hình hiện tại:

Local User + Password + TOTP + Client Certificate

Authentication Server:

OpenVPN-TOTP

Mỗi user có:

Username riêng
Password riêng
TOTP seed riêng
Client Certificate riêng

Vào:

VPN → OpenVPN → Instances

Cấu hình chính:

Role: Server
Protocol: UDP IPv4
Port: 1325
Device Mode: TUN
Tunnel Network: <VPN_NETWORK_ADDRESS>/24
Certificate Authority: OpenVPN-CA
Server Certificate: OpenVPN-Server
Certificate Revocation List: OpenVPN-CRL
Authentication: OpenVPN-TOTP
Verify Client Certificate: require
Strict User/CN Matching: ON
Username as CN: ON
Require Client Provisioning: ON
Renegotiate Time: 0
TLS mode: tls-crypt

Sau khi hoàn tất, đồng bộ cấu hình sang OPNsense02.

Trên FortiGate:

<VPN_PUBLIC_IP>:1325/UDP
↓ NAT
<WAN_CARP_VIP>:1325/UDP

VIP <WAN_CARP_VIP> luôn do node MASTER giữ.

Trên OPNsense, cấu hình rule theo interface nhận traffic:

Interface Nguồn → đích Traffic được phép
WAN Nguồn VPN được phép → WAN CARP VIP UDP/1325 cho OpenVPN. Kiểm tra địa chỉ nguồn thực sau NAT trên FortiGate.
Interface mang CARP VIP Hai node trên cùng segment Protocol CARP cho trao đổi trạng thái VIP.
PFSYNC Hai IP PFSYNC của cluster Protocol pfsync; không mở cho toàn bộ LAN hoặc WAN.
XMLRPC OPNsense01 XMLRPC → OPNsense02 XMLRPC HTTPS tới port Web UI đang cấu hình để đồng bộ.
XMLRPC/quản trị Admin được cấp quyền → IP riêng từng node HTTPS/SSH theo dịch vụ quản trị đã bật.
OpenVPN VPN subnet/alias user → tài nguyên nội bộ Chỉ các dịch vụ được cấp trong RBAC.

Với 3 interface, đặt hai rule đồng bộ trên HA. Với 2 interface, đặt trên LAN và giới hạn đúng IP hai node. Giữ các rule đồng bộ hoạt động trên node phụ trước lần XMLRPC sync đầu tiên.

OpenVPN gửi cấu hình DNS nội bộ xuống client:

DNS Servers:
<INTERNAL_DNS_IP>

DNS Domain list được dùng cho Split DNS.

Ví dụ:

console.example.com
monitor.example.com
hardware-monitor.example.com
drive.example.com

Mục tiêu:

Các domain trong DNS Domain list
↓
<INTERNAL_DNS_IP>
Các domain Internet khác
↓
DNS hiện tại của máy user

Nếu DNS <INTERNAL_DNS_IP> gặp lỗi, kiểm tra resolver thực tế trên client. DNS public không thay thế DNS nội bộ để phân giải private domain.

Tạo một user kiểm thử riêng, ví dụ user-system với IP <VPN_USER_IP> chưa được sử dụng. Mỗi user có Local User, password, TOTP, client certificate và static VPN IP riêng.

Thực hiện theo quy trình cấp tài khoản VPN:

  1. Xác nhận IP tunnel không trùng CSO hoặc alias hiện có.
  2. Tạo Local User trong group vpn_users_group và cấu hình TOTP.
  3. Tạo client certificate từ OpenVPN-CA; CN phải khớp username.
  4. Tạo CSO cùng username và gán IP tunnel phù hợp topology của instance.
  5. Sau khi cấu hình RBAC bên dưới, đồng bộ sang node phụ và xác nhận user, certificate, CSO cùng alias.

Ví dụ alias:

VPN_SYSTEM_DEVOPS

Type:

Host(s)

Content:

<VPN_USER_IP>
<VPN_USER_2_IP>
...

Tạo firewall rule:

Source = VPN_SYSTEM_DEVOPS
Destination = server/subnet được cấp quyền
Action = Pass

Cuối rule set nên áp dụng default deny để chặn truy cập ngoài phạm vi đã cấp cho user.

Thực hiện export và bàn giao profile cho đúng user và certificate. Mỗi user dùng một file .ovpn riêng; không chia sẻ profile hoặc private key. Sau đó kiểm tra kết nối theo mục tiếp theo.

Trên OpenVPN Connect:

  1. Import .ovpn.
  2. Nhập username/password.
  3. Nhập TOTP.
  4. Connect.

Kiểm tra:

VPN Connected
Static IP đúng
Split DNS hoạt động
RBAC đúng
Internal access đúng
Không truy cập tài nguyên ngoài quyền

Quy trình cấp tài khoản đầy đủ: Cấp tài khoản VPN.

Cài Zabbix Agent trên cả hai OPNsense.

Port: 10050/TCP
Template: FreeBSD by Zabbix agent

Custom items đang dùng:

opnsense.carp.demotion
opnsense.carp.role
opnsense.openvpn.status
opnsense.ha.peer.status

Ý nghĩa:

opnsense.carp.demotion
→ theo dõi CARP demotion
opnsense.carp.role
→ 1 = MASTER
→ 0 = BACKUP
opnsense.openvpn.status
→ trạng thái OpenVPN
opnsense.ha.peer.status
→ kiểm tra HA peer

Zabbix Server:

<ZABBIX_SERVER_IP>

Master item:

Name: OPNsense certificate API - Raw
Type: HTTP agent
Key: opnsense.api.cert.raw
URL:
https://<OPNSENSE01_XMLRPC_IP>/api/trust/cert/search?current=1&rowCount=1000

API credentials:

{$OPNSENSE.API.KEY}
{$OPNSENSE.API.SECRET}

API group chỉ cho phép truy cập từ nguồn sau:

Source Networks:
<ZABBIX_SERVER_IP>/32

Master item:

History = Do not store

Preprocessing chỉ giữ:

uuid
commonname
valid_to

Đồng thời loại các field không cần thiết như:

prv
prv_payload
crt

Discovery tạo item:

VPN certificate <CN>: Expiration

Trigger prototype:

Certificate {#CN} will expire within 3 days

Severity:

Warning

Threshold:

<= now() + 259200

Zabbix gửi cảnh báo qua Telegram khi certificate còn ≤ 3 ngày trước khi hết hạn.

Hai node backup cấu hình qua SFTP lên Synology NAS.

OPNsense01
\
→ SFTP → Synology NAS
/
OPNsense02

Nguyên tắc:

  • Mỗi node có thư mục backup riêng.
  • Xác thực bằng SSH key.
  • Private key nằm trên OPNsense.
  • Public key được khai báo trên Synology DSM.
  • File backup là XML.
  • SFTP có thể dùng port tùy chỉnh.

Ví dụ:

sftp://user@host:port//path

Quy trình restore: Backup và restore.

Trên OPNsense01 bật:

Persistent CARP Maintenance Mode

Kỳ vọng:

OPNsense02 → MASTER
CARP VIP vẫn hoạt động
VPN vẫn hoạt động

Tắt Maintenance Mode trên OPNsense01.

Kỳ vọng:

OPNsense01 → MASTER
OPNsense02 → BACKUP

Tắt nguồn OPNsense01 để mô phỏng node ngừng hoạt động đột ngột.

Kỳ vọng:

OPNsense02 → MASTER
<WAN_CARP_VIP> vẫn reachable
VPN login mới vẫn thành công

Khi OPNsense01 ngừng hoạt động:

Disconnect VPN
→ Connect lại

Kiểm tra:

Certificate OK
Username/Password OK
TOTP OK
Static VPN IP OK
DNS OK
RBAC OK

Với 4 interface, kiểm thử PFSYNC và XMLRPC riêng từng lần trong maintenance window:

  • Ngắt PFSYNC: kiểm tra trạng thái CARP và dịch vụ, ghi nhận state sync bị gián đoạn; không kỳ vọng các state mới xuất hiện trên peer trong thời gian mất link.
  • Ngắt XMLRPC: thử đồng bộ cấu hình và xác nhận lỗi kết nối; kiểm tra state sync trên PFSYNC vẫn hoạt động.
  • Khôi phục từng link và xác nhận lại cả state sync lẫn config sync trước bước tiếp theo.

Với 3 interface, mất HA ảnh hưởng cả hai luồng đồng bộ. Với 2 interface, mất LAN còn ảnh hưởng đường truy cập nội bộ. Ghi đủ các kết quả sau:

CARP role
pfsync
OpenVPN
Routing

Chỉ kiểm thử split-brain trên production khi có yêu cầu rõ ràng và kế hoạch kiểm soát tác động.