Vượt xa hơn một kết nối Internet đơn lẻ
Sáu tháng trước, văn phòng chúng tôi đã rơi vào tình trạng bế tắc. Mỗi khi đường truyền cáp quang chính chập chờn trong giờ cao điểm họp Zoom, cả đội ngũ đều bị ngắt kết nối. Chỉ một sợi cáp duy nhất giữa doanh nghiệp của bạn và việc ngừng hoạt động hoàn toàn là một rủi ro mà bạn không nên chấp nhận. Mặc dù các giải pháp SD-WAN doanh nghiệp từ các nhà cung cấp tên tuổi hứa hẹn thời gian hoạt động 99,99%, nhưng mức phí bản quyền 2.000 USD hàng năm là một con số khó chấp nhận đối với các đội ngũ nhỏ.
Tôi quyết định xây dựng một giải pháp thay thế SD-WAN tùy chỉnh bằng pfSense và Định tuyến dựa trên chính sách (Policy-Based Routing – PBR). Sau khi vận hành trong môi trường thực tế suốt hai quý, độ ổn định đạt mức cực kỳ vững chắc. Bằng cách kết hợp hai đường cáp quang doanh nghiệp giá rẻ — một đường chính 500Mbps và một đường phụ 200Mbps — chúng tôi đã có tổng băng thông cao hơn và quan trọng hơn là khả năng chuyển đổi dự phòng (failover) liền mạch. Thiết lập này mô phỏng các tính năng mạnh mẽ của SD-WAN mà không bị rơi vào cái bẫy thuê bao định kỳ.
Phần cứng và môi trường ban đầu
Phần cứng của bạn cần ít nhất ba giao diện mạng vật lý: một cho mạng LAN và hai cho các nhà cung cấp WAN riêng biệt. Tôi đã sử dụng một mini-PC không quạt được trang bị bốn card mạng Intel i226-V 2.5GbE. Chip cụ thể này là lựa chọn yêu thích cho các bản build pfSense vì nó xử lý định tuyến tốc độ cao mà không bị lỗi driver như trên các dòng card Realtek rẻ tiền.
Mẹo nhỏ: Hãy gọi cho các nhà cung cấp dịch vụ Internet (ISP) và yêu cầu họ chuyển modem sang chế độ bridge mode. Điều này giúp tránh được thảm họa double NAT, vốn là nguyên nhân gây lỗi VPN và VoIP. Nếu họ từ chối, hãy gán các giao diện WAN trên pfSense bằng IP tĩnh nội bộ và đặt các IP đó vào vùng DMZ của modem. Cách này không lý tưởng nhưng vẫn hoạt động được.
Cấu hình Gateway và Giám sát
Hệ thống cần biết chính xác khi nào một kết nối bị hỏng. Hãy truy cập vào System > Routing > Gateways. Bạn sẽ thấy hai đường WAN được liệt kê ở đó, nhưng chế độ giám sát mặc định khá hời hợt. Nó chỉ ping đến gateway nội bộ của ISP. Thông thường, gateway đó vẫn phản hồi ngay cả khi kết nối Internet thực tế đã chết.
Tôi thích sử dụng các máy chủ DNS công cộng làm “vật thí nghiệm”. Đối với WAN1, hãy sử dụng 8.8.8.8 (Google). Đối với WAN2, hãy sử dụng 1.1.1.1 (Cloudflare). Nếu pfSense không thể kết nối tới các IP cụ thể này, nó sẽ biết rằng đường truyền thực sự đã bị hỏng.
# Cấu hình giám sát khuyến nghị
WAN1 (Fiber A): Monitor 8.8.8.8
WAN2 (Fiber B): Monitor 1.1.1.1
Đừng giữ nguyên độ nhạy mặc định. Trong phần Advanced, tôi đặt ngưỡng độ trễ (latency threshold) là 250ms và mất gói (packet loss) là 10%. Nếu đường cáp quang của tôi bắt đầu mất 1 trong 10 gói tin, tôi muốn hệ thống hủy bỏ kết nối đó ngay lập tức thay vì để người dùng phải chịu đựng trải nghiệm giật lag.
Tạo Gateway Groups: Bộ não của SD-WAN
Đây là nơi phép màu xảy ra. Điều hướng đến System > Routing > Gateway Groups. Bạn sẽ muốn xây dựng hai kịch bản tùy thuộc vào nhu cầu của mình.
1. Nhóm cân bằng tải (Load Balance Group)
Đặt cả WAN1 và WAN2 ở mức Tier 1. Khi cả hai cùng mức ưu tiên, pfSense sẽ phân phối tải. Nếu bạn có hai đường truyền 500Mbps, văn phòng của bạn về cơ bản sẽ có một đường ống 1Gbps. Nếu một đường bị đứt do sự cố, đường Tier 1 còn lại sẽ ngay lập tức đảm nhận 100% lưu lượng truy cập.
2. Nhóm dự phòng (Failover Group)
Sử dụng nhóm này nếu đường truyền thứ hai của bạn là kết nối 4G/5G tính phí theo dung lượng. Đặt đường cáp quang tốc độ cao là Tier 1 và modem di động là Tier 2. pfSense sẽ chỉ sử dụng dữ liệu di động đắt đỏ đó nếu đường cáp quang mất kết nối hoàn toàn.
Policy-Based Routing: Điều hướng lưu lượng
Định nghĩa các nhóm mới chỉ là một nửa chặng đường. Bạn phải ép pfSense thực sự sử dụng chúng. Đi tới Firewall > Rules > LAN và chỉnh sửa quy tắc “Allow” chính của bạn. Cuộn xuống phần Gateway trong Advanced Options và đổi “Default” thành LoadBalanceGroup mới tạo.
Các trang web bảo mật như ngân hàng thường không thích việc IP của bạn thay đổi giữa phiên làm việc. Họ sẽ đăng xuất bạn ngay lập tức vì “lý do bảo mật”. Để khắc phục điều này, hãy vào System > Advanced > Miscellaneous và bật Sticky Connections. Tính năng này đảm bảo một thiết bị duy nhất sẽ ở lại trên một đường WAN cho đến khi phiên hiện tại kết thúc, ngăn chặn các vòng lặp đăng nhập gây khó chịu.
Xử lý DNS trong môi trường Multi-WAN
DNS là “kẻ sát nhân thầm lặng” trong nhiều thiết lập đa đường truyền. Nếu đường WAN chính của bạn chết và DNS bị ràng buộc với nó, Internet của bạn sẽ mang lại cảm giác như bị hỏng ngay cả khi đường dự phòng vẫn ổn. Truy cập System > General Setup và ánh xạ rõ ràng các máy chủ DNS cho các gateway cụ thể:
- 8.8.8.8 -> WAN1_Gateway
- 1.1.1.1 -> WAN2_Gateway
Bước đơn giản này đảm bảo rằng miễn là một nhà cung cấp còn hoạt động, đội ngũ của bạn vẫn có thể phân giải được tên miền.
Kết quả sau 6 tháng
Trang Status > Gateways hiện là bảng điều khiển tôi truy cập nhiều nhất. Nó hiển thị RTT (độ trễ) và jitter theo thời gian thực. Khi một nhân viên phàn nàn về kết nối “chậm”, tôi thường có thể thấy ISP-B đang bị vọt độ trễ lên 150ms và có thể chủ động ngắt kết nối đó để buộc mọi người chuyển sang đường truyền ổn định hơn.
Trong các bài kiểm tra failover, tôi đã rút cáp WAN chính khi đang xem video 4K. Video chỉ bị khựng lại đúng 3 giây trước khi tiếp tục. Hầu hết các cuộc gọi VoIP chỉ bị nhiễu nhẹ nhưng không bị ngắt. Đó chính là hiệu suất giúp cứu vãn những deadline vào chiều thứ Sáu.
Để có cái nhìn sâu hơn, hãy cài đặt gói ntopng. Nó cho phép bạn thấy chính xác máy trạm nào đang chiếm dụng băng thông trên mỗi đường WAN. Việc xây dựng hệ thống này không chỉ giúp chúng tôi tiết kiệm hàng ngàn USD tiền bản quyền mà còn mang lại khả năng giám sát toàn diện mạng lưới. Nếu tòa nhà của bạn có hai đường Internet, bạn đang lãng phí hiệu suất nếu không sử dụng cả hai.

