[Cerowrt-devel] cerowrt or BB and IPv6/PPPoE

Török Edwin edwin+ml-cerowrt at etorok.net
Fri Aug 15 11:07:30 EDT 2014


On 08/14/2014 09:19 PM, Michael Richardson wrote:
> 
> I'm looking to compare notes with someone who is successfully getting IPv6
> via DHCPv6 PD over *PPP* (oE) on a CeroWRT or OpenWRT (BB) system.

IPv6 via DHCPv6-PD has been working fine for me.
I haven't upgraded to the latest CeroWRT, but here is how it works on CeroWRT 3.10.40-5:

/etc/config/network:
[...]
config interface 'se00'
        option ifname 'se00'
        option proto 'static'
        option ipaddr '172.30.42.1'
        option netmask '255.255.255.224'
        option ip6assign '64'

config interface 'ge00'
        option ifname 'ge00'
        option proto 'pppoe'
        option username 'XXXXXX'
        option password 'XXXXXX'
        option _orig_ifname 'ge00'
        option _orig_bridge 'false'
        option ipv6 '1'

config interface 'wan6'
        option ifname '@ge00'
        option proto 'dhcpv6'
        option broadcast '1'
        option metric '2048'
        option reqprefix 'auto'
[...]

The important parts are the 'ipv6 1', 'reqprefix auto', and ip6assign lines.
I only get one /64 from my ISP, so there aren't enough prefixes to assign them automatically to all interfaces,
so I removed the ip6assign from everything but se00.

I have these running:
 1286 root      1172 S    /usr/sbin/odhcpd
 1852 root       824 S    odhcp6c -s /lib/netifd/dhcpv6.script -P0 pppoe-ge00

I used a script similar to this to configure it (might have had to reboot afterward, or tweak something in Luci):

# Update Internet connection
uci set network.ge00.proto=pppoe
uci set network.ge00.username=$PPPOEUSER
uci set network.ge00.password=$PPPOEPASS
uci set network.ge00._orig_ifname='ge00'
uci set network.ge00._orig_bridge='false'
uci set network.ge00.ipv6=1
uci set network.wan6.reqprefix=auto
uci del network.sw00.ip6assign || true
uci del network.sw10.ip6assign || true
uci del network.gw00.ip6assign || true
uci del network.gw10.ip6assign || true
uci commit network

uci set bcp38. at bcp38[0].enabled=1
uci set bcp38. at bcp38[0].interface=pppoe-ge00
uci commit bcp38

ifdown ge00
ifup ge00
echo "Plug in ISP cable"
logread -f| grep pppd&
# wait for pppd to connect before pressing ENTER
read
/etc/init.d/network reload
/etc/init.d/firewall reload
ip route add default dev pppoe-ge00

A successful connection looks like this in logread:
Fri Aug 15 17:53:33 2014 kern.debug kernel: [11351.285156] ar71xx: pll_reg 0xb8050014: 0x1099
Fri Aug 15 17:53:33 2014 kern.info kernel: [11351.285156] ge00: link up (100Mbps/Full duplex)
Fri Aug 15 17:53:33 2014 kern.info kernel: [11351.289062] IPv6: ADDRCONF(NETDEV_CHANGE): ge00: link becomes ready
Fri Aug 15 17:53:33 2014 daemon.notice netifd: Network device 'ge00' link is up
Fri Aug 15 17:53:33 2014 daemon.notice netifd: Interface 'ge00' has link connectivity 
Fri Aug 15 17:53:33 2014 daemon.notice netifd: Interface 'ge00' is setting up now
Fri Aug 15 17:53:33 2014 daemon.info pppd[7811]: Plugin rp-pppoe.so loaded.
Fri Aug 15 17:53:33 2014 daemon.info pppd[7811]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
Fri Aug 15 17:53:33 2014 daemon.notice pppd[7811]: pppd 2.4.5 started by root, uid 0
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: PAP authentication succeeded
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: peer from calling number XX:XX:XX:XX:XX:XX authorized
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: local  IP address XX.XXX.XX.XXX
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: remote IP address 10.0.0.1
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: primary   DNS address XXX.XXX.XXX.X
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: secondary DNS address XXX.XXX.XXX.X
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: local  LL address fe80::0000:0000:4f72:20d2
Fri Aug 15 17:53:37 2014 daemon.notice pppd[7811]: remote LL address fe80::0000:0000:0000:0001
Fri Aug 15 17:53:37 2014 daemon.notice netifd: Network device 'pppoe-ge00' link is up
Fri Aug 15 17:53:37 2014 daemon.notice netifd: Interface 'wan6' is enabled
Fri Aug 15 17:53:37 2014 daemon.notice netifd: Interface 'wan6' is setting up now
Fri Aug 15 17:53:37 2014 daemon.notice netifd: Interface 'ge00' is now up
Fri Aug 15 17:53:37 2014 daemon.notice odhcp6c[7854]: (re)starting transaction on pppoe-ge00
Fri Aug 15 17:53:37 2014 daemon.notice odhcp6c[7854]: Starting SOLICIT transaction (timeout 4294967295s, max rc 0)
Fri Aug 15 17:53:37 2014 daemon.notice odhcp6c[7854]: Got a valid reply after 2ms
Fri Aug 15 17:53:37 2014 user.notice firewall: Reloading firewall due to ifup of ge00 (pppoe-ge00)
Fri Aug 15 17:53:38 2014 daemon.notice odhcp6c[7854]: Starting REQUEST transaction (timeout 4294967295s, max rc 10)
Fri Aug 15 17:53:38 2014 daemon.notice odhcp6c[7854]: Send REQUEST message (elapsed 0ms, rc 0)
Fri Aug 15 17:53:38 2014 daemon.notice odhcp6c[7854]: Got a valid reply after 2ms
Fri Aug 15 17:53:38 2014 daemon.notice odhcp6c[7854]: entering stateful-mode on pppoe-ge00
Fri Aug 15 17:53:38 2014 daemon.notice odhcp6c[7854]: Starting <POLL> transaction (timeout 4294967295s, max rc 0)
Fri Aug 15 17:53:38 2014 daemon.notice netifd: Interface 'wan6' is now up
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: reading /tmp/resolv.conf.auto
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: using local addresses only for domain home.lan
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: using nameserver XXXX:XXXX:8000:3::1#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: using nameserver XXXX:XXXX:8000:8::1#53
Fri Aug 15 17:53:39 2014 user.notice dnsmasq-checkntp[7991]: Started checkntp. Date says: Fri Aug 15 17:53:39 EEST 2014. Sleeping for 5 seconds.
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[2427]: exiting on receipt of SIGTERM
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: started, version UNKNOWN cachesize 5000
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack no-ipset auth DNSSEC
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq-dhcp[8002]: DHCP, IP range 172.30.42.2 -- 172.30.42.27, lease time 1d
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using local addresses only for domain home.lan
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: reading /tmp/resolv.conf.auto
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using local addresses only for domain home.lan
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using nameserver XXX.XXX.XXX.X#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using nameserver XXXX:XXXX:8000:3::1#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: using nameserver XXXX:XXXX:8000:8::1#53
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: read /etc/hosts - 1 addresses
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq[8002]: read /tmp/hosts/odhcpd - 2 addresses
Fri Aug 15 17:53:39 2014 daemon.info dnsmasq-dhcp[8002]: read /etc/ethers - 0 addresses
Fri Aug 15 17:53:39 2014 daemon.info avahi-daemon[1425]: Registering new address record for XXXX:XXXX:XXXX:3a00::1 on se00.*.
Fri Aug 15 17:53:39 2014 daemon.info avahi-daemon[1425]: Withdrawing address record for XXXX:XXXX:XXXX:9a00::1 on se00.
Fri Aug 15 17:53:39 2014 daemon.info avahi-daemon[1425]: Withdrawing address record for fe80::XXXX:XXXX:XXXX:8050 on se00.
Fri Aug 15 17:53:41 2014 user.notice dnsmasq-checkntp[8110]: Another instance running with pid 7991. Exiting.
Fri Aug 15 17:53:44 2014 user.notice dnsmasq-checkntp[7991]: Found running ntpd and stratum file. Initial stratum: 2.
Fri Aug 15 17:53:44 2014 user.notice dnsmasq-checkntp[7991]: Time should be in sync. Sending SIGHUP to dnsmasq.
Fri Aug 15 17:53:44 2014 daemon.info dnsmasq[8002]: read /etc/hosts - 1 addresses
Fri Aug 15 17:53:44 2014 daemon.info dnsmasq[8002]: read /tmp/hosts/odhcpd - 2 addresses
Fri Aug 15 17:53:44 2014 daemon.info dnsmasq-dhcp[8002]: read /etc/ethers - 0 addresses

'ipset list' also shows '10.0.0.1 nomatch', so that works fine too.

> Perhaps it's a null set, but I'd like to know for sure.
> All the IPv6 deployment from Comcast is presumably over ethernet, not PPPoE,
> so if someone told me that it just doesn't work yet for PPPoE, I would be
> unsurprised.
> 
> (I'm actually writing code for the other end of the PPP connection)

Its not the null set :)
It work(ed) for me even on OpenWRT Backfire (using wide-dhcpv6-client there), see these
config examples (sorry, page is romanian): http://wiki.lug.ro/IPv6:_configurare_si_utilizare.

Best regards,
--Edwin



More information about the Cerowrt-devel mailing list