
On 26/09/13 10:48, Toby Corkindale wrote:
Hi, This is perhaps more of a networking question than Linux, but all the devices involved are running Linux..
I have what is probably a common home setup -- an ADSL modem operating in "pure bridge" mode, connected by ethernet to a Linux server running pppd with the PPPoE plugin. Same linux server is providing DNS, DHCP and NAT for other clients connected via wireless and ethernet.
This setup was running fine for many years with a Billion 7300RA ADSL modem. I just switched it over to a newer Billion 7800NL modem in the hope it'd provide better sync speeds on my hopeless phone line. (It does, with some SNR tweaking)
However for some reason path MTU discovery has completely broken when using the newer modem. The primary Linux box is fine, but all clients (whether wired, wireless *or even virtual*) fail to work unless I manually set their interfaces to an mtu of 1492.
I'm pretty confused by this -- pppd was setting itself up with a 1492 mtu even on the old modem, and that managed to propagate out just fine. The only thing that changed was the modem, but that shouldn't affect this issue.
I'm bamboozled. Could anyone advise me on what could possibly be done to figure out what has happened? Or better, a way to fix it?
Investigative notes: 1) New router was switched back to standalone mode (where it does pppoe, dhcp, nat etc) and in this mode, all clients worked fine. So the ADSL link and ethernet ports seem OK. 2) Old router was booted up to verify settings and that stuff works OK with it. Settings for ADSL line were similar, and stuff does work with it. (I say settings were "similar" because the two modems have different interfaces, and the 7800NL has some extra options not present on the 7300RA, but I don't think they're relevant to this issue)
Thanks in advance, Toby
Wild guess - TCP/UDP offload is generating bigger segments because the new modem accepts offload. On the interface that connects the server to the modem, issue ethtool -K <interface> tso off ethtool -K <interface> uso off ethtool -K <interface> gso off