Thanks @trendy! Removing the gateway option seems to have fixed it.
With the iface set to eth0, the problem was that I was sending out ethernet packets, not PPoE packets. To give more context: I'm trying to do prefix delegation. My ISP tells me I have a /56, so I include the prefix request in the wan6 interface by option reqprefix 56
. I run tcpdump into wireshark using
ssh root@192.168.3.254 tcpdump -i eth0 -U -s0 -w - ip6 |sudo wireshark -k -i -
and can see the DHCP6 Solicitation ethernet packets do include the prefix delegation request. That part is working okay.
But I never saw router adverts from my ISP on the eth0 interface. That's because they are coming in on the ppoe-wan interface. They include no mention of a prefix, only the /64 address assigned to my router. I was sending out ethernet packets when I should be sending out PPPoE packets and my ISP was ignoring them. I saw this in Issue 13599 Problems with native IPv6 VDSL connection, where the solution is to set the wlan6 iface to @wan.
Now that @wan is working, I see DHCP6 Solicit XID packets from me on ppoe-wan with a prefix request and DHCP6 Advertise XID packets coming back from the ISP with a prefix assignment. Success - now on to the next part of distributing them