OPNsense is not for my router :(

For over two years my router is small x86-64 box running OpenWRT. But I have some issues with it.

Hardware info

I bought this PC on Aliexpress somewhere in 2021. It has Intel Celeron J3160 cpu, 2GB of ram and 4 Intel i211 network cards.

My x86-64 router
My x86-64 router

Can be upgraded to 8GB of ram. Can use mSata SSD, has space for 2.5” SATA drive, video outputs, usb ports…

And contrary to several Arm systems it can boot several operating systems out of the box.

Let’s try OPNsense!

OPNsense is FreeBSD based system for network routers. With web interface, packages, monitoring, firewalling etc. Just like OpenWRT but not based on Linux.

Fetched current version (23.7), wrote to usb thumbdrive and booted. It recognized all hardware etc. Took me a bit of time to get basic network running (PPPoE on igb0, LAN on igb1-3).

And then checked performance. Network was 300/300 Mbps on speedtest.net service. The problem is I have 1000/300 Mbps connection.

FreeBSD bug

There is a bug reported in FreeBSD for it:

[igb] PPPoE RX traffic is limited to one queue

On PPPoE interface packets are only received on one NIC driver queue (queue0). This is hurting system performance.

I read through it, took system tunables from comment #11 and rebooted. New values were used:

root@krzys:~ # sysctl -a | grep net.isr
net.isr.numthreads: 4
net.isr.maxprot: 16
net.isr.defaultqlimit: 256
net.isr.maxqlimit: 10240
net.isr.bindthreads: 1
net.isr.maxthreads: 4
net.isr.dispatch: deferred

Speedtest.net shown improvements. But still slow — only 470/300 Mbps.

Time to go back to OpenWRT?

Looks like I will go back to OpenWRT. It is not a perfect solution but works for me on this hardware.

I may not be a fan of how it upgrades packages and rootfs but I have some scripts to make it easier and in saner way.

One day will reconsider running Debian or Fedora on it. I had Debian based router in past and it was working fine.

computers freebsd network openwrt opnsense