Ivan Babrou created KAFKA-6444:
----------------------------------
Summary: Kafka consumers and producers get confused by dualstack A
+ AAAA DNS records
Key: KAFKA-6444
URL: https://issues.apache.org/jira/browse/KAFKA-6444
Project: Kafka
Issue Type: Bug
Affects Versions: 0.11.0.1
Reporter: Ivan Babrou
We have hostnames with both A (IPv4) and AAAA (IPv6) DNS records. Kafka is
configured to only listen on IPv6 by manually setting IP to listen on and
advertise outside.
Brokers have no issue communicating between them, because they are not given
the option to resolve hostnames and pick IP protocol version.
Consumers and producers have to use bootstrap hostnames and do not try to
connect to IPv6 at all, they are stuck in SYN_SENT over IPv4:
{noformat}
syslog-ng 12621 999 123u IPv6 2411122889 0t0 TCP
192.168.0.2:41626->192.168.0.1:9092 (SYN_SENT)
{noformat}
This happened to consumer in syslog-ng output plugin:
* https://github.com/balabit/syslog-ng/issues/1835
It also happened to a Flink consumer, although I do no have any more info about
that one. We fixed the issue by only providing AAAA records for bootstrapping.
Previously we saw the opposite problem with dualstack: software does not
implement happy eyeballs and only connects to IPv6 address, which is
firewalled. This happened to SSH (client gets stuck if you don't supply -4) and
Go (https://github.com/golang/go/issues/22225) to give a couple of examples.
The solution for this is Happy Eyeballs:
https://en.wikipedia.org/wiki/Happy_Eyeballs
Kafka clients should connect to IPv6 first and then fallback to IPv4 if not
available.
There is also KAFKA-3347.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)