WAN does not negotiate Speed/Duplex Properly

Started by Azulath, June 22, 2024, 01:55:06 PM

Previous topic - Next topic
June 22, 2024, 01:55:06 PM Last Edit: June 22, 2024, 02:13:43 PM by Azulath
I have a 150MBit Internet connection but during the last few days I have noticed that I am limited to roughly 10-15Mbit. After doing a few tests I narrowed the issue down to the firewall and when looking at the dashboard and when browsing through my settings I noticed the WAN's speed was set to 100baseTX <half-duplex>
.

I tried setting it to 1000baseT <full-duplex> like LAN and IoT put this results in no Internet connection. When I directly connect a computer to the modem I am able to get my full Internet speed, so this does not seem to be the problem.

Additionally, I think the issue only occurred (was noticed) yesterday and I did have my full Internet speed a few days prior while no changes to the firewall or my network setup have been made, aside from installing the newest update.

Another problem I have noticed is that after a reboot of the firewall I sometimes did not get a WAN connection (just like when I used 1000baseT), but since I have manually set it to 100baseTX this seems to be solved now.

Any help on how to resolve this issue would be greatly appreciated!

Edit: The OPNsense version I am currently using is OPNsense 24.1.9_4-amd64 and FreeBSD 13.2-RELEASE-p11 on a AMD Ryzen Embedded V1500B (4 cores, 8 threads) machine.

June 22, 2024, 08:03:23 PM #1 Last Edit: June 22, 2024, 10:14:48 PM by Azulath
I posted this question on reddit as well as in another forum and those are the steps I have done so far:

I used two different cables on different ports on my ISP's modem and tested the settings on my notebook with the following result:


~ ❯ ifconfig
...
en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=404<VLAN_MTU,CHANNEL_IO>
...
inet 192.168.0.94 netmask 0xffffff00 broadcast 192.168.0.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT <full-duplex>)
status: active

~ ❯ ifconfig
...
en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=404<VLAN_MTU,CHANNEL_IO>
...
media: autoselect (1000baseT <full-duplex>)
status: active


Both cables/ports use the correct 1000baseT <full-duplex> while both are set to 100baseTX <half-duplex> in my OPNsense.

Furthermore, I would like to point out that I am using a https://shop.opnsense.com/product/dec740-opnsense-desktop-security-appliance/, so the hardware should definitely be supported.

Additionally, I am quite sure this issue appeared after I updated to OPNsense 24.1.9.

Edit: I tried downgrading via sudo opnsense-revert -r 24.1.8 opnsense but the issue persists. (Have not tried downgrading the kernel since it is not advised.)

I sort of have a Band Aid fix for the issue now by doing the following:

Since I have a DEC740 device I have three RJ45 ports at my disposal with Port 0 and Port 1 by default being assigned to LAN and set to 1000baseT <full-duplex> as well as WAN and 100base respectively.

So, I went into Interfaces>Assignments and set WAN to use igb2 (aka Port 2). Now, I do have 1000baseT <full-duplex> on my WAN again.

This makes me wonder though as the output below shows that all three ports use the same networking device. Thus, a driver/kernel issue can be ruled out, right?


azulath@OPNsense:~ % pciconf -lv | grep -A1 -B3 network
igb0@pci0:2:0:0: class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x1539 subvendor=0x8086 subdevice=0x0000
    vendor     = 'Intel Corporation'
    device     = 'I211 Gigabit Network Connection'
    class      = network
    subclass   = ethernet
igb1@pci0:3:0:0: class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x1539 subvendor=0x8086 subdevice=0x0000
    vendor     = 'Intel Corporation'
    device     = 'I211 Gigabit Network Connection'
    class      = network
    subclass   = ethernet
igb2@pci0:4:0:0: class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x1539 subvendor=0x8086 subdevice=0x0000
    vendor     = 'Intel Corporation'
    device     = 'I211 Gigabit Network Connection'
    class      = network
    subclass   = ethernet
--
    class      = non-essential instrumentation
ax0@pci0:6:0:1: class=0x020000 rev=0x00 hdr=0x00 vendor=0x1022 device=0x1458 subvendor=0x1022 subdevice=0x1458
    vendor     = 'Advanced Micro Devices, Inc. [AMD]'
    class      = network
    subclass   = ethernet
ax1@pci0:6:0:2: class=0x020000 rev=0x00 hdr=0x00 vendor=0x1022 device=0x1458 subvendor=0x1022 subdevice=0x1458
    vendor     = 'Advanced Micro Devices, Inc. [AMD]'
    class      = network
    subclass   = ethernet


Now that I think of it, my ISP's modem died two weeks ago, could it be that it fried my Port 1?

Anyway, any help or ideas would definitely still be appreciated.