Bug #394
openBUG: Physical layer wiring + switch LACP misconfiguration on storage network
80%
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):
- On core-sw01: Remove g33 from ch2, add to ch3
- Physically trace cable from tsys5 nic2 (Intel port 1) to switch port g33
- Swap cable if bad
- Verify:
cat /proc/net/bonding/bond0on tsys5 should show 2 active slaves
Priority 2 — core-sw01 ch2 cleanup:
- Leave ch2 shutdown (tsys4 USB NIC is dead anyway)
- Or un-shutdown if g32 is repurposed
Priority 3 — tsys4 USB NIC replacement:
- If PCIe NIC available: install, configure bond, add switch ports to LAG
- If not: accept single-port 1gbps for tsys4
Priority 4 — Ghost cable cleanup:
- core-sw01 g17 / tor3-stor g24: add to ch1 or disconnect
Priority 5 — Documentation fixes:
- tor3-stor = Dell PowerConnect 5324 (not Neyland)
- Enable lldpd on tsys1
- Remove dead ch4 config from tor3-stor
Updated by Charles N about 18 hours ago
- % 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
[#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:
- Switch port g33 hardware fault
- 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
- % 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
- % 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
[#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
- % 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
[#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
- % 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
- % 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).