[zeromq-dev] [PATCH] IPv6 changes to 4.0
Steven McCoy
steven.mccoy at miru.hk
Mon Aug 22 09:14:23 CEST 2011
Martin missed an updated patch from before, here it is again with some
extras.
* Fix NIC name binding always returning inaddr-any/in6addr-any.
* Binding upon a NIC name in IPv6 may resolve to multiple interfaces, use
the IPv6 scope identifier to force the bind.
* Use SO_BINDTODEVICE on Linux to workaround lack of in6addr_any:scope_id
support.
* Add support for IPv6 literal addresses.
*NIC NAME BINDING*
Basically NIC binding isn't too hot, so what we have here is when you bind
like this:
*./perf/local_thr tcp://eth0:5555 1 100000*
You are actually getting the same as this:
*./perf/local_thr tcp://*:5555 1 100000*
On Linux I have added a workaround that you can use system capabilities to
force the bind:
*sudo execcap 'cap_net_raw=ep' ./perf/local_thr tcp://eth0:5555 1 100000*
*
*
On modern distro's this utility has disappeared, the file system tools don't
appear to work out-of-the-box, but capsh does:
*sudo capsh --caps="cap_net_raw=ep" -- -c "./perf/local_thr tcp://eth0:5555
1 100000"*
*
*
That is the same capability as supporting ICMP, raw sockets, and IP/PGM.
To test simply try using another adapter such as loopback and it should wait
on reconnecting.
*./perf/remote_thr tcp://127.0.0.1:5555 1 100000*
*IPv6 LITERAL ADDRESSES*
Nothing particularly amazing, but to avoid confusion with port specifiers
the RFC recommend that all IPv6 literal addresses be enclosed within square
brackets. Note in dual-stack mode IPv4 addresses are also valid.
Example:
*./perf/remote_thr tcp://[fe80::230:1bff:feb7:a209%eth0]:5555 1 100000*
*IPv6 LINK-LOCAL ADDRESSES*
The TCP stack isn't as forgiving as the UDP stack, when using link-local
addresses, even if you only have one available, the scope identifier must be
specified.
Valid:
*./perf/remote_thr tcp://[fe80::230:1bff:feb7:a209%eth0]:5555 1 100000*
*
*
Invalid:
*./perf/remote_thr tcp://[fe80::230:1bff:feb7:a209]:5555 1 100000*
Assertion failed: s == retired_fd (tcp_connecter.cpp:184)
Aborted
--
Steve-o
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20110822/629c047a/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Binding-upon-a-NIC-name-in-IPv6-may-resolve-to-multi.patch
Type: text/x-patch
Size: 5691 bytes
Desc: not available
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20110822/629c047a/attachment.bin>
More information about the zeromq-dev
mailing list