It started as a vague complaint: “some websites aren't loading.” Not a DNS error, not a connection-refused — pages would just hang, spinning indefinitely. On a freshly installed UniFi Express 7, with a perfectly normal OCN fibre line underneath it, the fingerprint of a packet ceiling was hiding in plain sight.
01 — The Symptom: Calls Work. Chat Doesn't.
It started as a vague complaint: “some websites aren't loading.” Not a DNS error, not a connection-refused — pages would just hang, spinning indefinitely. Then a second thread appeared: LINE, the app most of Japan uses for daily messaging, wouldn't send or receive chat messages over the same Wi-Fi — while LINE voice calls on the same phone worked without a hitch. Cellular data on the same device had no issue at all.
That combination — fine on cellular, fine for voice, broken for chat and some web traffic — is a fairly specific fingerprint once you've seen it before.
| Path tested | Result |
|---|---|
| LINE voice calls | Normal |
| LINE chat, mobile app | Fails to send / receive |
| LINE chat, wired desktop client | Fails to send / receive |
| Several websites | Hangs indefinitely |
| Same phone, off Wi-Fi (cellular) | Normal |
Reproduced identically on a wired VLAN and a separate Wi-Fi VLAN (including 6GHz) — ruling out band, VLAN, and device as the cause.
02 — The Ceiling: A Ceiling PPPoE Never Advertises
Textbooks will tell you PPPoE knocks 8 bytes off a standard 1500-byte Ethernet frame, leaving an MTU of 1492. In Japan, that number is usually wrong — and not for a mysterious reason. On NTT's Flets fibre network, PPPoE only runs as far as NTT's local facility; from there to the ISP's own equipment (the BAS), the session is carried inside an L2TP tunnel. That adds IP, UDP, L2TP and PPP headers — 46 bytes of overhead in total, not PPPoE's usual 8 — bringing the real ceiling down to exactly 1454 bytes. That's precisely what this gateway's ppp0 interface auto-negotiated to. The textbook number and the real, physical ceiling are two different things, and nothing on a router's PPPoE setup screen tells you which one you actually got.
Sourced, not assumed: the L2TP-to-BAS mechanism and byte breakdown are documented at infraexpert.com, and the resulting 1454-byte ceiling is independently confirmed by Yamaha's own RTX router FAQ and Sophos's Flets PPPoE guidance (PDF).
When a sender doesn't know the real ceiling, the internet's usual fallback is Path MTU Discovery: an oversized packet gets rejected with an ICMP message telling the sender to shrink it. That fallback quietly fails when something along the path filters ICMP — extremely common — and the result isn't an error. It's silence. The sender just keeps re-sending a packet that never arrives, which is exactly what “hangs indefinitely” feels like from a browser tab.
The LAN side has no idea the real ceiling is lower until something tells it — and on this line, nothing did.
A controlled test made the real ceiling measurable. Sending “don't fragment” pings of decreasing size at a broken domain from a wired desktop (bypassing Wi-Fi entirely) gave a clean, reproducible boundary:
| Packet size | Result |
|---|---|
| 1500 B | FAIL |
| 1472 B | FAIL |
| 1400 B | OK |
| 1300 B | OK |
03 — Diagnosis: Four Steps to the Root Cause
- 1
Isolate
Identical failure on a wired VLAN and a wireless VLAN, on a phone and a desktop client, on 6GHz and on a completely separate network segment. That rules out Wi-Fi band, VLAN config, and the app itself — the one thing every failing path shared was the PPPoE WAN link.
- 2
Measure
A controlled fragmentation ping test (above) turned a vague “some things don't work” into a hard number: somewhere between 1400 and 1472 bytes, packets stopped arriving.
- 3
Inspect
SSH into the gateway and
ip link showtold a surprising story: the PPPoE interface (ppp0) had already auto-negotiated down to MTU 1454 — the router had correctly detected the real ceiling on its own. - 4
Confirm
So the WAN link knew its own ceiling — but nothing was telling the rest of the network about it. Checking for a TCP MSS clamp rule came back empty. That's the whole bug: a correctly-sized interface with no rule enforcing that size on the traffic passing through it.
04 — The Fix: One Rule, Enforced Twice
A TCP MSS clamp tells the gateway: whenever a new connection is being set up through this interface, rewrite the advertised segment size to fit the interface's real MTU — rather than hoping the sender and the internet's ICMP feedback loop sort it out on their own.
iptables -t mangle -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu
That fixed it instantly — both the hanging websites and LINE chat. But a rule added live over SSH only lives in the running kernel; a reboot wiped it clean, and the symptoms came straight back. PPPoE on this gateway is managed by pppd, which runs any script placed in /etc/ppp/ip-up.d/ automatically — every time the interface comes up, including after a reboot and after any forced reconnect an ISP might trigger:
#!/bin/sh IFACE="$1" iptables -t mangle -C FORWARD -o "$IFACE" -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu 2>/dev/null || \ iptables -t mangle -A FORWARD -o "$IFACE" -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu
Confirmed by rebooting the gateway outright: uptime showed a genuine restart, and the rule — with real traffic already counted against it — was back on its own.
What's still unverified
This confirms the fix survives reboots and PPPoE reconnects. A full firmware or OS update is a different question — that can reflash the base system outside anything the controller manages, and hasn't been tested yet. Worth re-checking after your gateway's next update, on whatever hardware you're running this on.
A note for UniFi
This isn't a UniFi-specific bug — it's a generic property of NTT's Flets NGN backbone, which most Japanese ISPs (OCN among them) run PPPoE over. But it's exactly the kind of thing a platform is better positioned to catch than an installer: when a WAN interface auto-negotiates an MTU below the textbook 1492, that's a strong, detectable signal that a matching MSS clamp should be applied automatically. Right now that's a manual SSH fix nobody discovers until something breaks.
Posting this publicly in the hope it reaches UniFi Japan (@UIJapan) — and helps the next person staring at a hung browser tab and a silent LINE chat.
Independent research — not affiliated with or endorsed by Ubiquiti Inc.
Seen this on a network you manage?
Field notes like this one come out of real network work across Japan. If your UniFi network — or any PPPoE line — is doing something similar, we can trace it to the root cause.