> On Oct 26, 2026, at 7:14 AM, Johannes Thyssen Tishman <[email protected]> > wrote: > > Hi. I'm in the process of configuring an OpenBSD router at home. My ISP > uses DS-Lite, so I've placed the OpenBSD router behind the ISP's > Fritz!Box as an exposed host, so that the Fritz!Box can handle PPPoE and > the DS-Lite encapsulation. So far, the OpenBSD router operates only in > IPv4 space as I haven't set up IPv6 yet (no port-forwards). > > +-----+ +-----------------+ +---------+ +---------+ > | ISP | | Fritz!Box | em0 | OpenBSD | em2/switch | LAN | > | | --- | PPPoE / DS-Lite | --- | Router | ---------- | Clients | > +-----+ +-----------------+ +---------+ +---------+ > | em1 > +---------+ +---------+ > | Access | | WLAN | > | Point | )))))))))) | Clients | > +---------+ +---------+ > > While this is working mostly fine, I've experienced some slowness when > browsing some websites. I read on the internet that this could be > related to a misconfigured MSS. > > Using 'ping -D -s <size> 1.1.1.1' with different sizes, I was able to > find that the MTU in my setup is 1452 bytes > > 1500 bytes (standard Ethernet MTU) > - 8 bytes (PPPoE header) > - 40 bytes (IPv6 header for DS-Lite) > -------------------------------------- > 1452 bytes > > which, and please correct me if I'm wrong, should result in the > following MSS: > > 1452 bytes > - 20 bytes (IPv4 header) > - 20 bytes (TCP header) > -------------------------------------- > 1412 bytes > > In pf.conf(5) I see there is the scrub parameter max-mss. However, I'm > not sure if this is the right way to clamp the MSS in my situation. I > see examples using this parameter like here[0] > > match in all scrub (no-df random-id max-mss 1440) > > which, from what I read, is used to normalize incoming packets. IIUC, I > could change this to 'max-mss 1412' and this would clamp the MSS on > traffic leaving from clients (because packets travel *in*to the router) > and then exit to the Fritz!Box with the correct size ready for > encapsulation, right? However, this would cause all internal traffic, > which doesn't require clamping, to also operate with that MSS, correct? > Would something like the following be more appropriate? > > match out on em0 scrub (max-mss 1412) > > Also, say I configure this, what would be a good way to test the before > and after? I suppose I could just browse the internet and see if the > situation improves, but I would prefer to see some proof. IIUC, I can't > use the ping test from above because the max-mss only applies to TCP > packets, right? > > I'd appreciate any help to help me understand this better and configure > this properly. Thank you! > > [0] https://www.openbsd.org/faq/pf/example1.html#pf > > PS. Here's my still very basic pf.conf: > > ext_if = "em0" > wifi = "em1" > wired = "em2" > > set skip on lo0 > match out on $ext_if inet from !($ext_if:network) to any nat-to ($ext_if) > block all > pass out quick inet > pass in on { $wifi $wired } inet >
I use max-mss for different reasons, so I can attest that it does work both ways (all or specific interfaces, among other match rules). I prefer to use the mtu parameter on ifconfig for your situation. Everything leaving em0 is presumably going out through the DS-Lite, so setting mtu to 1452 on em0 would do the trick. It would also enforce the limit on UDP and ICMP as well. Add this to /etc/hostname.em0 mtu 1452

