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.