HowTo: IPv6 over PPPoE on the Ubiquiti EdgeRouter Lite 3-Port EdgeMAX Router

The new 1.2.0beta2 version of the EdgeMAX software on the EdgeRouter Lite has the following entry in its changelog:

[PPPoE] Add IPv6 settings for PPPoE client interfaces, which allows a PPPoE client interface to work with IPv6 address

So how does that work and how can we use it ?
Ubiquiti EdgeRouter Lite 3-Port EdgeMAX Router
Our ISP, Andrews & Arnold, provides native IPv6 over PPPoE, so we thought we would test it.

We will cover the initial PPPoE configuration for IPv4 and then the additional steps for IPv6.

The first step is to configure the PPPoE client, this has to be done via the CLI as this is not currently support in the web interface.
We are using eth2 for the WAN connection over PPPoE:

configure 
set interfaces ethernet eth2 pppoe 0 user-id myuser
set interfaces ethernet eth2 pppoe 0 password mypass 
commit

We also need to ensure that the MTU is set correctly, a PPPoE connection has an 8 byte overhead so on our standard 1500 byte ADSL connection, we have to reduce the MTU to 1492, and the MSS to 40 less than that, namely 1452:

set interfaces ethernet eth2 pppoe 0 mtu 1492
set firewall modify pppoe-out 
set firewall modify pppoe-out rule 1 action modify
set firewall modify pppoe-out rule 1 modify tcp-mss 1452
set firewall modify pppoe-out rule 1 protocol tcp
set firewall modify pppoe-out rule 1 tcp flags SYN
set interfaces ethernet eth2 pppoe 0 firewall out modify pppoe-out

To add a masquerade rule to make the IPv4 connection work:

set service nat rule 5010 outbound-interface pppoe0
set service nat rule 5010 type masquerade

To enable ipv6 on the PPPoE interface:

set interfaces ethernet eth2 pppoe 0 ipv6 enable

To add a static IPv6 address to our internal LAN interface, this is the first IP in our allocated block from our ISP:

set interfaces ethernet eth0 address 2001:DB8::1/64

To add a default route:

set protocols static interface-route6 ::/0 next-hop-interface pppoe0

To enable Router Advertisements on eth0, which is our LAN interface:

set interfaces ethernet eth0 ipv6 router-advert prefix ::/64

Once this is done we can test using:

ping6 -n linitx.com
PING linitx.com(2001:8b0:1109::111) 56 data bytes
64 bytes from 2001:8b0:1109::111: icmp_seq=1 ttl=62 time=39.3 ms
64 bytes from 2001:8b0:1109::111: icmp_seq=2 ttl=62 time=38.4 ms
64 bytes from 2001:8b0:1109::111: icmp_seq=3 ttl=62 time=38.0 ms

About Nick

Check Also

New Brand Partnership – Tachyon Networks

Introducing Tachyon Networks: Revolutionising Modern Connectivity LinITX.com is proud to announce the addition of Tachyon …

6 comments

  1. Glad you got it working. Thanks for the write up.

  2. Cheers for this, worked perfectly for me.

    Also worth noting that I was able to get Baby Jumbo packets working by settin the pppoe MTU to 1500 and MSS to 1460

    Once I’d done that ping packets with a payload size of 1472 were able to be sent unfragmented, which was nice.

    • this pppoe config works a treat
      I use it in a NON NAT setup

      though I do have set eth0 as (pppoe) wan and eth2 as lan … just historically cos physically the ports are left and right as they were on my alix and the ERL just physically popped in place without having to extend cables or cross them one over the other

      baby jumbos work a treat too like Matchstick says just set MTU and MSS appropriately

      thanks for the write up

  3. For those that signed up for beta testing, we’re currently beta testing hardware accelerated pppoe for both IPv4 and IPv6.

    http://community.ubnt.com/t5/EdgeMAX/Alpha-software-release-v1-5-0alpha1-now-available-in-the-beta/m-p/773764#U773764

  4. Great article! Note that firewall config is also required to be safe. There are lots of blog posts around about that – it should work whatever the ISP, etc.

Leave a Reply

Your email address will not be published. Required fields are marked *