PPPoE with IPv6 results in `Unknown error (HANGUP)`

I'm currently using IDNET as my ISP, with a DM200 in bridge mode and an MX4200v1 with Firmware Version OpenWrt SNAPSHOT r0-e5d9ca5 / LuCI Master 24.212.79282~65b8002.

Now, very strangely, yesterday I configured my PPPoE settings as follows:

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdc7:e5ce:2344::/48'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option device 'wan.101'
	option proto 'pppoe'
	option username 'XXX@idnet'
	option password 'XXX'
	option ipv6 'auto'

and everything worked as you'd expect; issued an IPv4 and an IPv6 address, local IPv6 addresses working as well, and able to access websites via IPv6.

I restarted my router today, and it's been a bit of a nightmare since:

Wed Jul 31 13:55:17 2024 daemon.info pppd[23863]: Plugin pppoe.so loaded.
Wed Jul 31 13:55:17 2024 daemon.info pppd[23863]: PPPoE plugin from pppd 2.4.9
Wed Jul 31 13:55:17 2024 daemon.notice pppd[23863]: pppd 2.4.9 started by root, uid 0
Wed Jul 31 13:55:20 2024 daemon.info pppd[23863]: PPP session is 741
Wed Jul 31 13:55:20 2024 daemon.warn pppd[23863]: Connected to 40:8f:9d:7f:9d:9f via interface wan.101
Wed Jul 31 13:55:20 2024 daemon.info pppd[23863]: Using interface pppoe-wan
Wed Jul 31 13:55:20 2024 daemon.notice pppd[23863]: Connect: pppoe-wan <--> wan.101
Wed Jul 31 13:55:21 2024 daemon.info pppd[23863]: CHAP authentication succeeded
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: CHAP authentication succeeded
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: peer from calling number 40:8F:9D:7F:9D:9F authorized
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: local  LL address fe80::85cd:XXXX:XXXX:XXXX
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: remote LL address fe80::0227:XXXX:XXXX:XXXX
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: local  IP address 217.144.X.X
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: remote IP address 212.69.X.X
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: primary   DNS address 212.69.40.23
Wed Jul 31 13:55:21 2024 daemon.notice pppd[23863]: secondary DNS address 212.69.36.23
Wed Jul 31 13:55:23 2024 daemon.info pppd[23863]: LCP terminated by peer
Wed Jul 31 13:55:23 2024 daemon.info pppd[23863]: Connect time 0.1 minutes.
Wed Jul 31 13:55:23 2024 daemon.info pppd[23863]: Sent 576 bytes, received 116 bytes.
Wed Jul 31 13:55:23 2024 daemon.notice pppd[23863]: Modem hangup
Wed Jul 31 13:55:23 2024 daemon.notice pppd[23863]: Connection terminated.
Wed Jul 31 13:55:23 2024 daemon.info pppd[23863]: Connect time 0.1 minutes.
Wed Jul 31 13:55:23 2024 daemon.info pppd[23863]: Sent 576 bytes, received 116 bytes.
Wed Jul 31 13:55:23 2024 daemon.info pppd[23863]: Exit.

I called up my ISP and they said there's nothing wrong on their end; I can confirm this by plugging in an gl-inet X3000 and it working without issue.

Now, if I set option ipv6 '0', then there is no issue; the connection remains stable, so I'm sat here scratching my head wondering what could be the issue with enabling IPv6 on wan?

Note, I've tried the following, by setting option ipv6 '1' and the below, but end up with the same LCP terminated by peer error output.

config interface 'wan6'
	option device '@wan'
	option proto 'dhcpv6'
	option reqaddress 'try'
	option reqprefix '48'

If it's of any help, IDNET issue an IPv6 block (native /48).

You need to enable pppd log to see exchanged lcp options.

Plugin pppoe.so loaded.
PPPoE plugin from pppd 2.4.9
Send PPPOE Discovery V1T1 PADI session 0x0 length 12
 dst ff:ff:ff:ff:ff:ff  src e8:9f:80:60:34:0d
 [service-name] [host-uniq  10 3c 00 00]
Recv PPPOE Discovery V1T1 PADO session 0x0 length 52
 dst e8:9f:80:60:34:0d  src 80:7f:f8:74:01:3b
 [AC-name BNG5.THN-LON-RE0] [host-uniq  10 3c 00 00] [service-name] [AC-cookie  cb cf a7 cb 26 3e 44 97 7c fa 1b 94 ec a7 0b dd]
Send PPPOE Discovery V1T1 PADR session 0x0 length 32
 dst 80:7f:f8:74:01:3b  src e8:9f:80:60:34:0d
 [service-name] [host-uniq  10 3c 00 00] [AC-cookie  cb cf a7 cb 26 3e 44 97 7c fa 1b 94 ec a7 0b dd]
Recv PPPOE Discovery V1T1 PADO session 0x0 length 52
 dst e8:9f:80:60:34:0d  src 80:7f:f8:74:b1:27
 [AC-name BNG4.THN-LON-RE0] [host-uniq  10 3c 00 00] [service-name] [AC-cookie  cb cf a7 cb 26 3e 44 97 7c fa 1b 94 ec a7 0b dd]
Recv PPPOE Discovery V1T1 PADO session 0x0 length 52
 dst e8:9f:80:60:34:0d  src 80:7f:f8:74:b8:d7
 [AC-name BNG4.THN-LON-RE0] [host-uniq  10 3c 00 00] [service-name] [AC-cookie  cb cf a7 cb 26 3e 44 97 7c fa 1b 94 ec a7 0b dd]
Recv PPPOE Discovery V1T1 PADO session 0x0 length 52
 dst e8:9f:80:60:34:0d  src 80:7f:f8:74:b8:e7
 [AC-name BNG4.THN-LON-RE0] [host-uniq  10 3c 00 00] [service-name] [AC-cookie  cb cf a7 cb 26 3e 44 97 7c fa 1b 94 ec a7 0b dd]
Recv PPPOE Discovery V1T1 PADS session 0x471 length 52
 dst e8:9f:80:60:34:0d  src 80:7f:f8:74:01:3b
 [service-name] [host-uniq  10 3c 00 00] [AC-name BNG5.THN-LON-RE0] [AC-cookie  cb cf a7 cb 26 3e 44 97 7c fa 1b 94 ec a7 0b dd]
PADS: Service-Name: ''
PPP session is 1137
Connected to 80:7f:f8:74:01:3b via interface wan.101
using channel 76
Using interface pppoe-wan
Connect: pppoe-wan <--> wan.101
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x58f9446b>]
rcvd [LCP ConfAck id=0x1 <mru 1492> <magic 0x58f9446b>]
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x58f9446b>]
rcvd [LCP ConfAck id=0x1 <mru 1492> <magic 0x58f9446b>]
rcvd [LCP ConfReq id=0xcc <auth chap MD5> <magic 0x530a8352>]
sent [LCP ConfAck id=0xcc <auth chap MD5> <magic 0x530a8352>]
sent [LCP EchoReq id=0x0 magic=0x58f9446b]
rcvd [LCP EchoRep id=0x0 magic=0x530a8352]
rcvd [CHAP Challenge id=0xc5 <459c82e2803aefcd9214f781ea3960e20c55d09ffa3ebabf40bc4736>, name = "BNG5.THN-LON"]
sent [CHAP Response id=0xc5 <881fb1a95215947ab947fe2879e0f965>, name = "XXX@idnet"]
rcvd [LCP ConfReq id=0x80 <mru 1500> <auth chap MD5> <magic 0x530a8352>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0xf721afb6>]
sent [LCP ConfAck id=0x80 <mru 1500> <auth chap MD5> <magic 0x530a8352>]
rcvd [LCP ConfAck id=0x2 <mru 1492> <magic 0xf721afb6>]
sent [LCP EchoReq id=0x0 magic=0xf721afb6]
rcvd [CHAP Challenge id=0x1 <166bb790d65b5ab706e716ce9c195144>, name = "bng1.wh-man"]
sent [CHAP Response id=0x1 <caef716efb40618672f16b7822a25d91>, name = "XXX@idnet"]
rcvd [LCP EchoRep id=0x0 magic=0x530a8352]
rcvd [LCP ConfReq id=0x1 <auth chap MD5> <magic 0x493f087f> <mrru 1524> <endpoint 13 0b 01 49 44 4e 65 74 4c 4e 53>]
sent [LCP ConfReq id=0x3 <mru 1492> <magic 0x894118d6>]
sent [LCP ConfRej id=0x1 <mrru 1524>]
rcvd [LCP ConfNak id=0x3 <mru 1500>] 40 0f 00 00
sent [LCP ConfReq id=0x4 <magic 0x894118d6>]
rcvd [LCP ConfReq id=0x2 <auth chap MD5> <magic 0x493f087f> <endpoint 13 0b 01 49 44 4e 65 74 4c 4e 53>]
sent [LCP ConfAck id=0x2 <auth chap MD5> <magic 0x493f087f> <endpoint 13 0b 01 49 44 4e 65 74 4c 4e 53>]
rcvd [LCP ConfAck id=0x4 <magic 0x894118d6>] 40 0f
sent [LCP EchoReq id=0x0 magic=0x894118d6]
rcvd [CHAP Challenge id=0x2 <a5bb52ab81871ac68e7e26a3c8072d98>, name = "IDNetLNS"]
sent [CHAP Response id=0x2 <0d4cd3557b76680373191ac4b3ad3ef7>, name = "XXX@idnet"]
rcvd [CHAP Success id=0x2 ""] 02 02 40 00 3b 06 17 63
CHAP authentication succeeded
CHAP authentication succeeded
peer from calling number 80:7F:F8:74:01:3B authorized
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPV6CP ConfReq id=0x1 <addr fe80::7073:36e7:XXXX:XXXX>]
rcvd [IPCP ConfReq id=0x1 <addr 212.69.XX.XX>] d0 0f
sent [IPCP ConfAck id=0x1 <addr 212.69.XX.XX>]
rcvd [IPV6CP ConfReq id=0x1 <addr fe80::0227:e3ff:XXXX:XXXX>]
sent [IPV6CP ConfAck id=0x1 <addr fe80::0227:e3ff:XXXX:XXXX>]
rcvd [IPCP ConfNak id=0x1 <addr 217.144.XX.XX> <ms-dns1 212.69.40.23> <ms-dns2 212.69.36.23>]
sent [IPCP ConfReq id=0x2 <addr 217.144.XX.XX> <ms-dns1 212.69.40.23> <ms-dns2 212.69.36.23>]
rcvd [IPV6CP ConfAck id=0x1 <addr fe80::7073:36e7:XXXX:XXXX>]
local  LL address fe80::7073:36e7:XXXX:XXXX
remote LL address fe80::0227:e3ff:XXXX:XXXX
Script /lib/netifd/ppp6-up started (pid 15723)
rcvd [IPCP ConfAck id=0x2 <addr 217.144.XX.XX> <ms-dns1 212.69.40.23> <ms-dns2 212.69.36.23>]
local  IP address 217.144.XX.XX
remote IP address 212.69.XX.XX
primary   DNS address 212.69.40.23
secondary DNS address 212.69.36.23
Script /lib/netifd/ppp-up started (pid 15724)
Script /lib/netifd/ppp-up finished (pid 15724), status = 0x1
Script /lib/netifd/ppp6-up finished (pid 15723), status = 0x0
rcvd [LCP TermReq id=0x3] 02 02 06 3a 2a 02 26 f0
LCP terminated by peer
Connect time 0.1 minutes.
Sent 274 bytes, received 884 bytes.
Script /lib/netifd/ppp-down started (pid 15784)
Script /lib/netifd/ppp-down started (pid 15785)
sent [LCP TermAck id=0x3]
Script /lib/netifd/ppp-down finished (pid 15784), status = 0x1
Script /lib/netifd/ppp-down finished (pid 15785), status = 0x1
Modem hangup
Connection terminated.
Connect time 0.1 minutes.
Sent 274 bytes, received 884 bytes.

Oddly enough this config now seems to work:

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdc7:e5ce:2344::/48'
	option packet_steering '0'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option device 'wan.101'
	option proto 'pppoe'
	option username 'XXX@idnet'
	option password 'XXX'
	option ipv6 'auto'

config interface 'wan6'
	option proto 'dhcpv6'
	option reqprefix 'auto'
	option reqaddress 'try'
	option device '@wan'

I'm not sure what's so different from the previous config, but hey :man_shrugging:

Well initially you asked for a /48 prefix, now you just ask for a prefix... Maybe your ISP considers asking for a /48 rude and decided to not give you a prefix at all?

What does ifstatus wan tell you about the prefix size your ISP supplied you with?
(If you post the output, consider redacting the actual IPv4/6 addresses and any mac addresses (not sure whether ifstatus reports any mac addresses))

1 Like

ifstatus wan6:

{
	"up": true,
	"pending": false,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"uptime": 1617,
	"l3_device": "pppoe-wan",
	"proto": "dhcpv6",
	"device": "pppoe-wan",
	"metric": 0,
	"dns_metric": 0,
	"delegation": true,
	"ipv4-address": [
		
	],
	"ipv6-address": [
		{
			"address": "2a02:390:feed:5b1f:xxxx:xxxx:xxxx:xxxx",
			"mask": 64,
			"preferred": 604649,
			"valid": 2591849
		}
	],
	"ipv6-prefix": [
		
	],
	"ipv6-prefix-assignment": [
		
	],
	"route": [
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::xxxx:xxxx:xxxx:xxxx",
			"metric": 512,
			"valid": 1649,
			"source": "2a02:390:feed:5b1f:xxxx:xxxx:xxxx:xxxx/64"
		}
	],
	"dns-server": [
		
	],
	"dns-search": [
		
	],
	"neighbors": [
		
	],
	"inactive": {
		"ipv4-address": [
			
		],
		"ipv6-address": [
			
		],
		"route": [
			
		],
		"dns-server": [
			
		],
		"dns-search": [
			
		],
		"neighbors": [
			
		]
	},
	"data": {
		
	}
}

So looks like a /64 prefix? Guess they may need to update their website copy.

A /64 is really crap, I would try to convince them to switch to a /48 or at least a /56, heck, even a /60 would be better than a /64...

1 Like

Maybe my config still isn't correct? Support have just told me:

You should just be able to set IPv6 to DHCP so that the router obtains it's information automatically. The details for your connection are:

IPv6 Prefix: 2A02:XXX:XXXX:XXXX::/64
IPv6 Delegated: 2A02:XXX:XXXX::/48

I guess it is time for some packet captures to look at IPv6 router announcements and DHCPv6 packets that are used to set up the IPv6 configuration.

If you have static assignments by the ISP you may be able to workaround by configuring the address and prefix statically on your router. But that is a workaround. They should not hang up on you for making a DHCPv6 request but it appears that they do from their end.

Okay so doing the following:

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '64'
	option ip6hint '1'

now seems to properly get the /48 prefix!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.