Wan6 - Unknown error (DEVICE_CLAIM_FAILED)

Hello,

I'm trying to get IPv6 working, and I believe that my ISP supports native IPv6 in my area. However, when I try to restart the wan6 interface, I get the error "Unknown error (DEVICE_CLAIM_FAILED)", which would lead me to believe that there is a device conflict somewhere. Here is the content of /etc/config/network:

# cat /etc/config/network 

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

config globals 'globals'
	option ula_prefix 'fd84:e466:5168::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth1.1'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'dhcp'
	option type 'bridge'
	option broadcast '1'
	option peerdns '0'
	option delegate '0'
	list dns '1.1.1.1'
	list dns '1.0.0.1'

config interface 'wan6'
	option ifname '@wan'
	option proto 'dhcpv6'
	option type 'bridge'
	option reqprefix 'auto'
	option reqaddress 'try'
	option peerdns '0'
	list dns '2606:4700:4700::1111'
	list dns '2606:4700:4700::1001'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 2 3 4 6t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '5 0t'

I would appreciate any pointers as to where to look next.

Thank you!

Cheers,
Nathan Zachary

Is there a reason for the bridge in wan and wan6?
If not then remove it.
Restart the interfaces and verify that you get IPv6 address: ifstatus wan6

Hi there,

Thank you for the suggestion. There was no reason for the bridge; that was simply how the interfaces were set with the default installation of OpenWRT. I have removed the bridge, and restarted the interfaces:

# cat /etc/config/network 

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

config globals 'globals'
	option ula_prefix 'fd84:e466:5168::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth1.1'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'dhcp'
	option broadcast '1'
	option peerdns '0'
	list dns '1.1.1.1'
	list dns '1.0.0.1'

config interface 'wan6'
	option ifname '@wan'
	option proto 'dhcpv6'
	option reqprefix 'auto'
	option reqaddress 'try'
	option peerdns '0'
	list dns '2606:4700:4700::1111'
	list dns '2606:4700:4700::1001'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 2 3 4 6t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '5 0t'

However, I still don't get any IPv6 addresses:

# ifstatus wan6
{
	"up": false,
	"pending": true,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"proto": "dhcpv6",
	"device": "eth0.2",
	"data": {
		
	}
}

Though there are no error messages, the only notice displayed for the wan6 interface is " Protocol: Alias Interface (DHCPv6 client)". I only see inet6 addresses mentioned for br-lan, eth0, eth1, wlan0, and wlan1. For those interfaces, they are only Link addresses. The br-lan interface is the only one with a Global address.

Thanks again for your help.

If you mean the one starting from fd84, this is not Global but unique local, something like the 192.168. in IPv4

You can run a tcpdump to verify that there is indeed IPv6 on the link:
tcpdump -i eth0.2 -vn -c 100 ip6 or udp port 547

Ah, got it. Yes, it starts with fd84. The tcpdump shows router advertisements, and neighbour solicitations, but that's about it. When I run an IPv6 test I still show no support for it. I'm also not seeing any inet6 address on eth0.2, but I do see the Link address on eth0.

You know you were expected to post the output of tcpdump here, but if you are able to read it that's fine by me.
If the router advertisements are coming from the ISP, then the wan6 should at least have a SLAAC address, but yours doesn't. Then on the other hand it is weird not to offer dhcp6.
Maybe you should call your ISP and clear it out, as there is a handful of ipv6 protocols used by the ISPs.

# tcpdump -i eth0.2 -vn -c 100 ip6 or udp port 547
tcpdump: listening on eth0.2, link-type EN10MB (Ethernet), capture size 262144 bytes
17:10:03.478644 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::201:5cff:fea6:b846 > ff02::1:ff82:bccc: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has fe80::8e10:d4ff:fe82:bccc
	  source link-address option (1), length 8 (1): 00:01:5c:a6:b8:46
17:10:04.281570 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::201:5cff:fea6:b846 > ff02::1:ffc9:4b60: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has fe80::aa9a:93ff:fec9:4b60
	  source link-address option (1), length 8 (1): 00:01:5c:a6:b8:46
17:10:06.453943 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::201:5cff:fea6:b846 > ff02::1:ff77:1a06: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has fe80::424c:77ff:fe77:1a06
	  source link-address option (1), length 8 (1): 00:01:5c:a6:b8:46
17:10:08.193394 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 48) fe80::201:5cff:fea6:b846 > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 48
	hop limit 0, Flags [managed, other stateful], pref medium, router lifetime 9000s, reachable time 3600000ms, retrans timer 0ms

That's the only router advertisement that I see. The address doesn't correspond to any inet6 address on the router. You're right that it is strange that the I don't see an inet6 address on the br-wan6 interface or the eth0.2 interface (only an IPv4 address on the eth0.2 interface).

I appreciate your help.

I think you should clear it out with your ISP first. But on the other hand your router should send out a router solicitation as well.

Okay, something is very strange here. As a test, I temporarily set the protocol on WAN (eth0.2) to 'DHCPv6 client' instead of 'DHCP client' and restarted the interface. Thereafter, as expected, I pulled an IPv6 address via DHCP and could use ping6 as a test, BUT the IPv4 address was gone and I couldn't use ping4 (again, as expected). After then going back into the WAN (eth0.2) configuration and changing it back to 'DHCP client', I pull an IPv4 address on WAN and an IPv6 address on WAN6 (which is just an alias for WAN).

Now that it is working as intended, I see that my /etc/config/network file has changed to:

# cat /etc/config/network 

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

config globals 'globals'
	option ula_prefix 'fd84:e466:5168::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth1.1'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'dhcp'
	list dns '1.1.1.1'
	list dns '1.0.0.1'
	option peerdns '0'

config interface 'wan6'
	option ifname '@wan'
	option proto 'dhcpv6'
	option reqprefix 'auto'
	option reqaddress 'try'
	option peerdns '0'
	list dns '2606:4700:4700::1111'
	list dns '2606:4700:4700::1001'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 2 3 4 6t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '5 0t'

The only difference that I see between the two files is that the broadcast option has been disabled on the WAN interface:

$ diff -Nut network_before network_after 
--- network_before	2020-04-08 18:23:01.682130494 -0500
+++ network_after	2020-04-08 18:25:47.373030013 -0500
@@ -18,7 +18,6 @@
 config interface 'wan'
         option ifname 'eth0.2'
         option proto 'dhcp'
-        option broadcast '1'
         option peerdns '0'
         list dns '1.1.1.1'
         list dns '1.0.0.1'

Does that make sense? Again, I appreciate the advice as I'm still learning. :slight_smile:

Maybe it was leftover from a static configuration, otherwise setting broadcast address is not used in dhcp configuration. Anyway, it's good that you found out the mistake and it is working fine now.

Thanks again for your help throughout troubleshooting!

You're welcome and feel free to mark the topic as solved.

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