-
Type:
Epic
-
Resolution: Unresolved
-
Priority:
Critical - P2
-
None
-
Component/s: Docs, Initial DNS Seedlist Discovery
-
Configurable DNS domain validation for SRV records
-
Python Drivers
-
Needed
-
-
In Progress
-
0
-
0
-
0
-
100
-
None
-
None
-
-
Needed
-
-
None
-
None
-
-
None
-
None
-
None
According to the Initial DNS Seedlist Discovery specification, "A driver MUST verify that the host names returned through SRV records share the original SRV's domainname. In addition, SRV records with fewer than three . separated parts, the returned hostname MUST have at least one more domain level than the SRV record hostname. Drivers MUST raise an error and MUST NOT initiate a connection to any returned hostname which does not fulfill these requirements."
The parsing logic however assumes that the left-most part of a URL (period-separated) is the subdomain, and everything to the right of that is the domain. This can result in user-managed DNS records that should be valid being considered invalid.
For example, if a DNS record of _mongodb._tcp.mongodb.mydomain.net contained regionally separated URLs in the form of:
- mongodb1.us-east-1.mydomain.net
- mongodb2.us-east-1.mydomain.net
- mongodb3.us-west-1.mydomain.net
this would be considered invalid.
Acceptance Criteria
- update appropriate specification docs (initial-dns-seedlist-discovery and uri-options) about the new parameter, srvAllowedHostsSuffix
- add unified tests
- is related to
-
DRIVERS-2922 Allow valid SRV hostnames with less than 3 parts
-
- Implementing
-
- split to
-
CSHARP-6077 Configurable DNS domain validation for SRV records
-
- Needs Triage
-
-
RUST-2444 Configurable DNS domain validation for SRV records
-
- Needs Triage
-
-
CDRIVER-6351 Configurable DNS domain validation for SRV records
-
- Backlog
-
-
CXX-3515 Configurable DNS domain validation for SRV records
-
- Backlog
-
-
GODRIVER-3953 Configurable DNS domain validation for SRV records
-
- Backlog
-
-
NODE-7610 Configurable DNS domain validation for SRV records
-
- Backlog
-
-
RUBY-3899 Configurable DNS domain validation for SRV records
-
- Backlog
-
-
JAVA-6233 Configurable DNS domain validation for SRV records
-
- Defining
-
-
PHPLIB-1867 Configurable DNS domain validation for SRV records
-
- Development Complete
-
-
PYTHON-5814 Configurable DNS domain validation for SRV records
-
- Investigating
-