hello list, i'm hoping somebody can tell me how to correctly configure PPPoE IPv6 address negotiation, or can at least point me towards the relevant literature. it's rather unclear to me what configuration options there are for inet6 over pppoe.
my german ISP (Plusnet, used to be QSC) has assigned to my contract a /64 WAN prefix. the inet6 address of my pppoe0 interface needs to be negotiated during the PPPoE handshake. this however does not happen, my pppoe0 interface shows only the link-local inet6 address after running /etc/netstart.sh pppoe0 the ISP engineers have provided me with a pcap file of a working handshake, presumably from a non-BSD client. they show the pppoe client sending a IP6CP Conf-Request message to the server, and the server responding with a IP6CP Conf-Request message on its own. after that, NDP RA and DHCPv6 messages handle the actual WAN and LAN prefix negotiation. when i capture the PPPoE handshake on my OpenBSD machine, i can also see a IP6CP Conf-Request message from my client to the server, however in response the server sends a Prot-Reject LCP message, apparently confused by the clients message. comparing the initial Conf-Request messages between the working and failing scenario, i notice that the working message has a length of 46 bytes, while the message that was rejected has a length of only 22 bytes. i also note that a subsequent IP6CP Term-Request sent by my client was likewise rejected by the server. so it seems that my OpenBSD 6.5 pppoe client is not speaking the exact dialect of IP6CP that the pppoe server expects. * is the Conf-Request message sent by OpenBSD pppoe(8) a well-formed IP6CP message? * are there any configuration options available to tweak the IP6CP behaviour of pppoe(8)? * does anybody happen to have a working configuration for Plusnet GmbH / QSC? :) many thanks! /f WORKING SCENARIO: client > server, ethertype PPPoE S (0x8864), length 60: PPPoE [ses 0x26f1] IP6CP (0x8057), length 16: IP6CP, Conf-Request (0x01), id 1, length 16 encoded length 14 (=Option(s) length 10) Interface-ID Option (0x01), length 10: 32e4:dbff:fe34:4000 0x0000: 1100 26f1 0010 8057 0101 000e 010a 32e4 ..&....W......2. 0x0010: dbff fe34 4000 3108 0045 6000 36ba c500 ...4@.1..E`.6... 0x0020: 00fe 11c7 2a5c c582 3b36 0000 0000 ....*\..;6.... server > client, ethertype PPPoE S (0x8864), length 64: PPPoE [ses 0x26f1] IP6CP (0x8057), length 16: IP6CP, Conf-Request (0x01), id 1, length 16 encoded length 14 (=Option(s) length 10) Interface-ID Option (0x01), length 10: 0212:efff:fe71:3afa 0x0000: 1100 26f1 0010 8057 0101 000e 010a 0212 ..&....W........ 0x0010: efff fe71 3afa 0000 0000 0000 0000 0000 ...q:........... 0x0020: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0030: 0000 .. FAILING SCENARIO: client > server, ethertype PPPoE S (0x8864), length 36: PPPoE [ses 0x3175] IP6CP (0x8057), length 16: IP6CP, Conf-Request (0x01), id 6, length 16 encoded length 14 (=Option(s) length 10) Interface-ID Option (0x01), length 10: d235:2d95:d846:ef19 0x0000: 1100 3175 0010 8057 0106 000e 010a d235 ..1u...W.......5 0x0010: 2d95 d846 ef19 -..F.. server > client, ethertype PPPoE S (0x8864), length 60: PPPoE [ses 0x3175] LCP (0 xc021), length 22: LCP, Prot-Reject (0x08), id 30, length 22 encoded length 20 (=Option(s) length 16) Rejected IP6CP Protocol (0x8057) Rejected Packet 0x0000: 0106 000e 010a d235 2d95 d846 ef19 0000 0x0010: 0000 0x0000: 1100 3175 0016 c021 081e 0014 8057 0106 ..1u...!.....W.. 0x0010: 000e 010a d235 2d95 d846 ef19 0000 0000 .....5-..F...... 0x0020: 0000 0000 0000 0000 0000 0000 0000 .............. client > server, ethertype PPPoE S (0x8864), length 26: PPPoE [ses 0x3175] IP6CP (0x8057), length 6: IP6CP, Term-Request (0x05), id 8, length 6 0x0000: 1100 3175 0006 8057 0508 0004 ..1u...W.... server > client, ethertype PPPoE S (0x8864), length 60: PPPoE [ses 0x3175] LCP (0xc021), length 12: LCP, Prot-Reject (0x08), id 31, length 12 encoded length 10 (=Option(s) length 6) Rejected IP6CP Protocol (0x8057) Rejected Packet 0x0000: 0508 0004 0000 0000 0x0000: 1100 3175 000c c021 081f 000a 8057 0508 ..1u...!.....W.. 0x0010: 0004 0000 0000 0000 0000 0000 0000 0000 ................ 0x0020: 0000 0000 0000 0000 0000 dc18 2eef .............. uname -a: OpenBSD feedface.com 6.5 GENERIC.MP#5 amd64 cat /etc/hostname.pppoe0: inet 0.0.0.0 255.255.255.255 NONE \ pppoedev em2 \ authproto pap \ authname 'cpe...@qsc-wia-vdsl.de' \ authkey 'XXX' \ up dest 0.0.0.1 #inet6 eui64 inet6 -autoconfprivacy inet6 autoconf !/sbin/route add default -ifp pppoe0 0.0.0.1 ifconfig pppoe0: pppoe0: flags=248851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST,INET6_NOPRIVACY,AUTOCONF6> mtu 1492 index 68 priority 0 llprio 3 dev: em2 state: session sid: 0x2f94 PADI retries: 5 PADR retries: 0 time: 7d 18:16:10 sppp: phase network authproto pap groups: pppoe egress status: active inet6 fe80::d235:2d95:d846:ef19%pppoe0 -> prefixlen 64 scopeid 0x44 inet a.b.c.d --> w.x.y.z netmask 0xffffffff