Classless Inter-Domain Routing (CIDR) is a methodology of allocating IP addresses and routing Internet Protocol packets. It was introduced in 1993 to replace the prior addressing architecture of classful network design in the Internet with the goal to slow the growth of routing tables on routers across the Internet, and to help prevent the rapid exhaustion of IPv4 addresses.
IP addresses are described as consisting of two groups of bits in the address: the most significant part is the network address which identifies a whole network or subnet and the least significant portion is the host identifier, which specifies a particular host interface on that network. This division is used as the basis of traffic routing between IP networks and for address allocation policies. Classful network design for IPv4 sized the network address as one or more 8-bit groups, resulting in the blocks of Class A, B, or C addresses. Classless Inter-Domain Routing allocates address space to Internet service providers and end users on any address bit boundary, instead of on 8-bit segments. In IPv6, however, the host identifier has a fixed size of 64 bits by convention, and smaller subnets are never allocated to end users.
CIDR notation uses a new syntax of specifying IP addresses for IPv4 and IPv6, using the base address of the network followed by a slash and the size of the routing prefix, e.g., 192.168.0.0/16 (IPv4), and 2001:db8::/32 (IPv6).
During the first decade of the modern Internet after the invention of the Domain Name System (DNS) it became apparent that the devised system based on classful network design of distributing the address space and routing IP packets was not scalable.
To alleviate the shortcomings, the Internet Engineering Task Force published in 1993 a new set of standards, RFC 1518 and RFC 1519, to define a new concept of allocation of IP address blocks and new methods of routing IPv4 packets. A new version of the specification was published as RFC 4632 in 2006.
An IP address is interpreted as composed of two parts: a network-identifying prefix followed by a host identifier within that network. In the prior classful network architecture, IP address allocations were based on octet (8-bit) boundary segments of the 32-bit IP address, forcing either 8, 16, or 24-bit network prefixes. Thus, the smallest allocation and routing block contained only 256 addresses—too small for most enterprises, and the next larger block contained 65,536 addresses—too large to be used efficiently by even large organizations. This led to inefficiencies in address use as well as routing because the large number of allocated small (class-C) networks with individual route announcements, being geographically dispersed with little opportunity for route aggregation, created heavy demand on routing equipment.
Classless Inter-Domain Routing is based on variable-length subnet masking (VLSM) to allow allocation on arbitrary-length prefixes. Variable-length subnet masks are mentioned in RFC 950 (1985).
As the experimental TCP/IP network expanded into the Internet during the 1980s, the need for more flexible addressing schemes became increasingly apparent. This led to the successive development of subnetting and CIDR. Because the old class distinctions are ignored, the new system was called classless routing. It is supported by modern routing protocols, such as RIP-2, EIGRP, IS-IS and OSPF. This led to the original system being called, by back-formation, classful routing.
- the VLSM technique of specifying arbitrary-length prefixes. An address in CIDR notation is written with a suffix indicating the number of bits in the prefix, such as 192.168.0.0/16, where /16 is the suffix, and 192.168.0.0 is the prefix.
- the aggregation of multiple contiguous prefixes into supernets, and, wherever possible in the Internet, advertising aggregates, thus reducing the number of entries in the global routing table. Aggregation hides multiple levels of subnetting from the Internet routing table, and reverses the process of subnetting with VLSM.
- the administrative process of allocating address blocks to organizations based on their actual and short-term projected need.
 CIDR blocks
CIDR is principally a bitwise, prefix-based standard for the interpretation of IP addresses. It facilitates routing by allowing blocks of addresses to be grouped together into single routing table entries. These groups, commonly called CIDR blocks, share an initial sequence of bits in the binary representation of their IP addresses. IPv4 CIDR blocks are identified using a syntax similar to that of IPv4 addresses: a four-part dotted-decimal address, followed by a slash, then a number from 0 to 32: A.B.C.D/N. The dotted decimal portion is interpreted, like an IPv4 address, as a 32-bit binary number that has been broken into four octets. The number following the slash is the prefix length, the number of shared initial bits, counting from the most significant bit of the address. When emphasizing only the size of a network, terms like /20 are used, which is a CIDR block with an unspecified 20-bit prefix.
An IP address is part of a CIDR block, and is said to match the CIDR prefix if the initial N bits of the address and the CIDR prefix are the same. Thus, understanding CIDR requires that IP address be visualized in binary. Since the length of an IPv4 address has 32 bits, an N-bit CIDR prefix leaves 32-N bits unmatched, meaning that 232-N IPv4 addresses match a given N-bit CIDR prefix. Shorter CIDR prefixes match more addresses, while longer CIDR prefixes match fewer. An address can match multiple CIDR prefixes of different lengths.
CIDR is also used with IPv6 addresses and the syntax semantic is identical. A prefix length can range from 0 to 128, due to the larger number of bits in the address, however, by convention a subnet on broadcast MAC layer networks always has 64-bit host identifiers. Larger prefixes are rarely used even on point-to-point links.
 Assignment of CIDR blocks
The Internet Assigned Numbers Authority (IANA) issues to Regional Internet Registries (RIRs) large, short-prefix (typically /8) CIDR blocks. For example, 184.108.40.206/8, with over sixteen million addresses, is administered by RIPE NCC, the European RIR. The RIRs, each responsible for a single, large, geographic area (such as Europe or North America), then subdivide these allocations into smaller blocks and issue them to local Internet registries. This subdividing process can be repeated several times at different levels of delegation. End user networks receive subnets sized according to the size of their network and projected short term need. Networks served by a single ISP are encouraged by IETF recommendations to obtain IP address space directly from their ISP. Networks served by multiple ISPs, on the other hand, may often obtain independent CIDR blocks directly from the appropriate RIR.
For example, in the late 1990s, the IP address 220.127.116.11 (since reassigned) was used by www.freesoft.org. An analysis of this address identified three CIDR prefixes. 18.104.22.168/11, a large CIDR block containing over 2 million addresses, had been assigned by ARIN (the North American RIR) to MCI. Automation Research Systems, a Virginia VAR, leased an Internet connection from MCI and was assigned the 22.214.171.124/22 block, capable of addressing just over 1000 devices. ARS used a /24 block for its publicly accessible servers, of which 126.96.36.199 was one.
All of these CIDR prefixes would be used, at different locations in the network. Outside of MCI's network, the 188.8.131.52/11 prefix would be used to direct to MCI traffic bound not only for 184.108.40.206, but also for any of the roughly two million IP addresses with the same initial 11 bits. Within MCI's network, 220.127.116.11/22 would become visible, directing traffic to the leased line serving ARS. Only within the ARS corporate network would the 18.104.22.168/24 prefix have been used.
 Subnet masks
A subnet mask is a bitmask that encodes the prefix length in quad-dotted notation: 32 bits, starting with a number of 1 bits equal to the prefix length, ending with 0 bits, and encoded in four-part dotted-decimal format. A subnet mask encodes the same information as a prefix length, but predates the advent of CIDR. However, in CIDR notation, the prefix bits are always contiguous, whereas subnet masks may specify non-contiguous bits. However, this has no practical advantage for increasing efficiency.
 Prefix aggregation
CIDR provides the possibility of fine-grained routing prefix aggregation, also known as supernetting or route summarization. For example, sixteen contiguous /24 networks (formerly Class C) can be aggregated and advertised to a larger network as a single /20 route, if the first 20 bits of their network addresses match. Two aligned contiguous /20s may then be aggregated to a /19, and so forth. This allows a significant reduction in the number of routes that have to be advertised.
|IP/CIDR||Δ to last IP addr||Mask||Hosts (*)||Class||Notes|
|a.b.c.d/31||+0.0.0.1||255.255.255.254||2||1/128 C||d = 0 ... (2n) ... 254|
|a.b.c.d/30||+0.0.0.3||255.255.255.252||4||1/64 C||d = 0 ... (4n) ... 252|
|a.b.c.d/29||+0.0.0.7||255.255.255.248||8||1/32 C||d = 0 ... (8n) ... 248|
|a.b.c.d/28||+0.0.0.15||255.255.255.240||16||1/16 C||d = 0 ... (16n) ... 240|
|a.b.c.d/27||+0.0.0.31||255.255.255.224||32||1/8 C||d = 0 ... (32n) ... 224|
|a.b.c.d/26||+0.0.0.63||255.255.255.192||64||1/4 C||d = 0, 64, 128, 192|
|a.b.c.d/25||+0.0.0.127||255.255.255.128||128||1/2 C||d = 0, 128|
|a.b.c.0/23||+0.0.1.255||255.255.254.000||512||2 C||c = 0 ... (2n) ... 254|
|a.b.c.0/22||+0.0.3.255||255.255.252.000||1,024||4 C||c = 0 ... (4n) ... 252|
|a.b.c.0/21||+0.0.7.255||255.255.248.000||2,048||8 C||c = 0 ... (8n) ... 248|
|a.b.c.0/20||+0.0.15.255||255.255.240.000||4,096||16 C||c = 0 ... (16n) ... 240|
|a.b.c.0/19||+0.0.31.255||255.255.224.000||8,192||32 C||c = 0 ... (32n) ... 224|
|a.b.c.0/18||+0.0.63.255||255.255.192.000||16,384||64 C||c = 0, 64, 128, 192|
|a.b.c.0/17||+0.0.127.255||255.255.128.000||32,768||128 C||c = 0, 128|
|a.b.0.0/16||+0.0.255.255||255.255.000.000||65,536||256 C = 1 B|
|a.b.0.0/15||+0.1.255.255||255.254.000.000||131,072||2 B||b = 0 ... (2n) ... 254|
|a.b.0.0/14||+0.3.255.255||255.252.000.000||262,144||4 B||b = 0 ... (4n) ... 252|
|a.b.0.0/13||+0.7.255.255||255.248.000.000||524,288||8 B||b = 0 ... (8n) ... 248|
|a.b.0.0/12||+0.15.255.255||255.240.000.000||1,048,576||16 B||b = 0 ... (16n) ... 240|
|a.b.0.0/11||+0.31.255.255||255.224.000.000||2,097,152||32 B||b = 0 ... (32n) ... 224|
|a.b.0.0/10||+0.63.255.255||255.192.000.000||4,194,304||64 B||b = 0, 64, 128, 192|
|a.b.0.0/9||+0.127.255.255||255.128.000.000||8,388,608||128 B||b = 0, 128|
|a.0.0.0/8||+0.255.255.255||255.000.000.000||16,777,216||256 B = 1 A|
|a.0.0.0/7||+22.214.171.124||254.000.000.000||33,554,432||2 A||a = 0 ... (2n) ... 254|
|a.0.0.0/6||+126.96.36.199||252.000.000.000||67,108,864||4 A||a = 0 ... (4n) ... 252|
|a.0.0.0/5||+188.8.131.52||248.000.000.000||134,217,728||8 A||a = 0 ... (8n) ... 248|
|a.0.0.0/4||+184.108.40.206||240.000.000.000||268,435,456||16 A||a = 0 ... (16n) ... 240|
|a.0.0.0/3||+220.127.116.11||224.000.000.000||536,870,912||32 A||a = 0 ... (32n) ... 224|
|a.0.0.0/2||+18.104.22.168||192.000.000.000||1,073,741,824||64 A||a = 0, 64, 128, 192|
|a.0.0.0/1||+127.255.255.255||128.000.000.000||2,147,483,648||128 A||a = 0, 128|
(*) Note that for routed subnets bigger than /31 or /32, 2 needs to be subtracted from the number of available addresses - the largest address is (conventionally) used as the broadcast address, and typically the smallest address is used to identify the network itself. See RFC 1812 for more detail. It is also common for the gateway IP for that subnet to use an address, meaning that you would subtract 3 from the number of usable hosts that can be used on the subnet.
 See also
- RFC 1518, An Architecture for IP Address Allocation with CIDR, Y. Rekhter, T. Li (Eds.), September 1993
- RFC 1519, Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy, V. Fuller, T. Li, J. Yu, K. Varadhan, September 1993
- RFC 1517, Applicability Statement for the Implementation of Classless Inter-Domain Routing (CIDR), R. Hinden (Ed.), Internet Engineering Steering Group (September 1993)
- RFC 4632, Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan, V. Fuller, T. Li, August 2006