They come up for me when doing either ad-hoc networking and VM
configuration, both of which I do frequently. In both cases, IPv6
autoconfigures a link-local address, which is awesome as I can just jack in
the cable and immediately talk to stuff, without having to set anything up
(assuming I know the peer's MAC address, which in these cases I do).
At work, I have a p2p ethernet link between my laptop dock and my desktop,
and I use link-local addresses to set up Synergy between the machines.
Neither machine needs any particular configuration, as the link-local
address exists intrinsically when the interface comes up. The only catch is
that I need to specify the zone when setting up SSH tunnels and the like,
since routing breaks down with link-local addresses. In that sense, I use
zone specifiers daily.
This isn't the 95% use case for IPv6, however. Most networks, you'd
autoconfigure a global address, at which point the kernel deals with
If zones can be added to the stdlib package without too much pain, I'd like
having a one stop shop for setting up connections. Being able to pass
whatever was specified as --address to net.Dial, rather than having to
import another package and switch on whether it decides that something
special is happening, that would be nice. Otherwise, most sysadmin-friendly
programs would have to import the go.net package.
If it adds too much pain to the net package, well, I'd live with it, but it
would make me mildly sad.
Hope this helps a little,
On Thu, Dec 6, 2012 at 7:33 PM, Russ Cox wrote:
We are trying to figure out how Go should handle zone specifiers in
IPv6 addresses (the %foo in ffff:eeee::1234%foo).
It is unclear to me whether these are important enough to put in the
main net package, or if instead we should make a parallel go.net/ipv6
package that you would be forced to use if you need them.
What do people actually use these for? How often do they come up? In
what contexts? Real experiences are best.
Thanks very much.