I had a brief power cut last night which restarted OpenWrt as it's not on my UPS ATM.
When it came back up, nothing was working properly (edited to add, that some webpages would partially load, fast.com for example, would load, but wasn't able to do the speedtest), and I initially suspected DNS, but that turned out to be not the case.
The resolution at 5:30am was to connect the ISP router upstream on the WAN port and put OpenWrt in the DMZ.
I suspect it's caused by MTU, but I'm a little confused about where to set that, hence the post.
Vodafone UK VDSL with PPPoE has an MTU requirement of 1492.
Using ping in Windows CMD thus, ping -n 1 -f -l 1492 8.8.8.8
returns Packet needs to be fragmented but DF set
Whereas ping -n 1 -f -l 1464 8.8.8.8
returns no fragmentation warning (both pings through the upstream Vodafone router)
I have the following devices relevant to VDSL on my router which is a HH5a.
pppoe-wan
dsl0
dsl0.101
These all have an MTU of 1500
The wan interface is set to use dsl0.101
So finally a question!
Where do I set the MTU?
I read elsewhere that it should be on the pppoe-wan device, but wan is using dsl0.101 and nowhere can I see a reference in the config to suggest pppoe-wan would be the correct device.
This sets the ICMP payload size... but on top you will need the ICMP header of 8 bytes, as well as the appropriate IP header and unless you use baby jumbo frames the PPPoE header, so the expected possible payload size is <=:
1500-8-20-8 = 1464...
so your measurements are well within expectation... OpenWrt will default to an MTU of 1492 for PPPoE links if I recall correctly.
I think wan should be pppoe-wan in your case... your config looks correct, pppoe-wan needs a physical interface underneath it, in your case dsl0.101, there is a typo in your post:
On link you typically only have a single VLAN tag, which is part of the ethernet header and does not eat into the ethernet payload, and even a second QinQ VLAN tag would exist outside of the payload... (nitpick: (both) VLAN tags are accounted against the mpu, so will reduce the true minimal payload size an ethernet frame gets padded to, but that is another story...)
Just run ifstatus wan | grep -e device or ifstatus pppoe-wan | grep -e device (away from my computer so not sure which of the two should work) on your router's command line... and post the results...
No. dsl0.101 likely needs to stay at 1500... here is the point, the PPPoE header lives inside the ethernet payload, and MTU restricts the maximum payload size, so you need to only reduce the MTU of the ppp interface by 8 bytes, for the higher up interface (dsl0.101) that pppoe header is part of the ethernet payload and the MTU needs to be large enough to allow for this, that is 8 bytes larger than the MTU of the pppoe interface...
So it must be set elsewhere then, because if I set dsl0 to 1492, dsl0.101 automatically inherits that.
There is hardly any mention of "pppoe-wan" in Google, so I'm concerned that's bogus?? Especially as doesn't appear to be used and has no MAC? I can set pppoe-wan to 1492 and try it later when no-one is working.
Here you go, thanks for looking.
I have 5 internal VLANs, a Wireguard site-to-site, a bridge for 2 LAN ports for the VLANs, a bridge for 2 LAN ports and the WiFi
As the DSL connection went awry this morning, I also presently have an ethwan interface using the wan port, connected to the upstream Vodafone router. This was disabled until the problem this morning. (I also had to add a static route for ethwan for 0.0.0.0/0 to 192.168.1.1 which is the upstream Vodafone router)
(I am) confused? How is you wan operating right now and in the screen shots, via dsl0 or via ethernet to the Vodafone router?
This is likely important... OpenWrt only reduces the MTU if it uses PPPoE, if the Vodafone router handles PPPoE then OpenWrt will stick to MTU 12500 without PPPoE and if the Vodafone station fails at path MTU discovery you might run into issues...
The Vodafone router is a temporary solution since this morning because someone needs to work.
So currently, OpenWrt is using an interface called ethwan which uses a device called wan (which is a physical port on the router). This port is connected to a LAN port on the upstream Vodafone router.
Usually, OpenWrt is using an interface called wan which uses a device called dsl0.101
Where would OpenWrt change the MTU in the above 2 scenarios?
In your config, do you not have a dsl device? In my config, the only reference to pppoe-wan is in /etc/config/network and the only option for it is the MTU
OpenWrt will do this on pppoe interfaces, so if you run the pppoe client on the openwrt router ifconfig should show an entry similar to mine...
No, my router is connected via ethernet to my bridged dsl modem, but since the PPPoE link is not terminated at the modem, openwrt does the right thing...
I guess that this is a consequence of your current configuration of wan via ethwan... pppoe-wan will only appear after a pppoe link has been successfully negotiated...
But for your current ethwan setup you could try to restrict the MTU to 1492, because path MTU discovery is unfortunatelly pretty hit and miss, if that solves your immediate issue this would implicate the Vodafone router as being "bad at its job". But please keep in mind that this is going to be different once you are back to terminating pppoe on the openwrt router.
The problem only arose this morning after a power cut, so once work is done for the day, I can play around with it.
Therefore the use of the upstream Vodafone router is a temporary solution, albeit one that is working properly at the moment.
pppoe-wan will only appear after a pppoe link has been successfully negotiated...
So when pppoe-wan appears, what happens to /etc/network/config? Does it update itself?
I have some other HH5a/PlusNet One routers kicking around, so I'll see if any of them got flashed to OpenWrt and look at a vanilla /etc/config/network.
The docs appear to be outdated and relevant to pre-DSA
Edited to add:
Once the pppoe-wan device appears, should I then assign it to WAN instead of dsl0.101 and give it an MTU of 1492?
So if I understand, the option proto 'pppoe' clause causes OpenWrt to set up pppoe-wan on the fly in response to DSL coming up on dsl0(.101)?
Therefore the wan interface should be assigned to pppoe-wan and pppoe-wan should have the MTU of 1492?