Image default
Máy Tính

Khắc Phục OPNsense Chậm Tốc Độ PPPoE/FTTP: Tối Ưu Hiệu Năng Đa Nhân CPU

Việc xây dựng một tường lửa tùy chỉnh chạy OPNsense là một trong những nâng cấp đáng giá và hiệu quả nhất cho mạng nội bộ (LAN) của bạn. Router do nhà cung cấp dịch vụ internet (ISP) cung cấp thường chỉ đủ dùng cho các thiết lập gia đình cơ bản với một vài thiết bị không dây. Tuy nhiên, khi bạn bắt đầu thêm nhiều máy khách hơn và lên kế hoạch cho một mạng lưới với các tính năng nâng cao như VLAN, bạn có thể sẽ gặp phải một số vấn đề về hiệu suất. Bên cạnh đó, các yếu tố về quyền riêng tư và bảo mật cũng là lý do để nhiều người dùng chuyển sang OPNsense.

Tuy nhiên, có một điểm yếu mà OPNsense dường như còn hạn chế là tốc độ tải xuống trên các kết nối Point-to-Point Protocol over Ethernet (PPPoE) và Fibre to the Premises (FTTP). Vấn đề này có thể làm giảm đáng kể tốc độ tải xuống của bạn, đôi khi lên tới 50%. Một số giải pháp được đề xuất là chạy OPNsense ảo hóa thông qua hypervisor như Proxmox, nhưng điều này không phải lúc nào cũng là lý tưởng cho mọi người. May mắn thay, một giải pháp hiệu quả cho cấu hình bare metal đã được tìm thấy từ Ben Tasker, chỉ yêu cầu vài thay đổi nhỏ trong các thiết lập (tunables) và khởi động lại hệ thống. Bài viết này sẽ hướng dẫn bạn chi tiết cách tối ưu OPNsense để khai thác tối đa băng thông cáp quang của mình.

Hiểu Vấn Đề Tốc Độ Chậm của OPNsense trên FTTP và PPPoE

Nút Thắt Cổ Chai Đến Từ FreeBSD

Theo nhiều thảo luận trong cộng đồng và các nguồn tài liệu trực tuyến, có một thực tế là các kết nối FTTP, PPPoE qua cáp quang và hệ điều hành FreeBSD (nền tảng của OPNsense) không thực sự hoạt động hiệu quả khi triển khai trên phần cứng vật lý (bare metal). Vấn đề cốt lõi là hệ điều hành cơ bản chỉ sử dụng một nhân CPU duy nhất để xử lý các gói tin đến trên kết nối mạng. Điều này tạo ra một nút thắt cổ chai nghiêm trọng, giới hạn tốc độ mạng của bạn ở mức độ mà nhân CPU đó có thể xử lý. Đối với các thiết bị tường lửa không quạt sử dụng CPU Intel công suất thấp, đây là một rào cản lớn đối với băng thông.

Thực tế, với một kết nối 900Mbps, nếu không kích hoạt tính năng Receive-Side Scaling (RSS), tốc độ mạng của bạn có thể chỉ đạt khoảng 400 Mbps khi liên lạc với thế giới bên ngoài. Mặc dù thiết bị của bạn có thể hoàn toàn đủ mạnh cho OPNsense và kết nối cáp quang 1Gbps, nhưng việc nhận ra vấn đề này qua giao diện điều khiển OPNsense (dashboard) là khá khó khăn, trừ khi bạn đi sâu vào kiểm tra tài nguyên hệ thống đang được sử dụng. Sau khi xác nhận rằng tường lửa thực sự chỉ sử dụng một nhân CPU duy nhất trong quá trình kiểm tra tốc độ và tải xuống tệp, đã đến lúc tìm kiếm một giải pháp để buộc OPNsense (và FreeBSD) tận dụng ba nhân CPU còn lại.

Sức Mạnh của Receive-Side Scaling (RSS) và Vì Sao Nó Bị Tắt Mặc Định

Tùy thuộc vào phần cứng của bạn, card mạng (NIC) có thể hỗ trợ Receive-Side Scaling (RSS) – một tính năng quan trọng nhưng thường bị OPNsense tắt mặc định. RSS cho phép card mạng của bạn xử lý các gói tin đến bằng cách phân phối tải công việc qua nhiều nhân CPU. Hãy hình dung kết nối mạng đến của bạn như một đường cao tốc với mỗi làn đường tương ứng với một nhân CPU. Khi không có RSS, đường cao tốc cáp quang của bạn chỉ hoạt động với một làn, trong khi ba làn còn lại (đối với CPU bốn nhân) bị chặn bởi “công trình sửa chữa”. Việc kích hoạt RSS giống như việc dọn dẹp các công trình này, mở rộng băng thông và cho phép lưu lượng truy cập được xử lý hiệu quả hơn.

Thiết bị switch mạng Zyxel XGM1915, minh họa cho hạ tầng mạng có thể kết nối với router OPNsenseThiết bị switch mạng Zyxel XGM1915, minh họa cho hạ tầng mạng có thể kết nối với router OPNsense

Áp Dụng Giải Pháp Nhanh Chóng: Tối Ưu Với Các Tunable

Tại Sao Không Nên Ảo Hóa Hay Nâng Cấp Phần Cứng Ngay Lập Tức

Thật sự thất vọng khi biết vấn đề này sâu sắc đến mức nào và có thể mất nhiều thời gian để được khắc phục triệt để. Tuy nhiên, đã có thông tin rằng pfSense+ đã được cấu hình để FreeBSD sử dụng nhiều nhân CPU cho tác vụ này, và những cải tiến này cũng đã được gửi đến FreeBSD. Để khắc phục OPNsense ngay lập tức, chúng ta cần một giải pháp không yêu cầu ảo hóa tường lửa. Việc nâng cấp thiết bị lên một CPU mạnh hơn cũng không phải là giải pháp tối ưu, vì đây là vấn đề về phần mềm chứ không phải phần cứng, và nó chỉ che giấu chứ không giải quyết triệt để nguyên nhân gốc rễ.

May mắn thay, Ben Tasker cùng với một số người khác đã tìm ra giải pháp, liên quan đến việc sử dụng một vài tunable để thay đổi cách OPNsense hoạt động. Đây không phải là một thay đổi quá lớn, nhưng nó đảm bảo OPNsense sử dụng RSS, với mỗi nhân CPU nhận gói tin và các driver sử dụng hàng đợi ISR, phân phối tải trên tất cả các nhân.

Với các tunable này được cấu hình, tốc độ tải xuống của tôi đã tăng từ 300-400 Mb/s lên mức ấn tượng 900 Mb/s, chính xác bằng gói cước ISP của tôi. Bây giờ, hãy cùng xem các bước khắc phục chi tiết.

Hướng Dẫn Kích Hoạt RSS và Cấu Hình Tunable Cho OPNsense

Để tối ưu hóa hiệu suất của OPNsense trên các kết nối FTTP/PPPoE, hãy thực hiện theo các bước sau:

  1. Đăng nhập vào giao diện quản trị OPNsense của bạn.

  2. Điều hướng đến System > Settings > Tunables.

  3. Nhấp vào nút + để thêm một tunable mới với các giá trị sau. Các giá trị này sẽ giúp OPNsense sử dụng tất cả các nhân CPU có sẵn để xử lý các gói tin đến. (Lưu ý rằng tên và giá trị sẽ điền vào trường TunableValue tương ứng.)

    net.isr.maxthreads = -1
    net.isr.bindthreads = 1
  4. Thêm một tunable khác. Lần này, chúng ta cho phép các driver card mạng sử dụng hàng đợi ISR (Interrupt Service Routine queues).

    net.isr.dispatch = deferred
  5. Tiếp theo, thêm các tunable để kích hoạt RSS. (Lưu ý rằng net.inet.rss.bits nên được đặt bằng căn bậc hai của số nhân CPU mà bạn có.)

    net.inet.rss.enabled = 1
    net.inet.rss.bits = 2

    Ví dụ: Nếu CPU của bạn có 4 nhân, căn bậc hai của 4 là 2. Nếu có 8 nhân, bạn có thể thử 2 hoặc 3 (căn bậc hai của 8 là khoảng 2.8, nên làm tròn).

Giao diện Dashboard của OPNsense hiển thị thông tin hệ thống và hiệu suất mạng sau khi tối ưuGiao diện Dashboard của OPNsense hiển thị thông tin hệ thống và hiệu suất mạng sau khi tối ưu

Kết Quả Cuối Cùng và Lợi Ích Khác

Chỉ với vài thao tác đơn giản như vậy, và sau khi khởi động lại nhanh chóng OPNsense, sức mạnh thực sự của kết nối FTTP 1Gbps qua PPPoE đã được giải phóng hoàn toàn. Tốc độ mạng không còn bị giới hạn một cách vô lý. Tôi cũng đã kiểm tra chỉ số Bufferbloat để đảm bảo rằng các cài đặt này không làm tăng độ trễ mạng. Kết quả cho thấy, không những tốc độ được cải thiện mà mọi thứ đều tốt hơn, bao gồm cả Bufferbloat. Kết hợp với tính năng định hình lưu lượng (traffic shaping) của OPNsense, tôi giờ đây có một kết nối gần như hoàn hảo, lý tưởng cho chơi game trực tuyến và các tác vụ nhạy cảm với độ trễ khác.

Kết Luận

Vấn đề tốc độ chậm trên OPNsense khi sử dụng kết nối cáp quang FTTP/PPPoE là một rào cản phổ biến đối với nhiều người dùng. Nguyên nhân sâu xa nằm ở cách FreeBSD xử lý các gói tin đến, chỉ sử dụng một nhân CPU duy nhất. Tuy nhiên, như đã trình bày, giải pháp tối ưu hóa hiệu suất bằng cách kích hoạt Receive-Side Scaling (RSS) thông qua các tunable đã chứng minh hiệu quả vượt trội. Với những thay đổi đơn giản nhưng mạnh mẽ này, bạn có thể biến router OPNsense của mình thành một trung tâm mạng tốc độ cao, đáng tin cậy, khai thác tối đa băng thông cáp quang và mang lại trải nghiệm internet mượt mà hơn cho mọi hoạt động, từ làm việc đến giải trí. Đừng ngần ngại áp dụng các bước trên để nâng tầm hệ thống mạng của bạn ngay hôm nay!

Related posts

Khắc phục sự cố máy tính hiệu quả với Công cụ theo dõi độ tin cậy Windows

Administrator

Đột Phá Công Nghệ: Màn Hình OLED Giờ Đây Có Thể Phát Âm Thanh Ở Cấp Độ Pixel, Mở Ra Kỷ Nguyên Mới

Administrator

WD Black SN770M 2TB: Nâng cấp SSD 2230 hoàn hảo cho ROG Ally và Steam Deck

Administrator