RFC 1335

A Two-Tier Address Structure for the Internet: A Solution to the Problem of Address Space Exhaustion

๐Ÿ“… published May 1992, from ietf

A Two-Tier Address Structure for the Internet ๐Ÿฆ‹

A Solution to the Problem of Address Space Exhaustion ๐ŸŒธ

okay bestie, let's get the basics out of the way first ๐Ÿ’… This is RFC 1335 from the Network Working Group, written by Z. Wang and J. Crowcroft at University College London, dated May 1992. It's categorized as informational, so it provides information for the Internet community and does not specify an Internet standard โœจ The header doesn't list any RFCs that it obsoletes or updates ๐Ÿงš

Status of this Memo ๐ŸŽ€

ngl the status bit is simple ๐Ÿซถ This memo provides information for the Internet community. It does not specify an Internet standard. Distribution of this memo is unlimited ๐Ÿ’–

Abstract ๐ŸŒˆ

so the whole point of this RFC is to solve the problem of address space exhaustion on the Internet ๐Ÿ˜ญ It proposes a two-tier address structure for the Internet. It's an "idea" paper, and the authors are strongly encouraging discussion ๐Ÿ”ฅ

Introduction ๐Ÿ’œ

okay so address space exhaustion is one of the most serious and immediate problems the Internet is dealing with right now ๐Ÿ’€ [1,2] The current Internet address space is 32-bit ๐Ÿ“ Each Internet address gets split into two parts: a network portion and a host portion. That split lines up with the three main Internet address classes: Class A, Class B and Class C ๐Ÿฆ‹ Here's Table 1 with the network number stats as of April 1992 ๐Ÿ“Š

                      Total       Allocated     Allocated (%)
   Class A              126            48            54%
   Class B            16383          7006            43%
   Class C          2097151         40724             2%

          Table 1: Network Number Statistics (April 1992)

if recent trends of exponential growth keep going, Class B network numbers are gonna run out soon ๐Ÿ˜ญ [1,2] There are over 2 million Class C network numbers, and only 2% of them have been allocated ๐Ÿซ  BUT a Class C network number can only fit 254 host numbers, which is way too small for most networks ๐Ÿ™ˆ With the Internet growing so fast and personal computers blowing up, the time when the 32-bit address space is completely used up isn't too far away either [1-3] ๐Ÿ’€

okay, so several proposals have come up to deal with the immediate problem [1-4] โœจ The Supernetting and C-sharp schemes try to make Class C numbers more usable by redefining how Class C network numbers get classified and assigned [3,4] ๐Ÿ’… Both schemes need changes to the exterior routing algorithms, and global coordination across the Internet may be needed to deploy them ๐Ÿงš And here's the tea: neither scheme increases the total number of addresses available to the Internet, so they can only be a short-term fix for the next two or three years ๐Ÿ˜ฉ Other schemes have also been put forward, where the 32-bit address field gets replaced with a field of the same size but with a different meaning, and the gateways on the boundary rewrite the address when the packet crosses the boundary [1,2,5] ๐ŸŒ€ But honestly those need big changes to the gateways and the exterior routing algorithm, which is a lot ๐Ÿ˜ตโ€๐Ÿ’ซ

In this paper, we bring our own alternative to the address exhaustion problem ๐ŸŽ€ The "Dual Network Addressing (DNA)" scheme is based on a two-tier address structure and on sharing addresses ๐Ÿ’– It needs no modifications to the exterior routing algorithms, and any network can adopt the scheme on its own, at any time, without affecting other networks ๐Ÿฆ‹

The Scheme ๐Ÿงš

the DNA scheme is all about cutting down the waste when it comes to Internet addresses ๐Ÿ’… The best way to picture it is the extension system used in the telephone system ๐Ÿ“ž Lots of big organizations have extensive private telephone networks for internal use, and at the same time they rent a limited number of external lines to talk to the outside world ๐Ÿซถ In that kind of phone system, important offices might get direct external lines, while phones in public areas are restricted to internal calls only ๐Ÿ™ˆ Most phones can make both internal and external calls, but they have to share the limited external lines. When you make an external call, you have to press a predefined digit so an external line can be grabbed from the pool ๐Ÿ“žโœจ

so in the DNA scheme there are two types of Internet addresses: Internal addresses and External addresses ๐Ÿ’œ An internal address is an Internet address that's only used within one network, and it's only unique inside that network ๐ŸŽ€ An interface with an internal address can only talk to another interface with an internal address in the same network ๐Ÿซ  An external address is unique across the whole Internet, and an interface with an external address can talk directly to another interface with an external address over the Internet ๐ŸŒ Every current Internet address is an external address ๐Ÿ‘‘

basically, the external addresses make up one global Internet, and the internal addresses make up lots of private Internets ๐ŸŒˆ Inside one network, external addresses are only used for communication between networks, and internal addresses are used for communication within the network ๐Ÿ’… To manage sharing external addresses, you need an External Address Sharing Service (EASS) โœจ An EASS server reserves a number of external addresses. When a machine that only has an internal address wants to talk to a machine with an external address in another network, it sends a request to an EASS server to get a temporary external address ๐Ÿงš Once it's done, the machine gives the external address back to the EASS server ๐Ÿฆ‹

we genuinely believe a network can work with a limited number of external addresses with the DNA scheme ๐Ÿ˜ค Here's why:

  • In most networks, most of the traffic stays inside its local area networks ๐Ÿ  That's because of the nature of networking applications and the bandwidth limits on links between networks ๐Ÿ’€
  • The number of machines acting as Internet servers (meaning programs that wait to be called by machines in other networks) is often limited, and it's way smaller than the total number of machines ๐Ÿ–ฅ๏ธ These include mail servers, domain name servers, ftp archive servers, directory servers, and so on ๐Ÿ“ฌ
  • More and more personal machines are joining the Internet ๐Ÿ“ฑ Their use is mostly limited to their local environment, though they can also be used as "clients," like for ftp and telnet to reach other machines ๐Ÿ’ป
  • For security reasons, lots of big organizations (like banks, government departments, military institutions, and some companies) only allow a very small number of their machines access to the global Internet ๐Ÿ”’ Most of their machines are purely for internal use ๐Ÿซถ

in the DNA scheme, every machine in a network gets a permanent internal address and can talk to any machine in the same network ๐Ÿ’– How many external addresses a machine gets depends on what it does, and that creates three levels of privilege ๐Ÿ‘‘

  • Machines that act as servers or as central computing infrastructure are likely to talk to other networks all the time, so they may need external addresses at all times ๐ŸŒŸ These machines are allocated permanent external addresses โœจ
  • Machines that aren't allowed to communicate with other networks don't get any external addresses, and they can only talk to machines within their own network ๐Ÿ™…โ€โ™€๏ธ
  • All the other machines share a number of external addresses ๐ŸŽ€ The EASS server allocates external addresses to them on request ๐Ÿงš These machines can only be used as clients to call machines in other networks, which means they can't be called by machines in other networks ๐Ÿซ 

a network can pick any network number, other than its external network number, as its internal network number ๐Ÿ’… Different networks can even use the same network number as their internal number ๐ŸŒˆ We propose reserving one Class A network number as the well-known network number for internal use ๐Ÿ‘‘

The Advantages ๐Ÿ’Ž

okay the DNA scheme tackles the problem from the bottom of the Internet, meaning each individual network ๐ŸŒฑ The other schemes from the first section tackle it from the top, meaning gateways and exterior routing algorithms ๐Ÿ”๏ธ These approaches don't have to be treated as mutually exclusive ๐Ÿซถ The DNA scheme has several advantages:

  • DNA takes an evolutionary approach to change โœจ Networks can each choose to adopt the scheme at any time, but only when it's actually necessary ๐Ÿฆ‹ No global coordination between networks is needed to deploy it ๐ŸŒ The effects of deployment stay within the network where the scheme is implemented, and they're invisible to exterior routing algorithms and external networks ๐Ÿ™ˆ
  • With DNA, a medium-sized organization can use a Class C network number with 254 external addresses ๐Ÿ’– The scheme lets the current Internet grow to over 2 million networks, with each network having more than 16 million hosts ๐Ÿคฏ That gives everyone plenty of time to develop and fully test a long-term solution ๐Ÿงš
  • DNA needs changes to host software ๐Ÿ’ป But those changes are only needed in the networks that adopt DNA ๐ŸŽ€ Existing Class A and B networks usually have enough external addresses for all their machines, so they don't need to adopt DNA and don't need any software changes at all ๐Ÿ˜Œ The networks that do need DNA are the new ones that get set up after the Class A and B numbers run out and have to use a Class C number ๐Ÿซถ
  • DNA makes it possible to move to a new addressing scheme without stretching the 32-bit address length to 64-bit ๐ŸŒˆ With the two-tier address structure, the current 32-bit space can cover over 4 billion hosts across the global Internet, and 100 million hosts in each individual network ๐Ÿคฏ When we move to a classless, multi-hierarchic addressing scheme, external addresses can be used more efficiently and with less waste, and the 32-bit space can be enough for the external addresses ๐Ÿ’…
  • When a new addressing scheme is developed, all current Internet addresses have to change ๐Ÿ˜ญ DNA makes that undertaking way easier and smoother ๐Ÿฆ‹ Only the EASS servers and the machines with permanent external addresses are affected, and communications within the network don't get interrupted ๐Ÿซถ

The Modifications โœจ

okay so the big changes are in the network interface code ๐Ÿ”ง the DNA scheme needs every machine to have at least two addresses, but most of the host software right now doesn't let you bind two addresses to one physical interface ๐Ÿ˜ญ the obvious fix is two network interfaces on each machine, but that's way too expensive ๐Ÿ’ธ ngl.

BUT the two interfaces would actually be plugged into the same physical network ๐Ÿ”Œ so if we tweak the interface code to let two logical interfaces map onto one physical interface, the machine can use both the external address and the internal address through that one interface, as if it had two physical interfaces ๐Ÿคฏ basically, two logical IP networks run over the same physical network. it's giving efficiency ๐Ÿ’…

The DNA scheme also has implications for the DNS service ๐ŸŒ Many machines will have two entries in the local name server, so the DNS server has to look at the source address of the request and decide which entry to use ๐Ÿ‘€ If the source address matches the well-known internal network number, it hands back the internal address of the domain name. Otherwise, the name server gives out the external address. main character routing ๐Ÿฆ‹

An EASS server is required to manage sharing of the external addresses, i.e., to allocate and de-allocate external addresses to the machines that don't have permanent external addresses ๐Ÿ“ฎ This service can be provided by using the "Dynamic Host Configuration Protocol (DHCP)" [6] ๐Ÿงš

Many hosts do an inverse lookup of incoming connections ๐Ÿ•ต๏ธ so it's desirable that the entry in the DNS server gets updated whenever a new external address is allocated. This will also let a machine that currently has a temporary external address be called by other machines ๐Ÿ“ž The updating can be done more easily if the EASS server and DNS server are co-located ๐Ÿซถ

Acknowledgements ๐Ÿ’–

we'd love to thank J. K. Reynolds for the network statistics, and V. Cerf, C. Topolcic, K. McCloghrie, R. Ullmann and K. Carlberg for their useful comments and discussion ๐Ÿซถ

References ๐Ÿ“š

  • [1] Chiappa, N., "The IP Addressing Issue", work in progress, October 1990.
  • [2] Clark, D., Chapin, L., Cerf, V., Braden, R., and R. Hobby, "Towards the Future Architecture", RFC 1287, MIT, BBN, CNRI, ISI, UC Davis, December 1991.
  • [3] Solensky, F., and F. Kastenholz, "A Revision to IP Address Classifications", work in progress, March 1992.
  • [4] Fuller, V., Li, T., Yu, J., and K. Varadhan, "Supernetting: an Address Assignment and Aggregation Strategy", work in progress, March 1992.
  • [5] Tsuchiya, P., "The IP Network Address Translator", work in progress, March 1991.
  • [6] Droms, R., "Dynamic Host Configuration Protocol", work in progress, March 1992.

Security Considerations ๐Ÿ”

Security issues are not discussed in this memo. ๐Ÿ˜ญ so yeah, that's the whole section, and the memo itself doesn't go there.

Authors' Addresses ๐ŸŽ€

Zheng Wang
Dept. of Computer Science
University College London
London WC1E 6BT, UK

EMail: z.wang@cs.ucl.ac.uk
Jon Crowcroft
Dept. of Computer Science
University College London
London WC1E 6BT, UK

EMail: j.crowcroft@cs.ucl.ac.uk
๐Ÿ“ฆ where this page comes from