Visual RFC.
ALL RFCs / RFC 9471
Read the RFC ↗
RFC 9471 / DNS REFERRAL GLUE

Break a closed sibling dependency cycle

04

Two sibling zones can depend on each other before the resolver has any usable address.

RFC 9471 · § 2.3EXAMPLE
4 / 4
Break a closed sibling dependency cycleStarting with the supplied bar-name address unlocks contact with a foo.test server, after which ordinary processing can continue the other address lookup. The helper reports dependency reachability, not real cache validation, network success or a website answer.Find a first address through the cycleOne supplied address unlocks the graphSeed: address under bar.testReachable: foo.test. and bar.test.Resolverfoo.test serverContinue the other address lookupReachability is not a synthesized website answerRFC 9471 · chapter 4 · state 4 · fictional DNS example
04
Continue through the unlocked path

The resolver can now contact a server for foo.test and continue the other address lookup. Dependency reachability is restored; the original website answer and network success are not synthesized.

Source for this drawing: RFC 9471 · Read RFC section 2.3 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

RFC 9471 §2.3 gives a cyclic sibling arrangement: foo.test uses name servers under bar.test, while bar.test uses name servers under foo.test. The parent test has their glue. Each child’s NS target remains a sibling, not in-domain for that child’s referral.

  • RFC 9471 §2.3 gives a cyclic sibling arrangement: foo.test uses name servers under bar.test, while bar.test uses name servers under foo.test. The parent test has their glue. Each child’s NS target remains a sibling, not in-domain for that child’s referral.
  • Our drawn fixture starts without cached server addresses, other usable name servers or another bootstrap path. To reach foo, the resolver needs a bar server address; to reach bar, it needs a foo server address. These are address-resolution dependencies, not packets already successfully delivered to either child.
  • Withholding both sides’ sibling glue can therefore leave this fixture unable to start. A TC=0 referral that omits sibling glue for size is permitted by the §3.2 TC choice, yet users may still experience failure for cyclically dependent siblings. Permission is not a guarantee of successful resolution.
  • Adding a usable parent-supplied address for ns1.bar.test. gives the resolver a first contact for foo.test. It can then continue obtaining the other needed address through ordinary DNS processing. The reachability helper models only this supplied dependency graph and seed-address set, not real cache state, validation or network success. Its nodes describe modeled address availability, not a trace of contacted servers.
  • The RFC’s late 2021 survey found a small number of such arrangements (§2.3); this guide does not present those historical measurements as current prevalence or recommend cyclic delegation designs.
DETAILS

Fictional DNS examples use documentation names and addresses. Record blocks and remaining budgets are schematic supplied costs, not a DNS wire encoder or a complete resolver.

Read the RFC section ↗

All chapters in RFC 9471

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗