hi,
we are testing redis cluster in an ipv6 only setup. The cluster it selfs seems to run fine. But nearly all clients we tried can't work with moved.
The documentation said:
GET x
-MOVED 3999 127.0.0.1:6381
Most clients now split "127.0.0.1:6381" with : as delimiter between IP and Port. Or like the stackexchange dotnet client which use the string "127.0.0.1:6381" to connect to. This works
well in an ipv4 only environment. But on IPv6 this will fail.
In the moment redis return:
GET x
-MOVED 4844 XXX:XXXX:X:X::1:4:6379
This makes it very hard for the clients to parse it. From my point of view "[XXX:XXXX:X:X::1:4]:6379" would be the better way for IPv6.
Comment From: Dragonsangel
What is the status of this issue?
We are having similar issues, although with the CLUSTER NODES command returning IPv6 as XXX:XXX:XXX::10:1:6379@26379, which are then parsed incorrectly as IP : XXX:XXX:XXX::10:1:6379, Port: 0, CPort: 26379.
According to RFC 3986, the IPv6 should be represented as [XXX:XXX:XXX::10:1]:6379.
This will allow that all clients can correctly interpret the IPv6 returned, regardless of the command used.