Summary

  • RFC 1383 proposed looking up an access gateway for a multihomed fringe network in reverse DNS instead of announcing all its internal routes to the Internet. A source or near-source router would make one gateway choice and source-route the packet there.
  • The described prototype used an ICMP Destination Unreachable response to start the DNS lookup. The RFC itself warned that this could lose the first packet; DNS records also had to be reachable from the core and did not by themselves show that a gateway was working.

The packet is sent. A router says the destination network is unreachable. Only then does a second piece of software ask DNS how to get there. In Christian Huitema's December 1992 RFC 1383, that failure was not the end of a route. It was the trigger for discovering one. The first packet could pay for the experiment.

The proposal addressed a real 1992 scaling worry. Huitema reported more than 5,000 networks in NSFNET routing tables and more than 7,000 in EBONE's. Each additional network announcement asked transit routers to store more state, routing protocols to carry more information, and operators to consider another policy decision. Hierarchical addressing and aggregation offered a way out, but a multihomed customer that wanted to keep its addresses while changing providers did not fit the tidy version of that plan.

Huitema borrowed the shape of mail's MX record, then changed the object. A fringe domain D would have two gateways, I1 and I2, with addresses visible to the Internet. The gateways would not advertise every network inside D to the wider routing system. A source wanting to reach an address inside D would query reverse DNS under in-addr.arpa, find an experimental RX gateway listing, select I1 or I2, and source-route the packet to that gateway. The gateway would know the internal route. The early software put RX, a preference value and an IP gateway address into a DNS TXT record; the dedicated RX record type was still a future design.

The directory would decide a candidate, not magically move the packet. Huitema rejected a lookup at every transit hop: that would require upgrading many routers, increase DNS work and let successive routers choose different gateways, perhaps sending the packet round a loop. The choice belonged at the source or one of its first relays. A consistent source route would carry it toward the selected access point.

Two gateways softened the risk of one failure and the bargaining power of one transit provider. But a DNS listing was not a health report. The source had to prune gateways already known unreachable; how quickly it could learn that state was an open problem. The destination domain also had to place copies of its RX information on name servers reachable from the Internet core. A domain hidden behind its own unavailable route could not answer the query that was supposed to find it.

The prototype exposed the cost of fitting a new idea around old code. Huitema described a kernel forwarder beside a standard IP router and a DNS query manager. The manager watched for an ICMP Destination Unreachable response, installed a temporary route through the forwarder, queried DNS, then handed the chosen gateway to it. Packets waiting for an answer aged; an expired packet was discarded. If DNS returned no gateway, the forwarder marked the destination unreachable and destroyed queued traffic.

The RFC explicitly preferred a more direct hook into IP routing when that code could be changed, because the ICMP-trigger method risked losing the first packet.

There was also an economic bid beneath the mechanism. Huitema reasoned that if backbones charged for separately announced networks, customers would face pressure to renumber into a provider's address space or find a cheaper path to multihoming. DNS-based routing was proposed as one escape from that bargain. The RFC Editor lists RFC 1383 as Experimental; its conclusion says the code was under development at INRIA. The memo records a design and its costs, not a deployment victory.

The sharp question was where routing authority should live. A global table made reachability common knowledge at a high collective cost. An RX directory made a gateway selectable on demand, then charged the source with lookup delay, route consistency, current reachability and sometimes a lost first packet. The lookup could name a door. Someone still had to prove that door opened.

Sources