Free tech learning for everyone, from basics to pro

Routing & SwitchingNetworking SecurityIntermediate

MTU, TCP MSS and PPPoE: fixing "some websites do not load" problems

In short: Every link has a largest packet size, the MTU. Extra headers from PPPoE or tunnels reduce it, and when packets are too big and cannot be fragmented, connections hang. Path MTU discovery relies on ICMP, which is often blocked. Setting ip mtu and ip tcp adjust-mss on the router avoids the problem for TCP.

MTU and MSS

The MTU (maximum transmission unit) is the largest IP packet a link can carry without fragmentation. For Ethernet it is 1500 bytes. The MSS (maximum segment size) is the largest amount of TCP data in one segment. Hosts announce their MSS during the TCP handshake, normally the MTU minus 40 bytes of IP and TCP headers, so 1460 on Ethernet (see TCP in depth).

When a router must forward a packet bigger than the next link's MTU, it can fragment it, but only if the packet's DF (don't fragment) bit is clear. Most modern hosts set DF and use path MTU discovery: a router that cannot forward the packet drops it and returns an ICMP "fragmentation needed" message giving the smaller MTU, and the host adjusts. The fragment fields are covered in the IPv4 header.

Why PPPoE and tunnels cause trouble

Why a PPPoE link has a 1492-byte MTUEthernet payload1500 bytes availablePPPoE and PPP headers8 bytesIP packet1492 bytes maximumIP and TCP headers40 bytesTCP data (MSS)1452 bytes
Figure 1. Each layer of headers takes room from the 1500-byte Ethernet payload, so the TCP segment must shrink.

Many DSL and fibre broadband services use PPPoE (Point-to-Point Protocol over Ethernet), which adds 8 bytes, so the IP MTU becomes 1492. Tunnels add more: GRE adds 24 bytes and IPsec adds a variable amount, often 50 to 70 bytes. Hosts on the LAN still believe the MTU is 1500.

The classic symptom is that ping and small pages work but some websites, file uploads or VPN sessions hang. The handshake succeeds, but the first full-size packets are dropped. If a firewall somewhere blocks the ICMP messages, path MTU discovery fails silently, creating a PMTUD black hole. Test with pings of a chosen size and DF set, for example ping 203.0.113.10 size 1500 df-bit on a router, then lower the size until it succeeds.

The fix: ip mtu and TCP MSS clamping

Set the correct IP MTU on the interface, and have the router rewrite the MSS in TCP handshakes passing through it, so hosts never send segments that are too big. This MSS clamping works even when ICMP is blocked, although it only helps TCP. Allow ICMP "fragmentation needed" (IPv4) and "packet too big" (IPv6) through firewalls too.

PPPoE client and server configuration

A typical PPPoE client on a branch router uses a dialer interface:

interface GigabitEthernet0/1
 description To ONT or modem
 no ip address
 pppoe enable group global
 pppoe-client dial-pool-number 1
interface Dialer1
 ip address negotiated
 ip mtu 1492
 ip tcp adjust-mss 1452
 encapsulation ppp
 dialer pool 1
 ppp chap hostname branch1@isp.example
 ppp chap password Example-Secret
ip route 0.0.0.0 0.0.0.0 Dialer1

Providers run PPPoE servers on large broadband gateways, but a Cisco router can play the server role in a lab so you can practise:

bba-group pppoe global
 virtual-template 1
interface GigabitEthernet0/0
 pppoe enable group global
interface Virtual-Template1
 ip unnumbered Loopback0
 ip mtu 1492
 peer default ip address pool PPPOE-POOL
 ppp authentication chap
ip local pool PPPOE-POOL 100.64.10.10 100.64.10.50
username branch1@isp.example password Example-Secret

Check sessions with show pppoe session and show ip interface brief, where the dialer should have an address from the pool.

Real-world example: after a small accountancy firm moved to a fibre service using PPPoE, staff could browse most sites but the tax authority's upload page and the firm's cloud backup kept timing out. A ping with DF set showed that 1500-byte packets failed and 1492-byte packets passed. The firewall in front of the router also dropped ICMP. The IT support company added ip mtu 1492 and ip tcp adjust-mss 1452 to the dialer interface and allowed ICMP "fragmentation needed" inbound. Uploads worked again the same afternoon.

Practice

What MSS should be clamped on a PPPoE link with a 1492-byte MTU?
1452 bytes: 1492 minus 20 bytes of IP header and 20 bytes of TCP header.
What is a PMTUD black hole?
A path where a smaller MTU drops large packets with DF set, but the ICMP messages that would tell the host are blocked, so the connection silently hangs.
Why does MSS clamping not help a UDP-based application?
It only rewrites the MSS option in TCP handshakes; UDP has no MSS.

Key takeaways

  • Ethernet MTU is 1500; TCP MSS is normally MTU minus 40.
  • PPPoE reduces the MTU to 1492; tunnels reduce it further.
  • Path MTU discovery needs ICMP; blocking it creates black holes.
  • Use ip mtu and ip tcp adjust-mss on PPPoE and tunnel interfaces.
  • Test with pings of set size and the DF bit.
Tracks your learning on this device only. See your progress on the learning paths.

About the author

Mohamed Fayas

Founder of FM TecHub. CCNA certified, with a BTEC HND in Network Engineering, and BEng (Hons) in Computer Networking and Cloud Security. He writes practical, plain-English guides on networking, security and cloud.

More about the author

Original content written by Mohamed Fayas for FM TecHub. © 2026 FM TecHub. You're welcome to share a link to this page; please don't copy the text elsewhere without permission.

Stay up to date by email

New notes, tools and security news from FM TecHub, explained simply. Free.

We only use your email to send these updates. See our privacy policy.