D-Link DGE-528T randomly drops out after Proxmox upgrade from 9.0.9 to 9.1.1

IanCH

Renowned Member
Jun 6, 2017
32
1
73
52
For sometime I have been running a Proxmox server on a Gigabyte motherboard using the onboard NIC (Realtek RTL8111/8168/8211/8411) for the connection to the main LAN and a added PCI card - D-Link DGE-528T for the second LAN.

Everything was working fine until I upgraded from Proxmox 9.0.9 to 9.1.1

Now the DGE-528T LAN randomly drops out. pings to remote devices fail as unreachable.

"ethtool enp4s0" shows the NIC link state as still connected. However just to be sure I swapped the patch cable and tried a different port on the switch.

"ip -s link show enp4s0" shows the packet count no longer increasing when it drops out, and vmbr1 state up.

It appears the DGE-528T is using the RealTek r8169 drivers, the same driver as the onboard NIC.

The only way to recover from the dropout is to reboot Proxmox, which isn't ideal.

Questions.

1) How can I tell what version of driver dist 9.0.9 was using compared to 9.1.1 as it was working in 9.0.9?
2) Is there an alternative driver I can use for the DGE-528T? and if so how do I install it without causing problems with the onboard NIC?
3) Any suggestions on how to resolve this?
4) Last resort I'll swap the NIC out for a Intel Pro/1000 MT, but hoping I don't have the same issues as above. Of course I'd like to resolve the DGE-528T

Code:
lspci

02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
        Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet [1458:e000]
        Kernel driver in use: r8169
        Kernel modules: r8169
04:00.0 Ethernet controller [0200]: D-Link System Inc DGE-528T Gigabit Ethernet Adapter [1186:4300] (rev 10)
        Subsystem: D-Link System Inc DGE-528T PCI Gigabit Ethernet Adapter [1186:4300]
        Kernel driver in use: r8169
        Kernel modules: r8169

Code:
ip -s link show enp4s0

3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master vmbr1 state UP mode DEFAULT group default qlen 1000
    link/ether e8:cc:18:e9:49:6a brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast           
    9168687318 6546986      0      89       0      92 
    TX:  bytes packets errors dropped carrier collsns           
     175817059 2650956      0       3       0       0 
    altname enxe8cc18e9496a

Code:
ethtool enp4s0

Settings for enp4s0:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        master-slave cfg: forced master
        master-slave status: master
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: external
        MDI-X: Unknown
        Supports Wake-on: pumbg
        Wake-on: d
        Link detected: yes

Code:
/etc/network/interfaces

# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

iface enp2s0 inet manual

auto enp4s0
iface enp4s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.10.11/24
        gateway 192.168.10.1
        bridge-ports enp2s0
        bridge-stp off
        bridge-fd 0
#Primary LAN

auto vmbr1
iface vmbr1 inet static
        address 192.168.20.11/24
        bridge-ports enp4s0
        bridge-stp off
        bridge-fd 0
#Secondary LAN

source /etc/network/interfaces.d/*

Additional Info

I decided to back up the VMs and reinstall Proxmox back to 9.0.9. Everything is working again, Yay!!

I then did a proxmox 9.0.9 to latest upgrade (9.1.1) and bang the NIC problem has returned. So definitely a driver issue.

That said, in my google searching I've read the D-Link card isn't the most reliable card, that maybe however this NIC has been working for ages without issues. In fact it was installed in the server when it was running Proxmox 7, since then its been upgraded to Proxmox 8 and now 9.

ChatGPT suggested I install r8168-dkms, but that package doesn't seem to be available in the debian trixie repo, guessing duff or not complete advice from AI. Sigh!

Any ideas???