Community discussions

MikroTik App
 
Leo888
just joined
Topic Author
Posts: 4
Joined: Thu Jul 13, 2023 5:10 am

IPV6 client obtained incorrect Sever DUID

Mon Sep 04, 2023 10:52 am

I am running ROS7.11 on x86 and I am attempting to request ipv6 with configuration information:
interface=pppoe-out1 status=searching... duid="0x00030001000000000000" dhcp-server-v6=:: request=prefix add-default-route=no use-peer-dns=yes use-interface-duid=yes dhcp-options="" 
      pool-name="ipv6" pool-prefix-length=56 prefix-hint=::/0 dhcp-options="" 
When I tried to request an ipv6 address, the ISP gave me an incorrect Server Duid, which prevented me from obtaining the prefix.
In the IPv6 client status display search, prefix information can already be seen in the returned information. How to ignore this error.
 15:15:24 dhcp,debug,packet DHCPV6: dhcp-client on ether1 sending discover with id 839362819 to 255.255.255.255
 15:15:24 dhcp,debug,packet DHCPV6:     secs = 5
 15:15:24 dhcp,debug,packet DHCPV6:     flags = broadcast
 15:15:24 dhcp,debug,packet DHCPV6:     ciaddr = 0.0.0.0
 15:15:24 dhcp,debug,packet DHCPV6:     chaddr = 00:0C:29:33:3E:EB
 15:15:24 dhcp,debug,packet DHCPV6:     Host-Name = "MikroTik"
 15:15:24 dhcp,debug,packet DHCPV6:     Msg-Type = discover
 15:15:24 dhcp,debug,packet DHCPV6:     Parameter-List = Subnet-Mask,Classless-Route,Router,Static-Route,Domain-S
erver,NTP-Server,CAPWAP-Server,Vendor-Specific
 15:15:24 dhcp,debug,packet DHCPV6:     Client-Id = 01-00-0C-29-33-3E-EB
 15:15:29 dhcp,debug DHCPV6: discovering...
 15:15:29 dhcp,debug,packet DHCPV6: send pppoe-out1 -> ff02::1:2%12
 15:15:29 dhcp,debug,packet DHCPV6: type: solicit
 15:15:29 dhcp,debug,packet DHCPV6: transaction-id: 9188ae
 15:15:29 dhcp,debug,packet DHCPV6:  -> clientid:   00030001 00000000 0000
 15:15:29 dhcp,debug,packet DHCPV6:  -> oro: 23 
 15:15:29 dhcp,debug,packet DHCPV6:  -> elapsed_time: 0
 15:15:29 dhcp,debug,packet DHCPV6:  -> rapid_commit: [empty]
 15:15:29 dhcp,debug,packet DHCPV6:  -> ia_pd: 
 15:15:29 dhcp,debug,packet DHCPV6:    t1: 1800
 15:15:29 dhcp,debug,packet DHCPV6:    t2: 2880
 15:15:29 dhcp,debug,packet DHCPV6:    id: 0x7
 15:15:29 dhcp,debug,packet DHCPV6: recv client: pppoe-out1 fe80::200:5eff:fe00:501 -> fe80::921b:e2e:307:6c34
 15:15:29 dhcp,debug,packet DHCPV6: type: reply
 15:15:29 dhcp,debug,packet DHCPV6: transaction-id: 9188ae
 15:15:29 dhcp,debug,packet DHCPV6:  -> clientid:   00030001 00000000 0000
 15:15:29 dhcp,debug,packet DHCPV6:  -> serverid:   6660
 15:15:29 dhcp,debug,packet DHCPV6:  -> rapid_commit: [empty]
 15:15:29 dhcp,debug,packet DHCPV6:  -> dns_servers: 
 15:15:29 dhcp,debug,packet DHCPV6:     240e:58:c000:1600:180:168:255:118
 15:15:29 dhcp,debug,packet DHCPV6:     240e:58:c000:1000:116:228:111:18
 15:15:29 dhcp,debug,packet DHCPV6:  -> ia_pd: 
 15:15:29 dhcp,debug,packet DHCPV6:    t1: 1800
 15:15:29 dhcp,debug,packet DHCPV6:    t2: 2880
 15:15:29 dhcp,debug,packet DHCPV6:    id: 0x7
 15:15:29 dhcp,debug,packet DHCPV6:   -> status: 0 - success
 15:15:29 dhcp,debug,packet DHCPV6:     msg: SUCCESS
 15:15:29 dhcp,debug,packet DHCPV6:   -> ia_prefix: 
 15:15:29 dhcp,debug,packet DHCPV6:     prefix: 240e:38b:894d:b00::/56
 15:15:29 dhcp,debug,packet DHCPV6:     valid time: 3600
 15:15:29 dhcp,debug,packet DHCPV6:     pref. time: 3600
 15:15:29 dhcp,debug DHCPV6: bad server DUID
 15:15:30 dhcp,debug,packet DHCPV6: dhcp-client on ether1 sending discover with id 839362819 to 255.255.255.255
 15:15:30 dhcp,debug,packet DHCPV6:     secs = 11
 15:15:30 dhcp,debug,packet DHCPV6:     flags = broadcast
 15:15:30 dhcp,debug,packet DHCPV6:     ciaddr = 0.0.0.0
 15:15:30 dhcp,debug,packet DHCPV6:     chaddr = 00:0C:29:33:3E:EB
 15:15:30 dhcp,debug,packet DHCPV6:     Host-Name = "MikroTik"
 15:15:30 dhcp,debug,packet DHCPV6:     Msg-Type = discover
 15:15:30 dhcp,debug,packet DHCPV6:     Parameter-List = Subnet-Mask,Classless-Route,Router,Static-Route,Domain-S
erver,NTP-Server,CAPWAP-Server,Vendor-Specific
 15:15:30 dhcp,debug,packet DHCPV6:     Client-Id = 01-00-0C-29-33-3E-EB
 15:15:30 dhcp,debug DHCPV6: resending..
 15:15:30 dhcp,debug,packet DHCPV6: send pppoe-out1 -> ff02::1:2%12
 15:15:30 dhcp,debug,packet DHCPV6: type: solicit
 15:15:30 dhcp,debug,packet DHCPV6: transaction-id: 9188ae
 15:15:30 dhcp,debug,packet DHCPV6:  -> clientid:   00030001 00000000 0000
 15:15:30 dhcp,debug,packet DHCPV6:  -> oro: 23 
 15:15:30 dhcp,debug,packet DHCPV6:  -> elapsed_time: 1
 15:15:30 dhcp,debug,packet DHCPV6:  -> rapid_commit: [empty]
 15:15:30 dhcp,debug,packet DHCPV6:  -> ia_pd: 
 15:15:30 dhcp,debug,packet DHCPV6:    t1: 1800
 15:15:30 dhcp,debug,packet DHCPV6:    t2: 2880
 15:15:30 dhcp,debug,packet DHCPV6:    id: 0x7
 15:15:30 dhcp,debug,packet DHCPV6: recv client: pppoe-out1 fe80::200:5eff:fe00:501 -> fe80::921b:e2e:307:6c34
 15:15:30 dhcp,debug,packet DHCPV6: type: reply
 15:15:30 dhcp,debug,packet DHCPV6: transaction-id: 9188ae
 15:15:30 dhcp,debug,packet DHCPV6:  -> clientid:   00030001 00000000 0000
 15:15:30 dhcp,debug,packet DHCPV6:  -> serverid:   6660
 15:15:30 dhcp,debug,packet DHCPV6:  -> status: 2 - no address
 15:15:30 dhcp,debug,packet DHCPV6:    msg: NOADDRAVAIL
 15:15:30 dhcp,debug,packet DHCPV6:  -> rapid_commit: [empty]
 15:15:30 dhcp,debug,packet DHCPV6:  -> dns_servers: 
 15:15:30 dhcp,debug,packet DHCPV6:     240e:58:c000:1600:180:168:255:118
 15:15:30 dhcp,debug,packet DHCPV6:     240e:58:c000:1000:116:228:111:18
 15:15:30 dhcp,debug,packet DHCPV6:  -> ia_pd: 
 15:15:30 dhcp,debug,packet DHCPV6:    t1: 0
 15:15:30 dhcp,debug,packet DHCPV6:    t2: 0
 15:15:30 dhcp,debug,packet DHCPV6:    id: 0x7
 15:15:30 dhcp,debug,packet DHCPV6:   -> status: 6 - no prefix
 15:15:30 dhcp,debug,packet DHCPV6:     msg: NOPREFIXAVAIL
 15:15:30 dhcp,debug DHCPV6: bad server DUID
 15:15:32 dhcp,debug DHCPV6: resending..
 
User avatar
Kentzo
Forum Veteran
Forum Veteran
Posts: 710
Joined: Mon Jan 27, 2014 3:35 pm
Location: California

Re: IPV6 client obtained incorrect Sever DUID

Tue Sep 05, 2023 6:36 am

Would it be possible to capture DHCPv6 exchange via packet tracer such as Wireshark? I wonder why RouterOS thinks server's DUID is bad.
 
Leo888
just joined
Topic Author
Posts: 4
Joined: Thu Jul 13, 2023 5:10 am

Re: IPV6 client obtained incorrect Sever DUID

Wed Sep 06, 2023 3:44 am

Would it be possible to capture DHCPv6 exchange via packet tracer such as Wireshark? I wonder why RouterOS thinks server's DUID is bad.
The DUID provided by the server is 6660, which can only be interpreted as a type code of 6660 (not defined in RFC, but also followed by an identifier of 1-128 bytes according to RFC regulations).
 
User avatar
Kentzo
Forum Veteran
Forum Veteran
Posts: 710
Joined: Mon Jan 27, 2014 3:35 pm
Location: California

Re: IPV6 client obtained incorrect Sever DUID

Wed Sep 06, 2023 5:38 am

RFC 8415 is pretty clear that DUIDs are opaque and thus RouterOS should not attempt any interpretation. I'd suggest to capture packets and contact Miktorik's technical support.
 
imkiva
just joined
Posts: 2
Joined: Sun Sep 17, 2023 10:08 am

Re: IPV6 client obtained incorrect Sever DUID

Sun Sep 17, 2023 10:32 am

Some ISPs in China replied with server DUID 6660, and in the context of RFC8415, this should be treated as "DUID-Type = 6660, with no extra fields other than that", thus no "interpretation" is needed.
RFC8415 defined the value of DUID-Type from 1 to 4, each with a different constraint on the following fields (like hardware type, time, link-local address, etc.), but they all depend on the DUID-Type.
So, it is totally fine to define a DUID whose type is 6660 and that's all (although this is not a "unique id" in most cases), as RFC8415 states: "Clients and servers MUST NOT restrict DUIDs to the types defined in this document, as additional DUID types may be defined in the future." (RFC8415, Section 11, https://datatracker.ietf.org/doc/html/r ... %20future.).

Apart from the technical viewpoint, requesting ISPs to change their implementation takes a very long time, during which users cannot even have an IPv6 connection, which is unreasonable. We would want at least an option to "allow any kind of server duid" as a workaround.
 
User avatar
Kentzo
Forum Veteran
Forum Veteran
Posts: 710
Joined: Mon Jan 27, 2014 3:35 pm
Location: California

Re: IPV6 client obtained incorrect Sever DUID

Tue Sep 19, 2023 7:37 pm

You should send your request directly to Mikrotik: https://help.mikrotik.com/servicedesk/servicedesk/
 
Leo888
just joined
Topic Author
Posts: 4
Joined: Thu Jul 13, 2023 5:10 am

Re: IPV6 client obtained incorrect Sever DUID

Thu Sep 21, 2023 10:23 am

Some ISPs in China replied with server DUID 6660, and in the context of RFC8415, this should be treated as "DUID-Type = 6660, with no extra fields other than that", thus no "interpretation" is needed.
RFC8415 defined the value of DUID-Type from 1 to 4, each with a different constraint on the following fields (like hardware type, time, link-local address, etc.), but they all depend on the DUID-Type.
So, it is totally fine to define a DUID whose type is 6660 and that's all (although this is not a "unique id" in most cases), as RFC8415 states: "Clients and servers MUST NOT restrict DUIDs to the types defined in this document, as additional DUID types may be defined in the future." (RFC8415, Section 11, https://datatracker.ietf.org/doc/html/r ... %20future.).

Apart from the technical viewpoint, requesting ISPs to change their implementation takes a very long time, during which users cannot even have an IPv6 connection, which is unreasonable. We would want at least an option to "allow any kind of server duid" as a workaround.
Agreed, I am currently providing feedback to Mikrotik.
 
Lilarcor
Frequent Visitor
Frequent Visitor
Posts: 56
Joined: Sun Oct 08, 2017 3:16 am

Re: IPV6 client obtained incorrect Sever DUID

Thu Jun 13, 2024 10:04 am

Any update? Almost 300 days past.
 
Leo888
just joined
Topic Author
Posts: 4
Joined: Thu Jul 13, 2023 5:10 am

Re: IPV6 client obtained incorrect Sever DUID

Mon Jul 08, 2024 3:46 am

Any update? Almost 300 days past.
Reply from Mikrotik: A DUID consists of a 2-octet type code represented in network byte order, followed by a variable number of octets that make up the actual identifier. The length of the DUID (not including the type code) is at least 1 octet and at most 128 octets.

You can only contact your ISP for support or change your ISP.