Baby Jumbo Frames and PPPoE

It’s quite common for ISPs to assign static IP addresses to their customers via PPPoE rather that via DHCP. Eir, the largest ISP in Ireland is no exception and since 2005 I think I’ve had the same IP address assigned to me via ADSL, VDSL and now FTTH via PPPoE.

One of the first things you may notice or be told as in my case many years ago when I first got my static IP, is that because of an overhead of 8 bytes introduced by PPPoE, the MTU needs to be set to a value of 1492 bytes instead of the usual 1500.

MTU means Maximum Transmission Unit and refers to the maximum size of a packet or piece of data that can be transferred across a network at any one time. This is also known as a frame. Frames don’t have to be the same size but the defacto standard is the above mentioned 1500 bytes.

For example a 1 Gigabyte file is 1,073,741,824 bytes. This means with a standard 1500 byte frame size, that 1GB file will be transferred across a network or the internet in 715828 frames or packets (rounded up!)

Because PPPoE overhead is 8 bytes, it needs to be subtracted from the standard 1500 bytes which is where the maximum value of 1492 comes from. Therefore the same 1GB file above at an MTU of 1492 would require 719,666 packets. Doesn’t sound a lot but for large transfers it can have a significant impact because packet fragmentation.

I already mentioned above Frames don’t have to be the same size but fragmentation occurs when two devices (or something else in their path) have different MTU sizes. An interface configured for an MTU of 1492 receiving packets or frames from a device with an MTU of 1500 needs to fragment the packets and reassemble them and vice versa. If there’s a lot of fragmentation this can result in a significant load on router. An example being my own router. It can route with a packet size of 1518 bytes at a maximum of 9851Mbps. With a packet size of 512 bytes it can route at 9551 Mbps but with a 64 byte packet it can only route at 3128Mbps.

In the greater scheme of things you might not notice any difference a lower MTU makes however some applications may not work well in this environment. To complicate matters, some routers ignore packet-too-big messages and keep sending packets that exceed the MTU. (Ref).

Where this really causes issues is when using methods to transfer data that were never really designed to traverse the internet such as Windows SMB/CIFS file shares, NFS, etc.

So what’s a Jumbo Frame? As mentioned above the defacto standard frame size for ethernet is 1500 bytes. Therefore a Jumbo Frame is anything larger than that although Jumbo Frame typically refers to a frame that’s much larger than 1500 bytes. The term Baby Jumbo or Baby Giant specifically refers to a frame that’s only a fraction larger than 1500 bytes.

Using a baby jumbo frame on your PPPoE connection means setting the on your router’s PPPoE interface to 1508 bytes to allow for the 8 bytes of overhead on PPPoE thereby allowing a maximum frame size of 1500 bytes.

So before you do anything or change anything you need to know that baby jumbo frames are wholly dependant on two things:

  1. Your ISP’s infrastructure (they might not support baby jumbos)
  2. Your router (also might not support baby jumbos)

As I mentioned already my ISP is Eir and they do support baby jumbos. I use Mikrotik routers and they also support baby jumbos. However there are a few hoops to jump through first.

Eir FTTH is delivered via a VLAN. Specifically VLAN 10. PPPoE is usually configured as a subinterface of an existing interface. In Mikrotik’s world a VLAN interface for a router is a subinterface of an existing interface which means there are three interfaces to change the MTU on!

In my setup at home using my RB5009, ether1 is connected to the FTTH ONT. To get service I added a VLAN interface to ether1 called EIR_VLAN_10 and because I use PPPoE I added a PPPoE interface to EIR_VLAN_10. Sounds convoluted but not really!

So we have two interfaces where the MTU needs to be set to 1508 (ether1 and EIR_VLAN_10) and the PPPoE interface itself needs to be set to 1500. A picture speaks a thousand words apparently so here’s a screenshot of my confguration:

Screenshot of Mikrotik Winbox showing interface information for baby jumbo configuration.

Leave a Reply

Your e-mail address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.