Project

General

Profile

Actions

Bug #394

open

BUG: Physical layer wiring + switch LACP misconfiguration on storage network

Bug #394: BUG: Physical layer wiring + switch LACP misconfiguration on storage network

Added by Charles N 1 day ago. Updated about 15 hours ago.

Status:
In Progress
Priority:
Normal
Assignee:
Target version:
-
Start date:
08/06/2026
Due date:
% Done:

80%

Estimated time:

Description

Complete Physical Layer Audit — Storage Network (VLAN 1000)

Data sources: LLDP from all 7 Proxmox hosts, switch running-configs + LLDP from core-sw01 (Dell 5448) and tor3-stor (Dell 5324), MAC tables, ARP tables.

CONFIRMED PHYSICAL WIRING MAP (via LLDP)

Management Network (core-sw01, default VLAN 1):

Host NIC NIC MAC → Switch Port LLDP Confirmed
tsys1 nic0 8c:ae:4c:cd:a6:2d g5 No (lldpd inactive on tsys1)
tsys3 nic0 a4:4c:c8:08:d1:b8 g43 Yes
tsys4 nic0 98:90:96:c4:96:9a g8 Yes
tsys5 nic0 (Broadcom BCM5761, motherboard) 18:03:73:43:ce:de g19 Yes
tsys6 nic0 (via tor3-mgmt g7) tor3-mgmt g7 Yes
tsys7 nic0 (via tor3-mgmt g3) tor3-mgmt g3 Yes
tsys9 nic0 a4:bb:6d:e3:56:86 g23 Yes

Storage Network (VLAN 1000):

Host NIC NIC MAC → Switch Port LACP Status
tsys1 nic1 8c:ae:4c:cd:a6:2d core-sw01 g40 none UP, single port
tsys3 enx...a774 8c:ae:4c:cd:a7:74 core-sw01 g27 none UP, single port
tsys4 enx...a926 (USB) 8c:ae:4c:cd:a9:26 core-sw01 g31 none UP, single port (g32/ch2 dead)
tsys4 enx...ec03 (USB) 80:ae:4c:cd:ec:03 core-sw01 g32 ch2 NO-CARRIER, ch2 SHUT DOWN
tsys5 nic1 (Intel 82571EB p0) 00:1b:78:5c:e9:ce core-sw01 g34 ch3 UP
tsys5 nic2 (Intel 82571EB p1) 00:1b:78:5c:e9:cf core-sw01 g33? ch2 DOWN (wrong channel group!)
tsys6 bond0 (nic1+nic2) 00:21:9b:a2:7c:55 tor3-stor g8-g9 ch2 UP, 2gbps LACP
tsys7 bond0 (nic1+nic2) f8:bc:12:34:e0:75 tor3-stor g10-g11 ch3 UP, 2gbps LACP
tsys9 enx...5b6c 9c:69:d3:6a:5b:6c core-sw01 g38 none UP, single port

BUGS FOUND

BUG 1: core-sw01 g33 in WRONG channel group
Port g33 is labeled 'pfv-tsys5-stor' but assigned to channel-group 2 (tsys4's group), NOT channel-group 3 (tsys5's group). Config excerpt:

interface range ethernet g(32-33)   # g32=tsys4 + g33=tsys5 MIXED
  channel-group 2 mode auto
interface ethernet g34              # only g34 in tsys5's group
  channel-group 3 mode auto

FIX: Remove g33 from ch2, add to ch3.

BUG 2: core-sw01 ch2 entirely SHUT DOWN
Channel-group 2 (g32-g33) is administratively shut down. Even if g33 is moved to ch3, g32 (tsys4 2nd USB NIC) is NO-CARRIER anyway.
FIX: After moving g33, either un-shutdown ch2 for g32 alone or leave shut (tsys4 USB NIC is dead).

BUG 3: tsys5 nic2 is physically DOWN
Intel 82571EB port 1 (MAC 00:1b:78:5c:e9:cf) — SmartSpeed fell back to 10Mbps then died after 363s. Likely bad cable or bad switch port. No LLDP neighbor detected (link never came up stable).
FIX: Swap cable. Verify it reaches g33 (after g33 is moved to ch3).

BUG 4: tsys4 USB NICs cannot do LACP
Both USB NICs (enx8cae4ccda926 + enx80ae4ccdec03) fail LACP negotiation. Partner MAC = 00:00:00:00:00:00 (switch gets no LACP response). USB NICs don't reliably pass LACP PDUs. Second NIC is NO-CARRIER.
FIX: Replace with PCIe NIC (if available). Otherwise accept single-port 1gbps.

BUG 5: Ghost 5th cross-rack cable (g17 ↔ g24)
core-sw01 g17 is UP with LLDP neighbor tor3-stor g24, but g17 is NOT in channel-group 1 (which is g13-g16). On tor3-stor, g24 is standalone with spanning-tree disabled + portfast. This cable does nothing useful.
FIX: Either add g17 to ch1 on core-sw01 AND g24 to ch1 on tor3-stor (making it 5gbps), or remove the cable to avoid confusion.

BUG 6: tor3-stor ch4 (g13-g14) configured for non-existent tsys8
Channel-group 4 is labeled 'pfv-tsys8-stor' and uses static mode (no LACP). Both ports are DOWN. No host tsys8 exists in the fleet.
FIX: Remove ch4 config or repurpose ports.

BUG 7: tsys1 lldpd not running
tsys1 is the only host with lldpd inactive. Cannot confirm physical port mapping via LLDP. Port assignments inferred from switch labels only.
FIX: Enable lldpd on tsys1.

BUG 8: tor3-stor documented as 'Neyland 24T' — actually Dell PowerConnect 5324
System Object ID: 1.3.6.1.4.1.674.10895.3004 = Dell. System Description says 'PowerConnect 5324'. Original mapping.txt incorrectly identifies it.
FIX: Update documentation.

ONSITE ACTION PLAN (0700 tomorrow)

Priority 1 — tsys5 storage bond (restore 2gbps):

  1. On core-sw01: Remove g33 from ch2, add to ch3
    configure
    interface ethernet g33
    no channel-group
    exit
    interface ethernet g33
    channel-group 3 mode auto
    exit
    
  2. Physically trace cable from tsys5 nic2 (Intel port 1) to switch port g33
  3. Swap cable if bad
  4. Verify: cat /proc/net/bonding/bond0 on tsys5 should show 2 active slaves

Priority 2 — core-sw01 ch2 cleanup:

  1. Leave ch2 shutdown (tsys4 USB NIC is dead anyway)
  2. Or un-shutdown if g32 is repurposed

Priority 3 — tsys4 USB NIC replacement:

  1. If PCIe NIC available: install, configure bond, add switch ports to LAG
  2. If not: accept single-port 1gbps for tsys4

Priority 4 — Ghost cable cleanup:

  1. core-sw01 g17 / tor3-stor g24: add to ch1 or disconnect

Priority 5 — Documentation fixes:

  1. tor3-stor = Dell PowerConnect 5324 (not Neyland)
  2. Enable lldpd on tsys1
  3. Remove dead ch4 config from tor3-stor

Related: #391 (writeback cache), #393 (network audit)

Updated by Charles N 1 day ago Actions #1

  • Status changed from New to In Progress
  • Assignee set to Charles N

Onsite action plan for 0700 tomorrow (2026-08-07). Setting to In Progress.

Updated by Charles N about 18 hours ago Actions #2

  • % Done changed from 0 to 20

[#394] BUG 1 FIXED: core-sw01 g33 moved from channel-group 2 to channel-group 3.

Switch change (08:23 CT):

  • Removed g33 from ch2 (was grouped with g32/tsys4)
  • Added g33 to ch3 (correct group with g34/tsys5)
  • Dell auto-merged to: 'interface range ethernet g(33-34) channel-group 3 mode auto'
  • Saved to startup-config (confirmed: Copy succeeded)

Result: g33 link came up immediately after the channel-group change. Switch LACP for ch3 now sees partner 00:1b:78:5c:e9:ce (tsys5) on both ports 33+34.

REMAINING ISSUE (BUG 3): g33 is negotiating at 10 Mbps (SmartSpeed fallback on Intel 82571EB). LACP cannot aggregate 10 Mbps with 1000 Mbps — bond0 still runs single-port on nic1/g34. Cable swap needed to restore 1 Gbps and full 2 Gbps LACP.

Updated by Charles N about 18 hours ago Actions #3

[#394] BUG 3 UPDATE: Cable swap did NOT fix g33/nic2 10 Mbps issue.

Troubleshooting done:

  • Re-seated original cable: still 10 Mbps
  • Swapped with brand-new cable: still 10 Mbps
  • ethtool confirms BOTH sides advertise 1000baseT, but link only negotiates 10 Mbps
  • SmartSpeed fallback pattern in dmesg (tries gigabit -> 100 -> 10)

Cable is RULED OUT as root cause. Remaining suspects:

  1. Switch port g33 hardware fault
  2. NIC port nic2 (Intel 82571EB port 1) hardware fault

NEXT STEP: A/B test — swap the two cables at the switch end (nic1->g33, nic2->g34). If nic2 achieves 1000 on g34, switch port g33 is bad. If nic2 stays at 10, the NIC port is bad. DEFERRED per user.

Current state: bond0 running single-port 1gbps on nic1/g34. nic2/g33 at 10 Mbps, not aggregated. Storage network functional but no redundancy or 2gbps throughput.

Updated by Charles N about 17 hours ago Actions #4

  • % Done changed from 20 to 35

[#394] BUG 4 FIXED: tsys4 storage bond reconfigured from 802.3ad to active-backup.

Root cause (proven via tcpdump + ethtool):

  • USB NIC driver (enx8cae4ccda926) does not report speed/duplex to kernel
  • ethtool shows Speed: Unknown, Supports auto-negotiation: No
  • Without speed/duplex, bonding driver cannot construct LACP actor key
  • tcpdump confirmed: 0 LACP PDUs in 65 seconds (on both slave + bond master)
  • Switch port g31 is standalone (not in channel group) — no switch-side LACP either
  • Second USB NIC (enx80ae4ccdec03) is physically dead (NO-CARRIER)

Fix applied (09:57 CT):

  • bond-mode: 802.3ad → active-backup
  • Removed bond-xmit-hash-policy (unused in active-backup)
  • Switch: NO changes needed (g31 already standalone access VLAN 1000)
  • 5 health checks passed (bond up, active slave, datanet up, storage IP, ping peer)
  • NFS verified: all 4 client hosts (tsys1/6/7/9) have established NFS connections
  • Backup: /root/tsys4-bondfix-backup-20260807-095659/interfaces
  • Rollback: /root/tsys4-bondfix-rollback-20260807-095659.sh
  • Script: proxmox/perf/scripts/fix-tsys4-storage-bond.sh (committed)

Net result: tsys4 storage network clean at single-port 1gbps. No broken LACP. NFS serving normally.

Updated by Charles N about 17 hours ago Actions #5

  • % Done changed from 35 to 45

[#394] BUG 7 FIXED: lldpd started on tsys1.

  • lldpd was installed + enabled but inactive (not started)
  • Started via systemctl start lldpd
  • Confirmed LLDP neighbors: nic0→core-sw01 g41 (mgmt), nic1→core-sw01 g40 (storage)
  • Service is enabled, will survive reboot

[#394] BUG 5 EXPLANATION (ghost cable g17→g24):
LLDP confirms 5 cables between core-sw01 and tor3-stor:
g13→tor3-stor g20 | ch1 (4G LAG, VLAN 1000)
g14→tor3-stor g23 | ch1
g15→tor3-stor g22 | ch1
g16→tor3-stor g21 | ch1
g17→tor3-stor g24 | STANDALONE (not in ch1, in default VLAN 1)
The 5th cable (g17/g24) was never added to the port-channel. It sits in VLAN 1 doing nothing useful — a stray cable creating confusion. Fix: either add to ch1 for 5Gbps, or disconnect.

[#394] BUG 8 EXPLANATION (tor3-stor identity):
show system output:
System Description: 'Neyland 24T' ← OEM rebrand string in firmware
System Object ID: 1.3.6.1.4.1.674.10895.3004 ← OID 674=Dell, =Dell PowerConnect 5324
Type: PowerConnect 5324 ← hardware correctly identified
This is a Dell PowerConnect 5324. 'Neyland 24T' is the OEM product name burned into the firmware description. Also: switch hostname is 'pfv-r3-tor-stor' (not 'pfv-tor3-stor' as used in conman/AGENTS.md).

Updated by Charles N about 17 hours ago Actions #6

[#394] BUG 5 CORRECTION: NOT A BUG — misdiagnosis.

g17 (core-sw01) ↔ g24 (tor3-stor) is the MANAGEMENT NETWORK UPLINK, not a ghost cable.

Confirmed via switchport config:

  • core-sw01 g17: Access port, VLAN 1 (native/untagged), UP at 1G
  • tor3-stor g24: Access port, VLAN 1 (native/untagged), UP at 1G

This is correct by design: ch1 (g13-g16) carries VLAN 1000 (storage) only. tor3-stor needs a separate VLAN 1 path for management connectivity. The g17↔g24 cable provides that. No changes needed.

Updated by Charles N about 17 hours ago Actions #7

  • % Done changed from 45 to 50

[#394] BUG 6 FIXED: tor3-stor ch4 (retired tsys8) config removed.

Changes on tor3-stor (pfv-r3-tor-stor):

  • Removed g13-g14 from channel-group 4 ('no channel-group')
  • Removed 'pfv-tsys8-stor' description from g13-g14
  • Saved to startup-config (confirmed: Copy succeeded)

Leftover (harmless): port-channel 4 description stub remains in config but has zero member ports. Cosmetic only.

IMPORTANT: tor3-stor g13 and g14 are physically UP at 1Gbps but have NO LLDP neighbor. Something is physically connected and negotiating gigabit but not identifying itself. Cables should be physically traced — likely still wired to old tsys8 location. Ports are now standalone access VLAN 1 (default).

LLDP map of tor3-stor confirmed:
g8-g9: tsys6 storage (ch2)
g10-g11: tsys7 storage (ch3)
g13-g14: UNKNOWN (UP, no LLDP) — needs physical trace
g15-g19: VLAN 1000 access (no LLDP neighbors)
g20-g24: cross-rack to core-sw01 (ch1 + mgmt uplink)

Updated by Charles N about 16 hours ago Actions #8

[#394] BUG 6 CORRECTION: tor3-stor g13/g14 are both DOWN (no physical link).

Earlier note about 'ports UP at 1G with no LLDP neighbor' was a misread — 'show interfaces configuration' shows admin state (port enabled), not physical link state. 'show interfaces status' confirms both g13 and g14 are truly Down with no speed/duplex.

User physically traced: g13 goes to nothing, g14 not even plugged in. Matches switch ground truth. No mystery device. Just leftover wiring from retired tsys8.

Updated by Charles N about 16 hours ago Actions #9

  • % Done changed from 50 to 55

[#394] FINAL AUDIT SUMMARY — ground truth cross-referenced (switch + hosts):

LLDP: works on ALL host types (PCIe and USB). Bidirectional on tsys1/4/5.
LACP: works on PCIe NICs (tsys5 nic1 in ch3 aggregator). Does NOT work on USB NICs (tsys4 — ethtool reports Speed: Unknown, bonding driver never sends LACP PDUs).

Remaining open items:

  • BUG 3: tsys5 nic2 at 10Mbps (SmartSpeed fallback). Cable ruled out (brand new didn't help). Needs A/B test: swap nic1/nic2 cables at switch end to isolate switch port g33 vs NIC port nic2.
  • BUG 8: tor3-stor identity docs fix (Dell PowerConnect 5324, not Neyland 24T). Discourse-only.
  • BUG 2: core-sw01 ch2 stays shutdown (tsys4 g32 dead NIC). No action needed.

Updated by Charles N about 15 hours ago Actions #10

  • % Done changed from 55 to 80

Progress 2026-08-07: tsys4 bond fix applied (active-backup, enx..a926 up) and verified. tsys5 2-port LACP healthy. USB NICs confirmed incapable of LACP (driver issue). Remaining: tsys1/3/9 are single-port datanet (no 2nd NIC - hardware limitation, not a config bug). Switch LACP hash still layer-2-3 (#369).

Actions

Also available in: PDF Atom