Classless Interdomain Routing
Classless Interdomain Routing (CIDR) is referenced in RFCs 1518, 1519, and 2050, which were developed for Internet service providers (ISPs) so they could aggregate contiguous blocks for efficient addressing schemes. With the classful system of allocating IP addresses, anyone who needed more than 254 host addresses was often forced into a public Class B address, providing more than 65,500 host addresses. Many companies and organizations wasted even more addresses by using only a fraction of their 16 million host Class A addresses. As a matter of fact, only a small percentage of the allocated Class A and Class B address space has been actually assigned to host computers on the Internet.
It became clear that by circumventing the class system, you could actually allocate just the amount of address space needed. In a large network, you want to avoid the situation where routers are maintaining a large number of routes in the routing tables and the IP address pool is used up. The process of route summarization, also known as aggregation or supernetting, allows you to represent a string of network numbers is a single summary address. By implementing CIDR, an ISP can embody a block of addresses with a single summarized route or supernet.
For example, if you needed around 1,000 addresses, four Class C networks of 250+ hosts each could be supernetted to represent 1000 hosts with a single summarized address. Figure 3.1 shows four Class C routers with a 24-bit mask summarized at the ISP router with a 22-bit mask:
RouterA: 192.168.128.0 (11000000.10101000.10000000.00000000) Subnet mask: 255.255.255.0 (11111111.11111111.11111111.00000000) RouterB: 192.168.129.0 (11000000.10101000.10000001.00000000) Subnet mask: 255.255.255.0 (11111111.11111111.11111111.00000000) RouterC: 192.168.130.0 (11000000.10101000.10000010.00000000) Subnet mask: 255.255.255.0 (11111111.11111111.11111111.00000000) RouterD: 192.168.131.0 (11000000.10101000.10000011.00000000) Subnet mask: 255.255.255.0 (11111111.11111111.11111111.00000000)Figure 3.1 Major ISPs use CIDR addressing schemes to summarize multiple Class C addresses.
In this example, the subnet 192.168.128.0 includes all the addresses from 192.168.128.0 to 192.168.131.255; therefore, by supernetting the subnet address to be 22 bits instead of 24 bits, it will look like this:
Supernet: 192.168.128.0 (11000000.10101000.10000000.00000000) Subnet mask: 255.255.252.0 (11111111.11111111.11111100.00000000) Broadcast: 192.168.131.255 (11000000.10101000.10000011.11111111)
As seen in the binary version of the subnet mask, the network is represented by 22 bits and the host portion is made up of 10 bits, resulting in 210 2 = 1022. This offers the "around 1000" hosts that are needed in this scenario.
With the CIDR system, the subnet mask notation is expressed with a simplified shorthand. In the previous example, instead of writing the address and subnet mask as
192.168.128.0, subnet mask 255.255.252.0
the CIDR network address is simply written as
192.168.128.0/22
CIDR notation is also used with classful addresses and can be written as /8 for Class A, /16 for Class B, and /24 for Class C. With CIDR, the largest ISPs are given large portions of address space, typically with a subnet mask of /19 or smaller. The ISP's customers are then provided networks from the resulting large pool of addresses. As a conversion guide, Table 3.2 displays the CIDR conversions for standard Class B network and the various subnets masks. The table also includes the number of subnet bits, the subnet mask and CIDR mapping, the number of subnets, and the number of hosts per subnet.
Table 3.2 Class B-to-CIDR Conversion Table
Number of Bits |
Subnet Mask |
CIDR |
Number of Subnets |
Number of Hosts per Subnet |
2 |
255.255.192.0 |
/18 |
2 |
16,382 |
3 |
255.255.224.0 |
/19 |
6 |
8,190 |
4 |
255.255.240.0 |
/20 |
14 |
4,094 |
5 |
255.255.248.0 |
/21 |
30 |
2,046 |
6 |
255.255.252.0 |
/22 |
62 |
1,022 |
7 |
255.255.254.0 |
/23 |
126 |
510 |
8 |
255.255.255.0 |
/24 |
254 |
254 |
9 |
255.255.255.128 |
/25 |
510 |
126 |
10 |
255.255.255.192 |
/26 |
1,022 |
62 |
11 |
255.255.255.224 |
/27 |
2,046 |
30 |
12 |
255.255.255.240 |
/28 |
4,094 |
14 |
13 |
255.255.255.248 |
/29 |
8,190 |
6 |
14 |
255.255.255.252 |
/30 |
16,382 |
2 |
CAUTION
It is imperative that you know how to express the various networks and subnets with their CIDR implementations.
IP Version 6
CIDR will most likely serve the Internet well for the next few years. However, waiting in the wings for its moment in the sun is the Internet Protocol version 6 (IPv6) with a 128-bit address. With IPv6, every person could receive one billion unique IP addresses.
The goals of IPv6 are to enhance the existing IPv4 protocol by providing much more address space, easier configuration, and more security for the next-generation Internet. ISPs, corporate enterprises, and government organizations are looking to IPv6 for help in supporting cutting-edge applications, such as IP telephony, and new networking services, as well as emerging IP-aware devices. The demands for increased address space and plug-and-play networking capabilities are answered by the implementation of IPv6. According to Cisco, the threefold benefits of IPv6 are the expansion of network addressing to service future growth in IP devices and users, the autoconfiguration capability of IP addressing, and integrated support for IP Security (IPSec) and mobile IP.
The extended IPv6 address goes from a 32-bit to a 128-bit addressing scheme with the colon (:) being used as a delimiter instead of the dot (.). IPv6 also introduces newer unicast and broadcasting methods, including anycast. Anycast is a communication link between a single sender and the single closest interface (in terms of routing distance) that is identified by the anycast address. An anycast address is assigned to multiple interfaces. To facilitate delivery, the routing system must know about the interfaces that have anycast addresses assigned to them and their distance as measured by routing metrics. A multicast address is implemented for one-to-many communications with transport to multiple interfaces. An anycast address, on the other hand, is used for one-to-one-of-many communication, with delivery to a single interface that represents a list of interfaces.
The IPv6 address is a hexadecimal-formatted, eight-part address, separated by colons. Because each part can equal a 16-bit number and is 8 parts long, the address length is 128 bits (16x8=128). IPv6 addresses are n:n:n:n:n:n:n:n, which equals a 4-digit hexadecimal integer. Here is an example IPv6 address:
FE80:0000:0000:0001:0200:F6FF:Fe75:50CE
IPv6 addresses can also be further simplified by suppressing the leading zeros within each 16-bit part. Realize that each block must have at least a single digit. Look at how the previous address can be further simplified in the following example:
FE80:0:0:1:200:F6FF:Fe75:50CE
Because some IPv6 addresses end up having long sets of zeros, you can further simplify the depiction of an IPv6 address by compressing the ad- dress to "::" (also known as a double colon). For example, the IPv6 ad- dress FE80:0:0:0:3BB:FF:ED9A:4CB3 could be compressed to FE80::3BB:FF:ED9A:4CB3. The multicast address FF0A:0:0:0:0:0:0:4 could be further compressed to FF0A::4. To determine how many 0 bits are expressed by the double colon, simply count the number of parts in the compressed address, subtract this number from 8, and then multiply the result by 16. For example, in the address FF0A::4, there are two parts (FF0A and 4.) The number of bits expressed by the double colon is then (82)x16=96. You can use zero compression only one time in a particular IPv6 address.
An IP version 4 interface normally has only one IPv4 address assigned to it (excluding subinterface configuration). IPv6 nodes, on the other hand, typically have multiple assigned IPv6 addresses (multihomed). These include the link-local address, additional unicast addresses, and the loopback address (::1). In addition, every IPv6 interface is listening for traffic on several standard multicast addresses as well. A link-local address enables a node to communicate with other nodes on the link and can be used to configure the node even further.
The link-local address is typically autoconfigured from a combination of the interface identifier and the link-local prefix FE80::0. The autoconfiguration feature enables nodes to connect to a network and automatically generate IPv6 addresses without needing manual configuration or a DHCP server. IPv6-enabled routers can advertise prefixes in router advertisement messages, as well as function as default routers for the link. Router advertisements are transmitted occasionally and in response to router solicitations sent by hosts at system startup. A node automatically configures an IPv6 address by simply appending its 64-bit interface ID to the 64-bit prefixes (see next paragraph) included in the router advertisements. These subsequent 128-bit IPv6 addresses generated by the node are then tested for duplicates to make sure that they are unique on the network. Hosts send router solicitation packets at system startup so that they can immediately autoconfigure without having to wait for the next scheduled router advertisement.
IPv6 prefixes for identifying subnets and routes are expressed in the same way as CIDR notation for IPv4. An IPv6 prefix is expressed in the address/prefix-length notation. For example, 24EB:D3::/48 is a route prefix and 24EB:D3:0:2F3B::/64 is a subnet prefix. The 64-bit prefix is used for discrete subnets and all subnets have a 64-bit prefix. Any prefix that is less than 64 bits is a summarized route or address range portion of the IPv6 address.
Using static routes in IPv6 is similar to configuring static routes for IPv4, with a few differences. The ipv6 route command is used to configure IPv6 static routes. Some of the IPv4 keywords, such as tag and permanent, are not yet supported. The syntax for a static Ipv6 command is
Router(config)# ipv6 route ipv6-prefix/prefix-length {ipv6-address | interface-type interface-number [ipv6-address]} [administrative-distance]
For example, the following is a sample static route that is being configured to a specified next hop address, with no interface:
Router(config)# ipv6 route 2001:0BD6::/422022:808B:F0FE::1
For detailed information on Cisco's efforts with IPv6, go to http://www.cisco.com/ipv6. The specifications for IPv6 can be found in RFC 1519 (http://www.faqs.org/rfcs/rfc1519.html). For the current list of permanently assigned IPv6 multicast addresses, visit http://www.iana.org/assignments/ipv6-multicast-addresses.