Hi all!
So i have tried digging through the forum and FAQ guides but am unable to find an answer.
It is pretty well published that when operating multiple nodes traffic is distrubuted between IPV4/24 subnets.
What i have been unable to find is what subnet range is the node traffic divided at for IPV6 nodes.
Also perhaps a harder question to answer is that if 2 nodes run ipv6 dual stack and have the same ipv4 external ip but they have different ipv6 ip’s are they treated as the same for all traffic because of IPV4 or only the same for IPV4 and the IPV6 traffic is tracked seperately.
Thanks for any insights you can provide
2 Likes
Hello!
IPv6 addresses are divided into /64 subnets. That seems to be the most common ownership boundary. However, it hasn’t mattered much so far because most working satellites are currently hosted on the Google Cloud Platform, which (still, in 2020, I know!) doesn’t support any IPv6 traffic.
As to nodes with multiple addresses, we currently sidestep the issue by having each node advertise a single preferred address. That address can change as long as the node keeps the satellite updated (assuming the node is actually contactable at that address). IP subnet filtering, I believe, applies to the last IP that the satellite resolved for a given node’s advertised address.
2 Likes
Thanks Paul!
Very informative.
But as with any good answer it brings up more questions !
So for the few satellite’s that do happen to support ipv6 dual stack,
If you have a node accessed via a domain name with both an A record for ipv4 and AAAA record for ipv6 which one would be used to track the node.
And how or what defines the prefered address.
We currently prefer IPv4 over IPv6, to make the usability of your node better for our clients. As many enterprise networks as mentioned before did not adopt to IPv6 yet, it would be in your disadvantage to use IPv6 primarily.
@stefanbenten is right, IPv4 addresses are selected first, currently. As for the preferred address of the node, that is defined by the contact.external_address
config, which for Docker installs is usually controlled by passing something like -e ADDRESS=example.com:28967
to the docker run command.
1 Like