Every machine on the Internet has to have an IP address. Furthermore, it has to be a "globally routable" IP address—an address that is allocated to you by someone and that is routed by your provider to the rest of the Internet (meaning all of the providers on the Internet know to send data to your provider to get to you).
So how do people get address space? If you last looked at IP space allocation a few years ago, things might have changed quite a bit. And they're going to change even more in a few months for residents of the Americas, as providers start to have to pay money for address allocations.
The bottom line is this: Unless you're multi-homed (connected to two providers) and have already received and allocated to your customers a fairly large amount of address space, you're going to get your IP address space from your "upstream provider"—the provider who sells you your dial-up, ISDN, 56K, T-1, or other type of Internet connection. They get their address space either from their upstream providers or directly from either the IANA or the regional registries.
If you don't like that answer, and think that you want or need your own address space, read on...
The IANA, which holds as a global trust the integers from one to roughly 4 billion (232, to be exact), delegates address space to the world—basically, to the regional IP registries. It is unheard of for ISPs to directly get address space from the IANA. The last entity to do so was @Home, which got a /14 (more on what a "/14" is later) based on extensive engineering and growth plans. Even then, the InterNIC actually made the entries in their tables at the IANA's direction.
The InterNIC, RIPE, and APNIC are the "regional registries." RIPE covers Europe (www.ripe.net) and APNIC covers the Asian Pacific (see www.apnic.net). The InterNIC currently covers "everywhere else," including the US and the Americas, and also hands out address space to global ISPs. This is the same InterNIC that currently registers the .com, .org, .gov, .mil, .edu, and .net domains. But that's probably going to change in a few months when Network Solutions, which owns the InterNIC, spins off the IP Registry into a new non-profit entity called ARIN (www.arin.net).
A fairly large warning: Under the ARIN proposal, the new ARIN registry will be charging for IP allocations. There is currently no charge for IP allocations from the InterNIC, although you do have to pay for allocations and/or "membership" in RIPE and the APNIC.
Addresses given out directly by any of these registries are generally at least 32 Class Cs wide (or long)—meaning, 32 Class Cs in a "row." Anything less wouldn't be "globally routable." More on all of this shortly.
"SLASH" NOTATION AND CIDR
To talk about IP allocations, it's necessary to understand the modern terminology used to talk about blocks of IP addresses.
It used to be that IP address space was allocated in hunks called Class A, Class B, and Class C. Class A networks have almost 17 million (224) addresses; Class B networks have 65,536 (216) addresses; and Class C networks have 256 (28) addresses. Actually, those numbers are high, since a certain percentage of the numbers in any network have special meaning and aren't available for hosts.
Those hunks are called Classful networks because of the Class X nomenclature. Currently, address are allocated in, and people talk about address space using CIDR (Classless Inter-Domain Routing) notation.
One of the many phases of "The Internet's Going To Explode" was happening in the early 1990s. The basic problem was that Class Bs were way too large for some and slightly too small for others. There was some worry about running out of address space because of "inefficient utilization" of giving out all of those Class Bs (if someone needs 130 Class Cs-worth of address space and they get a Class B, there are 126 wasted Class Cs worth of space). But the real problem was that the routers of the Internet were about to explode and be unable to continue making the Internet work—primarily because the number of routes on the Internet was growing exponentially (more details about this in a later column).
So the tireless worker/members of the IETF (www.ietf.org) came up with a plan: Extend the subnet idea to the entire 32 bits of address space. Subnets are sub-sections of a Classful network. They are specified using the "subnet masks" that you've probably all seen. 255.255.255.192, for example, represents a 64-IP "subnet" of a Class C-sized chunk. A 255.255.192.0 represents a 64-Class-C-sized chunk of address space.
So, instead of allocating networks in chunks on byte boundaries, allocate networks sized any power of 2 from 1 to 32 bits.
They called this plan CIDR (Classless Inter Domain Routing). The CIDR FAQ has more details on this — you can find it at www.ibm.net.il/~hank/cidr .html. This is mandatory reading for any ISP.
CIDR notation names a network by simply specifying how many bits, out of 32 possible bits, that network has.
So a Class C in "CIDR notation" is a /24. A Class B is a /16. A Class A is a /8. If you want to tell roughly how many useful IP addresses are in a CIDR-notation network, just subtract the number of bits after the slash from 32 and raise 2 to that power.
So, a /24 has 24 bits of network. There are 32 bits total in an IP address. 32 minus 24 bits is 8 bits. That isn't "network bits" is "host bits" (i.e. useful IP space). 28 = 256.
If you're still confused, see Figure 1.
Remember that we said that address space can now be talked about (and handed out) in arbitrary-sized chunks which are 2 raised to some power from 1 to 32 in size. In practice, /8 is the smallest chunk that's ever been "allocated" and /24 is the smallest that's ever been "allocated" by a top-level registry (but ISPs often allocate much less than that to dial-up or even dedicated LAN customers).
The smallest network you can talk about a /32 (a single host)— in fact, the InterNIC even once accidentally allocated a /33 (I'm not sure I understand the details on that one...) Talking about anything bigger than a /8 isn't very useful, as it's extremely unlikely that such a beast would be allocated to any entity.
ONE CONFUSING THING ABOUT CIDR NOTATION
The terminology gets confusing.
"Less than" does not necessarily mean "smaller than." If you want to talk about CIDR networks that are larger (in number of IP addresses contained) than a /24 (the old Class C size), you might be tempted to say "bigger than" a /24. But there'd be some confusion about whether you meant a /27 or just a bigger network (more IPs). And a /27 actually contains fewer IP addresses than a /24.
The smaller the number after the slash, the bigger the network is in terms of actual /32s (host addresses) contained.
If you're tempted to say "bigger than" some classless network, don't. Say "longer than." Ditto for "shorter than" instead of "smaller than." It's less confusing.
A LITTLE BIT ABOUT ROUTING
OK, so address space is now variably-sized. And you need address space. Four or five years ago, the NIC would have given you a Class C. But now they won't give you a /24. Hey, what's up?
Well, Sean Doran, in 1995, decided that Sprintlink's routing tables were filling up—and furthermore, that they really wouldn't be able to continue to expand at the rate that they had been previously. So he issued an edict: At the end of 1996, Sprint was going to filter anything "longer than" a /19 from "recent address space." This meant that anything that was currently being allocated wouldn't be affected, and "the Swamp" (the block of old Class Cs and older CIDR allocations) would not be filtered on. Only new allocations (205/8 and higher) would be affected. He wanted to prevent a problem from happening (exhaustion of routing table space in the core routers of the Internet). Actually, there were loopholes (if you were a "customer" rather than a "peer," Sprint would - and still will - hear the routes, or 'route announcements'). I'll have a column shortly about how the Internet really works (peers, customers, route announcements,...) and we'll use the Sprint route filtering as a case study. You can search the inet-access; nanog; cidrd; or big-i mailing list archives if you want to learn more now.
The current state of affairs is that multiple providers filter on blocks longer than a /19 or, smaller than 32 contiguous /24s. If the InterNIC or anyone else gave you that much space that was independent of your upstream provider it'd be useless, since hosts with those IPs wouldn't be able to reach much of the Net.
The simple reason for this is that unless route announcements (which correlate to the networks you're assigned—an ISP which speaks the 'BGP4' active routing protocol "announces" the address spaces that it and its customers use) propagate to almost every other provider on the planet, remote sites won't be able to "get back" to hosts with IP addresses that have no matching route announcements.
So when people talk about "globally routable" networks (address space), they're talking about /19s and longer.
The rules for getting your own address space allocations can be frustrating, but they are (despite grumbling from some corners)generally accepted by "the Internet community."
You need to already have used about a /19 worth of address space (not necessarily all one network —a bunch of /24s, /23s,... can add up to be a /19 worth of address space).
What does "used" mean? You have to have "allocated" to customers that much space, as efficiently as possible, and you have to have informed the InterNIC (or your regional registry) of those allocations by using rwhois or SWIP (more on those shortly).
You also have to be multi-homed—connected to at least two upstream Internet provider—to qualify. Since if you're multi-homed, there will be an extra route in the global routing table anyway, allocating you your own address space doesn't really hurt.
Why is there going to be an extra route anyway? Well, if you have a /20 out of one provider's /17, for you to get "Internet connectivity" from your second provider, the second provider must advertise your /20 "more specifically" than the other provider's /17. (This means that your second provider could wind up carrying almost all of your incoming traffic, but that's another topic...)
In any case, if you're multi-homed, your address allocations will have to be represented in the global routing table anyway—so giving you your own address space doesn't explode the routing tables any more than just being multi-homed does.
These rules are also called "allocation guidelines" and are used by the allocating registry to decide whether you qualify for provider-independent (PI) space, and if so, how much.
The way that you tell your registry (if your registry is the InterNIC) who you've administratively delegated ad-dress space to is with SWIP or rwhois. Most providers use SWIP (the Shared Whois Project). To "SWIP a block" means to fill out a SWIP template and mail it to the NIC. Rwhois is a server that you run on your network, which responds to address allocation queries from the InterNIC and the rest of the world. The idea of running a rwhois server is that the NIC doesn't have to keep track of all of your SWIP templates and feed them into their whois server —they just point to your rwhois server when anyone asks about address space they've allocated to you. Rwhois was very difficult to install and run for quite some time, but it looks like it's approaching usefulness for most ISPs.
So remember, you have no chance of getting address space from the NIC—or probably even more address space from your current provider—unless you supply timely and accurate SWIP information to them. Your provider, needs this information to be completed to get more address space of their own.
For current information about SWIP and rwhois, check out www.internic.net.
It all seems pretty complicated, but it's the best we've got right now to balance the need for ISPs as they grow to evolve into "having their own IP space" against the need to both conserve routes in the core routing tables and preserve IP space in general.
If you do it all right, you'll have to renumber just once. It may seem unfair that older providers didn't have to go through the renumbering process, or that you may have to renumber into someone else's space if you have to switch from one provider to another because of poor service before you're large enough to just renumber into your own space, but unfortunately that's life on the Net now.
Look for a fairly detailed discussion of IP routing next month—and we'll move on from there to talk about BGP and a bit about how the Internet actually works...
Copyright 1998 Mecklermedia Corporation.
All Rights Reserved. Legal Notices.
About Mecklermedia Corp.
13949 W Colfax Ave Suite 250, Golden, CO 80401
Voice: 303-235-9510; Fax: 303-235-9502