Skip to content

ClickHouse use getaddrinfo for reverse resolve and apply only one PTR response value for <host_regexp> compare #17202

@Slach

Description

@Slach

Describe the bug
ClickHouse use getaddrinfo for reverse resolve https://github.com/ClickHouse/ClickHouse/blob/master/src/Common/DNSResolver.cpp#L124

DNS protocol doesn't restrict how much PTR records we shall set for one IP address
https://en.wikipedia.org/wiki/Reverse_DNS_lookup#Multiple_pointer_records

so, when we receive multiple PTR response value
only one PTR response value apply for <host_regexp> recognition

image

How to reproduce
I create a docker-compose reproducible environment
https://gist.github.com/Slach/f9e40984168840d9c95da03988ab8283
just run ./reproduce.sh

  • Which ClickHouse server version to use
    official docker clickhouse-server:latest

Expected behavior
All PTR response shall match with host_regexp pattern

Error message and/or stacktrace

Code: 516, e.displayText() = DB::Exception: test_dns: Authentication failed: password is incorrect or there is no user with such name (version 20.1'.3.3 (official build)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions