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 ?
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
Glad you got it working. Thanks for the write up.
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
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
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.