Ubiquiti Edgerouter X (er-x) not getting ipv6

Hi,

I have the Ubiquiti Edgerouter X and have had issues getting ipv6 to work with it.

I installed clean versions of OpenWrt with no configuration changes, and found that OpenWrt 25.12, 24.10, 23.05, 22.03, and 21.02 all do not connect ipv6 for me.

However, OpenWrt 19.07.10 and earlier do bring up ipv6.

At first I thought this was an issue similar to this topic but after further investigation it looks like it is a separate problem.

It appears something changed between 19 and 21 that seems to have broken ipv6 for me. Has anyone else seen a similar issue? Is there anything I can provide that could help track down what might be going wrong?

Wild.

I thought I'd play around with things more this weekend, and when I reinstalled 25.12.5 to test again, things magically started working. This is a fresh install with no configuration changes, the exact same thing that wasn't working a few days ago.

I suspect maybe something happened on the ISP side? Dunno.

At any rate, happy to be working again.

Well drat, I spoke too soon!

Looks like 25.12.5 is indeed not working with ipv6. It did very briefly when I upgraded from 19 to 25, so maybe there was a stale ipv6 assignment from 19 that lingered on and 25 was able to use it at first? Then somehow a timeout occurred and 25 could not renew? (Or maybe I was hallucinating the whole version 25 working in the first place scenario...)

At any rate, now I'm back downgraded to 19.

Does anyone have any idea what could be happening? I'm happy to share any diagnostics that may be required to figure out my issue.

ifstatus wan6 is a good place to start here. You should see both a GUA IP v6 (/64 or /128) as well as a GUA prefix (/60, /56, or /48 depending on ISP).

Setting reqprefix to a specific number which you know the ISP will support may help.

Also there was a change in version 25 about how DHCPv6 client works. I don't remember the details but it is in another recent thread. So you may want to start testing with version 24. There is no reason to go back to 19.

With 24 I get this:

 OpenWrt 24.10.7, r29197-ab4c7d6af7
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~# ifstatus wan6
{
	"up": false,
	"pending": true,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"proto": "dhcpv6",
	"device": "eth0",
	"data": {
		
	}
}

And with 19 I see this:

 OpenWrt 19.07.10, r11427-9ce6aa9d8d
 -----------------------------------------------------
root@InternetRouter:~# ifstatus wan6
{
	"up": true,
	"pending": false,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"uptime": 15459,
	"l3_device": "eth0.2",
	"proto": "dhcpv6",
	"device": "eth0.2",
	"metric": 0,
	"dns_metric": 0,
	"delegation": true,
	"ipv4-address": [
		
	],
	"ipv6-address": [
		{
			"address": "xxxx:yyyy:zzzz::aaaa",
			"mask": 128,
			"preferred": 676044,
			"valid": 1194444
		}
	],
	"ipv6-prefix": [
		{
			"address": "xxxx:yyyy:zzzz:aaaa::",
			"mask": 56,
			"preferred": 676044,
			"valid": 1194444,
			"class": "wan6",
			"assigned": {
				"lan": {
					"address": "xxxx:yyyy:zzzz:aaaa::",
					"mask": 60
				}
			}
		}
	],
	"ipv6-prefix-assignment": [
		
	],
	"route": [
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::c8ff",
			"metric": 512,
			"valid": 4162,
			"source": "xxxx:yyyy:zzzz:aaaa::/56"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::c8ff",
			"metric": 512,
			"valid": 4162,
			"source": "xxxx:yyyy:zzzz::aaaa/128"
		}
	],
	"dns-server": [
		"2606:4700:4700::1111",
		"2001:4860:4860::8888"
	],
	"dns-search": [
		
	],
	"neighbors": [
		
	],
	"inactive": {
		"ipv4-address": [
			
		],
		"ipv6-address": [
			
		],
		"route": [
			
		],
		"dns-server": [
			
		],
		"dns-search": [
			
		],
		"neighbors": [
			
		]
	},
	"data": {
		"passthru": "001700202606470047000000000000000000111120014860486000000000000000008888"
	}
}

I tried a fresh install with no configuration changes right out of the box, I tried setting reqprefix to 56, and also tried setting strict_rfc7550 to 1, just in case that might be relevant.

Nothing seems to get ipv6 to come up.

Going from 19 to 25 changes the MAC address in Openwrt config. You need to completely reboot ISP equipment to get the new MAC address of your new install.

I reinstalled OpenWRT 24.10.7, powered everything down for over 15 minutes, turned on the ONT, turned on the router. Still no ipv6. I'm confused why my old wifi router gets ipv6 and the er-x on OpenWRT 19 does too, but not 21 and later.

Any other ideas to try?

Yeah, my client devices didn't receive ipv6 at all despite all of my LAN and vlan interfaces have ipv6 assigned from ISP wan. I decided to research and found out this link.

So maybe you can try to add "-l 7" in /etc/init.d/odhcpd? You should see "procd_set_param command /usr/sbin/odhcpd". Just add -l 7 there. Then /etc/init.d/odhcpd restart.

By the way, I already compiled the latest odhcpd from master branch and got apk package a few days ago, but I haven't tried to install it on my x86 openwrt router yet because I'm so busy and didn't have time for it.

That didn't work either. I did a clean install of 25.12.5 and made the change to the odhcpd file, then rebooted everything. Still no ipv6. Here is the latest system log:

[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: Network device 'eth0' link is up
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: Interface 'wan' has link connectivity
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: Interface 'wan' is setting up now
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: Interface 'wan6' has link connectivity
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: Interface 'wan6' is setting up now
[Jul 15, 2026 at 7:19:16 PM UTC] kern.info: [   35.919380] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: wan (2606): udhcpc: started, v1.37.0
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.debug: odhcpd[1481]: Received 16 Bytes from fe80::4aa:844d:197:2eb6%lan@br-lan
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.warn: odhcpd[1481]: No default route present, setting ra_lifetime to 0!
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.debug: odhcpd[1481]: Using a RA lifetime of 0 seconds on lan
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.debug: odhcpd[1481]: Sending a RA on lan
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.debug: odhcpd[1481]: Sent 120 bytes to fe80::4aa:844d:197:2eb6%lan@br-lan
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: wan6 (2615): Failed to send RS (Address not available)
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: wan6 (2615): eth0: error connecting LLA socket
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: wan (2606): udhcpc: broadcasting discover
[Jul 15, 2026 at 7:19:16 PM UTC] daemon.notice: netifd: wan6 (2615): Failed to send SOLICIT message to ff02::1:2 (Address not available)

Did you try to remove option dhcp_default_duid from your config completely?

I tried both with OpenWrt 24 (which doesn't have dhcp_default_duid I assume?) and also with 25. With 25 I used the default configuration, and then per your suggestion I removed dhcp_default_duid and restarted everything. Still no ipv6 in any of these configurations.

This is from my latest try on 25:

root@OpenWrt:~# uci show network.globals
network.globals=globals
network.globals.ula_prefix='fd56:cdf2:d489::/48'
network.globals.packet_steering='1'

Are there any other diagnostics I might be able to provide to figure out what is going on?

I found this documentation page and so I tried getting the additional logging for odhcp6c with this result on OpenWrt 25:

Thu Jul 16 11:59:06 2026 user.notice dhcpv6.script: eth0 started RA_ADDRESSES= RA_REACHABLE=0 PASSTHRU= SERVER= SHLVL=1 J_V_keep=0 HOME=/ DYNAMIC=1 RA_MTU=0 RA_ROUTES= NTP_FQDN= RA_DOMAINS= T_J_V_interface=string DOMAINS= T_J_V_link_up=boolean AFTR= T_J_V_action=int TERM=linux SIP_IP= PATH=/usr/sbin:/usr/bin:/sbin:/bin NTP_IP= J_V_interface=wan6 RA_HOPLIMIT=0 FAKE_ROUTES=1 K_J_V=action link_up keep interface J_V_link_up=0 J_V_action=0 RA_DNS= RDNSS= SNTP_IP= N_J_V_link_up=link-up RA_RETRANSMIT=0 INTERFACE=wan6 SIP_DOMAIN= T_J_V_keep=boolean PWD=/lib/netifd/proto JSON_CUR=J_V

Thu Jul 16 12:04:24 2026 user.notice dhcpv6.script: eth0 ra-updated RA_ADDRESSES= RA_REACHABLE=0 PASSTHRU= SERVER= SHLVL=1 HOME=/ DYNAMIC=1 RA_MTU=0 RA_ROUTES=::/0,fe80::c8ff,4490,512 NTP_FQDN= RA_DOMAINS= DOMAINS= AFTR= TERM=linux SIP_IP= PATH=/usr/sbin:/usr/bin:/sbin:/bin NTP_IP= RA_HOPLIMIT=64 FAKE_ROUTES=1 RA_DNS= RDNSS= SNTP_IP= RA_RETRANSMIT=0 INTERFACE=wan6 SIP_DOMAIN= PWD=/lib/netifd/proto

Does any of that help shed light on why ipv6 isn't working?

Have you tried setting the option reqprefix as suggested here IPv6 PD Address not being assigned - #17 by antoinel

or even updated to pick up the modified odhcp6c as indicated here IPv6 PD Address not being assigned - #28 by el_charlie

I once again installed a clean version of OpenWrt 25, then:

I tried setting reqprefix to '0:1' - that did not change anything, still no ipv6.

I tried using the owut tool to make sure I had the latest version of odhcp6c - that did not change anything either, still no ipv6.

Sadly the only thing that works so far is downgrading to OpenWrt 19.

Any other ideas for things I could try?

Sadly no, other than maybe post and keep an eye on the other thread. Your problem seems very similar (if not the same?)

Yeah at first I thought it was the same issue too, and I did make a post in there about it to begin with. But then I think it's something different because that post is describing something that happened with the 25.12.5 update, and things worked previously on 25.12.4.

My issue occurs on 25, 24, 23, 22, and 21. But works on OpenWrt 19 and earlier.

At this point after more than a week of banging my head against the wall, I think I'm just going to resign myself to running 19 and give up on updating.

Once on a Linkys WRT3200ACM it got really wierd results when updating OpenWrt, like the flash memory got stuck in a twillight world.

Whatever I installed, something other showed up running so eventually it was time for two things, either the electronics boneyard or a real heavy duty flash shakeup.

So I tried a flash shakeup and installed the original Linksys firmware again to reset the flash memory and made a completely new OpenWrt factory install and it has worked since then…

Sadly I tried that too (multiple times).

I reinstalled the factory er-x software, then installed OpenWrt 19 and things work.
I reinstalled the factory er-x software, then installed OpenWrt 24 and things do not work.

This is an excellent point. You may need to set the MAC address and DUID to the same that v19 automatically uses. Ordinarily an ISP does not care about this but some may lock in specific numbers and you would need to clone it in your router or request the ISP customer service to release the lock on your old number and accept a new one.

You could use tcpdump to capture your RS and DHCPv6 requests to the ISP, and any response that they make.