Máy Tính

Tối Ưu Tốc Độ OPNsense PPPoE FTTP: Giải Pháp Mạnh Mẽ Cho Kết Nối Gigabit

Bảng điều khiển OPNsense sau khi cấu hình tối ưu tốc độ

Việc tự xây dựng một hệ thống firewall tùy chỉnh chạy OPNsense là một trong những nâng cấp đáng giá nhất mà bạn có thể thực hiện cho mạng nội bộ (LAN) của mình. Trong khi router do nhà cung cấp dịch vụ Internet (ISP) cấp đủ tốt cho các thiết lập gia đình tiêu chuẩn với vài thiết bị không dây, thì 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 với các tính năng nâng cao như VLANs, bạn rất có thể sẽ gặp phải một số vấn đề. Và đó là chưa kể đến khía cạnh bảo mật và quyền riêng tư!

Tuy nhiên, một lĩnh vực 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 đến 50%. Một giải pháp phổ biến là ảo hóa OPNsense thông qua một hypervisor như Proxmox. Nhưng với triết lý của chúng tôi, việc chạy trên phần cứng trực tiếp (bare metal) luôn được ưu tiên. Sau nhiều tìm kiếm, chúng tôi đã tìm thấy giải pháp từ Ben Tasker, chỉ cần vài tinh chỉnh (tunables) và một lần khởi động lại nhanh chóng để khai thác toàn bộ sức mạnh của kết nối Internet Gigabit.

OPNsense, FTTP và PPPoE: Vấn đề và Giải pháp Khai thác Đa nhân CPU

Vấn đề cốt lõi với FreeBSD

Qua nhiều cuộc thảo luận trong cộng đồng và các tài nguyên trực tuyến, chúng tôi nhận ra rằng các kết nối FTTP, PPPoE và hệ điều hành FreeBSD không hoạt động hiệu quả với nhau trên phần cứng trực tiếp. Hệ điều hành cơ bản của OPNsense (FreeBSD) chỉ sử dụng một nhân CPU để xử lý các gói tin đến trên kết nối, điều này tạo ra nút thắt cổ chai, giới hạn tốc độ mạng của bạn ở mức độ nhanh chóng mà nhân CPU đó có thể hoạt động. Đối với các thiết bị firewall không quạt sử dụng CPU Intel công suất thấp, điều này làm giảm đáng kể băng thông khả dụng.

Khi không bật tính năng Receive-Side Scaling (RSS), kết nối 900Mbps của chúng tôi chỉ còn lại khoảng 400 Mbps khi liên kết ra thế giới bên ngoài.

Bản thân thiết bị của chúng tôi đủ mạnh mẽ cho OPNsense và kết nối cáp quang 1Gbps. Tuy nhiên, rất khó để nhận ra vấn đề này chỉ qua bảng điều khiển OPNsense, 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 firewall thực sự chỉ sử dụng một nhân CPU duy nhất trong các bài 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.

Tùy thuộc vào phần cứng, card mạng (NIC) của bạn có thể hỗ trợ Receive-Side Scaling (RSS), nhưng OPNsense lại tắt tính năng này theo 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 sử dụng nhiều nhân CPU. Hãy hình dung kết nối đến của bạn như một đường cao tốc với một làn đường cho mỗi nhân CPU. Khi không có RSS, đường cáp quang của chúng tôi như đang hoạt động với ba trong bốn làn đường (với CPU bốn nhân) bị chặn bởi công trình. Việc bật RSS sẽ “dọn dẹp” các công trình này và cung cấp nhiều băng thông hơn.

Áp Dụng Giải Pháp Nhanh Chóng: Các Tunable Tối Ưu Hiệu Năng

Chúng tôi hơi thất vọng khi biết vấn đề này sâu xa đến mức nào và có lẽ sẽ mất nhiều thời gian hơn để được giải quyết chính thức. Mặc dù 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 gửi đến FreeBSD. Để khắc phục OPNsense ngay lập tức, chúng tôi cần một giải pháp không liên quan đến việc ảo hóa firewall.

Việc nâng cấp lên một thiết bị có CPU mạnh hơn cũng không phải là giải pháp tối ưu, vì đây là vấn đề phần mềm chứ không phải phần cứng, và nó sẽ chỉ che giấu vấn đề thay vì giải quyết triệt để. May mắn thay, Ben Tasker (và 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à thay đổi quá lớn, nhưng nó đảm bảo OPNsense sử dụng RSS với mỗi nhân 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 chúng tôi đã tăng từ 300-400 Mb/s lên đến 900 Mb/s ấn tượng, chính xác là những gì gói cước ISP của chúng tôi cung cấp. Vậy, hãy cùng tìm hiểu các bước khắc phục.

  1. Đăng nhập vào OPNsense.
  2. Điều hướng đến System > Settings > Tunables.
  3. Nhấp vào nút + để thêm tunable mới với thông tin sau để OPNsense sử dụng tất cả các nhân CPU có sẵn cho việc xử lý gói tin đến:
    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:
    net.isr.dispatch = deferred
  5. Tiếp theo là thêm các tunable để bậ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 bạn có (ví dụ: CPU 4 nhân thì căn bậc hai là 2; CPU 8 nhân thì căn bậc hai là 2.8, thường làm tròn xuống hoặc lên tùy khuyến nghị, ở đây là 2).
    net.inet.rss.enabled = 1
    net.inet.rss.bits = 2

Bảng điều khiển OPNsense sau khi cấu hình tối ưu tốc độBảng điều khiển OPNsense sau khi cấu hình tối ưu tốc độ

Chỉ có vậy thôi! Sau khi khởi động lại OPNsense nhanh chóng, sức mạnh thực sự của kết nối FTTP 1Gbps sử dụng PPPoE đã được khai thác triệt để, và cảm giác thật tuyệt vời. Chúng tôi đã kiểm tra lại điểm Bufferbloat để đảm bảo các cài đặt này không làm tăng độ trễ lên quá cao, nhưng thực tế là mọi thứ đều được cải thiện. Cùng với việc điều chỉnh lưu lượng (traffic shaping), giờ đây chúng tôi 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 độ tải xuống chậm trên OPNsense khi sử dụng các kết nối FTTP và PPPoE, xuất phát từ cách FreeBSD quản lý việc sử dụng nhân CPU, có thể được giải quyết một cách hiệu quả bằng cách áp dụng các tunable đơn giản. Bằng việc kích hoạt Receive-Side Scaling (RSS) và phân phối tải xử lý gói tin trên nhiều nhân CPU, bạn có thể biến một kết nối bị giới hạn thành trải nghiệm Gigabit đúng nghĩa. Điều này không chỉ tăng cường hiệu suất mạng mà còn cải thiện đáng kể độ trễ (Bufferbloat), mang lại lợi ích rõ rệt cho các hoạt động yêu cầu băng thông và độ nhạy cao. Hãy thử áp dụng các tinh chỉnh này cho hệ thống OPNsense của bạn và trải nghiệm sự khác biệt! Đừng ngần ngại chia sẻ kinh nghiệm hoặc thắc mắc của bạn trong phần bình luận bên dưới.

Related posts

Ventoy: Cổng vàng giúp bạn khám phá thế giới Linux đa dạng một cách dễ dàng

Administrator

eGPU Sắp Hồi Sinh Mạnh Mẽ: 5 Yếu Tố Thúc Đẩy Card Đồ Họa Rời Gắn Ngoài

Administrator

Công Nghệ Mới: In 3D Cấu Trúc Giống Thủy Tinh Ở Nhiệt Độ Thấp – Đột Phá Từ MIT

Administrator