[ 
https://issues.apache.org/jira/browse/KAFKA-17959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17897214#comment-17897214
 ] 

Arushi Helms commented on KAFKA-17959:
--------------------------------------

Sure [~gnarula].
In the meantime, here is the snippet of the configurations from both controller 
and broker.
NOTE: 
 * *The hostname for the node does not match the CN but since we are using IPs 
as communication, we have provided IPs as SAN.*

*CONTROLLER:*

Relevant controller configurations from one of the controllers:
{noformat}
KAFKA_CFG_PROCESS_ROLES=controller 
KAFKA_KRAFT_CLUSTER_ID=5kztjhJ4SxSu-kdiEYDUow
KAFKA_CFG_NODE_ID=6 
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=4@10.87.170.83:9097,5@10.87.170.9:9097,6@10.87.170.6:9097
 
KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER 
KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INSIDE_SSL
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:SSL,INSIDE_SSL:SSL 
KAFKA_CFG_LISTENERS=CONTROLLER://10.87.170.6:9097{noformat}
Controller certificate has:
{noformat}
Common Name: *.kafka.service.consul 
Subject Alternative Names: *.kafka.service.consul, IP 
Address:10.87.170.6{noformat}
 

*BROKER:*

Relevant broker configuration from one of the brokers:
{noformat}
KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INSIDE_SSL
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=4@10.87.170.83:9097,5@10.87.170.9:9097,6@10.87.170.6:9097
 
KAFKA_CFG_PROCESS_ROLES=broker 
KAFKA_CFG_NODE_ID=3 
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE_SSL:SSL,OUTSIDE_SSL:SSL,CONTROLLER:SSL
 
KAFKA_CFG_LISTENERS=INSIDE_SSL://10.87.170.78:9093,OUTSIDE_SSL://10.87.170.78:9096
 
KAFKA_CFG_ADVERTISED_LISTENERS=INSIDE_SSL://10.87.170.78:9093,OUTSIDE_SSL://10.87.170.78:9096{noformat}
Broker certificate has:
{noformat}
Common Name: *.kafka.service.consul
Subject Alternative Names: *.kafka.service.consul, IP 
Address:10.87.170.78{noformat}
 

> Avoid Reverse DNS Lookup for IP-Based SSL Authentication in Kraft Mode
> ----------------------------------------------------------------------
>
>                 Key: KAFKA-17959
>                 URL: https://issues.apache.org/jira/browse/KAFKA-17959
>             Project: Kafka
>          Issue Type: Bug
>          Components: kraft
>    Affects Versions: 3.6.0, 3.7.0, 3.8.0, 3.7.1
>            Reporter: Arushi Helms
>            Assignee: Gaurav Narula
>            Priority: Blocker
>
> We have encountered an issue with Kafka's Kraft mode where reverse DNS 
> lookups are being performed unnecessarily during SSL authentication between 
> controllers and between brokers and controllers, despite using IP addresses 
> for communication.
> In our Kafka setup, we are using IP addresses for communication and have 
> configured certificates with {*}IP addresses in the Subject Alternative Name 
> (SAN){*}. However, when the controller tries to establish SSL connections 
> with other controllers or brokers, it attempts a reverse DNS lookup on the IP 
> address (e.g., {{{}10.87.170.83{}}}), which causes SSL handshake failures due 
> to the mismatch between the resolved hostname and the IP address in the 
> certificate.
> The issue arises even though the certificate contains the IP in the SAN and 
> should not require a reverse DNS lookup. This unnecessary lookup introduces 
> delays and inconsistencies, especially in environments where DNS resolution 
> is not required or reliable (e.g., in private networks).
> h3. Affected Scenarios:
>  # {*}Broker-to-Controller Communication{*}: The broker fails to authenticate 
> with the controller because the reverse DNS lookup of the controller's IP 
> address does not match the expected DNS name in the certificate.
>  # {*}Controller-to-Controller Communication{*}: Controllers also fail to 
> authenticate with each other due to similar reverse DNS lookup issues.
> h3. Current Behavior:
>  * Kafka's SSL handshake fails when using IPs for communication, with errors 
> like 
> {code:java}No subject alternative DNS name matching <resolved hostname> 
> found{code} due to reverse DNS lookup mismatches.
>  * The controller attempts reverse DNS lookups even when the connection is 
> established using IP addresses directly.
> h3. Expected Behavior:
>  * Kafka should use the *IP address directly* for SSL engine creation and 
> authentication when IPs are provided for communication, without performing a 
> reverse DNS lookup.
>  * *SSL hostname verification* should match the IP address in the SAN of the 
> certificate, not a resolved DNS name.
> h3. Request:
>  * Please address the issue by ensuring that Kafka does *not perform reverse 
> DNS lookups* for SSL authentication when IP addresses are explicitly provided 
> for communication.
>  * This behavior should be consistent across all Kafka components (brokers 
> and controllers) in Kraft mode.
>  
> Old ticket with similar issue for reference: 
> https://issues.apache.org/jira/browse/KAFKA-5051



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to