Setting the bind to [::] seems to pass the IPv6 for advertisement, after the initial join commands passing ok, it starts propagating errors with mixing the IPv6 and port to a bad lookup format.
if I set the advertise param, with {{IP_ADDRESS}} has the same result, and when I set the advertise to [{{IP_ADDRESS}}] complains for bad format for advertise_addr
using docker and passing the params from the entry point
agent -advertise=[{{IP_ADDRESS}}] -bind=[::] -bootstrap-expect=3 -retry-join=[{{APP_NAME}}-consul-server-01] -retry-join=[{{APP_NAME}}-consul-server-02] -retry-join=[{{APP_NAME}}-consul-server-03] -client=[::] -datacenter=Tokyo -data-dir=/consul/data -domain=cluster.local -server -ui -disable-host-node-id
and
agent -advertise=[{{IP_ADDRESS}}] -bind=[::] -client=[::] -join=[{{APP_NAME}}-consul-server-01] -retry-join=[{{APP_NAME}}-consul-server-01] -datacenter=Tokyo -data-dir=/var/lib/consul -domain=cluster.local -disable-host-node-id
also I noticed the initial setup after all starts, lists all the agents as servers, none of the as client
consul version: 1.8.5