Ich muss jetzt auch mal motzen.
Ich wundere mich, warum plötzlich der NFS-Mount nicht mehr geht. Klappt doch von überall, nur nicht mehr von einem Host. Gekuckt und gemacht, Debugging, tcpdump und was weiß ich…
Dann die Erkenntnis: Kernel 5.4.2 hat die Jumbo Frames kaputt gemacht. Jedenfalls bei meiner Netzwerkhardware:
$ lspci -vvv -nn -k -s 02:00.0
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Subsystem: ASRock Incorporation Motherboard (one of many) [1849:8168]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 60
Region 0: I/O ports at f000 [size=256]
Region 2: Memory at fce04000 (64-bit, non-prefetchable) [size=4K]
Region 4: Memory at fce00000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: r8169
Kernel modules: r8169
Der Treiber lädt ganz normal:
$ journalctl -b -g 8169 --no-hostname --no-pager
-- Logs begin at Thu 2019-09-12 18:56:56 CEST, end at Sun 2019-12-08 06:12:07 CET. --
Dec 07 16:52:27 kernel: libphy: r8169: probed
Dec 07 16:52:27 kernel: r8169 0000:02:00.0 eth0: RTL8168h/8111h, 70:85:c2:11:11:11, XID 541, IRQ 61
Dec 07 16:52:27 kernel: r8169 0000:02:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
Dec 07 16:52:27 kernel: r8169 0000:02:00.0 enp2s0: renamed from eth0
Dec 07 16:52:27 kernel: Generic FE-GE Realtek PHY r8169-200:00: attached PHY driver [Generic FE-GE Realtek PHY] (mii_bus:phy_addr=r8169-200:00, irq=IGNORE)
Dec 07 16:52:27 kernel: r8169 0000:02:00.0 enp2s0: Link is Down
Dec 07 16:52:31 kernel: r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control rx/tx
Sobald aber Frames >1500 zustande kommen bleibt die Verbindung hängen. Reproduzierbar. Nutze ich nur die Standard MTU "sudo ip link set mtu 1500 dev enp2s0", klappt alles wieder ausgezeichnet.
Den einzigen Commit der da was geändert haben kann ist der:
r8169: fix jumbo configuration for RTL8168evl
Leute, das ist doch Kacke!
Update: Der o.g. Commit ist unschuldig. Die Jumboframes funktionieren mit Kernel 5.3.13. Ab 5.4.x sind sie defekt.