[HOWTO] Configure WAN MTU with VLAN and / or PPPoE

Started by meyergru, February 05, 2025, 09:04:11 PM

Previous topic - Next topic
Quote from: meyergru on May 01, 2026, 09:58:33 PM...there are Merans given how to Check if they work for your setup.
Could you tell me how?

Via the ping commands as given in the first Post.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, Leox LXT-010H-D

1100 down / 450 up, Bufferbloat A+

This actually finally worked for me! UK ISP on the CityFibre network, so I need a VLAN.
I've been battling with Baby jumbo frames on OpnSense for the last day or so and was about to give up when I found this guide.

I had igc0 set to 1512. I had to add it as an interface to get the ability to change it but this was already done.
I had vlan01 set to 1508. I had to add it as an interface to get the ability to change it but this was already done.
I set PPPoE to 1500 and I could see it was still set to 1492! It was driving me mad.

Turns out I needed to set 1500 in the advanced options for the PPPoE connection it worked instantly.

November 13, 2026, 09:03:55 PM #63 Last Edit: November 13, 2026, 09:28:06 PM by abulafia
M-Net Fiber in Munich.
igb0 set to mtu 1512
VLAN 40 set to mtu 1508
PPPoE set to mtu 1500 (in advanced settings)
WAN no mtu set.

ifconfig shows
igb0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1512
vlan0.40: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1508
pppoe0: flags=1008ad1<UP,POINTOPOINT,RUNNING,NOARP,ALLMULTI,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500

OPNsense passes pings with MTU 1500:
@OPNsense:~ % sudo ping -D -s 1472 8.8.8.8
Password:
PING 8.8.8.8 (8.8.8.8): 1472 data bytes
1480 bytes from 8.8.8.8: icmp_seq=0 ttl=120 time=4.469 ms
1480 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=5.022 ms

A Debian machine passes pings with MTU 1500:
$ ping -M do -s 1472 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 1472(1500) bytes of data.
1480 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=8.17 ms
1480 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=5.31 ms

Windows passes pings with MTU 1500:
ping 1.1.1.1 -f -l 1472
Ping wird ausgeführt für 1.1.1.1 mit 1472 Bytes Daten:
Antwort von 1.1.1.1: Bytes=1472 Zeit=4ms TTL=59
Antwort von 1.1.1.1: Bytes=1472 Zeit=4ms TTL=59

HOWEVER, OPNsense still shows a calculated MTU of 1492 in the "WAN" interface section, and http://pmtud.enslaves.us/ shows a mtu of 1492 only as well:

QuotePath MTU Discovery Test
Results
Direction    Tested Maximum Size Segment    Client Sent MSS    Notes
Server to Client IPv4    1452 (MTU 1492)    1452 (MTU 1492)    OK
Client to Server IPv4    unlimited    (n/a)    OK
got server to client probe for mss 536 (max seg 1452)
got server to client probe for mss 1452 (max seg 1452)
got server to client probe for mss 1452 (max seg 1452)
finished s2c4 probing, maximum mss 1452 peer mss 1452 initial peer mss 1452
got client to server probe for mss 400
got client to server probe for mss 1453
got client to server probe for mss 9000
finished c2s4 probing, maximum mss 9000

November 13, 2026, 10:33:42 PM #64 Last Edit: November 13, 2026, 10:49:32 PM by meyergru
Did you reboot? As mentioned, the order of interface initialisation matters and the results upon initial configuration may be different.

I am with the exact same ISP and do not see your results with http://pmtud.enslaves.us/. My setup is shown above, and I get the same effective MTUs as you with the pings but then:

QuotePath MTU Discovery Test
Results
Direction   Tested Maximum Size Segment   Client Sent MSS   Notes
Server to Client IPv4   1460 (MTU 1500)   1460 (MTU 1500)   OK
Client to Server IPv4   unlimited   (n/a)   OK
Server to Client IPv6   1440 (MTU 1500)   1440 (MTU 1500)   OK
Client to Server IPv6   unlimited   (n/a)   OK
got server to client probe for mss 536 (max seg 1460)
got server to client probe for mss 1460 (max seg 1460)
got server to client probe for mss 1460 (max seg 1460)
finished s2c4 probing, maximum mss 1460 peer mss 1460 initial peer mss 1460
got client to server probe for mss 520
got client to server probe for mss 1461
got client to server probe for mss 9000
finished c2s4 probing, maximum mss 9000
got server to client probe for mss 536 (max seg 1440)
got server to client probe for mss 1440 (max seg 1440)
got server to client probe for mss 1440 (max seg 1440)
finished s2c6 probing, maximum mss 1440 peer mss 1440 initial peer mss 1440
got client to server probe for mss 520
got client to server probe for mss 1441
got client to server probe for mss 9000
finished c2s6 probing, maximum mss 9000


You could also look into "grep -n 'max-mss' /tmp/rules.debug" and see if there is any rule that limits your TCP MSS to 1452.

Contrary to the instructions one difference might be that I set MSS 1500 on pppoe0 explicitely - although it should not be the culprit, you may want to try it.


Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, Leox LXT-010H-D

1100 down / 450 up, Bufferbloat A+