4 ms·
There are ways to fix that. One of the interesting ones is to have every socket call to bind() without an explicit address allocate a random new IPv6 address.
by zrm 10y ago
There are ways to fix that.
One of the interesting ones is to have every socket call to bind() without an explicit address allocate a random new IPv6 address. Then there is nothing to correlate the address with because every other socket on that machine has a different address.
- beagle3 10y agoIt is indeed interesting, and useful from an privacy perspective (in the sense that it masks the correlation between different connections from the same machine). You do need to define some "trustworthy" machines which get to see a constant (and known) address - or troubleshooting and debugging the network will be horrible. Also, I suspect some protocols (pop-before-smtp, stun) won't like it. They are unneeded in IPv6, but I suspect there exist ones that will fail horribly with this scheme.
- zrm 10y ago> You do need to define some "trustworthy" machines which get to see a constant (and known) address - or troubleshooting and debugging the network will be horrible. In enterprise environments you could get the addresses from a DHCPv6 server which would then be able to map them back to machines. Or register them in the internal reverse DNS. > Also, I suspect some protocols (pop-before-smtp, stun) won't like it. They are unneeded in IPv6, but I suspect there exist ones that will fail horribly with this scheme. It would be less trouble to make addresses per-process rather than per-socket, but also somewhat less effective. A good middle ground might be to default to per-process and have a socket option to make it per-socket. That way e.g. Firefox could still have different addresses for connections to different servers. A process could then choose which sockets use the same address as one another by calling getsockname() on an existing socket and then using that address to bind() another one.