RFC 1335
A Two-Tier Address Structure for the Internet: A Solution to the Problem of Address Space Exhaustion
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
- ietf: rfc1335 1992-05
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms