You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently Multiaddr can't be used to create an IPv6 address with an scope identifier for link local addresses, on the majority of Operating Systems they're used to disambiguate the network interface where the address belongs to. This is a blocker on IPv6 only networks that aren't connected to internet and don't have any kind of global IPv6 addresses (even without ULA addresses), just a plain disconnected IPv6 network.
I'm not sure how this can be handled on the Multiaddr syntax, or if it's wanted to do so - It would be very bad for IPv6 users if not :-( -_
RFC 6874 specifies a syntax for the scope id (or zone identifier), being it:
addr := <ip6addr> '%' <ascii letters that don't contain URI reserved characters>
Maybe a syntax for Multiaddr like this could be used:
/ip6/fe80::1%lan0/tcp/0
But it would break the existing implementation as it would require to modify Protocol::Ip6 with something like Protocol::Ip6(Ipv6Addr, Option<String>). Other option I see is to create a new Protocol entry called Protocol::Ip6ZoneId(String) and with a syntax like:
Currently
Multiaddr
can't be used to create an IPv6 address with an scope identifier for link local addresses, on the majority of Operating Systems they're used to disambiguate the network interface where the address belongs to. This is a blocker on IPv6 only networks that aren't connected to internet and don't have any kind of global IPv6 addresses (even without ULA addresses), just a plain disconnected IPv6 network.I'm not sure how this can be handled on the
Multiaddr
syntax, or if it's wanted to do so - It would be very bad for IPv6 users if not :-( -_RFC 6874 specifies a syntax for the scope id (or zone identifier), being it:
Maybe a syntax for Multiaddr like this could be used:
But it would break the existing implementation as it would require to modify
Protocol::Ip6
with something likeProtocol::Ip6(Ipv6Addr, Option<String>)
. Other option I see is to create a newProtocol
entry calledProtocol::Ip6ZoneId(String)
and with a syntax like:See also
The text was updated successfully, but these errors were encountered: