Skip to content

Forbid more non-resolving IP addresses for hosts#3105

Merged
gbrodman merged 1 commit into
google:masterfrom
gbrodman:noAPIPA
Jun 25, 2026
Merged

Forbid more non-resolving IP addresses for hosts#3105
gbrodman merged 1 commit into
google:masterfrom
gbrodman:noAPIPA

Conversation

@gbrodman

@gbrodman gbrodman commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Reject loopback, link-local, site-local, wildcard, and multicast IP
addresses during host creation and update flows.

Glue records (A/AAAA records published in the parent zone for subordinate
name servers) must point to globally routable, public IP addresses to
ensure that recursive DNS resolvers on the public internet can reach the
authoritative name servers.

Using non-public or non-routable IP addresses in glue records is invalid
for the following reasons:

  • Loopback (127.0.0.1, ::1) and Any-Local (0.0.0.0, ::) addresses point
    back to the client or are unspecified, causing resolvers to query
    themselves and fail.
  • Private/Site-Local (e.g., 10.0.0.0/8, 192.168.0.0/16) and Link-Local
    (169.254.0.0/16) addresses are not routable on the public internet,
    rendering the delegated domain completely unreachable to external clients.
  • Multicast addresses are designed for one-to-many delivery and cannot
    be used for standard unicast DNS queries to a specific name server.

Rename LoopbackIpNotValidForHostException to IpAddressNotRoutableException
to reflect the broader set of forbidden non-routable IP addresses.


This change is Reviewable

@gbrodman gbrodman requested a review from CydeWeys June 24, 2026 15:51

@CydeWeys CydeWeys left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@CydeWeys reviewed 3 files and all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on gbrodman).

@CydeWeys CydeWeys left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit description needs more information on why all these types of IP addresses are invalid for glue records.

@CydeWeys made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on gbrodman).

@gbrodman gbrodman left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@gbrodman made 1 comment.
Reviewable status: all files reviewed (commit messages unreviewed), all discussions resolved (waiting on gbrodman).

Reject loopback, link-local, site-local, wildcard, and multicast IP
addresses during host creation and update flows.

Glue records (A/AAAA records published in the parent zone for subordinate
name servers) must point to globally routable, public IP addresses to
ensure that recursive DNS resolvers on the public internet can reach the
authoritative name servers.

Using non-public or non-routable IP addresses in glue records is invalid
for the following reasons:
- Loopback (127.0.0.1, ::1) and Any-Local (0.0.0.0, ::) addresses point
  back to the client or are unspecified, causing resolvers to query
  themselves and fail.
- Private/Site-Local (e.g., 10.0.0.0/8, 192.168.0.0/16) and Link-Local
  (169.254.0.0/16) addresses are not routable on the public internet,
  rendering the delegated domain completely unreachable to external clients.
- Multicast addresses are designed for one-to-many delivery and cannot
  be used for standard unicast DNS queries to a specific name server.

Rename LoopbackIpNotValidForHostException to IpAddressNotRoutableException
to reflect the broader set of forbidden non-routable IP addresses.
@gbrodman gbrodman enabled auto-merge June 25, 2026 17:18
@gbrodman gbrodman added this pull request to the merge queue Jun 25, 2026
Merged via the queue into google:master with commit 6a47287 Jun 25, 2026
15 of 16 checks passed
@gbrodman gbrodman deleted the noAPIPA branch June 25, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants