{"id":571,"date":"2025-12-31T09:00:00","date_gmt":"2025-12-31T08:00:00","guid":{"rendered":"https:\/\/disorder.dk\/wonderware\/?p=571"},"modified":"2026-01-17T11:06:30","modified_gmt":"2026-01-17T10:06:30","slug":"home-network-security-installing-opnsense-and-slow-speed-problems-part-3","status":"publish","type":"post","link":"https:\/\/disorder.dk\/wonderware\/2025\/12\/31\/home-network-security-installing-opnsense-and-slow-speed-problems-part-3\/","title":{"rendered":"Home Network Security \u2013 Installing OPNsense and SLOW SPEED PROBLEMS! (part 3)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I chose OPNsense over pfSense, from solely reading about it being easier to start with, as pfSense is more &#8220;oldschool&#8221;. Both OPNsense and pfSense is based on FreeBSD. pfSense apparently contributes to the core underlying FreeBSD project and thus have faster security updates. pfSense has shifted focus onto paying customers, and word is that the open source community suffers somewhat from that.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"503\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/01-opnsense-download-1024x503.png\" alt=\"\" class=\"wp-image-587\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/01-opnsense-download-1024x503.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/01-opnsense-download-300x147.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/01-opnsense-download-768x377.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/01-opnsense-download-1536x754.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/01-opnsense-download-2048x1006.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">First <a href=\"https:\/\/opnsense.org\/download\/\">download OPNsense<\/a> in your preferred file \/ method of making an installation image. I am using the VGA for a USB stick. I use balenaEtcher for easy USB stick flashing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"644\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/02-opnsense-burn-1024x644.png\" alt=\"\" class=\"wp-image-588\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/02-opnsense-burn-1024x644.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/02-opnsense-burn-300x189.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/02-opnsense-burn-768x483.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/02-opnsense-burn.png 1513w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I will follow the official documentation from OPNsense: <a href=\"https:\/\/docs.opnsense.org\/manual\/install.html#installation-instructions\">https:\/\/docs.opnsense.org\/manual\/install.html#installation-instructions<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Boot your computer from USB drive and proceed as <em>installer<\/em>, with default password <em>opnsense<\/em>, or you can login as root, if you want to boot from the USB and try out OPNsense without installing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/03-opnsense-login-1024x576.jpg\" alt=\"\" class=\"wp-image-589\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/03-opnsense-login-1024x576.jpg 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/03-opnsense-login-300x169.jpg 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/03-opnsense-login-768x432.jpg 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/03-opnsense-login-1536x865.jpg 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/03-opnsense-login-2048x1153.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I chose Danish keyboard layout and tested it<\/li>\n\n\n\n<li>ZFS file system is recommended for SSD over 16 GB<\/li>\n\n\n\n<li>Stripe is selected for partitioning<\/li>\n\n\n\n<li>Only SSD is listed, nda0. Be aware that da0 can be listed and it is your USB stick!<\/li>\n\n\n\n<li>Set a new root password and do write it down somewhere safe \ud83d\ude42<\/li>\n\n\n\n<li>Installation is finished, remember to remove bootable USB stick to avoid rebooting into installer<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"969\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/04-opnsense-progress-1024x969.jpg\" alt=\"\" class=\"wp-image-590\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/04-opnsense-progress-1024x969.jpg 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/04-opnsense-progress-300x284.jpg 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/04-opnsense-progress-768x727.jpg 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/04-opnsense-progress-1536x1453.jpg 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/04-opnsense-progress.jpg 1691w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Login into OPNsense console and start by setting up your WAN \/ LAN interfaces. We need this in order to access the web GUI. Menu bullet 2) I setup LAN on igc0 and WAN on igc1, you can do this to your own liking. Do not panic over questions about VLANs, that can be setup at a later time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use menu bullet 11) to reload and fetch a IP address if you made changes like setting up DHCP on the WAN interface. LAN interface should have a static IP as OPNsense is going to be the LAN DHCP server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-interfaces-1024x576.jpg\" alt=\"\" class=\"wp-image-591\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-interfaces-1024x576.jpg 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-interfaces-300x169.jpg 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-interfaces-768x432.jpg 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-interfaces-1536x865.jpg 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-interfaces-2048x1153.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"492\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-webgui-1024x492.png\" alt=\"\" class=\"wp-image-592\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-webgui-1024x492.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-webgui-300x144.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-webgui-768x369.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-webgui-1536x737.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/05-opnsense-webgui-2048x983.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">OPNsense Download Speed Problems<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The first test I made after OPNsense was running as firewall between ISP supplied router and switch, was a speedtest.net test. This revealed a serious issue with only around 40 Mbps in download speed, but upload speed was around the usual 130&#8217;ish Mbps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"436\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/06-opnsense-speedtest-fail-1024x436.png\" alt=\"\" class=\"wp-image-593\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/06-opnsense-speedtest-fail-1024x436.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/06-opnsense-speedtest-fail-300x128.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/06-opnsense-speedtest-fail-768x327.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/06-opnsense-speedtest-fail-1536x654.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/06-opnsense-speedtest-fail-2048x872.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Searching online for this problem, reveals its not uncommon. I tried the following solutions proposed on Reddit r\/opnsense: <a href=\"https:\/\/www.reddit.com\/r\/opnsense\/comments\/1maph1l\/download_speed_limited_but_upload_is_not\/\">https:\/\/www.reddit.com\/r\/opnsense\/comments\/1maph1l\/download_speed_limited_but_upload_is_not\/<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"339\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/07-opnsense-interface-hardware-settings-1024x339.png\" alt=\"\" class=\"wp-image-594\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/07-opnsense-interface-hardware-settings-1024x339.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/07-opnsense-interface-hardware-settings-300x99.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/07-opnsense-interface-hardware-settings-768x255.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/07-opnsense-interface-hardware-settings-1536x509.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/07-opnsense-interface-hardware-settings.png 1831w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Forced speed &amp; duplex to 1000baseT full-duplex, on both LAN and WAN<\/li>\n\n\n\n<li>Disabled HW offloading \/ CRC.TSO.LRO<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This did not make any changes. Here I also made a crucial mistake, I tried to force the LAN interface to 2500Base-T, into a 1000baseT switch, which locked me out of the web configuration tool. The fastest route back to access, was a factory default reset from the console with monitor and keyboard on the computer.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>VLAN filtering<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I doubled the download speed from disabling VLAN filtering. However, enabling all hardware settings again, one at a time for LAN and WAN, did not get me back to the slow 40 Mbps, but now stays at 80 Mbps. Weird.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"378\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/08-opnsense-speedtest-fail-1024x378.png\" alt=\"\" class=\"wp-image-596\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/08-opnsense-speedtest-fail-1024x378.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/08-opnsense-speedtest-fail-300x111.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/08-opnsense-speedtest-fail-768x283.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/08-opnsense-speedtest-fail-1536x567.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/08-opnsense-speedtest-fail.png 1585w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Next I read about iperf plugin, to run speed tests locally. First I had to upgrade to OPNsense 25.7.10 and could then install the os-iperf plugin. You need to tick off &#8220;Show community plugins&#8221; to find it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"385\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/09-opnsense-iperf-installation-1024x385.png\" alt=\"\" class=\"wp-image-595\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/09-opnsense-iperf-installation-1024x385.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/09-opnsense-iperf-installation-300x113.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/09-opnsense-iperf-installation-768x289.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/09-opnsense-iperf-installation-1536x577.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/09-opnsense-iperf-installation.png 1999w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Download iperf client to run on f.ex. your Windows PC: <a href=\"https:\/\/iperf.fr\/iperf-download.php\">https:\/\/iperf.fr\/iperf-download.php<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create a iperf test instance in OPNsense, one for LAN and one for WAN. Make sure the iperf service is running. To clear instances, restart the service in the main dashboard. Instances are single use, you need to create a new instance for each test.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"774\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/10-opnsense-iperf-instances-1024x774.png\" alt=\"\" class=\"wp-image-597\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/10-opnsense-iperf-instances-1024x774.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/10-opnsense-iperf-instances-300x227.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/10-opnsense-iperf-instances-768x581.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/10-opnsense-iperf-instances-1536x1162.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/10-opnsense-iperf-instances.png 1777w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Results from both LAN and WAN interface, which essentially can only be from PC to LAN, shows that the there is 1Gbps speeds across the switch.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1014\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/11-opnsense-iperf-results-1024x1014.png\" alt=\"\" class=\"wp-image-598\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/11-opnsense-iperf-results-1024x1014.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/11-opnsense-iperf-results-300x297.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/11-opnsense-iperf-results-150x150.png 150w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/11-opnsense-iperf-results-768x761.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/11-opnsense-iperf-results.png 1252w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A sanity check on the switch connection between PC and OPNsense also shows 1000 Mbps, full-duplex and flow control off.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1012\" height=\"1024\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/12-opnsense-switch-LAN-port-info-1012x1024.png\" alt=\"\" class=\"wp-image-599\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/12-opnsense-switch-LAN-port-info-1012x1024.png 1012w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/12-opnsense-switch-LAN-port-info-297x300.png 297w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/12-opnsense-switch-LAN-port-info-768x777.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/12-opnsense-switch-LAN-port-info.png 1143w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sanity check on OPNsense shell &#8220;ifconfig&#8221; command, shows both Ethernet autoselect at 1000baseT or 2500Base-T, depending on which port I connect on the ISP supplied router.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/13-opnsense-ethernet-autodetection-1024x576.jpg\" alt=\"\" class=\"wp-image-600\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/13-opnsense-ethernet-autodetection-1024x576.jpg 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/13-opnsense-ethernet-autodetection-300x169.jpg 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/13-opnsense-ethernet-autodetection-768x432.jpg 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/13-opnsense-ethernet-autodetection-1536x865.jpg 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/13-opnsense-ethernet-autodetection-2048x1153.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Using speedtest.net on my smartphone, connected through 2.4 Ghz WIFI on the ISP supplied router, gets a result at around 600 Mbps. So there is still a bottleneck somewhere in the OPNsense firewall \/ Minisforum TH50 computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Using the 1) Assign interfaces, and answering no to everything, exit with ctrl+ c. Here we get the NIC names:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>igc0: Intel(R) Ethernet Controller I225-V<\/li>\n\n\n\n<li>igc1: Intel(R) Ethernet Controller I225-V<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Searching for this NIC brand and model, I found this pretty depressing topic: &#8220;Intel i225\/i226 2.5G NIC Information\/Issue Tracking Thread&#8221; <a href=\"https:\/\/forum.opnsense.org\/index.php?topic=38055.0\">https:\/\/forum.opnsense.org\/index.php?topic=38055.0<\/a> with a linked Intel I225 Specifications Updates.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">2.1 I225 v1 Minimum Supported Receive Inter-Packet Gap (IPG) is 8 bytes instead of 5 bytes<br><strong>Problem Summary<\/strong>: The minimum received inter packet gap (IPG) in the GMII interface between the PHY and the MAC is 8 bytes. This minimum gap is specified through 1Gpbs operation. For a controller to operate at 2.5Gpbs, the IEEE standard requires that the MAC be able to tolerate a minimum IPG of 5 bytes. <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><em><strong>The I225 v1 silicon supports an IPG down to 8 bytes, but not down to 5 bytes in 2.5Gpbs operation.<\/strong><\/em><\/mark><br><strong>Implications<\/strong>: Packets received by the I225 v1 product link partner (the switch, router, or back-to-back controller it is connected to) that are received with a smaller IPG than 8 bytes on the MAC\/PHY interface are dropped. W<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><em>hen this occurs, the network connectivity is reduced from 2.5Gpbs to<br>below 1Gpbs operation. <strong>In some scenarios with certain link partners, the operation can be as<br>low as 1-10Mbps<\/strong>.<\/em><\/mark><br><strong>Workaround<\/strong>: The impact of this <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\"><em>IPG issue can be <strong>mitigated when connected through a switch\/router by setting the link speed in the driver (Windows or Linux) to 1Gpbs operation to enable a 1Gpbs line rate<\/strong>.<\/em><\/mark> Also, the latest Windows drivers and I225 firmware available for download (driver version 1.0.0.30 or later NVM version 1.38 or later) can detect when the IPG packet drops occur and will automatically reset the link speed to 1Gpbs. Please see downloads here: https:\/\/downloadcenter.intel.com\/product\/184686\/intel-ethernet-controller-i225-series<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">I forced 1000baseT on the switch for LAN side. ISP suppled router does not have any settings for forcing Ethernet speeds. I tried inserting a 1Gbps switch between router and OPNsense computer. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Netgear 8-port Gigabit Switch G5608v4 did not resolve the issue <\/li>\n\n\n\n<li>3COM 5-port Gigabit Switch 3CGSU05 did not resolve the issue<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">As these switches are 10\/100\/1000base auto negotiating, unmanaged, there is no way to tell what they handshaked with the Minisforum TH50 computer i225 NIC. But from the speedtest alone, its safe to say it is properly 100Mbps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><s><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Last resort with the issue isolated is to set up two ports in a separate VLAN on the managed switch.<\/mark><\/s><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update January 4th 2026<\/strong>: The issue was not resolved. I got fooled by ports set to Trunk, not Access. So I got an IP address directly from the ISP routers DHCP.<\/p>\n\n\n\n<div class=\"wp-block-cover\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"344\" class=\"wp-block-cover__image-background wp-image-601\" alt=\"\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/14-opnsense-switch-VLAN-1024x344.png\" data-object-fit=\"cover\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/14-opnsense-switch-VLAN-1024x344.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/14-opnsense-switch-VLAN-300x101.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/14-opnsense-switch-VLAN-768x258.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/14-opnsense-switch-VLAN-1536x516.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/14-opnsense-switch-VLAN-2048x689.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-large-font-size wp-block-paragraph\">Wrong configuration.<\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><s>The speedtest.net is finally a succes! The expected 800&#8217;ish Mbps is coming through from ISP supplied router, to 3COM Gigabit switch (maybe this can be omitted now), to Grandstream GWN7802P managed switch with separate 1000baseT full-duplex on VLAN8, to Minisforum TH50 WAN interface and its LAN interface feeds back into Grandstream switch on VLAN2 for connection to the PC.<\/s><\/mark><\/p>\n\n\n\n<div class=\"wp-block-cover\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" class=\"wp-block-cover__image-background wp-image-602\" alt=\"\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/15-opnsense-final-speed-test-1024x575.png\" data-object-fit=\"cover\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/15-opnsense-final-speed-test-1024x575.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/15-opnsense-final-speed-test-300x168.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/15-opnsense-final-speed-test-768x431.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/15-opnsense-final-speed-test.png 1423w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-large-font-size wp-block-paragraph\">Test was not through TH50\/OPNsense \ud83d\ude41<\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This troubleshooting took out a good 4 hours of my time, over two days! I was planning to include some basic configuration of OPNsense into this post, but that will have to wait for another day\/year \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Happy new year 2026!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Update January 4th 2026<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I thought 2026 would be a happy year, but it is not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A tracert command to the speedtest.net server revealed that OPNsense was not part of the chain.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"237\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/16-opnsense-wrong-tracert-1024x237.png\" alt=\"\" class=\"wp-image-608\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/16-opnsense-wrong-tracert-1024x237.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/16-opnsense-wrong-tracert-300x69.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/16-opnsense-wrong-tracert-768x178.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/16-opnsense-wrong-tracert-1536x356.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/16-opnsense-wrong-tracert.png 1753w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Removing the VLAN 8 and cables from managed switch, plugging ISP router directly into OPNsense WAN port and running tracert again, shows what is expected.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"241\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/17-opnsense-right-tracert-1024x241.png\" alt=\"\" class=\"wp-image-609\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/17-opnsense-right-tracert-1024x241.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/17-opnsense-right-tracert-300x71.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/17-opnsense-right-tracert-768x181.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/17-opnsense-right-tracert-1536x362.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/17-opnsense-right-tracert.png 1750w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a summary of the speed tests done in December -&gt; January. The red lines indicate the days where I installed and plugged in OPNsense on the Minisforum TH50. After that, the period where I got fooled by Trunk ports and last speed tests, is after making sure it is running through OPNsense. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"277\" src=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/18-opnsense-speedtests-1024x277.png\" alt=\"\" class=\"wp-image-610\" srcset=\"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/18-opnsense-speedtests-1024x277.png 1024w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/18-opnsense-speedtests-300x81.png 300w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/18-opnsense-speedtests-768x208.png 768w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/18-opnsense-speedtests-1536x416.png 1536w, https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/18-opnsense-speedtests-2048x555.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Still troubleshooting on the issue \ud83d\ude41<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Update January 17th 2026<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The issue was solve by running OPNsense as a VM in Proxmox. The issue is OPNsense FreeBSD not behaving nicely with the older Intel i225-v1 network cards in the Minisforum TH50 computer. Read this article below on how I managed this:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-scada-plc-and-automation-engineering wp-block-embed-scada-plc-and-automation-engineering\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"Rnf2VsKI09\"><a href=\"https:\/\/disorder.dk\/wonderware\/2026\/01\/17\/installing-virtualized-opnsense-as-vm-in-proxmox\/\">Installing Virtualized OPNsense as VM in Proxmox<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Installing Virtualized OPNsense as VM in Proxmox&#8221; &#8212; SCADA, PLC and Automation Engineering\" src=\"https:\/\/disorder.dk\/wonderware\/2026\/01\/17\/installing-virtualized-opnsense-as-vm-in-proxmox\/embed\/#?secret=9rvk378b9q#?secret=Rnf2VsKI09\" data-secret=\"Rnf2VsKI09\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>I chose OPNsense over pfSense, from solely reading about it being easier to start with, as pfSense is more &#8220;oldschool&#8221;. Both OPNsense and pfSense is based on FreeBSD. pfSense apparently contributes to the core underlying FreeBSD project and thus have faster security updates. pfSense has shifted focus onto paying customers, and word is that the<\/p>\n<p class=\"excert-link-wrapper\"><a href=\"https:\/\/disorder.dk\/wonderware\/2025\/12\/31\/home-network-security-installing-opnsense-and-slow-speed-problems-part-3\/\" class=\"excerpt-more-link\" >Continue Reading<span class=\"screen-reader-text\"> &#8220;Home Network Security \u2013 Installing OPNsense and SLOW SPEED PROBLEMS! (part 3)&#8221;<\/span><span class=\"meta-nav\"> &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[76,77],"tags":[82,20,43,81,83],"class_list":["post-571","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-network","category-security","tag-firewall","tag-installation","tag-network","tag-opnsense","tag-software"],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"https:\/\/disorder.dk\/wonderware\/wp-content\/uploads\/2025\/12\/00-opnsense-bios.jpg","_links":{"self":[{"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/posts\/571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/comments?post=571"}],"version-history":[{"count":12,"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/posts\/571\/revisions"}],"predecessor-version":[{"id":648,"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/posts\/571\/revisions\/648"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/media\/586"}],"wp:attachment":[{"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/media?parent=571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/categories?post=571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/disorder.dk\/wonderware\/wp-json\/wp\/v2\/tags?post=571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}