Internet Draft Noel Chiappa Consultant The IP Addressing Issue 0 Status of this memo This draft document will be submitted to the RFC editor as an informational Document. Distribution of this memo is unlimited. Please email comments to email@example.com or fax comments to (804) 898-7663. 1 Introduction The packet layer of the IP architecture is about to enter a period of stress caused by deficiencies in the IP address. This stress is caused by a number of inter-related problems. This note describes these problems, lists some suggested solutions, and discusses pros and cons of each of those solutions. 2 The Problems The IP address structure is facing three problems; some widely appreciated, and some not. 2.1 Exhaustion of Class B Address Space The first, and one that has received a fair amount of notice in the technical community, is that the supply of class B network numbers is being used up quite rapidly. Around 16 thousand of these network numbers exist in the current address structure; xxxx thousand have already been assigned. Moreover, a simplistic statistical analysis indicates that the rate of growth closely fits an exponential curve, and if that curve continues to be followed, the existing stock of class B addresses will be used up in yy months. Of course, the curve is really an S-curve, and will top out at some point, but it is not clear when. While the spread of the Internet in the U.S. academic community is slowing as coverage becomes ubiquitous (i.e. it is itself an S-curve), there are two largely untapped population factors which will keep the growth up for a while to come. The first is the spread of the Internet within the U.S. government and within U.S. companies; while there is currently some coverage in these groups, it has not yet reached the levels of the academic community, but can be expected to do so over time. The second is the spread of the Internet to the international community, where this three phase growth pattern will probably repeat. 2.2 Exhaustion of Entire IP Address Space This is a short term version of a longer range problem, which is that the entire IP address space is being used up. At first glance, this seems unlikely, since the 32 bit space allows for approximately 4 billion distinct addresses. However, a great deal of structure is imposed on this 32 bit field, in an attempt to allow agents inspecting an address to discover something about where in the network that address is. Imposing this structure does not allow the address space to be used efficiently, since there are many unused bit combinations. For example, if it is known that all addresses that start with the bit pattern 00010010 are at MIT (and all packets whose destination address starts with that pattern are sent to MIT), then unless there are 2^24 hosts at MIT (which there are not), all unused combinations starting with that pattern are effectively wasted. There is no way to avoid this without a fundamental change to IP addressing and routing. It is unclear when the IP address space as a whole will be used up, assuming we continue in something like the current fashion. The IP address space is divided into different classes, and the usage rate in the various classes differs. As mentioned above, one class is already in some danger of running out. If the limit above is not to be the finale, presumably some reallocation of classes would be neccessary, but how long this will give us depends on how complete the reallocation is (more efficient schemes are more complex), as well as future growth patterns, which are not well understood. Even if the address space were used efficiently (i.e. all possible bit combinations were valid addresses), if the Internet continues to grow and is not supplanted by an alternate networking technology, there will eventually be more hosts that can be addressed in this many bits (unlikely as this may seem at the moment). 2.2 Inutility of the Current IP Address Strucuture Finally, and most important, the routing mechanisms themselves are breaking down due to the sheer number of different destinations they are required to track. This is in fact a far more serious problem (both in terms of immediate failures in the network as well as long range intractability) than the two above, although it may not be as well known or as apparent to the broader community. The difficulty stems from the fact that the Internet is effectively a single level heirarchy. (For the purposes of this analysis, subnets can be ignored, although they did help a great deal.) The objects in terms of which routing is done are IP networks; each network is visible throughout the entire Internet (modulo local policy controls), and traffic cannot be routed to a destination in a network unless that network and something about its location are known to the source of the traffic and points in between. Simply examining a network number (as opposed to an entire address) will tell you nothing about where in the network that network is. The problem is that any routing technology is limited in the number of discrete destinations it can track. The limits come in storage space to keep databases and processing time to do computations based on them, as well as bandwidth usage to send information around. Even systems which cost O(zzzzz) in the number of destinations (and most routing technologies aren't even that good) will have limits. The exact number of destinations at which a particular routing technology tops out differs, but as a general proposition the best systems of which we know now seem to have limits in the low tens of thousands with the current levels of hardware performance. The solution to the problem is to adopt an address with more structure in it; this will allow groups of networks (and eventually groups of groups) to be represented as single objects for the purposes of routing, which will reduce the costs of routing to a manageable burden. Once again, there is no way to handle this without a fundamental change to IP addressing and routing; better hardware will not solve the problem as the size of the Internet is increasing faster than the capabilities of the hardware. As a side note, the existing routing technology in the Internet has a very short useful lifetime. The problems of EGP are well known; in addition to not being able to handle cycles in the topology, since it sends the entire routing table as a single packet, it has a practical limit in the low thousands of networks. BGP will remove these two limits, but has little support for real policy routing, and in any case is subject to the ultimate size limits above inherent in the existing IP addresses. As far as IGP's go, the new link state protocols OSPF and dual IS-IS are very good protocols, but have the same problems as BGP. For example, OSPF can probably barely handle (if at all) the 2^14 class B network numbers currently allowed (the lack of definity is because the actual limits depend on the speed and memory size of the router), so increasing the number of class B networks by a factor of 10 (assuming this were somehow possible within the IP address space) would not really help. 3 Possible Solutions A number of solutions have been proposed to solve the 'IP addressing problem'. However, most of them do not fully address all three of the problems outlined above. In some cases, this is deliberate; the proposals were put forward as temporary fixes to allow more time to be spent on a more complete solution; in other cases, the author was perhaps not aware of the full dimensions of the problems. Two self-evident conclusions can be drawn from the list of problems above. First, any proposal which does not solve all the problems listed above is not a real solution, but simply a temporary patch, and is only worth considering if the extra time provided is needed and worth the cost. Second, given the interrelation between addressing and routing, a more satisfactory solution almost certainly lies in considering and solving problems in the two areas together. Given that routing is by far the harder problem, the address structure chosen should be designed in light of the requirements of the final routing architecture; put another way, the address structure should be designed to make the job of the routing as easy as possible. Different address architectures can make a great deal of difference in the difficulty of routing them; to design an address structure without reference to the routing system that will provide the paths for the traffic is most unwise given the extreme technical challenges posed by the current requirements on routing in the Internet. In any case, it is worth going down the list, explaining each, and listing the pros and cons of each. It is unfortunately not possible to go into detail on each solution, since that would require a long paper on each one. Note that most of these only address the address space limitations, not the routing problems, which, as have been pointed out, are actually the most severe. In general, most solutions propose the adoption of some sort of new address; schemes vary as to how (or if) the new address is to be carried in the packet. Some propose to keep the existing IP packet format, while others propose to modify it. Note also that most of the proposals are not mutually exclusive; one can take parts of one and mix it with parts of another to provide more complete solutions. For example, some of the ideas in the last proposed solution (such as the completion of Open Routing to handle new and more complex addresses and use of the existing 32 bit address as a UID) could obviously be used in other proposals, and several of the other solutions appear as pieces of or options in the last proposal. 3.1 Increase the Number of Class B Networks The first (and only non-radical) proposed solution is to increase the number of class B network numbers available, either by allocating half the class A numbers to class B, or part of the class C address space. The advantages of this are that it will require no changes in most hosts, and will extend the life of the current addresses substantially, since class B is the only one nearing exhaustion. The disadvantages are that it is only a short term solution, it is not a solution to the most pressing problem (the third) anyway, it is not a solution to the address space exhaustion, it will require changes to all routers, and, if the class A subvariant is used, to some hosts (which persist in ignoring the requirements in the Host Requirements and understand the structure of IP addresses). Nonetheless, this solution might be of use as an interim measure if more time is needed to implement a final plan. 3.2 Reformat the Existing IP Address The second proposed solution is to redefine the interpretation of the existing 32 bit field to make it more useful. The primary proposal here is the 'bottoms up' proposal. Briefly, this proposal contemplates redefining the interpretation of the IP address to allow a multi-level heirarchy in which (through use of masks and assignment of extra bits to each level as needed) each level can grow efficiently, as needed. A way to perform policy routing using this address interpretation is also provided. The advantages are that this does make efficient use of the address space, and does not require changes to hosts and many routers. It also improves the routing situation. The disadvantage is that this particular proposal does not remove the ultimate limit on the size of the IP address; the proposal as written uses the existing 32 bit addresses. (Clearly, one could vary this to use new addresses, in which case it would fall into one of the classes below.) 3.3 Make IP Addresses Non-Globally Unique The third proposed solution is to change IP so that addresses are not globally unique, but only unique in a single AS. This effectively corresponds to the scenario seen in a number of procotol families where distinct catenets with overlapping address spaces are glued together. This is usually undertaken to avoid renumbering an entire catenet when two catenets which developed separately are joined, rather than to expand a single catenet, but the details are the same whatever the motivation. In any case, experience in other protocol families with this solution is a useful guide. The advantages are that it requires no change to the hosts, and it also avoids changes to any non-border routers. The disadvantages, depending on the subvariant, are that either an overall size limit still remains, or a mechanism equivalently complicated to that of some of the more complete proposals must be developed to do the routing among AS's, etc. (This is an example of the adage that a problem swept under the carpet will always pop up somehere else.) In one subvariant (seen where distinct catenets with overlapping address space assignments are joined, but probably not useful to the Internet), distant AS's are permanently mapped into the address space of the local AS, but in a place different from their 'native' address. Thus, both the third (routing difficulties) and second (total size limit) problems still exist. In a different subvariant, either not all AS's can be mapped in, or external destinations are dynamically mapped into the address space of the local AS. In this case, a larger (and probably more complex) address must be adopted for use between AS's, routing must be designed to route it, and mechanisms developed to do the dynamic mapping. Depending on the details, this might look very similar to the next scheme. In yet another subvariant, the AS's are joined at their edges not by packet level routers, but by application level gateways. This is in a sense a variant of the one above, except that the more complex address is the host name. The difficulty here is that the applications must in most cases be modified to pass the identification of the ultimate destination on start-up (in-band, since there is no out-of-band channel in TCP); very few (such as electronic mail) currently do this. 3.4 Define a New IP Address The fourth proposed solution is to define a new IP address, which would be carried in an IP option in existing IP packets, perhaps with a pointer to the location of the option carried in a class E address. In one variant of this idea (similar to the one above) the AS number would be the extension (so that the existing IP address is again not unique across the entire Internet), and would be carried in an option. In another, the 'bottoms-up' addressing scheme would be used. The advantages are that this removes the limits on the number of addresses, and this allows a solution to the routing problem, although one is not proposed, except in the 'bottoms-up' scheme. The disadvantage is that all the hosts must be modified to generate the addresses in this fashion, and the overall size of the new address (assuming it is a multi-level address to make routing easier) is limited by the maximum amount of free space in the IP header. (If the hosts are not modified, but the new address is added by some agent, then this solution turns into the previous one.) An additional disadvantge in the case where the AS number is the extension is that this still only provides one extra level of heirarchy, which in the long run will not be enough. 3.5 Define a New IP Packet This is a more radical attack on the problem, and since a 'clean slate' is available, the proposals differ substantially. The chief advantage of this approach is that other problems with IP can be solved at the same time, but these are outside the scope of this discussion. The chief disadvantage is that all the hosts must be modified to generate the new format packets, but some schemes include interoperable transition plans to ease this. A number of proposals include this step as an option, to make the new addresses less of a kludge, or to provide extra capabilities. 3.6 Integrated New Host Identifier, Address and Routing. The sixth proposal is a multi-stage solution which attacks a number of problems at once. It is in some respects related to the two above, since it contemplates a new IP address and (eventually) a new packet format, but it differs from them in introducing a new concept into the IP architecture (the Host Identifier) as well as tight coupling to a routing architecture. It envisions creation of a new IP address, of varying length with a varying number of levels, upgrading the Open Routing protocol to handle these new addresses, conversion of interpretation of the existing 32 bit addresses to UID's for Host Identifiers, and, in the long run, a final step to allow the system to contain more than 2^32 distinct nodes. One possibility for the latter is to make the UID's locally significant only (using some of the mapping techniques laid out in the second sub-variant of 3.3); the other is a new IP packet format with 64 bit UID's. The advantages of this proposal are varied. First, the structure of the new addresses can be oriented toward the main goal of making the routing easier. Second, a UID means that a number of problems with machines with more than one address or changing address can be attacked. Third, the initial retention of the existing address as the UID means that hosts and routers do not have to be changed right away, and the change to hosts is small; the address can be constructed by the first 'new-style' router (although eventually for efficiency the hosts should do this directly). Fourth, the existing 32 bit space can be used with maximal efficiency, delaying the date at which the exhaustion of this space must be tackled. Fifth, if the 64 bit UID path is chosen, and the phaseover started before the 32 bit space is used (so that the UID of any host in the new 64 bit space is simply the zero extension of its UID in the 32 bit space), there will not be any cases of new and old style hosts which cannot communicate due to the inabilty of the old address space to name hosts in the new space, which is the usual cause of problems in conversions. The disadvantages of this proposal are that the first 'new-style' router will have to determine (and add, or otherwise retain) the address which corresponds to that destination UID, which is a repeated small cost, and in the long run all the hosts will have to be changed. 3.7 Use ISO There are a number of sub-variants in this option. One possibility is to use just the ISO address; this is effectively a new address scheme, as described in 3.4, but the address would be in common with ISO. This would allow 'packet wrapping' in a simple algorithmic way (since no complex tables would be needed to map addresses), but it is not clear if this is useful. Packet translation would also be possible, with the same caveats. Another is to use the ISO packet layer, but retaining the existing stream and above protocols; this is effectively a new packet format, as described in 3.5. This would unify the two catenets at the packet level, but this is probably not a big advantage given the multi-protocol router technology. Hosts from different suites would still not be able to interoperate without application or other gateways. A third is to keep the TCP suite of applications, but to run them above the ISO stream protocols. This is little different from the previous scheme in its effects, but would have more far-reaching effects in terms of host software. The last is a complete conversion to the ISO suite. This would have problems during the (likely lengthy) transition which are identical to the ones we see now with interoperation; service gateways are an imperfect (and in some ways crippling) solution, and general translation has proven impractical. 4 Conclusions It is possible to draw some initial conclusions as to which of the possible classes of solutions is to be preferred. To begin with the last, a conversion to ISO, while alluring, is not currently a useful option, for reasons both political and technical. Reflection in both camps on the complex political situation between supporters of the two protocols has led to a strategy that actually appears to have some advantages. Basically, both sides agree that the overall goal is to create the best possible packet data architecture. Given that, a plausible case can be made that that end is actually better served by the existence of two competing efforts, provided that no energy is wasted in fruitless political combat between adherents of the two camps. As long as all the effort is directed towards improvement of the two protocols suites, the end result will be better than the result of a single effort, especially if each side feels free to inspect, learn and borrow from the work of the other. In the context of this strategy, and also with reference to the technical status of the ISO family, adoption of an ISO conversion strategy to answer the problems of the Internet is clearly inappriate. Both protocol families face problems in handling growth, especially given the choice of the ISO designers in making administrative concerns the main spring of their address design, rather than topology and abstraction. The continuing existence of the two different standards (down to the address/packet layer, where the real problems lie), each with radically different means of creating designs, is necessary to create the best answer to these challenges. In addition, the ISO architecture is still lacking some necessary pieces (such as an inter-domain routing protocol) for use in replacement of the Internet. As noted above, the first two options are not really suitable. Since neither removes the straightjacket of the existing IP address (in length, if not in structure), any solution based on them would be short term at best. Ruling out the third option (and all its subvariants) is a little harder to rigorously justify (since strictly speaking they can meet all the requirements), but it seems clear in the light of engineering experience that the existence of a single global system in which each host has a unique tag is extremely valuable and robust. Previous experiences with mapping solutions indicate that while they can eventually be made to work, they are inferior in many ways. Many other goals (such as security) are much easier to tackle in such a system. The last subvariant (with application level gateways) will crimp development and deployment of new applications, since lack of direct packet level connectivity will require the creation of application gateways as well as the applications themselves before a new application can spread. One of the chief advantages of the IP system (as compared with the various local solutions arrayed around the NCP-based ARPANet which preceeded it) is the direct packet access to all corners of the network. The choice thus comes down to the middle three options of a new address, packet format, or the integrated rework of the packet layer. This is not really a choice between differing approaches, but simply a choice of how expansive a rework is desired or feasible. Given that major changes are going to be necessary in any case, and given that a conversion/interoperation plan with minimal up-front costs is available, it seems likely that the best course for the long-term is the third; a complete and integrated rethinking and reworking of the basic addressing and routing facet of the packet level of the architecture.