[zeromq-dev] IPv6 support?

Martin Sustrik sustrik at fastmq.com
Tue Jul 28 12:53:30 CEST 2009


Hi Dhruva,

>  Does 0MQ support IPv6? If not, could someone let me know areas that need IPv6 support. As part of my
> day job I have worked on successfully converting a large code base to support IPv6, I can help.

I would say you should give it a try. That way we'll find out what the 
actual problems are and gradually move to solve them.

Parsing IPv6 network addresses would be a good point to start IMO (see 
ip.cpp). The problem is that colons in IPv6 address would collide with 
colon used as a port separator.

Here's what wikipedia says about the topic:

Since an IPv6 address contains colon (":") characters, network 
administrators must take care to avoid conflicts with other syntactic 
meanings of the colon in network resource labels. In IPv4 the colon is 
used to separate an IP address from a transport protocol port number. 
This usage has been extended to IPv6, however, when a port is specified 
in an address string, the proper IPv6 address must be enclosed in square 
brackets ("[", "]"). This convention is used in other more complex 
identifiers.

Example: In a URL the IPv6 address is enclosed in brackets, e.g., 
http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348]/.

If the URL also contains a port number the notation is:

https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/

This is not only useful but mandated when using the short form:

https://[2001:db8::1428:57ab]:443/

Additional information can be found in "RFC 2732 - Format for Literal 
IPv6 Addresses in URL's" and "RFC 3986 - Uniform Resource Identifier 
(URI): Generic Syntax."

Thoughts?
Martin



More information about the zeromq-dev mailing list