<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tips and Trick About Cisco &#187; IP Addressing Fundamentals</title>
	<atom:link href="http://www.ciscotrick.com/t/ip-addressing-fundamentals/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ciscotrick.com</link>
	<description>All information tips and trick about Cisco</description>
	<lastBuildDate>Sat, 28 Nov 2009 13:51:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Introduction to Internet Names</title>
		<link>http://www.ciscotrick.com/introduction-to-internet-names/</link>
		<comments>http://www.ciscotrick.com/introduction-to-internet-names/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:55:12 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=121</guid>
		<description><![CDATA[There was a time when names were somewhat arbitrary (if not  outright capricious) and less-than-universal in their use. In the very beginning  of the Internet, there were only hundreds of computers, and each one could be  accessed using a mnemonic that was locally created by network administrators.  This led to the [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">There was a time when names were somewhat arbitrary (if not  outright capricious) and less-than-universal in their use. In the very beginning  of the Internet, there were only hundreds of computers, and each one could be  accessed using a mnemonic that was locally created by network administrators.  This led to the inevitable: one destination computer that was known by a myriad  of names that varied by location. Although there was merit in having such  mnemonics, the administrators agreed that consistency of nomenclature would be  even better. What was originally a convenience for a small cadre of network and  host administrators evolved into a system that became the single most enabling  mechanism that opened up the benefits of the Internet to nontechnical users.<span id="more-121"></span><a name="idd1e23794"></a><a name="idd1e23799"></a></p>
<p class="docText">This original system was simply a loose agreement among  network/host administrators on a set of mnemonic names that correlated to  numeric IP addresses. This agreement formalized an existing practice. These  administrators had already realized that their user communities either couldn&#8217;t  or wouldn&#8217;t use numeric addresses to access specific hosts. Thus, virtually all  of them had deployed a scripted function that allowed their users to use  mnemonic names for host access. Their scripts checked those names against a  small but ever-growing list of known host addresses and provided an automatic  translation between names and numbers.</p>
<p class="docText">Because this function was highly localized, there wasn&#8217;t much  consistency from network to network with respect to host naming conventions.  After all, this was a localized translation function; the names used didn&#8217;t need  to be the names used by those remote hosts&#8217; administrators. They could be  somewhat arbitrarily selected. For example, a name could be the local user&#8217;s  nickname instead of the host&#8217;s official name. Needless to say, this had the  potential to create great confusion. More importantly, given the highly  decentralized nature of maintaining such local lists, the probability of  disseminating information about moves, adds, deletes, or other changes quickly  and evenly throughout the ARPANET community was slim to none. Thus, you could  reasonably expect connectivity problems caused by this attempt at simplifying  host access for users. Life is full of delicious irony!<a name="idd1e23813"></a><a name="idd1e23818"></a></p>
<p><a name="ch08lev2sec1"></a></p>
<h1 class="docSection2Title">hosts.txt</h1>
<p class="docText">Fortunately, these sage administrators communicated with each  other and often published documents requesting comments (ARPANET&#8217;s RFCs) from  other administrators. Together, they realized that it was critical to  standardize on a format for naming hosts as well as a set of names for known  hosts. To ensure future scalability, they further agreed to have this list  managed centrally to ensure that it remained as up-to-date and evenly  distributed as possible. This mechanism became known as the hosts.txt file. The  Stanford Research Institute maintained the hosts.txt file via its <span class="docEmphasis">Network Information Center (NIC)</span> and transmitted to  known hosts using the <span class="docEmphasis">file transfer protocol  (FTP)</span>. RFCs 952 and 953 spelled out the details of this update mechanism  and procedure in October 1985.</p>
<blockquote>
<h1>NOTE</h1>
<p class="docText">A vestige of the original hosts.txt file and the mind-set that led to its creation remain in evidence even today. Most operating systems support the creation of a file that correlates IP addresses with mnemonics that are of local significance only. For example, UNIX systems contain an etc/hosts file to support this function.</p>
</blockquote>
<p class="docText">The idea was simple enough: maintain a list of all known hosts,  as well as certain other data that would be useful in deciphering the list. This  list would be nothing more than a flat text file that was pushed to all  administrators in the network on a regular basis. Updating local lists was up to  each administrator. Failure to do so meant that their users did not have access  to the most current information about known hosts.</p>
<p class="docText">Although it might sound foolish to try and track all known  hosts in a single flat file, you must remember that this dates back to RFC 606,  published in December 1973. The ARPANET was using IP, but the IPv4 address  scheme had yet to be devised. The address space was still only 8 bits long.  Mathematically, there couldn&#8217;t be any more than 255 hosts.<a name="idd1e23911"></a></p>
<p><a name="ch08lev2sec2"></a></p>
<h1 class="docSection2Title">Problems with Flatness</h1>
<p class="docText">The hosts.txt file approach worked well for a couple of years.  However, several inherent problems threatened the usefulness of this mechanism  as the Internet continued to grow:<a name="idd1e23921"></a><a name="idd1e23928"></a><a name="idd1e23935"></a><a name="idd1e23940"></a><a name="idd1e23943"></a><a name="idd1e23950"></a><a name="idd1e23955"></a><a name="idd1e23960"></a><a name="idd1e23965"></a></p>
<ul>
<li>
<p class="docText"><a name="idd1e23976"></a><span class="docEmphStrong">Collision of  host names</span> Locally defined host names create the possibility of a single  character string being used to identify two or more different end systems. This  is known as name collision, and it can result in an inconsistent translation of  names to numeric addresses.<a name="idd1e23983"></a></p>
</li>
<li>
<p class="docText"><a name="idd1e23992"></a><span class="docEmphStrong">A limited  number of mnemonically useful names</span> A finite number of useful and  meaningful character strings can be used to name hosts. Imagine, for example,  that only one host in the world could have the name klingon. Absent a  hierarchical naming system, the first Trekkie who gave his or her computer that  name would prevent anyone else in the world from using it.<a name="idd1e23999"></a></p>
</li>
<li>
<p class="docText"><a name="idd1e24008"></a><span class="docEmphStrong">Timeliness and  uniformity of implementing updates</span> The &#8220;official list&#8221; couldn&#8217;t be  updated in real time, so a batch-oriented approach was required. In other words,  changes, deletes, and additions to the hosts.txt file would be batched and then  sent out periodically. Depending on how frequently the updated list was sent  out, a host could be online but still inaccessible. An additional time lag could  be experienced if network or host administrators did not promptly process the  newly received hosts.txt file.<a name="idd1e24015"></a><a name="idd1e24020"></a><a name="idd1e24025"></a></p>
</li>
<li>
<p class="docText"><a name="idd1e24034"></a><span class="docEmphStrong">The lack of a  name dispute resolution mechanism and authority</span> Some mechanism is needed  to reconcile cases in which two or more people select the same name for their  box. In the days of the hosts.txt file, there was no way to resolve such  disputes aside from embracing a first-come, first-served philosophy. But even  that approach wasn&#8217;t perfect, because updates were done in a batched manner.<a name="idd1e24041"></a></p>
</li>
</ul>
<p class="docText">Generally speaking, these problems were rooted in the flatness  of the address space. Flatness in this particular case means the absence of a  hierarchical structure. That by itself limited the number of meaningful names  that could be assigned to hosts. Each name could be used only once throughout  the worldat least the parts of the world that interconnected via the Internet!  Although the NIC was responsible for tracking hosts on the Internet, it had no  authority to resolve disputes over names. Thus, a chronic problem became the  collision of names. In a flat environment, host names had to be unique.</p>
<p class="docText">You could cope with this lack of hierarchy by assigning  pseudo-random strings of letters to substitute for names. That could help ensure  uniqueness for a very long time, but it utterly defeats the intent behind having  a mnemonic name that users can understand and remember better than pseudo-random  strings of numbers.</p>
<p class="docText">Aside from the limited number of names that could be both  useful and usable, the notion of sending out a flat file periodically to update  distributed tables meant that there would be a gap between when a host came  online and when distributed users would know it existed.</p>
<p class="docText">The largest problem with the hosts.txt approach was its  inability to scale upward. As more hosts on more networks came online, the  challenge of keeping them up-to-date in the file grew immeasurably. Not only  were there more hosts to keep track of, each of them also had to receive the  hosts.txt file. After a while, just updating the file of known hosts became  almost a full-time job.</p>
<blockquote>
<h1>NOTE</h1>
<p class="docText">The person whose job it was to maintain the hosts file was informally known as the hostmaster. This function exists today even though the hosts.txt file has long since slipped into obsolescence. Today&#8217;s hostmasters assign IP addresses to endpoints and manage IP address space, among other duties.</p>
</blockquote>
<p class="docText">By September 1981, with a mere 400+ hosts on the ARPANET, it  had become painfully obvious that there had to be a better solution. A series of  RFCs began emanating from the technical constituents of ARPANET calling for a  hierarchical approach to Internet names. Although each examined the same problem  from a different perspective, the prevailing theme remained the need for a  hierarchical namespace. Over time, these disparate RFCs coalesced into a  distributed, hierarchical system that became known as the <span class="docEmphasis">Domain Name System (<span class="docEmphasis">DNS</span>)</span>.<a name="idd1e24081"></a><a name="idd1e24088"></a><a name="idd1e24095"></a><a name="idd1e24100"></a><a name="idd1e24103"></a><a name="idd1e24110"></a><a name="idd1e24115"></a><a name="idd1e24120"></a><a name="idd1e24125"></a><a name="idd1e24130"></a></p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9pbnRyb2R1Y3Rpb24tdG8taW50ZXJuZXQtbmFtZXMvfEludHJvZHVjdGlvbiB0byBJbnRlcm5ldCBOYW1lcw==' title='Extend Introduction to Internet Names' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/introduction-to-internet-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems with NAT</title>
		<link>http://www.ciscotrick.com/problems-with-nat/</link>
		<comments>http://www.ciscotrick.com/problems-with-nat/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:52:20 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=119</guid>
		<description><![CDATA[Although NAT might sound like the perfect answer to virtually  any scenario that involves a private network with Internet connectivity, it  isn&#8217;t a panacea. In fact, it wouldn&#8217;t be very difficult to find knowledgeable  network engineers who regard NAT as akin to crabgrass or kudzu, to name a pair  of human-induced [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">Although NAT might sound like the perfect answer to virtually  any scenario that involves a private network with Internet connectivity, it  isn&#8217;t a panacea. In fact, it wouldn&#8217;t be very difficult to find knowledgeable  network engineers who regard NAT as akin to crabgrass or kudzu, to name a pair  of human-induced agricultural disasters.<span id="more-119"></span><a name="idd1e23509"></a><a name="idd1e23514"></a><a name="idd1e23519"></a><a name="idd1e23526"></a><a name="idd1e23533"></a></p>
<p class="docText">NAT, by its very nature, conceals source and/or destination IP  addresses. Many problems can emanate from that basic, inescapable fact. You can  categorize these problems by their impact area:</p>
<ul>
<li>
<p class="docList">Technical incompatibilities</p>
</li>
<li>
<p class="docList">Scalability and network performance issues</p>
</li>
<li>
<p class="docList">Logistical difficulties</p>
</li>
</ul>
<p class="docText">Each of these is examined briefly in the next sections.</p>
<p><a name="ch07lev2sec9"></a></p>
<h1 class="docSection2Title">Technical Incompatibilities</h1>
<p class="docText">The most egregious problem is that NAT breaks any network-based  application that requires end-to-end session integrity. This is a direct result  of NAT&#8217;s interception of inbound and outbound IP packets and rewriting their  headers to achieve the desired address translation.<a name="idd1e23576"></a><a name="idd1e23579"></a></p>
<p class="docText">Some of the specific technologies that are at least partially  incompatible with NAT include SNMP, IPSec&#8217;s authentication and encryption  technologies, and the emerging Mobile IP. Many network engineers believe that  NAT is directly responsible for the inability of IPSec and Mobile IP to achieve  any meaningful degree of market acceptance.</p>
<p><a name="ch07lev2sec10"></a></p>
<h1 class="docSection2Title">Scalability</h1>
<p class="docText">Other problems with NAT have nothing to do with technical  incompatibilities. For example, NAT imposes a potentially substantial overhead  on any router that supports the translation function. This overhead can be  substantial enough, depending on the configuration, to prevent graceful  scalability. Hardware-based appliances have appeared on the market to prevent  such adverse effects on your network, but not everyone who needs to implement  NAT can afford to purchase another device. Consequently, the point about NAT&#8217;s  impacts on router performance remains valid.<a name="idd1e23618"></a><a name="idd1e23623"></a><a name="idd1e23628"></a><a name="idd1e23633"></a><a name="idd1e23638"></a><a name="idd1e23645"></a><a name="idd1e23652"></a></p>
<p class="docText">Another problem is that the probability of experiencing address  problems increases greatly with NAT. The problem becomes worse, not better, with  each additional translator you configure in your network. Think about it: The  more translation devices you have in your network (ideally, you&#8217;d have one for  each egress point), the more address tables you would have. Keeping them  synchronized can be challenging, time-consuming, and onerous.<a name="idd1e23663"></a><a name="idd1e23668"></a></p>
<p><a name="ch07lev2sec11"></a></p>
<h1 class="docSection2Title">Logistical Challenges</h1>
<p class="docText">There are logistical challenges, too, with a NAT network. For  example, security is a double-edged sword. This chapter has treated NAT&#8217;s  privacy-enhancing aspect as a positive attribute. However, that capability also  has a dark side. Debugging a problem or chasing a hacker can run into a brick  wall at a NAT simply because the true source IP address is hidden from  destinations. Although such challenges aren&#8217;t showstoppers, they are just some  of the little &#8220;gotchas&#8221; that await any network administrator who must implement  and use NAT.<a name="idd1e23692"></a><a name="idd1e23697"></a></p>
<p class="docText">In all honesty, NAT has become an unavoidable part of the  Internet technology base. Recent policy changes regarding the availability of  directly registered address space (as discussed in earlier chapters) have made  it all but necessary for many organizations that no longer qualify for their own  address space. Regardless of how you feel about it, NAT is here to stay!</p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9wcm9ibGVtcy13aXRoLW5hdC98UHJvYmxlbXMgd2l0aCBOQVQ=' title='Extend Problems with NAT' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/problems-with-nat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NAT</title>
		<link>http://www.ciscotrick.com/nat/</link>
		<comments>http://www.ciscotrick.com/nat/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:50:47 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=116</guid>
		<description><![CDATA[Network Address Translation (NAT) was developed specifically to  counter the lone weakness inherent in the private addresses of RFC 1918. That&#8217;s  not to suggest that it makes those nonunique addresses globally routable,  because it doesn&#8217;t. Rather, it lets you translate those nonunique addresses to  unique and routable addresses at the edge [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">Network Address Translation (NAT) was developed specifically to  counter the lone weakness inherent in the private addresses of RFC 1918. That&#8217;s  not to suggest that it makes those nonunique addresses globally routable,  because it doesn&#8217;t. Rather, it lets you translate those nonunique addresses to  unique and routable addresses at the edge of your network. This permits access  to and from the global Internet. In other words, you operate with two sets of  addresses: You would have your private RFC 1918 addresses configured on  endpoints throughout your network, and then a globally routable block of  addresses would be configured on your NAT device. NAT would be responsible for  correlating the internal and global addresses and translating as needed to  support communications.<span id="more-116"></span><a name="idd1e21311"></a><a name="idd1e21316"></a><a name="idd1e21319"></a><a name="idd1e21324"></a><a name="idd1e21331"></a></p>
<p class="docText">Originally described in RFC 1631 in May 1994, NAT was  originally conceived as yet another of the stopgap measures to shore up the  flagging IPv4 address space. If you take the time to read this document (<span class="docLink">www.ietf.org/rfc/rfc1631.txt</span>), you will see that the IETF was  absolutely counting on IPv6 to save the Internet from its impending address  crisis. This document explicitly identifies the two biggest problems facing the  Internet as a shortage of IP addresses and the scalability of routing across the  Internet. In <span class="docLink">Chapter 5</span>, &#8220;The Date of  Doom,&#8221; we looked at how these two are really different perspectives on the same  problem, so their appearance in RFC 1631 shouldn&#8217;t be a startling  revelation.</p>
<p class="docText">What <span class="docEmphasis">is</span> startling is the  explicit admission that at least some parties within the IETF were concerned  that CIDR (then under development) might not buy enough time for IPv6 to be  completed. That&#8217;s a staggering statement! CIDR was initially conceived as just  another stopgap tool to buy time for the new IP protocol and addressing system  to be developed. This fear became the motivator for the development of  NAT.</p>
<p><a name="ch07lev2sec3"></a></p>
<h1 class="docSection2Title">Framing the Problem Statement</h1>
<p class="docText">The authors of RFC 1631 apparently believed strongly enough in  their proposal to say the following:<a name="idd1e21387"></a><a name="idd1e21392"></a><a name="idd1e21399"></a><a name="idd1e21404"></a><a name="idd1e21409"></a><a name="idd1e21414"></a></p>
<blockquote>
<p class="docText">It is possible that CIDR will not be adequate to maintain the  IP Internet until the long-term solutions are in place. This memo proposes  another short-term solution, address reuse, that complements CIDR or even makes  it unnecessary.</p>
</blockquote>
<p class="docText">With the benefit of hindsight, that remarkable statement is  both amusing and illuminating. As late as the middle of 1994, there was still  great debate as to whether a migration to a classless IP address system was even  needed. This is significant because CIDR was stipulated in a series of RFCs  published in September 1993, 8 months prior to the release of RFC 1631 NAT! If  nothing else, this should give you some indication that there was little  consensus on anything other than three basic facts:<a name="idd1e21445"></a><a name="idd1e21450"></a><a name="idd1e21457"></a><a name="idd1e21462"></a><a name="idd1e21467"></a><a name="idd1e21472"></a></p>
<ul>
<li>
<p class="docList">The IPv4 address space, in its class-based configuration, was  about to break.</p>
</li>
<li>
<p class="docList">The correct way to solve the problem was to make a completely  new Internet Protocol (eventually named IPv6).</p>
</li>
<li>
<p class="docList">Something needed to be done immediately to forestall the  impending collapse of the classful system long enough to roll out the new  version of IP.</p>
</li>
</ul>
<p class="docText">Beyond these three basic facts, consensus broke down. Nobody  really knew the correct approach to take, so the IETF attacked in all  directions. The development of NAT capability was aimed at enhancing the  usefulness of the RFC 1918 addresses. One of the single biggest &#8220;traps&#8221; inherent  in the use of nonunique addresses was the inability to convert them to routable  addresses. Should requirements change, and Internet connectivity become  necessary, anyone using RFC 1918 addresses would face a painful address  migration. In comparison, address translation seemed like a welcome  alternative.</p>
<p class="docText">As significant as NAT has become, it is almost laughable to  think that at its inception it was being bandied about as an alternative to  CIDR. With hindsight, it is remarkably obvious that CIDR and NAT are different  tools intended for different uses. Both technologies were also so successful at  buying time for IPv4 that they are still in active use.</p>
<p><a name="ch07lev2sec4"></a></p>
<h1 class="docSection2Title">Technical Overview</h1>
<p class="docText">Before we get too caught up in technical details, one salient  point to understand is that NAT is a router-based function. It was designed to  provide hosts on a private network with a means of communicating transparently  with destinations outside that network, and vice versa. Traditionally, NAT has  been used in conjunction with RFC 1918 addresses (specifically designed for use  in addressing private numbers), but that is not a mandate. NAT can be used to  translate unique addresses into other unique addresses, too. Either way, it  enhances security by hiding addresses within a private network from the outside  world. Thus, NAT can be highly appropriate for securing a network, regardless of  what kind of IP addresses are in use.<a name="idd1e21540"></a><a name="idd1e21545"></a><a name="idd1e21552"></a><a name="idd1e21557"></a></p>
<p class="docText">The way this works is actually quite simple. A gateway router  (one that sits at the border of two different networks) functions as an address  translator between two neighboring networks. This translation means that a NAT  network has different types of IP addresses, each serving a slightly different  purpose. Before we venture too far ahead, you need to understand the subtle  distinctions between these address types. If you assume that an enterprise is  using NAT to establish communications with the Internet, this helps you  establish a frame of reference for understanding the differences between the  address types. The original specification for NAT had two address types:<a name="idd1e21577"></a><a name="idd1e21582"></a><a name="idd1e21589"></a><a name="idd1e21594"></a></p>
<ul>
<li>
<p class="docText"><a name="idd1e21605"></a><span class="docEmphStrong">Inside local  (IL) address</span> This is the address of a host <span class="docEmphasis">inside</span> an enterprise&#8217;s network <span class="docEmphasis">as it is known within that network</span>. The IL may be  globally unique (either obtained from the ISP or directly registered to the  enterprise), or it may be selected from an RFC 1918 reserved range.  Communications within a network may occur directly using IL addresses, without  the need for translation.<a name="idd1e21621"></a><a name="idd1e21624"></a></p>
</li>
<li>
<p class="docText"><a name="idd1e21631"></a><span class="docEmphStrong">Inside global  (IG) address</span> This is the IP address of a host <span class="docEmphasis">inside</span> an enterprise&#8217;s network <span class="docEmphasis">as it appears to the Internet</span>. That last phrase is the  critical distinction between an IG and an IL address. IG addresses must be  globally unique, regardless of whether they were obtained from the ISP or  directly registered to the enterprise. It is important to recognize that the IG  address is advertised to external networks and is used for routing to the  internal network. Thus, RFC 1918 private addresses cannot be used as IG  addresses.</p>
</li>
</ul>
<p class="docText">Together, these address types let a network communicate with  other IP-based networks without having to reveal its internal addresses. That&#8217;s  a key statement, because so many people think that the only reason NAT exists is  for use with RFC 1918 addresses. The truth is, it can be used with any network  address and may be implemented to enhance a network&#8217;s security regardless of  whether it uses private or globally routable addresses.</p>
<p class="docText">The NAT router must keep a tableknown as an <span class="docEmphasis">address translation table</span> (no acronyms, please)that  correlates these different address types. How this correlation works depends on  whether we are talking about packets coming into, or going out of, that private  network. We&#8217;ll look at both traffic types in the next section.<a name="idd1e21668"></a><a name="idd1e21673"></a></p>
<p class="docText">Over time, NAT has become much more sophisticated and  feature-rich. Today&#8217;s NAT can translate external as well as internal addresses  and can even translate TCP port addresses. Later in this chapter we&#8217;ll look at  some of the technological advances that NAT has benefited from. For now, let&#8217;s  continue with our examination of the basic NAT specification. This will give you  a context within which you can better appreciate the enhancements made to NAT  since RFC 1631.</p>
<p><a name="ch07lev3sec3"></a></p>
<h1 class="docSection3Title">Operational Mechanics</h1>
<p class="docText">NAT is a router-based function that must reside at a network&#8217;s  border. For the purposes of explaining how a NAT works, let&#8217;s start with a very  basic implementation topology. Take a look at <span class="docLink">Figure 7-1</span>. This figure shows a simple stub network that  consists of just one local-area network. This LAN uses private addresses in the  172.16.9.0/24 block. NAT is performed at the gateway router between that network  and the Internet. This connection is the only egress point for this network.</p>
<p class="docText" style="text-align: center;"><strong>Figure 7-1. NAT Translates Nonunique and Unique Addresses at the Border of a Stub Network</strong></p>
<p class="docText" style="text-align: center;"><img class="aligncenter size-full wp-image-117" title="nat_translates_nonunique_and_unique_addresses_at_the_border_of_a_stub_network" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/nat_translates_nonunique_and_unique_addresses_at_the_border_of_a_stub_network.jpg" alt="" width="500" height="386" /></p>
<p class="docText">For now, let&#8217;s make the simplifying assumption that the end  user entered an IP address as opposed to a host and domain name string. This  lets you focus on the mechanics of NAT without the added complexity of  translating a name into an IP number. We&#8217;ll look at how that is done in <span class="docLink">Chapter 9</span>, &#8220;IP Multicasting.&#8221; Given this  simplifying assumption, when an endpoint on that LAN tries to access a host that  resides outside its boundaries, the request can&#8217;t be resolved locally, and the  gateway router accepts it. That router has only two interfaces configured: the  LAN and a serial connection to the Internet. Because it is seldom useful to send  a datagram or packet back through the interface it came in on, the router has  only two choicesdrop the packet or send it out the other interface. Using the  other interface requires that some work be done to the datagram, because that is  the interface where NAT resides.</p>
<p class="docText">The first thing NAT does is check the header of that packet to  determine its source IP address. The packet is coming from an endpoint located  somewhere within the network, so the source IP address is an inside local  address. NAT won&#8217;t permit such addresses to pass into an external network. NAT  searches its address translation table for this address. If no entry is found  that corresponds to that destination address, the packet is simply discarded. If  a match is found within the address translation table, the corresponding inside  global address is retrieved from the table and is used in lieu of the inside  local address in the packet&#8217;s source address field.<a name="idd1e21774"></a><a name="idd1e21779"></a><a name="idd1e21786"></a><a name="idd1e21791"></a></p>
<p class="docText"><span class="docLink">Table 7-4</span> summarizes  this gateway router&#8217;s address translation table. For the sake of example, let&#8217;s  pretend that the globally routable address is in the 254.16.35.0 range. That  address is not a valid address. In fact, it&#8217;s a part of the reserved Class E  address space. But I am extremely reluctant to use &#8220;real&#8221; IP addresses in an  example.</p>
<p><a name="ch07table04"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 7-4. Stub Network&#8217;s Address Translation  Table</h5>
</caption>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Inside Local  Addresses</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Inside Global  Addresses</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.9.0/24</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">254.16.35.0/24</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.9.1</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">254.16.35.1</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.9.3</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">254.16.35.3</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.9.4</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">254.16.35.4</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.9.5</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">254.16.35.5</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.9.6</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">254.16.35.6</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">After a packet&#8217;s source address field is updated with the  appropriate inside global address, the packet can be launched out the router&#8217;s  interface and into the foreign network that lies beyond. Although that&#8217;s a  brief-enough synopsis of how NAT treats outbound packets, it is also necessary  to see how NAT supports address translation for incoming packets.</p>
<p class="docText">Very generally speaking, there are two basic reasons for  packets to be inbound to a NAT network:</p>
<ul>
<li>
<p class="docList">Responses to a session generated from within the NAT  network</p>
</li>
<li>
<p class="docList">Sessions that originate from external hosts</p>
</li>
</ul>
<p class="docText">Regardless of the variety, packets that are inbound to a NAT  network pass through the same process. Such packets are sent to machines bearing  inside local address types. As such, they must be intercepted by the NAT for  translation of the destination address to an inside global address.</p>
<p class="docText">The process by which NAT translates IG addresses to IL  addresses is exactly the reverse of the one we just looked at. An incoming  packet is accepted by the NAT (which could be a process configured on a router  interface, firewall, or other specialized network appliance), and its  destination address is examined and hashed against the address translation table  for a matching record. If the destination address (really an IG address) is  known, the corresponding IL address is then substituted in the packet&#8217;s  destination address, and the packet is launched into the private network. If the  destination IG address isn&#8217;t known, the packet is discarded.<a name="idd1e21937"></a><a name="idd1e21942"></a><a name="idd1e21949"></a><a name="idd1e21954"></a></p>
<p class="docText">
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9uYXQvfE5BVA==' title='Extend NAT' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/nat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Private Address Spaces</title>
		<link>http://www.ciscotrick.com/private-address-spaces/</link>
		<comments>http://www.ciscotrick.com/private-address-spaces/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:46:25 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=114</guid>
		<description><![CDATA[After the Internet became commercialized, its popularity  soared. More importantly, so did the popularity of TCP/IP and its addressing  architecture and space. Seemingly overnight, software engineers embraced the  TCP/IP communications protocol suite and it became the de facto standard for  networked communications between applications. As a direct result of this trend, [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">After the Internet became commercialized, its popularity  soared. More importantly, so did the popularity of TCP/IP and its addressing  architecture and space. Seemingly overnight, software engineers embraced the  TCP/IP communications protocol suite and it became the de facto standard for  networked communications between applications. As a direct result of this trend,  many organizations began implementing TCP/IP to support their base of  applications even though they might not have needed or wanted access to the  Internet. Implementing TCP/IP absolutely requires that you also implement the  Internet&#8217;s addressing scheme, regardless of whether you intend to actually use  the Internet.<span id="more-114"></span><a name="idd1e20729"></a><a name="idd1e20732"></a><a name="idd1e20737"></a><a name="idd1e20744"></a><a name="idd1e20749"></a><a name="idd1e20754"></a></p>
<p class="docText">In March 1994, the IETF released RFC 1597. This document  acknowledged that many organizations were using TCP/IP and IP addresses but  remained isolated from the Internet. This was perfectly acceptable in the days  before commercialization, because the installed base of TCP/IP networks was  relatively low. But the commercialization of the Internet threatened to rapidly  deplete the IP address space.<a name="idd1e20781"></a></p>
<p class="docText">The theory behind RFC 1597 (and its update in RFC 1918) was  that a block of addresses could be reserved for use in private networks. This  afforded a legitimate mechanism for networks that needed IP for application  support but did not want or need to access the Internet. Such a mechanism would  serve a twofold purpose.</p>
<p class="docText">First, it would mitigate the demand for new IP addresses. This  would help make the remaining address blocks last a little longer. The downside  is that these addresses cannot be routed over the Internet.</p>
<p class="docText">Second, this approach would help keep down the swelling of the  Internet&#8217;s routing tables. Reserved address blocks cannot be routed through the  Internet and are limited to local use.</p>
<blockquote>
<h1>NOTE</h1>
<p class="docText">
The addresses reserved in RFC 1918 are sometimes called nonroutable addresses because they cannot be routed across the Internet. However, that does not mean that they can&#8217;t be routed! Quite the contrary: Many a private IP WAN has been built successfully using these so-called nonroutable addresses. The reserved addresses can be routedjust not across the Internet.</p></blockquote>
<h1 class="docSection2Title">The Mathematics of Private Addressing</h1>
<p class="docText">One very common misperception about RFCs 1597 and 1918 is that  these documents reserved an entire Class A, an entire Class B, and an entire  Class C network address space. People who think this either don&#8217;t really  understand the IP address architecture or haven&#8217;t read the RFCs. Probably both.  <span class="docLink">Table 7-1</span> lists the address blocks that  were reserved in RFC 1597 (and reinforced in the updated RFC 1918, which is  still Internet Best Current Practice #5) for use solely in private networks.<a name="idd1e20841"></a><a name="idd1e20844"></a><a name="idd1e20849"></a><a name="idd1e20856"></a><a name="idd1e20861"></a><a name="idd1e20866"></a><a name="idd1e20869"></a></p>
<p><a name="ch07table01"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 7-1. RFCs 1597 and 1918 Private Address  Spaces</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Network Address Size in  Bits</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Base Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Terminal  Address</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/8</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">10.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">10.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/12</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.31.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/16</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.255.255</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">A quick glance at <span class="docLink">Table  7-1</span> should demonstrate that entire blocks of Class A, B, and C network  address space are indeed not reserved! In fact, if you read those RFCs, you&#8217;ll  see that only the address block taken from the Class A space matches the  classical boundary for that address. Thus, the space reserved from the Class A  address space by RFC 1918 is, in fact, an entire Class A address space. 8 of its  address bits are used for network identification. That leaves 24 bits for host  addresses. For this reason, the RFC refers to this reserved address block as the  <span class="docEmphasis">24-bit address</span>. This is in stark contrast to the  popular convention of explicitly identifying the number of bits in a network  address.<a name="idd1e20959"></a><a name="idd1e20962"></a><a name="idd1e20967"></a><a name="idd1e20970"></a></p>
<p class="docText">The others don&#8217;t follow the classical boundaries so neatly. The  address block reserved by RFC 1918 within the Class B address range, for  example, is actually a block of 16 numerically contiguous Class B spaces. If you  plotted this out in a binary string, you would see that the Class B RFC 1597  space offers 20 bits for host addresses (rather than just 16, as is found in a  Class B network). Thus, in the RFC, this address type is called the <span class="docEmphasis">20-bit address</span>. As I mentioned before, this is very  confusing and is contrary to the established conventions.</p>
<p class="docText"><span class="docLink">Table 7-2</span> shows you  the binary and decimal limits of this reserved address space. The network mask  is indicated in bold so that you can more easily see that this network block  uses 12 bits.<a name="idd1e20987"></a><a name="idd1e20992"></a><a name="idd1e20997"></a></p>
<p><a name="ch07table02"></a></p>
<table class="allBorders" border="1" cellspacing="0" cellpadding="4" width="100%" rules="all">
<caption>
<h5 class="docTableTitle">Table 7-2. Mathematical Limits of the 172.16 Reserved  Space</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col"></th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Base address</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.16.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">10101100</span>.<span class="docEmphStrong">0001</span>0000.00000000.00000000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Terminal address</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">172.31.255.255</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">10101100</span>.<span class="docEmphStrong">0001</span>1111.11111111.11111111</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">The Class C network space is equal in size to a set of 255  numerically contiguous Class C network addresses. If you think about this, and  visualize it in binary, you will realize that this reserved address space offers  16 bits of host addresses. Thus, the block reserved from the Class C address  space is identical in size to a Class B network block. <span class="docLink">Table 7-3</span> shows the actual reserved range of addresses.  Again, for your visual reference, the bits used to identify the network are  indicated in bold. The other bits are used for host addressing.<a name="idd1e21075"></a><a name="idd1e21078"></a><a name="idd1e21083"></a><a name="idd1e21090"></a><a name="idd1e21095"></a><a name="idd1e21100"></a><a name="idd1e21103"></a></p>
<p><a name="ch07table03"></a></p>
<table class="allBorders" border="1" cellspacing="0" cellpadding="4" width="100%" rules="all">
<caption>
<h5 class="docTableTitle">Table 7-3. Mathematical Limits of the 192.168 Reserved  Space</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col"></th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Base address</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000</span>.00000000.00000000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Terminal address</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.255.255</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000</span>.11111111.11111111</p>
</td>
</tr>
</tbody>
</table>
<p><a name="ch07lev2sec2"></a></p>
<h1 class="docSection2Title">Benefits and Drawbacks of Private Addressing</h1>
<p class="docText">Having waded through the mathematics of reserved private  address blocks, it&#8217;s probably appropriate to look at some of the operational  impacts of private addressing. In other words, let&#8217;s look at the benefits and  limitations of this tool.<a name="idd1e21175"></a><a name="idd1e21180"></a><a name="idd1e21183"></a></p>
<p><a name="ch07lev3sec1"></a></p>
<h1 class="docSection3Title">Benefits</h1>
<p class="docText">The greatest benefit of using private address space is that the  global Internet address space is conserved for use where it is really needed.  Although this is a noble goal, the benefits are distributed externally: The  organization implementing private addressing is helping the Internet community  at large, but not necessarily itself, in the processat least, not if this were  the only benefit.<a name="idd1e21193"></a><a name="idd1e21196"></a><a name="idd1e21201"></a><a name="idd1e21208"></a><a name="idd1e21213"></a><a name="idd1e21218"></a></p>
<p class="docText">One other benefit, perhaps the most compelling of all, is that  you don&#8217;t need permission to use these addresses. They were created explicitly  to be unique per network but nonunique globally. As you saw earlier in this  chapter, one of the more effective ways that IANA&#8217;s pool of available addresses  was protected was by rationing them carefully. Gone are the days when address  blocks were handed out to anyone who asked. With the introduction of RFC 1466, a  stringent standard of justification was imposed on anyone asking for address  space. Even service providers had to pass stringent criteria to justify being  assigned more address space. So, here was the classic carrot and stick: Use the  RFC 1597/1918 addresses hassle-free, or butt heads with the Keeper of Unassigned  Addresses in an almost-always-futile attempt to procure your own addresses.</p>
<p class="docText">Another, more-subtle reason to use private addressing is that  the network becomes inherently more secure. Because private address spaces are  not valid routes across the Internet, a network that used them couldn&#8217;t be  hacked via the Internet. Of course, such a network would have a difficult time  communicating with the Internet if it had those addresses in the first place,  but hopefully you get my point.</p>
<p><a name="ch07lev3sec2"></a></p>
<h1 class="docSection3Title">Drawbacks</h1>
<p class="docText">The drawbacks of using the private address space reserved in  RFC 1918 are relatively easy to enumerate. There&#8217;s exactly one. That first,  last, and only drawback is that these addresses cannot be routed across the  Internet. But they <span class="docEmphasis">can</span> be routed internally  within a private network. You&#8217;re probably thinking that this isn&#8217;t a flaw; it&#8217;s  a feature. And you&#8217;re right. But this becomes a problem if your requirements  change <span class="docEmphasis">after</span> you implement RFC 1918 addresses.  For example, if you suddenly find that your users require connectivity to, or  accessibility from, the Internet, this limitation can become quite problematic.  Quite literally, if you try to connect to the Internet using RFC 1918 addresses,  you won&#8217;t be able to communicate at all. The ISP you are connecting to won&#8217;t  recognize your address space (identified in each of your IP packets via the  source address field) as routable, so no inbound packets will be able to reach  you. That includes packets generated in response to your queries!</p>
<p class="docText">That&#8217;s not to say that using RFC 1918 addresses is risky. In  fact, if you have no plans to connect to the Net, RFC 1918 is perfect for  you.</p>
<p class="docText">When requirements change like that, you aren&#8217;t necessarily  facing an address migration. This is where NAT can be extremely useful.<a name="idd1e21255"></a><a name="idd1e21258"></a><a name="idd1e21263"></a><a name="idd1e21270"></a><a name="idd1e21275"></a><a name="idd1e21280"></a><a name="idd1e21283"></a><a name="idd1e21288"></a><a name="idd1e21291"></a></p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9wcml2YXRlLWFkZHJlc3Mtc3BhY2VzL3xQcml2YXRlIEFkZHJlc3MgU3BhY2VzIA==' title='Extend Private Address Spaces ' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/private-address-spaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supernetting</title>
		<link>http://www.ciscotrick.com/supernetting/</link>
		<comments>http://www.ciscotrick.com/supernetting/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:39:39 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=108</guid>
		<description><![CDATA[Arguably the single most powerful advance experienced by the  IPv4 address space is the capability known as supernetting. Before we delve too deeply into this  topic, let&#8217;s dispel a very popular misperception. Supernetting was not introduced with CIDR! It was first specified in  June 1992 in RFC 1338 as a standalone strategy [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">Arguably the single most powerful advance experienced by the  IPv4 address space is the capability known as <span class="docEmphasis">supernetting</span>. Before we delve too deeply into this  topic, let&#8217;s dispel a very popular misperception. Supernetting was <span class="docEmphasis">not</span> introduced with CIDR! It was first specified in  June 1992 in RFC 1338 as a standalone strategy for improving the aggregatability  of IP address blocks. The fact that I&#8217;m including it as a subtopic in a chapter  on CIDR should tell you something about how pervasive this myth has become. Yet  the facts remain publicly available: Supernetting was introduced 15 months  before CIDR. However, CIDR made supernetting infinitely more useful simply by  creating a classless IP address space. Thus, supernets could be created on any  bit boundary, as opposed to the class-based octet boundaries that constrained  the authors of RFC 1388.<span id="more-108"></span><a name="idd1e19414"></a><a name="idd1e19419"></a><a name="idd1e19424"></a><a name="idd1e19431"></a><a name="idd1e19438"></a><a name="idd1e19445"></a><a name="idd1e19452"></a></p>
<p class="docText">Supernetting is the concept of taking two or more numerically  contiguous network address blocks and consolidating them into a single, larger  network address. Thus, if you had a pair of /25 networks that happened to be  numerically contiguous, you could <span class="docEmphasis">probably</span> aggregate them into a single /24 network. This would free you from having to  route between the two /25 address spaces. Supernetting would also let you  advertise just one network block (the /24) to the world instead of two distinct  /25 network addresses.</p>
<p class="docText">I say probably because certain rules and limitations apply.  Just because two network blocks are numerically contiguous doesn&#8217;t mean that  they can be supernetted. However, if they are not numerically contiguous, they  absolutely cannot be formed into a supernet. The next section looks a bit more  closely at some of the rules that govern the creation of supernets.</p>
<p><a name="ch06lev2sec3"></a></p>
<h1 class="docSection2Title">The Rules</h1>
<p class="docText">Supernetting, like many other topics indigenous to the IP  address space, gets a bad reputation for being complex and difficult to  understand. That&#8217;s unfortunate, because supernetting is one of CIDR&#8217;s most  important features. More importantly, it can be remarkably easy to understand if  it is explained properly. I have already given you a thumbnail sketch of the  supernet function. Now it&#8217;s time to look at the provisos. There are only three  basic rules for supernet creation:<a name="idd1e19478"></a><a name="idd1e19483"></a><a name="idd1e19488"></a><a name="idd1e19495"></a><a name="idd1e19502"></a><a name="idd1e19509"></a><a name="idd1e19516"></a><a name="idd1e19523"></a></p>
<ul>
<li>
<p class="docList">Numeric contiguity</p>
</li>
<li>
<p class="docList">Even divisibility</p>
</li>
<li>
<p class="docList">Single interface</p>
</li>
</ul>
<p class="docText">Each of these is examined in the following sections to help you  better appreciate their impact on supernetting an address space.</p>
<p><a name="ch06lev3sec5"></a></p>
<h1 class="docSection3Title">Numeric Contiguity</h1>
<p class="docText">In order for supernetting to be possible, network addresses  must be numbered consecutively. This rule is probably the one that is the most  intuitive of the three rules for creating supernets. If two network address  blocks are not numerically adjacent, attempts to join them must necessarily  include all the addresses that keep them apart. You can more completely  understand what that means by looking at an example and learning from it. <span class="docLink">Table 6-5</span> demonstrates a /24 network block  that has been subnetted into eight fixed-length subnets using a mask of  255.255.255.224. That mask, if you&#8217;ll refer back to <span class="docLink">Table 6-1</span>, equates to a /27 CIDR  network.<a name="idd1e19565"></a><a name="idd1e19570"></a></p>
<p><a name="ch06table05"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-5. Numeric Contiguity of Subnets Within a  /24</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Subnet Number</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Contiguous With Which  Numbers</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Base</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.0/24</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Not applicable</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.0/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">1</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 1</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.32/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">0 and 2</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 2</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.64/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">1 and 3</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 3</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.96/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">2 and 4</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 4</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.128/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">3 and 5</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 5</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.160/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">4 and 6</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 6</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.192/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">5 and 7</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.224/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">6</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">The third column of <span class="docLink">Table  6-5</span> identifies the direct contiguity of each of the eight defined subnets.  Subnet 0 is numerically contiguous only with subnet 1, and subnet 1 is  numerically contiguous with both subnets 0 and 2. This much should be fairly  obvious. Getting back to my point about nonadjacent addresses, suppose you want  to supernet subnets 1 and 3. You can&#8217;t do that directly because subnet 2 (with  its 32 addresses) lies between them. However, it might be possible to create a  much larger subnet by integrating subnets 1, 2, and 3. However, we still have  two more rules to examine before we can state with authority that such a  supernet is technically feasible!<a name="idd1e19741"></a><a name="idd1e19746"></a><a name="idd1e19751"></a><a name="idd1e19758"></a><a name="idd1e19765"></a><a name="idd1e19772"></a><a name="idd1e19779"></a><a name="idd1e19786"></a></p>
<p><a name="ch06lev3sec6"></a></p>
<h1 class="docSection3Title">Even Divisibility</h1>
<p class="docText">The next test to determine the supernetability of an address  space is even divisibility. This test is designed to ensure that network  addresses end on the correct bit boundaries to preserve the symmetry of a  CIDRized address space. Even divisibility is determined by dividing the octet  that contains the boundary between host and network address fields by the number  of networks you are trying to supernet together. For example, if you were to  combine two /24 networks, the third octet of the first network address must be  divisible by 2. If you wanted to combine eight /24 networks, the first network&#8217;s  third octet would have to be divisible by 8.<a name="idd1e19800"></a><a name="idd1e19805"></a></p>
<p class="docText">In essence, the first network block in a supernetted group of  addresses forms the base address of the new, larger address block. Everything  else in the supernet is built from it. Thus, it is imperative that this initial  address block conform to CIDR bit boundaries.</p>
<p class="docText"><span class="docLink">Table 6-6</span> helps you  better understand why this is the case. This table builds on <span class="docLink">Table 6-5</span> by showing both the numerically contiguous  subnets and whether the appropriate octet is evenly divisible. I have used bold  to indicate which octet of each address you look at to make this  determination.</p>
<p><a name="ch06table06"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-6. Numeric Contiguity and Even Divisibility of  Subnets Within a /24</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="bottom" scope="col">
<p class="docText"><span class="docEmphStrong">Subnet Number</span></p>
</th>
<th class="thead" align="left" valign="bottom" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Address</span></p>
</th>
<th class="thead" align="left" valign="bottom" scope="col">
<p class="docText"><span class="docEmphStrong">Contiguous With Which  Numbers</span></p>
</th>
<th class="thead" align="left" valign="bottom" scope="col">
<p class="docText"><span class="docEmphStrong">Even Divisibility of Third  Octet?</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Base</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.0/24</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Not applicable</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Not applicable</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">0</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">1</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Yes</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 1</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">32</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">0 and 2</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Yes</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 2</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">64</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">1 and 3</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Yes</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 3</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">96</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">2 and 4</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">No</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 4</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">128</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">3 and 5</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Yes</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 5</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">160</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">4 and 6</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Yes</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 6</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">192</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">5 and 7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Yes</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Subnet 7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">224</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">6</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">Yes</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">Let&#8217;s look at some of these individual base addresses a bit  more closely so that you can better appreciate the logic behind the rule of even  divisibility. <span class="docLink">Table 6-7</span> shows the  binary mathematics that underlie the test of even divisibility. The 2 bits that  are critical to determining even divisibility for our supernet example are shown  in bold italic.<a name="idd1e20059"></a><a name="idd1e20064"></a><a name="idd1e20069"></a><a name="idd1e20076"></a><a name="idd1e20083"></a><a name="idd1e20090"></a><a name="idd1e20097"></a><a name="idd1e20104"></a><a name="idd1e20111"></a></p>
<p><a name="ch06table07"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-7. Binary Mathematics of Even  Divisibility</h5>
</caption>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary  Address</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">32</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">001</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">64</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">010</span>00000</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">In effect, this proposed supernet reduces the size of the  network&#8217;s mask from 27 bits to 26 bits. For the symmetry of the address space to  be conserved, that 26th bit must start at 0. In <span class="docLink">Table 6-7</span>, 192.168.64.32/27 and 192.168.64.64/27 are  supernetted together and are advertised as 192.168.64.32/26. In binary math, the  next increment above 00 is 01. Thus, the two /27 network blocks can both be  referenced by the same 26-bit network address.</p>
<p class="docText">The next example does not conform to symmetry and doesn&#8217;t work  as expected. Although in binary math 01 increments to 10, the increment requires  you to reset the least-significant bit to 0 and then increment a  more-significant bit (the leftmost of the two number columns) to 1. Thus, the  bitstring differs for the two subnets, and they cannot be supernetted together.  <span class="docLink">Table 6-8</span> shows you how this bitstring  differs. The bits significant for supernetting are in bold italic.<a name="idd1e20192"></a><a name="idd1e20195"></a></p>
<p><a name="ch06table08"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-8. Binary Mathematics of Uneven  Divisibility</h5>
</caption>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary  Address</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">95</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">010</span>11111</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.<span class="docEmphStrong">128</span>/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">100</span>00000</p>
</td>
</tr>
</tbody>
</table>
<p class="docText"><span class="docLink">Table 6-6</span> shows that  the only subnet that can&#8217;t become the base of a two-network supernet is subnet  3. Its final octet is an odd number95. Now you know why. All the other subnets  can become the base of a two-network /26 supernet. Thus, of all the potential  combinations for supernetting, the only set that doesn&#8217;t meet both the criteria  (even divisibility and numeric contiguity) is the pairing of subnets 3 and 4.<a name="idd1e20268"></a><a name="idd1e20273"></a><a name="idd1e20278"></a><a name="idd1e20285"></a><a name="idd1e20292"></a><a name="idd1e20299"></a><a name="idd1e20306"></a><a name="idd1e20313"></a></p>
<p><a name="ch06lev3sec7"></a></p>
<h1 class="docSection3Title">Single Interface</h1>
<p class="docText">The last critical precondition for supernetting is that the two  or more network blocks that are to be aggregated must be connected to the same  interface. Otherwise, why bother? If they are connected to different interfaces,  you must route between the two networks. In practical terms, this rule does not  preclude you from creating a supernet from two networks that are connected to  different router interfaces. However, this rule forces you to reconfigure your  physical topology so that the combined supernet connects to only one  interface.<a name="idd1e20327"></a><a name="idd1e20332"></a></p>
<p class="docText"><span class="docLink">Figures 6-2</span> and <span class="docLink">6-3</span> better demonstrate how the  single-interface rule can have a physical impact on a network&#8217;s topology.  Together they demonstrate the before-and-after perspective of supernetting.</p>
<h5 class="docFigureTitle">Figure 6-2. Before: Two /27 Networks Routed  Together</h5>
<p class="docText">
<p><img class="aligncenter size-full wp-image-110" title="before_two_27_networks_routed_together" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/before_two_27_networks_routed_together.jpg" alt="" width="500" height="229" /><br />
<a name="ch06fig03"></a></p>
<h5 class="docFigureTitle">Figure 6-3. After: Two /27 Networks Supernetted to Form  a /26</h5>
<p class="docText">
<p><img class="aligncenter size-full wp-image-109" title="after_two_27_networks_supernetted_to_form_a-_26" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/after_two_27_networks_supernetted_to_form_a-_26.jpg" alt="" width="500" height="229" /></p>
<p class="docText"><span class="docLink">Figure 6-3</span> shows a  network after supernetting. Two small LANs are routed together; all traffic  flowing between them must be routed.</p>
<p class="docText">Obviously, this criterion adds a physical element to the purely  mathematical requirements of supernetting&#8217;s first two prerequisites. You must  accept the fact that, unless a pair of subnets are physically constructed such  that they can be interconnected, and then use the same router interface, they  cannot be supernetted. This is true even if two or more subnets pass the  criteria for contiguity and divisibility. Thus, the actual number of supernets  that can be formed is a subset of those that are mathematically feasible. It is  impossible to determine which subnets are supernetable without physically  examining each subnetwork.</p>
<p><a name="ch06lev2sec4"></a></p>
<h1 class="docSection2Title">Aggregation Versus Supernetting</h1>
<p class="docText">Supernetting and aggregation are extremely similar concepts,  especially mathematically. It is how they are implemented that makes them  distinct. Aggregation is what routers to do reduce their workload. They try to  shorten network prefixes to minimize the total number of prefixes that must be  advertised externally either to the rest of the network or to the Internet.  Supernetting, by virtue of its single-interface rule, requires physical  consolidation of networks as opposed to just a logical consolidation of the  network addresses into a smaller prefix.<a name="idd1e20378"></a><a name="idd1e20383"></a><a name="idd1e20388"></a><a name="idd1e20395"></a><a name="idd1e20402"></a><a name="idd1e20409"></a><a name="idd1e20416"></a><a name="idd1e20423"></a><a name="idd1e20430"></a></p>
<p class="docText"><span class="docLink">Figures 6-4</span> and <span class="docLink">6-5</span> better demonstrate aggregation versus  supernetting.</p>
<p><a name="ch06fig04"></a></p>
<h5 class="docFigureTitle">Figure 6-4. From the Internet&#8217;s Perspective, a Pair of  /24 Networks Are Aggregated as a /23</h5>
<p class="docText">
<p><img class="aligncenter size-full wp-image-111" title="from_the_internet-s_perspective_a_pair_of_24_networks_are_aggregated_as_a_23" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/from_the_internet-s_perspective_a_pair_of_24_networks_are_aggregated_as_a_23.jpg" alt="" width="500" height="345" /><br />
<a name="ch06fig05"></a></p>
<h5 class="docFigureTitle">Figure 6-5. The Pair of /24 Networks Are Supernetted  into a /23</h5>
<p class="docText">
<p><a href="http://www.ciscotrick.com/wp-content/uploads/2008/08/the_pair_of_24_networks_are_supernetted_into_a_23.jpg"><img class="aligncenter size-full wp-image-112" title="the_pair_of_24_networks_are_supernetted_into_a_23" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/the_pair_of_24_networks_are_supernetted_into_a_23.jpg" alt="" width="500" height="345" /></a></p>
<p class="docText">In <span class="docLink">Figure 6-4</span>, you can  see that interconnectivity between the two /24 networks is achieved via the same  router. This router recognizes that the two networks are numerically contiguous,  and it advertises just a single /23 network prefix to the Internet. Thus, the  Internet can reach both networks using just 23 bits of their network addresses.  Inbound packets get only as far as the router shared by the /24 networks. That  router must then examine the destination address of each inbound packet to  determine which of its two /24 networks the packet is destined for. Making such  a determination requires the router to make a routing decision based on all 24  bits of the two network prefixes.</p>
<p class="docText">This captures the essence of aggregation, albeit on a very  small scale. There is a strong correlation between geographic distance and the  number of bits you need in order to reach any given destination. A good way to  think about how this works is navigating your way to your favorite restaurant.  If that restaurant is located in Kansas City, Mo., your initial directions can  be as simple as &#8220;Go west&#8221; if you are located east of the Mississippi River.  However, after you reach that city, you need much more precise information in  order to find your way through the complex network of streets and storefronts in  order to find your destination. IP-based networks are no different. Precision is  just defined in terms of how many of the network prefix&#8217;s bits you are looking  at.</p>
<p class="docText"><span class="docLink">Figure 6-5</span> shows the  same network topology and also advertises just a single /23 network prefix to  the Internet. However, that&#8217;s where the similarities end. The two /24 networks  have been integrated into a /23 network. This network requires only a single  connection to the router. More importantly, the router need not look at the 24th  bit of an inbound packet to figure out what to do with it: All inbound packets  can be forwarded using just the /23 network. The individual /24 networks have,  in effect, ceased to exist. In their place is a single, larger network.</p>
<p class="docText">This pair of examples use a limited scale to demonstrate  aggregation versus supernetting. In reality, aggregation can occur on a very  large scale. In fact, ISPs might aggregate hundreds or thousands of customer  networks into just one network prefix that gets communicated to the entire  Internet. This, of course, raises an issue. Is it possible to overaggregate? In  other words, which is better: longer or shorter network prefixes?<a name="idd1e20482"></a><a name="idd1e20487"></a><a name="idd1e20492"></a><a name="idd1e20499"></a><a name="idd1e20506"></a><a name="idd1e20513"></a><a name="idd1e20520"></a><a name="idd1e20527"></a></p>
<p><a name="ch06lev3sec8"></a></p>
<h1 class="docSection3Title">Which Is Better: Longer or Shorter?</h1>
<p class="docText">Under CIDR supernetting rules, no distinction is made between  network and subnetwork addresses. Both are regarded as a network prefix to a  host address, and routing decisions <span class="docEmphasis">can</span> be made  on the entire prefix. I say &#8220;can&#8221; because it isn&#8217;t mandatory.</p>
<p class="docText">We tend to take the Internet for granted. Everything we could  ever hope to find is always right at our fingertips. At least, that&#8217;s how it  seems! However, if you look a little deeper, you discover a concept known as  <span class="docEmphasis">reachability</span>. Reachability is a general term that  describes whether any given destination can be reached through the Internet. The  very fact that such a term exists should tell you that reaching intended  destinations is not necessarily guaranteed. Which ISP networks you need to  traverse to satisfy any given communication request across the Internet, and  which approaches those ISPs use for routing, can have a huge impact on the  reachability of destination networks. This is a by-product of network  aggregation.</p>
<blockquote>
<h1>NOTE</h1>
<p class="docText">A /20 is considered the smallest network size for global routability. That&#8217;s not to say you couldn&#8217;t advertise a smaller block, such as a /24 network. Smaller blocks run the risk of not being accepted universally throughout the Internet simply because each ISP sets its own policy as to how long a prefix it will support. Ideally, there won&#8217;t be any standalone /24 network addresses; all should be created from within much larger ISP network address blocks and be advertised to the Internet as those larger blocks.</p>
</blockquote>
<p class="docText">Each ISP decides how it will route across its own network.  There are many different approaches, one of which is based on the principle of  the longest numeric &#8220;match.&#8221; Having examined how supernetting and CIDR were  intended to improve route aggregation across the Internet, you can now better  appreciate the pros and cons of network prefix length. It&#8217;s a concise debate.  Longer prefixes are much more precise. But they result in the need to track a  greater overall number of routes than if you abstract a smaller network prefix  from among a larger number of more-specific prefixes.</p>
<p class="docText">The aggregatability of the CIDR IPv4 address space gives you  the best of both worlds: You can use very long (and therefore very precise)  network prefixes where you have to, and very short, less-precise network  prefixes where you can. Ostensibly, the closer you are in an internetwork to the  destination network, the greater the precision you require of the network  address. The farther you get from that destination, the less precise the network  prefix can be. In this manner, routes can be generalized, with specificity  increasing with proximity to the destination. In simpler terms, and as discussed  earlier in this chapter, you might be able to accurately route an IP packet to a  service provider network using just 16 network address bits. Then you can look  at additional bits to figure out what to do with that packet after it&#8217;s on the  service provider&#8217;s network.<a name="idd1e20591"></a><a name="idd1e20596"></a><a name="idd1e20601"></a><a name="idd1e20608"></a><a name="idd1e20615"></a><a name="idd1e20622"></a><a name="idd1e20629"></a><a name="idd1e20636"></a><a name="idd1e20643"></a></p>
<p class="docText">The bottom line is that both longer and shorter prefixes play  an important role in the proper functioning of an IP network. This works due to  the concept of aggregation.</p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9zdXBlcm5ldHRpbmcvfFN1cGVybmV0dGluZw==' title='Extend Supernetting' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/supernetting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symmetry of CIDR Notation</title>
		<link>http://www.ciscotrick.com/symmetry-of-cidr-notation/</link>
		<comments>http://www.ciscotrick.com/symmetry-of-cidr-notation/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:20:05 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=105</guid>
		<description><![CDATA[The binary mathematics of the IP address space creates a  marvelous natural symmetry in CIDR-compliant addresses. What at first glance  appears to be an unmanageable jumble of numbers is actually a remarkably logical  system. The key is remembering that the binary number system works based on  powers of 2. For each [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">The binary mathematics of the IP address space creates a  marvelous natural symmetry in CIDR-compliant addresses. What at first glance  appears to be an unmanageable jumble of numbers is actually a remarkably logical  system. The key is remembering that the binary number system works based on  powers of 2. For each bit you move to the left, you double the bit&#8217;s value. For  each bit you move to the right, you halve the bit&#8217;s value. These facts help you  better appreciate CIDR&#8217;s /<span class="docEmphasis">number</span> notation. For  example, if you halve a bit&#8217;s value by moving to the right, you can logically  assume that the entire string of bits that follows the bit in question is also  halved.<a name="idd1e18514"></a><a name="idd1e18519"></a><a name="idd1e18524"></a><a name="idd1e18531"></a><a name="idd1e18538"></a><a name="idd1e18545"></a><a name="idd1e18552"></a></p>
<p class="docText">Look at <span class="docLink">Table 6-2</span> to  see how this works. In this table, we&#8217;ll look at a real /24 network address  block and then figure out how many /25 networks it contains. Logically, a /25  features a network prefix that is exactly 1 bit longer than a /24, and that bit  comes from the right. So you can expect that a /25 is exactly half the size of a  /24, but let&#8217;s prove it. <span class="docLink">Table 6-1</span> dissects 192.1.64.0/24. The  bits that represent the extended network prefix are indicated in bold. I&#8217;ve  indented both of the /25s to indicate that they are actually subcomponents of  the /24 address space.</p>
<p><a name="ch06table02"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-2. Symmetry of CIDR Notation</h5>
</caption>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary  Address</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.0/24</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01000000</span>.00000000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.0/25</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01000000</span>.<span class="docEmphBoldItalic">0</span>0000000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.128/25</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01000000</span>.<span class="docEmphBoldItalic">1</span>0000000</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">As is evident from <span class="docLink">Table  6-2</span>, when you borrow a single bit from the host octet of the /24 network,  you create exactly two /25 networks. That&#8217;s because you are borrowing only a  single bit, and that bit can have only two possible values: 0 and 1. Thinking  about this a little more, you can see that this borrowed bit is in the leftmost  position of its octet. This bit carries a decimal value of 128. Thus, the  initial value of the last octet in the second /25 network must be .128.  Logically, then, the highest-value host address in 192.1.64.0/25 must be .127.  Converting the binary string 01111111 to decimal yields exactly 127. This value  serves as the broadcast address for that network and cannot be assigned to any  endpoint.<a name="idd1e18649"></a><a name="idd1e18654"></a><a name="idd1e18659"></a><a name="idd1e18666"></a><a name="idd1e18673"></a></p>
<p class="docText">This symmetry works on any bit boundary. <span class="docLink">Table 6-3</span> shows how exactly two /24 network blocks can  be created from a /23. It uses the same address block as the preceding example  so that you can see the progression of the addresses as subblocks are  created.</p>
<p><a name="ch06table03"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-3. Creating /24 Networks from a  /23</h5>
</caption>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary  Address</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.0/23</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.0100000</span>0.00000000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.0/24</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.00000000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.65.0/24</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000001</span>.00000000</p>
</td>
</tr>
</tbody>
</table>
<p class="docText"><span class="docLink">Table 6-4</span> shows how  this pattern progresses even further. If two /25 networks can be created from a  single /24, there must also be two /26 networks in each of those /25 networks,  for a total of four /26 networks in each /24. The next logical conclusion is  that each /24 network can be used to create exactly eight /27 networks, because  Base2 has eight unique numeric combinations ranging from 000 through 111. This  is what you see in <span class="docLink">Table 6-4</span>. Focus on  the bold italic numbers, and you can see how you are counting in binary. This  &#8220;counting&#8221; is obvious only when you look at the value of the last octet in  binary. In decimal, you can see the incrementation, but it occurs in increments  of 32, which is the value of the least-significant of the 3 bits borrowed from  the host field to create the /27 networks.<a name="idd1e18763"></a><a name="idd1e18768"></a><a name="idd1e18773"></a><a name="idd1e18780"></a><a name="idd1e18787"></a></p>
<p><a name="ch06table04"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-4. Creating /27 Networks from a  /24</h5>
</caption>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary  Address</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.64.0/24</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.00000000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.0/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">000</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.32/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">001</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.64/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">010</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.96/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">011</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.128/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">100</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.160/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">101</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.192/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">110</span>00000</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<blockquote>
<p class="docList">192.168.64.224/27</p>
</blockquote>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.  10101000.01000000</span>.<span class="docEmphBoldItalic">111</span>00000</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">This pattern can get quite tedious to fully examine using just  mathematics. If you tend to learn best visually, refer to <span class="docLink">Figure 6-1</span>. It demonstrates the hierarchical and  mathematical relationship between network blocks. Space constraints prevent the  creation of this type of chart for the entire IP address space, but this small  sampling from /24 through /27 should adequately demonstrate the pattern.</p>
<p class="docText" style="text-align: center;"><strong>Figure 6-1. The Mathematical Relationship Between Network Block Sizes</strong></p>
<p class="docText" style="text-align: center;"><img class="aligncenter size-full wp-image-106" title="the_mathematical_relationship_between_network_block_sizes" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/the_mathematical_relationship_between_network_block_sizes.jpg" alt="" width="500" height="293" /></p>
<p class="docText">If you understand this basic symmetry, and you adhere to it  when creating subnets in your network, you shouldn&#8217;t experience any  problemsunless, of course, you fail to keep good records! My point is simple:  Understanding the bit boundaries and nested symmetries found in CIDR lets you  properly create subnetwork addresses. Some examples presented in <span class="docLink">Chapter 4</span>, &#8220;Variable-Length Subnet  Masks,&#8221; violated this principle. Now you can better appreciate why those  examples were suboptimal. Reviewing the tables in that chapter, you will see  that subnets often started outside conventional bit boundaries.</p>
<p class="docText">Violating bit boundaries has its consequences, but they are not  necessarily fatal. For example, a network can function quite well with a poorly  designed address space. The two main consequences of poor address space  implementation are</p>
<ul>
<li>
<p class="docList">Confusion as to which hosts fit in which subnet</p>
</li>
<li>
<p class="docList">Creating inefficiency and possibly unusable addresses, because  one subnet boundary might overlap with another</p>
</li>
</ul>
<p class="docText">Although none of these consequences will kill a network, they  tend to be very persistent. Most address schemes take on a life of their own  after they are implemented. You would be surprised at how difficult it can be to  correct past mistakes in an address space that is in daily use.</p>
<p class="docText">Other consequences of a poorly designed addressing scheme  require a finer appreciation of just how useful CIDR&#8217;s symmetry really is. The  next two sections look at how CIDR blocks are designed to be aggregatable and  subdividable.<a name="idd1e19020"></a><a name="idd1e19025"></a><a name="idd1e19030"></a><a name="idd1e19037"></a><a name="idd1e19044"></a></p>
<p><a name="ch06lev2sec2"></a></p>
<h1 class="docSection2Title">From Symmetry Comes Aggregatability</h1>
<p class="docText">Under the rules of Classical IP, there was at best a weak,  positive correlation between network addresses and geography. Thus, two  numerically adjacent network addresses of any class could be on opposite sides  of the world. From a router&#8217;s perspective, even though these two network blocks  are numerically contiguous, they <span class="docEmphasis">must</span> be regarded  as completely and utterly unrelated! Logically, if they are on opposite sides of  the world, you probably will take different routes to get to each one. Thus,  routers throughout the Internet would have to remember a separate route for each  router. This is the opposite of aggregatability, and it can quickly spell death  for a network&#8217;s performance simply by consuming more and more of a router&#8217;s  finite memory and CPU resources.<a name="idd1e19064"></a><a name="idd1e19069"></a><a name="idd1e19074"></a><a name="idd1e19081"></a><a name="idd1e19088"></a><a name="idd1e19095"></a><a name="idd1e19100"></a><a name="idd1e19107"></a></p>
<p><a name="ch06lev3sec3"></a></p>
<h1 class="docSection3Title">Aggregatability: What a Concept!</h1>
<p class="docText">Aggregation of addresses is nothing more than the inverse of  subnetting on a large scale. Subnetting lets you take a single network address  block and carve it into smaller subnetwork blocks. Aggregation is taking several  network addresses (also known as prefixes), lumping them together, and  advertising just one network prefix to other networks. Several critical  assumptions are buried in this simple explanation. The two most important are as  follows:</p>
<ul>
<li>
<p class="docList">Network prefixes must be numerically similar, if not  contiguous, to enable identifying them via a unique network prefix.</p>
</li>
<li>
<p class="docList">Networks using those prefixes should be close enough  geographically to be able to use the same ISP for their connectivity to the  Internet.</p>
</li>
</ul>
<p class="docText">From an ISP&#8217;s perspective, numerically similar network  addresses should be aggregated. For example, let&#8217;s say that an ISP has been  given a Class B-sized network address (a /16 network prefix). An address block  of this size can support 65,535 endpoints. The ISP isn&#8217;t too likely to encounter  any single customer that requires all this address space. Instead, it is much  more likely that the ISP will have dozens or hundreds of customers that each  require a small number of addresses.</p>
<p class="docText">Without trying to chart an entire /16 network&#8217;s potential  allocation scheme, let&#8217;s just agree that it would be to everyone&#8217;s benefit to be  able to just tell the rest of the Internet about the /16 network address. This  simplification relieves you of the burden of having to communicate explicitly  about each /27 or /24 or /20 network address that might have been created from  it. All those subnetworks begin with the same 16 bits anyway. Thus, they canand  shouldbe aggregated and advertised to the Internet as a single network prefix.  The subnetworks&#8217; longer bitstrings are of use only within that service  provider&#8217;s network. In this sense, aggregatable network addresses function  precisely like subnets created from a single network address.<a name="idd1e19149"></a><a name="idd1e19154"></a><a name="idd1e19159"></a><a name="idd1e19166"></a><a name="idd1e19173"></a><a name="idd1e19180"></a><a name="idd1e19185"></a><a name="idd1e19192"></a></p>
<p class="docText">Unfortunately, not all the Internet&#8217;s address space can be  aggregated to any appreciable degree. Benefiting from CIDR&#8217;s aggregatability  means that you have to start handing out network address blocks based on  geography. During the Internet&#8217;s early days, any organization could request its  own address space. Such requests were satisfied as they were received, and the  actual range of addresses allocated to that organization depended only on the  size of the request. Thus, there was no attempt to correlate geography and IP  network addresses. This policy enabled the notion of an IP address space being  portable from ISP to ISP but effectively defied the promised benefits of  aggregatability. IANA and the IETF countered by effectively declaring address  space given to ISPs to be nonportable. We&#8217;ll revisit this volatile issue in the  last section of this chapter, as well as in subsequent chapters.</p>
<p><a name="ch06lev3sec4"></a></p>
<h1 class="docSection3Title">Aggregation Versus Subnetting</h1>
<p class="docText">CIDR introduced mechanisms designed to enhance aggregatability.  The first and foremost of these mechanisms was simply the ability to define  network addresses on any bit boundary instead of on every eighth bit boundary.  VLSM had previously demonstrated the wisdom of this bitwise approach. Despite  the handicaps of not being routable and, therefore, of only local significance,  VLSM had a dramatic positive impact on the efficiency with which IP network  blocks could be used.<a name="idd1e19238"></a><a name="idd1e19243"></a><a name="idd1e19248"></a><a name="idd1e19255"></a><a name="idd1e19262"></a><a name="idd1e19269"></a><a name="idd1e19274"></a><a name="idd1e19281"></a><a name="idd1e19288"></a></p>
<p class="docText">CIDR built upon this approach by implementing subnet masks as  routable information. That&#8217;s a point that often creates confusion, even among  experienced network engineers! For many years, subnets were limited to local  use. The distinction between subnets and network addresses was reinforced by the  routability of only those addresses that conformed to Classical IP&#8217;s octet  boundaries. Networks created along other boundaries (such as a /23 or a /25  instead of a /24) couldn&#8217;t be routed. Thus, they were deemed useful only  locally. CIDR changed that by doing away with the old routable classes. Under  CIDR&#8217;s rules, anything from a /5 to a /32 prefix could be routed. Thus, the old,  easy delineation between a subnet and a network was rendered obsolete. The  difference between a subnet and a network address is now just semantic.</p>
<p class="docText">A practical implication of this evolutionary step is that now  you <span class="docEmphasis">must</span> pass subnet mask information explicitly  as part of the routing information. Thus, masks are still essential! If  anything, the term <span class="docEmphasis">subnet mask</span> has become a  misnomer that only contributes to confusion. It is properly termed a <span class="docEmphasis">network mask</span>. In fact, the shorthand convention of a  slash followed by the number of bits used to identify the network address is  intended just for human use. When configuring routers, you are still expected to  enter the subnet mask in good old-fashioned dotted-quad style. Thus, instead of  specifying a /23 route, you must enter a mask of 255.255.254.0. In binary, that  translates into</p>
<blockquote>
<p class="docList">11111111.11111111.11111110.0000000</p>
</blockquote>
<p class="docText">Without the mask, it would be impossible to determine how many  bits of a CIDRized IP address were used to identify the network versus the hosts  within that network.</p>
<p class="docText">CIDR obviously had a dramatic impact on routers and routing  protocols. It required a comprehensive upgrade to the Internet&#8217;s infrastructure  before it could be implemented and supported. Despite the logistics and cost of  this migration, CIDR became an unqualified success.<a name="idd1e19333"></a><a name="idd1e19338"></a><a name="idd1e19343"></a><a name="idd1e19350"></a><a name="idd1e19357"></a><a name="idd1e19364"></a><a name="idd1e19369"></a><a name="idd1e19376"></a></p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9zeW1tZXRyeS1vZi1jaWRyLW5vdGF0aW9uL3xTeW1tZXRyeSBvZiBDSURSIE5vdGF0aW9u' title='Extend Symmetry of CIDR Notation' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/symmetry-of-cidr-notation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CIDR: An Historic Review</title>
		<link>http://www.ciscotrick.com/cidr-an-historic-review/</link>
		<comments>http://www.ciscotrick.com/cidr-an-historic-review/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:16:45 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=103</guid>
		<description><![CDATA[CIDR was defined in RFCs 1517 through 1520, published in  September 1993. As you peruse these documents, you can&#8217;t help but notice the  sense of urgency with which the IETF was grasping for a solution to its  impending address crisis. The Internet&#8217;s commercialization wrought a dramatic  and rapid evolution in its [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">CIDR was defined in RFCs 1517 through 1520, published in  September 1993. As you peruse these documents, you can&#8217;t help but notice the  sense of urgency with which the IETF was grasping for a solution to its  impending address crisis. The Internet&#8217;s commercialization wrought a dramatic  and rapid evolution in its size, scope, and user base. Once just populated with  a few academic and research bodies collaborating on DARPA, the Internet quickly  grew to global proportions. Its user community also spanned the gamut, including  an ever-increasing number of users who tried desperately to figure out how to  make money off the Net. The effect was rapidly increasing pressure on all the  Internet&#8217;s internal support mechanisms, including its address space, that  threatened to collapse the Internet itself.<span id="more-103"></span><a name="idd1e17613"></a><a name="idd1e17618"></a><a name="idd1e17623"></a><a name="idd1e17628"></a><a name="idd1e17635"></a><a name="idd1e17642"></a></p>
<p class="docText">Specific areas of concern for the IESG included the  following:</p>
<ul>
<li>
<p class="docText"><a name="idd1e17659"></a><span class="docEmphStrong">Impending  depletion of the Class B address range</span> The tremendous gap between the  number of hosts available on a Class C network versus a Class B network meant  that many Class B networks were being assigned to small companies that needed  more addresses than the Class C network could provide.</p>
</li>
<li>
<p class="docText"><a name="idd1e17670"></a><span class="docEmphStrong">Bloating of  the Internet routing tables</span> Determining which route any given packet  should take requires a table lookup. The larger the Internet&#8217;s routing table,  the more time on average any given routing decision takes. The Internet&#8217;s rapid  expansion can best be explained by pointing out that the size of the Internet&#8217;s  routing tables was doubling approximately every 12 months during the early  1990s. According to Moore&#8217;s Law, processing power doubles approximately every 18  months. Consequently, the routing tables were growing faster than technology  could keep up! That slowed down routing across the Internet and threatened to  disrupt its functionality unless checked.</p>
</li>
<li>
<p class="docText"><a name="idd1e17681"></a><span class="docEmphStrong">IP address  space exhaustion</span> Ostensibly, the Class B space would deplete first, and  that would trigger a chain reaction that would place increasing pressure on the  remaining classes.</p>
</li>
</ul>
<p class="docText">With these concerns for their motivation, the IESG studied the  problems plaguing the IP address space extensively. They documented their  recommendations in RFC 1380, which was published in November 1992. This document  posited CIDR as the solution to the first two problems. CIDR remained to be  developed, but enough of its desired functionality was spelled out in RFC 1380  that the Internet community could appreciate the impending changes.<a name="idd1e17703"></a><a name="idd1e17708"></a><a name="idd1e17713"></a><a name="idd1e17718"></a><a name="idd1e17725"></a><a name="idd1e17732"></a></p>
<p class="docText">At this point in time, nobody within the IETF was certain  exactly how to solve the looming address crisis. Consequently, they attacked in  all feasible directions. Specifying a classless IP architecture was but one of  the myriad tactics deployed to buy enough time for IPv6 to be developed.  Implicit in this statement is the fact that, like the various stopgap  technologies we examined in <span class="docLink">Chapter  5</span>, nobody really expected CIDR to be more than just another stepping-stone  to IPv6.</p>
<p><a name="ch06lev2sec1"></a></p>
<h1 class="docSection2Title">CIDR: An Architectural Overview</h1>
<p class="docText">The IETF witnessed the successful grassroots innovation of VLSM  and appreciated the significance of moving beyond octet boundaries in the IP  addressing architecture. With subnets, this was a trivial endeavor: A subnet  mask, regardless of whether it is of fixed or variable length, is of local  significance only. In other words, routers do not use subnet addresses to decide  on optimal paths through a network. However, embracing a bit-level definition of  network addresses would have a tremendous impact on routers and how they  calculate routes.<a name="idd1e17771"></a><a name="idd1e17776"></a><a name="idd1e17781"></a><a name="idd1e17788"></a><a name="idd1e17795"></a><a name="idd1e17802"></a><a name="idd1e17805"></a></p>
<p class="docText">The previous method of operation was the class-based addressing  architecture that we examined in <span class="docLink">Chapter  2</span>, &#8220;Classical IP: The Way It Was.&#8221; Classical IP used the leftmost bits of  leftmost octet to determine an address&#8217;s class. It was possible to identify the  class of any IP address simply by examining its first octet in binary form. By  identifying in which bit position a 0 first appeared, you could determine  whether it was a Class A, B, C, or D. After establishing an address&#8217;s class, a  router would know precisely how many bits of the 32-bit address it should use to  make routing decisions.</p>
<p class="docText">Abandoning the class-based approach enables a more efficient  use of an address space via more finely tunable address allocation. An even more  important change was that the mathematical boundaries of the old address classes  were done away with. Thus, the once-threatening problem of the depletion of  Class B addresses was solved. The solution came in two forms:</p>
<ul>
<li>
<p class="docList">Reducing demand for Class B address space</p>
</li>
<li>
<p class="docList">Increasing the potential supply of Class B-sized network  addresses</p>
</li>
</ul>
<p class="docText">The demand for Class B network addresses was seriously reduced  simply by letting network addresses be created by bit boundaries, as opposed to  octet boundaries. Thus, if a Class C (24-bit) network were too small, you could  get a 23-bit, 22-bit, 21-bit, and so on network instead of just jumping right to  a 16-bit network block.</p>
<p class="docText">The potential supply of 16-bit-sized networks was greatly  increased by eliminating the mathematical boundaries of the old address classes.  Under the CIDR rules, any sized network block could be created from anywhere in  the 32-bit addressing system. An additional benefit of CIDR was that smaller  networks could still be carved from larger network blocks. In the class-based  architecture, this was known as subnetting. Subnets, as you have seen in  previous chapters, violated the class-based architecture. Thus, they couldn&#8217;t be  routed but were invaluable for creating local subnetworks.<a name="idd1e17848"></a><a name="idd1e17853"></a><a name="idd1e17858"></a><a name="idd1e17865"></a><a name="idd1e17872"></a></p>
<p class="docText">In a CIDRized environment, abandoning the rigid hierarchy of  class-based addresses in favor of bit-level boundaries created a huge problem  for routers: How do you figure out how many bits are significant for routing?  The answer was to expand the use of subnet masks and to make them routable  instead of just of local significance. In this fashion, the boundary or  distinction between subnet masks and network blocks became perfectly blurred.  Today, the distinction is almost semantic. It depends on how aggregatable your  address distribution scheme is and how your routers are configured. If the word  aggregatable leaves you scratching your head, fear not! It&#8217;s not as complex as  it sounds. We will look at aggregatability later in this chapter. For now, let&#8217;s  take a closer look at CIDR notation.</p>
<p><a name="ch06lev3sec1"></a></p>
<h1 class="docSection3Title">CIDR Notation</h1>
<p class="docText">It is imperative that you understand CIDR notation, including  what it is and what it isn&#8217;t. CIDR notation has become the predominant paradigm  for conveying the size of a network&#8217;s prefix. But it is just a human-friendly  form of shorthand. When you configure routers, you must still use the  dotted-quad style of IP mask. For example, 255.255.255.248 is the equivalent of  a /29. It should be obvious which one is easier to use.<a name="idd1e17903"></a><a name="idd1e17908"></a></p>
<p class="docText"><span class="docLink">Table 6-1</span> shows the  valid range of CIDR block sizes, the corresponding bitmask, and how many  mathematically possible addresses each block contains. If this table looks  familiar, it&#8217;s because of the similarities between CIDR and VLSM. You&#8217;ve seen  some of this data before, in <span class="docLink">Table 4-1</span>. CIDR notation was included  with that table simply to make it easier for you to go back and compare VLSM  with CIDR.</p>
<p><a name="ch06table01"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 6-1. CIDR Notation</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">CIDR</span> <span class="docEmphStrong">Notation</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal Mask</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Number of Possible Host  Addresses</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/5</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">248.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">134,217,728</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/6</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">252.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">67,108,864</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">254.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">33,554,432</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/8</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">16,777,216 (Class A network)</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/9</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.128.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">8,388,608</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/10</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.192.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">4,194,304</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/11</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.224.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">2,097,152</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/12</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.240.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">1,048,576</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/13</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.248.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">524,288</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/14</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.252.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">262,144</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/15</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.254.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">131,072</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/16</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">65,536 (Class B network)</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/17</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.128.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">32,768</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/18</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.192.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">16,384</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/19</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.224.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">8,192</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/20</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.240.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">4,096</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/21</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.248.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">2,048</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/22</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.252.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">1,024</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/23</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.254.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">512</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/24</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">256 (Class C network)</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/25</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.128</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">128<a name="idd1e18271"></a><a name="idd1e18276"></a><a name="idd1e18281"></a><a name="idd1e18288"></a><a name="idd1e18295"></a></p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/26</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.192</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">64</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/27</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.224</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">32</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/28</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.240</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">16</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/29</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.248</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">8</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/30</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.252</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">4</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/31</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.254</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">2</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/32</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">255.255.255.255</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">1</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">This table omits network masks /1 through /4 because they are  invalid. The largest network permitted under current CIDR rules is a /5. A /5 is  sometimes called a <span class="docEmphasis">superblock</span> because it is  equivalent to eight Class A address blocks. Such an enormous address block is  not made available for end-user organizations on the Internet. Instead, a /5  might be allocated to a regional registry for use in providing IP address block  assignments to service providers and/or large end-user organizations in the  registry&#8217;s home region.<a name="idd1e18412"></a><a name="idd1e18417"></a><a name="idd1e18422"></a><a name="idd1e18429"></a><a name="idd1e18436"></a></p>
<p><a name="ch06lev3sec2"></a></p>
<h1 class="docSection3Title">Backward Compatibility with Classical IP</h1>
<p class="docText">Backward compatibility is always a critical issue whenever a  technological advancement is proposed. CIDR was no exception. You know, based on  your reading thus far in the book, that Classical IP has become obsolete.  However, CIDR represented more of an extension of Classical IP than a complete  rewrite. The backward compatibility was almost complete: The entire 32-bit  address space was preserved, as was support for all previously assigned IP  addresses. The notion of splitting an address into host and network address  subfields was also retained. As you&#8217;ll see throughout this chapter, CIDR  represented nothing more than a complete legitimization of the classical form of  VLSM. The degree of backward compatibility with Classical IP ensured CIDR&#8217;s  success. The classes themselves were abolished, yet the address space  survived.<a name="idd1e18476"></a><a name="idd1e18481"></a><a name="idd1e18488"></a></p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9jaWRyLWFuLWhpc3RvcmljLXJldmlldy98Q0lEUjogQW4gSGlzdG9yaWMgUmV2aWV3' title='Extend CIDR: An Historic Review' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/cidr-an-historic-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interim Solutions</title>
		<link>http://www.ciscotrick.com/interim-solutions/</link>
		<comments>http://www.ciscotrick.com/interim-solutions/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:15:35 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=98</guid>
		<description><![CDATA[The old saw  still cuts true: Every little bit helps. In that spirit, the IETF  attacked in all directions as it tried to stave off the impending, projected  Date of Doom. Some of the measures, as you&#8217;ve seen so far in this chapter, were  fairly dramatic, big-ticket items. Others were remarkably [...]]]></description>
			<content:encoded><![CDATA[<p class="docText"><a name="idd1e15897"></a><span class="docEmphRoman">The old saw  still cuts true</span>: Every little bit helps. In that spirit, the IETF  attacked in all directions as it tried to stave off the impending, projected  Date of Doom. Some of the measures, as you&#8217;ve seen so far in this chapter, were  fairly dramatic, big-ticket items. Others were remarkably simple and easy, yet  effective. In this section, I&#8217;ll show you some of the simple items that helped  the Internet cope with its addressing crisis. These efforts included some  measures to increase the pool of available address space. Others were intended  to set the stage for abolishing class-based network architectures in favor of a  classless architecture.<span id="more-98"></span><a name="idd1e15907"></a><a name="idd1e15914"></a><a name="idd1e15919"></a><a name="idd1e15926"></a><a name="idd1e15931"></a></p>
<p class="docText">Here are some of the quick fixes employed by the IETF:</p>
<ul>
<li>
<p class="docList">Emergency reallocation of classful address spaces</p>
</li>
<li>
<p class="docList">Emergency rationing of the remaining address spaces</p>
</li>
<li>
<p class="docList">Urging holders of over-sized class-based addresses to return  any unused or underused blocks</p>
</li>
<li>
<p class="docList">Reserving address blocks for use in private networks but not  across the Internet</p>
</li>
<li>
<p class="docList">Changing the criteria for obtaining address spaces to make it  significantly more difficult for enterprises and organizations to get their own  address space</p>
</li>
</ul>
<p class="docText">Each of these tactics helped, in some small way, to stave off  the Date of Doom. Cumulatively, they revolutionized how the Internet is accessed  and used. Internet users are still experiencing the impacts of these changes  today, sometimes for the first time. Throughout the remainder of this chapter,  we&#8217;ll examine each of these tactics and their impacts on IP network users so  that you can better appreciate some of the subtle challenges inherent in  obtaining and managing an IP address space in today&#8217;s environment.</p>
<p class="docText">One of the other, more-significant proposals that emanated from  the IETF&#8217;s emergency effort was to more fully embrace the concepts proven in  VLSM. Although VLSM was just a grassroots innovation, there was tremendous  benefit in being able to flexibly devise subnet masks. Logic fairly dictates  that there would be even more benefit if network masks (as opposed to just  subnet masks) were equally flexible. Imagine being able to define network  addresses at any bit boundary! Unfortunately, that would require an almost  complete rewrite of the IPv4 address space and its supporting protocols. That&#8217;s  nearly as big a change as IPv6. This proposal ultimately came to be known as  Classless Interdomain Routing (CIDR). CIDR would abandon class-based addresses  in favor of bit-boundary network definitions. We&#8217;ll look at CIDR and its  architecture, symmetry, benefits, and uses in <span class="docLink">Chapter 6</span>. For now, let&#8217;s continue to focus on the  IETF&#8217;s quick fixes.<a name="idd1e15995"></a><a name="idd1e16002"></a><a name="idd1e16007"></a><a name="idd1e16014"></a><a name="idd1e16019"></a><a name="idd1e16024"></a><a name="idd1e16029"></a></p>
<p><a name="ch05lev2sec3"></a></p>
<h1 class="docSection2Title">Emergency Reallocation</h1>
<p class="docText">One of the simpler devices in the IETF&#8217;s bag of tricks to buy  time was documented in RFC 1466. This document basically called for the as-yet  still-unused Class C network address space to be reallocated into larger,  equal-sized blocks. These blocks could then be allocated to regional registries  to satisfy the growing and increasingly global demand for Internet access.</p>
<p class="docText"><span class="docLink">Table 5-1</span> shows the  new allocation scheme, including the specific address blocks that were  reallocated.</p>
<p><a name="ch05table01"></a></p>
<table border="0" cellspacing="0" cellpadding="4" width="100%" frame="hsides" rules="rows">
<caption>
<h5 class="docTableTitle">Table 5-1. RFC 1466 Renumbering</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">CIDR</span> <span class="docEmphStrong">Block Size</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Base Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Terminal  Address</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">193.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">194.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">195.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">196.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">197.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">198.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">199.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">200.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">201.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">202.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">203.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">204.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">205.255.255.255</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText">/7</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">206.0.0.0</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">207.255.255.255</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">These blocks are huge. In fact, they represent the equivalent  of two Class A network blocks. You might question how serious the impending  address shortage could have been given that so many addresses were still  available. That&#8217;s a fair question, but you have to remember that this was a  <span class="docEmphasis">proactive</span> initiative to shore up the impending  depletion of the <span class="docEmphasis">Class B</span> address space. The IETF  was using all the resources at its disposal to ensure that a failure did not  occur.</p>
<p class="docText">The important thing to note about this reallocation was that it  set the stage for two things:</p>
<ul>
<li>
<p class="docList">Due to the fact that the large reallocated blocks were to be  handed out to global registries, route aggregation could be done much more  effectively as the Internet scaled to global proportions.</p>
</li>
<li>
<p class="docList">Migration away from a class-based address architecture toward a  more flexible bit-level definition. (This approach came to be known as Classless  Interdomain Routing [CIDR]. It is thoroughly examined in <span class="docLink">Chapter 7</span>.) Removing so many addresses from the pool  of available Class C networks was a powerful statement of the IETF&#8217;s intention  to evolve away from the class-based addressing system.<a name="idd1e16227"></a><a name="idd1e16234"></a><a name="idd1e16239"></a><a name="idd1e16246"></a><a name="idd1e16251"></a><a name="idd1e16256"></a><a name="idd1e16261"></a></p>
</li>
</ul>
<p class="docText">Each of these aspects warrants closer inspection.</p>
<p><a name="ch05lev3sec3"></a></p>
<h1 class="docSection3Title">Improving Aggregatability</h1>
<p class="docText">Reallocation of unassigned Class C network blocks enabled a  dramatic improvement in route aggregatability in comparison to the previous  size-based classful architecture. Aggregatability is a mouthful of a word that  simply means the ability to be aggregated, or lumped together. Stop and think  about that: This inventory of Class C blocks was previously handed out directly  to end-user organizations solely on the basis of size. This meant there was  little, if any, correlation between numeric contiguity (which is an absolute  prerequisite to route aggregation) and geographic location. There was, however,  a near-perfect correlation between numeric contiguity and the size of end-user  networks. Unfortunately, for routing purposes, that&#8217;s a useless correlation!<a name="idd1e16276"></a><a name="idd1e16281"></a></p>
<p class="docText">RFC 1466 sought to correct this deficiency inherent in the  original class-based IPv4 architecture by creating an inventory of &#8220;superblocks&#8221;  that could be distributed to regional Internet registries. In <span class="docLink">Chapter 1</span>, &#8220;Developing the Internet&#8217;s Technologies,&#8221;  you learned that registries are entities responsible for parsing address blocks  within global regions. Examples that might jog your memory include APNIC, RIPE,  and ARIN.</p>
<p class="docText">Creating very large blocks of addresses for those registries to  distribute within their region automatically meant that, over time, route  aggregation around the world would improve. This was deigned necessary to bring  the Internet&#8217;s address space into alignment with its evolving needs.  Specifically, commercialization meant globalization. Globalization meant scales  previously unheard of for a single internetwork. It also meant that distributing  addresses in a manner that precluded any meaningful aggregation could no longer  be afforded.</p>
<p><a name="ch05lev3sec4"></a></p>
<h1 class="docSection3Title">Introduction to a Classless Environment</h1>
<p class="docText">The other aspect of RFC 1466&#8217;s impact was to set the stage for  introducing a classless address system. This aspect is very subtle and requires  some thought to appreciate. The reallocation of Class C-sized networks into  superblocks meant that <span class="docEmphasis">all</span> demands for address  spaces within geographic regions would be satisfied via those superblocks,  regardless of the size of those demands. Having examined the mathematics of the  class-based IPv4 architecture in <span class="docLink">Chapter  2</span>, you know how early routers determined how many bits of an IP address were  used for the network portion of the address. They examined the 32-bit address  (in binary) and looked to see where the first binary 0 appeared in the leftmost  octet of that address. RFC 1466 undermined this old approach, because all the  superblocks (and, consequently, all the network addresses created from them)  were from the old Class C range. Thus, another mechanism would be absolutely  essential in determining how many bits of an IP address from this range were  used for the network address.<a name="idd1e16318"></a><a name="idd1e16325"></a><a name="idd1e16330"></a><a name="idd1e16337"></a><a name="idd1e16342"></a><a name="idd1e16347"></a><a name="idd1e16352"></a><a name="idd1e16355"></a></p>
<p class="docText">This is where CIDR comes in. It is, unarguably, the most  significant of the IPv4 enhancements to come out of the Date of Doom  mobilization, and it is complex enough to warrant its own chapter. For now,  suffice it to say that RFC 1466 set the stage for deploying CIDR globally. The  basis for CIDR predated RFC 1466, but the version that became standard came  later, in RFCs 1517 through 1520. Thus, the chronology fits. The IETF knew how  it wanted to evolve the address space, so it used RFC 1466 to create a pool of  addresses to support this evolution. Doing so allowed it to finalize the details  of classless addressing.</p>
<p><a name="ch05lev2sec4"></a></p>
<h1 class="docSection2Title">The Net 39 Experiment</h1>
<p class="docText">An initiative closely related to RFC 1466 was a series of  experiments designed to demonstrate how the huge Class A address space could be  used more efficiently. Dubbed the <span class="docEmphasis">Net 39  Experiment</span> for its use of address space 39.0.0.0, these tests validated  the concept of routing to variable-length network masks. This was important  because the IPv4 address space itself wasn&#8217;t in danger of depletion. Indeed,  plenty of Class A and C network blocks were left! Only Class B was coming under  pressure. But using addresses from different numeric ranges meant completely  rewriting IP&#8217;s address architecture and supporting protocols. You wouldn&#8217;t want  to undertake such an endeavor without first testing your concepts extensively.<a name="idd1e16385"></a><a name="idd1e16392"></a><a name="idd1e16397"></a><a name="idd1e16404"></a></p>
<p class="docText">The Class A address space was particularly important to test  because it represented fully half the total IPv4 addresses. Unfortunately, each  Class A block was so huge as to be impractical for end-user organizations.  Consequently, many of those blocks sat idle while the Class B space was  endangered. The experiments to understand Class A subnetting were documented in  RFCs 1797 and 1879. Knowing how much address space was locked away in  impractically large blocks, the IETF was very motivated to find a way to use  them. There were more than enough addresses there to stave off the impending  addressing crisis almost indefinitely.</p>
<blockquote>
<h1>NOTE</h1>
<p class="docText">
RFC 1897, published in January 1996, presents an interesting juxtaposition that helps you better appreciate the stopgap nature of many of the technologies presented in this chapter. That RFC, published concurrently with many of the other RFCs mentioned in this chapter, allocated addresses for use in testing IPv6.</p></blockquote>
<p class="docText">The output of this trial was used to figure out what would  happen if an address block from one class were used in a way that was  inconsistent with its original intent. For example, a Class A address (network  39.0.0.0 was used) could be assigned to an ISP. That ISP could then carve it  into smaller networks for assignment to end users. Thus, a customer could be  given a Class C-sized network created within 39.0.0.0. For the sake of  continuing this example, let&#8217;s say an ISP customer was given 39.1.1.0/24. One of  the more obvious problems encountered was that routers would tend to look at  39.1.1.0/24 and treat it as 39.0.0.0/8. That was always true if a classful  interior routing protocol were used. In retrospect, that shouldn&#8217;t be so  surprising.<a name="idd1e16435"></a><a name="idd1e16442"></a><a name="idd1e16447"></a><a name="idd1e16454"></a></p>
<p class="docText">From this research came the conclusion that the Class A address  space could be carved up to shore up the rapidly depleting IPv4 address spaces.  However, some constraints were necessary to ensure that routing across the  Internet was not adversely affected.</p>
<p class="docText">One of the constraints deemed necessary for the Internet to  continue functioning properly was how convoluted its topology could become. The  IETF recommended against end-user organizations connecting to more than one ISP,  because this meant that the network block of such organizations would have to be  supported by each of their ISPs. That would directly increase the number of  routes that the Internet would have to support. Perhaps the most intriguing  aspect of the Net 39 Experiment RFCs was that, at this stage of the IPv4 address  space&#8217;s development, the IETF was thinking in terms of both classful and  classless (CIDR) addressing and routing. However, they recognized that you  couldn&#8217;t ensure problem-free internetworking if you needed to support both  simultaneously. Thus, all classful interior routing protocols (known more  commonly as <span class="docEmphasis">Interior Gateway Protocols</span> [IGPs])  were deemed historic. The message was clear: The tests were successful, and that  opened the door for a classless address architectureCIDR.</p>
<p><a name="ch05lev2sec5"></a></p>
<h1 class="docSection2Title">Emergency Call for Unused Addresses</h1>
<p class="docText">Not wanting to overlook even the most obvious of opportunities  in their quest to prop up the failing IPv4 address space, the IETF issued RFC  1917 in February 1996. Although it doesn&#8217;t stipulate any technology and,  consequently, could be termed an information RFC, this document has achieved the  status of an Internet <span class="docEmphasis">Best Current Practice</span>. It  remains in effect as BCP #4.<a name="idd1e16499"></a><a name="idd1e16506"></a><a name="idd1e16511"></a><a name="idd1e16518"></a><a name="idd1e16523"></a><a name="idd1e16528"></a><a name="idd1e16531"></a></p>
<p class="docText">This RFC was unarguably the simplest of the stopgap measures:  It called for people to voluntarily surrender any unused or underutilized  address spaces. In theory, this would result in a temporary increase in their  inventory of available and assignable address spaces and would let that  inventory be parsed out in aggregatable blocks to Internet service providers  (ISPs). Two primary target audiences were identified in this RFC:<a name="idd1e16537"></a><a name="idd1e16544"></a><a name="idd1e16549"></a><a name="idd1e16556"></a><a name="idd1e16561"></a><a name="idd1e16566"></a><a name="idd1e16569"></a></p>
<ul>
<li>
<p class="docList">Holders of IP address blocks that were too large for their  requirements</p>
</li>
<li>
<p class="docList">Holders of IP address blocks that required IP addresses to  support IP-based applications but who were isolated from the  Internet</p>
</li>
</ul>
<p class="docText">For different reasons, each of these communities represented an  opportunity to reclaim addresses that were currently being wasted.</p>
<p><a name="ch05lev3sec5"></a></p>
<h1 class="docSection3Title">Oversized Block Assignments</h1>
<p class="docText">The more pragmatic side of this request was an acknowledgment  that many existing holders of IP address blocks were given blocks larger than  they needed due to the inefficiency of the class-based architecture. In a  classless environment, network prefixes can be established on any bit boundary.  Thus, it is possible to more precisely tailor a network block to an Internet  user community&#8217;s actual needs. For example, if an organization needed 450 IP  addresses, in a classful environment they would have been given a Class B  address block. However, in a classless environment, they could be given a  network with 512 addresses instead of 65,535. You could logically expect that a  large number of the holders of Class B space would be able to return at least  half of the space they were originally allocated. The point is that <span class="docEmphasis">many</span> very usable and routable blocks could be harvested  from organizations that grabbed a Class B network space but needed only hundreds  of addresses. These blocks could be freed up for reallocation to other  organizations if and only if a mechanism were developed that enabled the  definition of network blocks on bit boundaries instead of octet boundaries.<a name="idd1e16613"></a><a name="idd1e16616"></a><a name="idd1e16621"></a></p>
<p><a name="ch05lev3sec6"></a></p>
<h1 class="docSection3Title">Isolation from the Internet</h1>
<p class="docText">Many companies required IP and, consequently, IP addresses to  support a base of networked applications without really requiring access to the  Internet. Others chose to embrace IP for their internal communication  requirements but could not connect to the Internet for fear of compromising the  security of their networked computing assets. In theory, obtaining legitimate IP  addresses was the &#8220;right&#8221; thing to do. I can remember very specific instances in  which two network engineers would be on opposite sides of this issue. One would  argue that, because the network in question would never be connected to the  Internet, there was no reason to obtain &#8220;legal&#8221; IP addresses. The other would  invariably argue from the purists&#8217; perspective. You can&#8217;t predict the future,  and your requirements might change, so do it right the first time! With that  supporting logic, they would advocate obtaining real IP addresses.<a name="idd1e16651"></a><a name="idd1e16656"></a></p>
<p class="docText">There was no good way to settle this argument. Neither position  was clearly right or wrong. It was more a matter of what you believed. Even the  existence of RFC 1597, with its private address spaces, didn&#8217;t really settle the  argument. Those addresses were reserved for private networks but didn&#8217;t mandate  their use. With RFC 1917, the correct answer was that in the best interests of  the Internet community, you shouldn&#8217;t waste &#8220;real&#8221; IP addresses for an isolated  network. Instead, the IETF urged you to save those addresses for use in routing  across the Internet. Private IP networks, regardless of size, should use the  addresses stipulated in RFC 1918 (which were previously reserved in RFC 1597,  but as class-based address blocks).<a name="idd1e16673"></a><a name="idd1e16678"></a></p>
<p class="docText"><a name="idd1e16685"></a><span class="docEmphRoman">The great  debate had finally been settled</span>: Don&#8217;t use real IP addresses unless you  need to route over the Internet. This gave the caretakers of the Internet&#8217;s  address space (IANA and its myriad delegate organizations) a clear directive as  well as a means of enforcement.<a name="idd1e16698"></a><a name="idd1e16705"></a><a name="idd1e16710"></a><a name="idd1e16717"></a><a name="idd1e16722"></a><a name="idd1e16727"></a><a name="idd1e16730"></a></p>
<p class="docText">Although that was all very well and good, and it would  certainly help slow down the rate of address consumption, something still needed  to be done about all the past decisions that had already been made. Quite  simply, the purists of the world were sitting on a substantial number of address  blocks that were being used on isolated networks! This represented a tremendous  potential pool of addresses that could greatly mitigate the address crisis being  experienced. The IETF and IANA would embark on an aggressive campaign to  identify and reclaim unused and underused address spaces. This effort was  largely successful, but, as you&#8217;ll see in <span class="docLink">Chapter 13</span>, &#8220;Planning and Managing an Address Space,&#8221;  it did induce some very unexpected behaviors in terms of evolving address-space  management tactics!</p>
<p><a name="ch05lev2sec6"></a></p>
<h1 class="docSection2Title">Preserving Address Block Integrity</h1>
<p class="docText">One of the more subtle problems plaguing the Internet during  the early to mid-1990s was a side effect of address space depletion. This side  effect was the rate at which the Internet&#8217;s routing tables were growing. As you  saw earlier in this chapter, the size of a network&#8217;s routing tables are crucial  to that network&#8217;s end-to-end performance. Routing tables can expand for numerous  reasons. In addition to the exponential rate of growth it was experiencing, the  Internet&#8217;s tables were expanding for three primary reasons:<a name="idd1e16755"></a><a name="idd1e16762"></a><a name="idd1e16769"></a><a name="idd1e16776"></a><a name="idd1e16783"></a><a name="idd1e16790"></a></p>
<ul>
<li>
<p class="docList">Class-based addresses still being assigned to new customers had  legacy effects. RFC 1466, as you just saw, was a huge step toward minimizing  such legacy effects. By converting so many class-based network addresses into  classless address space, the IETF sought to make as clean a break as possible  from the old, obviously inefficient, class-based IPv4 addressing.</p>
</li>
<li>
<p class="docList">Customers leaving their ISPs did not return their address  blocks. This forced the new ISP to support routing for those specific blocks of  addresses.</p>
</li>
<li>
<p class="docList">End users of the Internet were applying for their own address  blocks instead of using blocks assigned to them by an ISP.</p>
</li>
</ul>
<p class="docText">The last two items are interrelated. Rather than trying to  explore them separately, it makes more sense to my twisted way of thinking to  examine them from the perspective of their practical impacts on the Internet.  Essentially, how well or how poorly you manage an address space is evident in  how well the routes for that space aggregate or fragment. Aggregation is rolling  smaller network addresses into larger network addresses without affecting routes  to those networks. For example, instead of listing 10.10.1.0/24, 10.10.2.0/24,  10.10.3.0/24, and so on up to 10.10.255.0/24, you could aggregate all those  network blocks into just 10.10.0.0/16. This larger block tells the rest of the  world how to access all the smaller network blocks that may be defined from that  /16 block.</p>
<p class="docText"><a name="idd1e16825"></a><span class="docEmphRoman">Fragmentation  is the opposite of aggregation</span>: Network addresses are so numerically  dissimilar and discontiguous as to defy aggregation. If aggregation isn&#8217;t  possible, the routers in the internetwork must remember a discrete route to each  network. This is inefficient and can hurt the internetwork&#8217;s performance.<a name="idd1e16832"></a><a name="idd1e16839"></a><a name="idd1e16846"></a><a name="idd1e16853"></a><a name="idd1e16860"></a><a name="idd1e16867"></a></p>
<p class="docText">Aggregation and fragmentation are best thought of as extremes,  with infinite room for compromise in between. The politics of Internet  governance have basically pitted Internet end-user organizations against ISPs in  an ongoing struggle between these two idealistic extremes.</p>
<p class="docText">These impacts include route aggregation (and how it was damaged  by rapid growth using Classical IP addressing rules) and the effects of directly  registered customer address blocks. Examining these two impacts from a practical  perspective will help you better appreciate how the Internet&#8217;s address-space  policies and rules have evolved over time and why things are the way they  are.</p>
<p><a name="ch05lev3sec7"></a></p>
<h1 class="docSection3Title">Aggregation Versus Fragmentation</h1>
<p class="docText">The addition of lots of new networks to the Internet would not  necessarily contribute to the bloat of the Internet&#8217;s routing tables. In theory,  new networks (and their addresses) could be added to the Internet without  increasing its routing tables if those network addresses were correlated  regionally and/or by service provider. In other words, a clever approach to  managing address assignment could accommodate tremendous growth with little to  no impact on the Internet&#8217;s routing tables simply by keeping numerically similar  network addresses clumped together in a region. You could route from around the  world to that region using only the highest-order bits of those related network  addresses.<a name="idd1e16890"></a><a name="idd1e16895"></a><a name="idd1e16898"></a><a name="idd1e16901"></a><a name="idd1e16904"></a><a name="idd1e16911"></a></p>
<p class="docText">Although this might sound like a Utopian ideal, it is actually  quite practical and realistic. To better demonstrate how such a scheme would  work, consider the following example. An ISP is granted a relatively large block  (let&#8217;s say a Class B-sized block). It then carves this block into smaller blocks  that it can assign to its customers. As far as the rest of the Internet is  concerned, a single routing table entry would be required to that Class B-sized  (/16) network address. This concept is known as <span class="docEmphasis">route  aggregation</span>.</p>
<p class="docText">To see how this works, refer to <span class="docLink">Figures 5-1</span> and <span class="docLink">5-2</span>. <span class="docLink">Figure 5-1</span> demonstrates four ISP customers buying access to the Internet but using their  own IP address space. For the sake of this example, I have used the addresses  reserved in RFC 1918 instead of real addresses. The last time I used a real host  address in a book, I caught an earful from the administrator of that box!  Getting back to the point, even though these addresses are fictitious, they are  too far apart numerically to be reliably aggregated. Thus, the ISP would have to  advertise each one individually to the rest of the Internet.</p>
<p class="docText" style="text-align: center;"><strong>Figure 5-1. ISP Supporting Directly-Registered Customer Address Blocks</strong></p>
<p class="docText" style="text-align: center;"><img class="aligncenter size-full wp-image-99" title="isp_supporting_directly-registered_customer_address_blocks" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/isp_supporting_directly-registered_customer_address_blocks.jpg" alt="" width="500" height="232" /><br />
<strong><br />
Figure 5-2. Route Aggregation of an ISP Using ISP-Provided Address Blocks</strong></p>
<p class="docText"><img class="aligncenter size-full wp-image-100" title="route_aggregation_of_an_isp_using_isp-provided_address_blocks" src="http://www.ciscotrick.com/wp-content/uploads/2008/08/route_aggregation_of_an_isp_using_isp-provided_address_blocks.jpg" alt="" width="500" height="232" /></p>
<p class="docText">
<p class="docText">In real life, a service provider would probably have hundreds  of customers, but that would make for a very cluttered illustration! <span class="docLink">Figure 5-2</span> shows how those customers could  each use a smaller block carved from the ISP&#8217;s 16-bit network address.</p>
<p class="docText">Route aggregation, in the simplistic interpretation shown in <span class="docLink">Figure 5-2</span>, directly contributes to a  reduction in the size of the Internet&#8217;s routing tables. If each of the ISP&#8217;s  customers had its own unique network addresses, each would have to be announced  to the Internet. More to the point, each network address would require its own  entry in every routing table of every router in the Internet. Instead, four  routing table entries can be satisfied with a single entry in the Internet,  because the route through the Internet is the same for each of the four customer  networks. The routes start to differ only within the network of their mutual  service provider. This is the only part of the Internet that needs to track  routes to the four distinct customer network addresses. Thus, the entire world  uses just the first two octets of the service provider&#8217;s network address to  reach all its customer networks. Within that service provider&#8217;s network, the  third octet becomes significant for routing packets to their destination.</p>
<p class="docText">When viewed from this perspective, it seems perfectly logical  that the right way to provide Internet addressing is via a service provider&#8217;s  larger address blocks. But some problems are inherent with this approach.  Implementing an IP address scheme represents a potentially huge investment in  planning and effort. From an Internet user&#8217;s perspective, changing IP addresses  is undesirable, because it forces you to make the same investment in time and  effort without having anything to show for it.</p>
<p class="docText">Thus, although using service provider addresses does minimize  routing table bloat, and makes sense for the Internet, you have to realize that  benefits of this approach are asymmetrically distributed. That&#8217;s a euphemistic  way of saying that it is better for the Internet and ISPs than it is for the  owners/operators of networks that connect to the Internet. For those entities,  this approach can actually be harmful!</p>
<p class="docText">The danger of obtaining and using IP addresses from a service  provider is that the service provider &#8220;owns&#8221; them. In effect, you are leasing  the addresses for the duration of your service contract with that provider. If  you wanted to change service providers (maybe you found a better deal, or maybe  your provider doesn&#8217;t meet your performance requirements), you would have to  relinquish the &#8220;leased&#8221; addresses and obtain a new range from your new provider.  Changing service providers therefore would necessitate renumbering all your IP  endpoints! Renumbering becomes a very effective barrier to changing service  providers.<a name="idd1e17047"></a><a name="idd1e17054"></a><a name="idd1e17061"></a><a name="idd1e17068"></a><a name="idd1e17075"></a><a name="idd1e17082"></a></p>
<p><a name="ch05lev3sec8"></a></p>
<h1 class="docSection3Title">Directly-Registered Address Spaces</h1>
<p class="docText">It&#8217;s not difficult to see why ISP customers are motivated to  avoid changing their IP addresses. Renumbering endpoints is that onerous and  risky a proposition! The surest way to avoid having to renumber is to &#8220;own&#8221; your  IP addresses. Of course, you know that nobody really &#8220;owns&#8221; IP addresses except  IANA, but ownership in this sense means that an organization would have IP  addresses <span class="docEmphasis">registered directly in its name</span>. As  soon as an address block is registered directly to you, it is yours  foreverprovided, of course, that you don&#8217;t outgrow it or forget to pay the  annual fee.<a name="idd1e17117"></a></p>
<p class="docText">In the early days of the Internet, it was relatively easy to  obtain directly registered address spaces. Such spaces were said to be <span class="docEmphasis">portable</span>, because they were independent of service  provider address blocks. Thus, the holder of a directly registered address block  enjoyed the unparalleled freedom to change service providers at will without  having to worry about changing address blocks at the same time.</p>
<p class="docText">The drawback of this approach is, of course, the impact on the  Internet&#8217;s routing tables. Portability, more than any other factor, fragments  large, contiguous (and therefore aggregatable) address blocks. Unfortunately for  those end users, the Internet&#8217;s routing tables were outpacing technology in  their growth. They were becoming bigger at a faster pace than CPUs were  increasing in speed. Consequently, Internet performance was deteriorating  quickly, and the trend didn&#8217;t look good. This was one of the facets of the  impending Date of Doom that the IETF sought to obviate. One of the easy  scapegoats was the portability of network addresses.</p>
<p><a name="ch05lev3sec9"></a></p>
<h1 class="docSection3Title">Preventing Further Fragmentation</h1>
<p class="docText">End-user organizations highly prize portable address spaces.  But they are the bane of the Internet. The IETF sought to protect the Internet  by more specifically constraining address assignment practices to prevent any  further address space fragmentation. This effort was documented in RFC 2050. RFC  2050 is still in effect and is also Internet Best Current Practice #12.  Specifically, this document stipulated the rules and regulations regarding  subassignments of IP address spaces by ISPs.<a name="idd1e17145"></a><a name="idd1e17150"></a></p>
<p class="docText">The way it works is simple. An ISP&#8217;s customerif it didn&#8217;t  already have directly registered address blocks of its owncould obtain addresses  from its service provider. However, to preserve the integrity of large service  provider address blocks, those addresses had to be surrendered when the contract  for service ended. In other words, these addresses were <span class="docEmphasis">nonportable</span> and remained with the service provider with  which they were registered. That way, the ISP could advertise just a single,  large network address to the Internet that encompassed all its customer networks  created from that large block.</p>
<p class="docText">But if a customer wanted to move to a different service  provider to obtain a lower monthly recurring cost, it found itself in the  uncomfortable position of having to quickly renumber its entire network and all  its addressed endpoints. Adding insult to injury, the range it had to migrate to  was another nonportable address range supplied by the new service provider. Each  time the customer wanted to change providers, it had to go through the same  expensive, risky, painful process of renumbering endpoints.<a name="idd1e17167"></a><a name="idd1e17174"></a><a name="idd1e17181"></a><a name="idd1e17188"></a><a name="idd1e17195"></a><a name="idd1e17202"></a><a name="idd1e17209"></a><a name="idd1e17212"></a></p>
<p class="docText">RFC 2050/BCP 12 doesn&#8217;t do anything to mitigate this pain for  end users. Rather, it compels service providers to treat all their assignable  address space as nonportable, regardless of whether any given subset of it may  be globally routable. If an ISP chooses to disregard RFC 2050 and let  ex-customers keep their assigned space, it will eventually exhaust its address  space. That ISP will find it impossible to convince its regional Registry to  entrust it with more address space. An ISP without an inventory of available  network addresses cannot service any new customers. RFC 2050 seeks to prevent  further fragmentation of the Internet&#8217;s address space (which directly increases  the size of the Internet&#8217;s routing tables) by giving ISPs the incentive to  preserve the integrity of their existing blocks.</p>
<p><a name="ch05lev3sec10"></a></p>
<h1 class="docSection3Title">Rationing Directly Registered Addresses</h1>
<p class="docText">RFC 2050, in the absence of any other policy changes, was a  tweak to the nose of the Internet&#8217;s end-user community. It wasn&#8217;t intended to be  painful. Rather, it was designed as an emergency effort to ensure the Internet&#8217;s  continued operability. Such austerity measures are often palatable provided that  the pain is shared somewhat equitably. Because the end-user community bore the  brunt of the inconvenience caused by that RFC, they had every reason to be  upset. The only mitigating factor was that those organizations could shield  themselves from any pain just by having their own directly registered address  spacesthat is, they could until IANA started rationing new directly registered  address blocks.<a name="idd1e17242"></a><a name="idd1e17247"></a><a name="idd1e17252"></a><a name="idd1e17257"></a></p>
<p class="docText">This is where things started getting ugly. IANA exacerbated the  routability versus portability conflict when it tightened its policy on directly  registered address spaces. Organizations that wanted their &#8220;own&#8221; address spaces  would have to meet very stringent requirements before that privilege would be  granted. The cumbersome and bureaucratic application process alone was enough to  deter most would-be applicants. Those persistent enough to successfully complete  an application with their Registry quickly discovered that did not guarantee  their request would be granted.</p>
<p class="docText">Although this policy shift was a necessity caused by the  impending address-space crisis, it meant that it was now almost impossible for  an end-user organization to obtain its own directly registered address space.  When you view this fact in conjunction with the bias against end-user  organizations in RFC 2050, it becomes clear that end-user organizations bore the  full brunt of the policy changes necessary to prevent the Internet&#8217;s address  space from collapsing.</p>
<p class="docText">Ostensibly, this policy shift was designed to immediately  curtail the outflow of the finite supply of the remaining IPv4 addresses. This,  all by itself, would buy a lot of time and forestall the crisis. However, it  also forced Internet users to seriously consider alternative options for their  IP addressing, such as the following:</p>
<ul>
<li>
<p class="docList">Using ISP-provided addresses</p>
</li>
<li>
<p class="docList">Using nonunique addresses</p>
</li>
<li>
<p class="docList">Using a translation function between your network and the  Internet</p>
</li>
</ul>
<p class="docText">We&#8217;ve already looked at why using ISP-provided addressing isn&#8217;t  very attractive to end-user organizations. We&#8217;ll look at the other two options  much more closely in the next chapter. For now, just realize that none of these  were very palatable, nor as convenient as directly registered address space. The  fact that these unattractive options were forced on end-user organizations  created the potential for a tremendous backlash that is still being experienced  today.<a name="idd1e17300"></a><a name="idd1e17307"></a><a name="idd1e17314"></a><a name="idd1e17321"></a><a name="idd1e17328"></a><a name="idd1e17335"></a></p>
<p><a name="ch05lev3sec11"></a></p>
<h1 class="docSection3Title">End-User Backlash</h1>
<p class="docText">In some cases, the backlash has been extremely aggressive and  creative. The goal is simple, and it can be summed up in just one word:  portability. The extent to which end-user organizations pursue this grail is  remarkable. It is characterized by aggressiveif not desperateattempts. The  stakes are that high!<a name="idd1e17349"></a><a name="idd1e17352"></a><a name="idd1e17355"></a><a name="idd1e17358"></a><a name="idd1e17361"></a></p>
<p class="docText">Part of the problem, or maybe I should say part of the game, is  that there is tremendous confusion about what constitutes portability. Internet  Registries, for example, interpret portability to mean global routability.</p>
<p class="docText">Determining global routability from a Registry&#8217;s perspective is  simple: Is the address block large enough to be worth routing on the Internet?  That criterion has absolutely nothing to do with block ownership. As you have  seen, service providers are bound by a different criterion: compliance with RFC  2050/BCP 12. Consequently, they have a different interpretation of portability.  Service providers have an obligation to interpret portability to mean <span class="docEmphasis">both</span> global routability and directly registered to the  end-user organization. They might provide a range of addresses to a customer  that is large enough for routing over the Internet, but they cannot consider it  portable, because it is theirs.</p>
<p class="docText">End-user organizations try desperately to exploit this chained  ambiguity of definitions by insisting their service-provider blocks meet the  criteria of global routability. Therefore, their argument continues, those  addresses should be handed over when they change providers! Sometimes this  argument works, and sometimes it doesn&#8217;t. If it doesn&#8217;t, the game doesn&#8217;t end  there for some end-user organizations. I&#8217;ve seen quite a few ex-customers simply  refuse to return their address blocks! Although I won&#8217;t pretend to understand  the rule of law well enough to pass judgment on the legality of such hijacking  of address space, I can tell you it certainly violates Internet BCP 12 and does  nothing to help the Internet&#8217;s performance.</p>
<p class="docText">Sadly, these unintended consequences caused by RFC 2050 and the  emergency rationing of directly registered address spaces continue to haunt the  Internet. We&#8217;ve spent quite a bit of time looking at them for the simple reason  that they form an unavoidable constraint in today&#8217;s IP network environment. The  more you know about these and the other constraints, the better you&#8217;ll be able  to deal with them on the job.</p>
<blockquote>
<p class="docText">
<h1>Hijacked Address Spaces</h1>
<p class="docText">Since its inception, RFC 2050 has done wonders for minimizing the expansion of Internet routing tables. However, it has created potentially serious tension between ISPs and their customersor should I say their ex-customers? One of the less-heralded side effects of RFC 2050, in combination with IANA&#8217;s crackdown on granting privately registered address spaces, has been the hijacking of ISP address blocks.</p>
<p>When a customer leaves an ISP, it is required to return its IP address space to that ISP. That ISP can, in theory, put those addresses back in its inventory of unused addresses with which it satisfies new customer requests for addresses. However, it is not uncommon for a customer to terminate service with one ISP, start service with a new ISP, and then insist that new ISP support its existing blocks. By refusing to stop using an address space, an end-user organization can effectively convert a nonportable address space to a de facto portable space! Even though this is a violation of an Internet Best Current Practice, some ISPs are reluctant to do anything to upset a paying customer. Money talks!</p>
<p>An ISP whose addresses have been hijacked in this manner faces few good options. ARIN and IANA don&#8217;t offer any active help, but they still insist that you reclaim your blocks. I&#8217;ve found that contacting the ex-customer&#8217;s new service provider and demanding that it immediately cease supporting the hijack of addresses meets with only mixed success. Some ISPs are much more reputable than others and will jump at the opportunity to help you reclaim your lost property. Others require a bit of coercion. Letting them know that you will be advertising the hijacked addresses as null routes and that they should expect a trouble call from an unhappy and out-of-service customer usually does the trick.</p>
<p class="docText">
</blockquote>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9pbnRlcmltLXNvbHV0aW9ucy98SW50ZXJpbSBTb2x1dGlvbnM=' title='Extend Interim Solutions' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/interim-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Responding to the Crisis</title>
		<link>http://www.ciscotrick.com/responding-to-the-crisis/</link>
		<comments>http://www.ciscotrick.com/responding-to-the-crisis/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:09:10 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=96</guid>
		<description><![CDATA[By 1992, the Internet was growing at rates that were straining  it, its address space, and its physical and logical support infrastructures.  Concern was running high among the techies behind the scenes at the IETF, but  nobody else really seemed to grasp the problem. In November 1992, RFC 1380 was  released. [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">By 1992, the Internet was growing at rates that were straining  it, its address space, and its physical and logical support infrastructures.  Concern was running high among the techies behind the scenes at the IETF, but  nobody else really seemed to grasp the problem. In November 1992, RFC 1380 was  released. This RFC was strictly informational in nature, but it caused a  sensation the likes of which the network engineering community has seldom  experienced!<a name="idd1e15554"></a><a name="idd1e15559"></a><a name="idd1e15562"></a><a name="idd1e15567"></a><a name="idd1e15574"></a></p>
<p class="docText">Certain parties within the IETF had already calculated the  projected date by which the remaining supply of Class B address spaces would be  exhausted. After that point, the other address classes would also come under  increased pressure, and the failure would increase exponentially. The bottom  line was that everything would start crashing sometime around March 1994. This  Date of Doom became the rallying cry for mobilizing engineering resources to  resolve all sorts of problems, big and small, short-term and long-term, for the  sake of maintaining the Internet&#8217;s viability.<span id="more-96"></span></p>
<p><a name="ch05lev2sec1"></a></p>
<h1 class="docSection2Title">The Problems</h1>
<p class="docText">The problems dated back to the beginning but remained latent.  During the Internet&#8217;s early days, it grew very slowly. That slow rate of growth  was caused by two primary factors:</p>
<ul>
<li>
<p class="docList">These were the halcyon days before client/server computing  architectures.</p>
</li>
<li>
<p class="docList">The Internet was still not a commercial vehicle; the only  entities connected to it were academic, research, and military organizations.  They all used it to facilitate their mutual research.</p>
</li>
</ul>
<p class="docText">These two factors led to the mistaken belief that the 32-bit  address space, the class-based address architecture, and all the Internet&#8217;s  physical and logical support infrastructure would service the Internet far into  the future. Not much time passed before that was proven untrue. The symptoms of  commercialization, and their projected impacts, appeared likely to cause  numerous problems. The most immediate problem areas foreseen by the IETF  included the following:<a name="idd1e15610"></a><a name="idd1e15615"></a><a name="idd1e15618"></a><a name="idd1e15623"></a><a name="idd1e15630"></a></p>
<ul>
<li>
<p class="docText"><a name="idd1e15643"></a><span class="docEmphStrong">Impending  exhaustion of the Class B address space</span> Subsequent exhaustion of the  other areas of the IPv4 address space.</p>
</li>
<li>
<p class="docText"><a name="idd1e15654"></a><span class="docEmphStrong">Routing  performance problems caused by an explosion in the size of the Internet&#8217;s  routing tables</span> Human impacts of having to support an increasingly larger  set of routes in an ever-growing internetwork.</p>
</li>
</ul>
<p class="docText">Let&#8217;s take a look at these two points, because they are highly  correlated.</p>
<p><a name="ch05lev3sec1"></a></p>
<h1 class="docSection3Title">Address Space Exhaustion</h1>
<p class="docText">The class-based IPv4 address architecture was flawed from the  start. Only the very slow initial growth of the Internet masked its  deficiencies. The slow growth vis-à-vis the sheer size of the address space  (remember, an 8-bit address space with just 256 addresses was upgraded to a  32-bit address space with more than 4 billion addresses) created a false sense  of security. This resulted in wasteful address assignment practices. Not the  least of these included the following:</p>
<ul>
<li>
<p class="docText"><a name="idd1e15677"></a><span class="docEmphStrong">Hoarding of  address blocks</span> Early adopters of the Internet tended to register far more  blocks of addresses than they needed. Many large, early Internet users grabbed  Class A address spaces just because they could. In retrospect, it seems the only  criterion in handing out IP address blocks was the size of the organization, not  the size of its needs. This was justified as &#8220;planning&#8221; for unknown and  unspecified future requirements.</p>
</li>
<li>
<p class="docText"><a name="idd1e15691"></a><span class="docEmphStrong">Inefficient  assignments</span> Because IP addresses were so plentiful, many organizations  assigned their numbers in a wasteful manner. This too could be attributed to  planning.</p>
</li>
<li>
<p class="docText"><a name="idd1e15705"></a><span class="docEmphStrong">Inefficient  architecture</span> As you saw in <span class="docLink">Chapter  2</span>, &#8220;Classical IP: The Way It Was,&#8221; the class-based architecture contained  inordinately large gaps between the classes. These gaps wasted a considerable  number of addresses. Under strict classical rules, a medium-sized company that  requires 300 IP addresses would have been justified in requesting a Class B  address. In effect, more than 65,000 addresses would be wasted due to the  architectural inefficiency.</p>
</li>
</ul>
<p class="docText">The inadequacy of the original address space and architecture  was being felt most acutely in the Class B range. It was believed, based on an  examination of address-space assignments, that this range would be exhausted  first, and that continued explosive growth would rapidly exhaust the remaining  address classes in a chain reaction.<a name="idd1e15724"></a><a name="idd1e15729"></a><a name="idd1e15732"></a><a name="idd1e15737"></a><a name="idd1e15744"></a></p>
<p><a name="ch05lev3sec2"></a></p>
<h1 class="docSection3Title">Routing Table Explosion</h1>
<p class="docText">A slightly more subtle implication of the rapid consumption of  IP address blocks was the commensurate increase in the size of the Internet&#8217;s  routing table. A routing table, in simple terms, is a router&#8217;s list of all known  destinations, correlated with which interface should be used to forward  datagrams to those destinations. Logically, then, the greater the number of  network addresses, the larger a routing table becomes. When a router receives a  packet to be forwarded to a destination, it must first examine that packet&#8217;s  destination IP address and then do a table lookup to find out which port it  should use to forward that packet. The larger the table, the greater the amount  of time and effort required to find any given piece of data. This means that the  time it takes to figure out where to send each datagram increases with the size  of the routing table. Even worse, the demands on physical resources also  increase.<a name="idd1e15764"></a><a name="idd1e15771"></a></p>
<p class="docText">That&#8217;s a bit of an oversimplification, but it serves to  illustrate my point: The Internet was growing rapidly, and this was directly  increasing the size of the routing tables needed by the Internet&#8217;s routers.  This, in turn, caused everything to slow down. It was also straining the  physical capabilities of the Internet&#8217;s routers, sometimes right to the outer  edges of the router&#8217;s capabilities. In other words, simply plugging in more  memory or upgrading to the next-larger router or CPU wouldn&#8217;t help.</p>
<p class="docText">The bloating of the Internet&#8217;s routing tables had the potential  to become a vicious, self-sustaining cycle: The larger the tables became, the  more time was required to process any given packet. The more time was required  to process a packet, the more memory and CPU time were consumed. As you consumed  more CPU cycles to process a packet, the more packets became backlogged. This  was a problem that could, if left unchecked, cause the Internet to  collapseespecially since the Internet continued to grow at a phenomenal  rate.</p>
<p class="docText">Clearly, something had to be done.</p>
<p><a name="ch05lev2sec2"></a></p>
<h1 class="docSection2Title">The Long-Term Solution</h1>
<p class="docText">Being able to identify a problem&#8217;s root cause is always the  necessary first step in solving the problem. Thus, you could argue that the IETF  was perfectly positioned to rectify the problems inherent in the IPv4 address  space: It understood precisely the sources of its impending problems. But the  IETF faced a catch-22. This was the type of problem that couldn&#8217;t be solved  quickly, yet time was not a luxury the IETF could afford! They had to act, and  act quickly, to ensure the Internet&#8217;s continued operability.<a name="idd1e15803"></a><a name="idd1e15808"></a><a name="idd1e15811"></a><a name="idd1e15816"></a><a name="idd1e15823"></a><a name="idd1e15830"></a></p>
<p class="docText">The IETF realized that the right answerlong-termwas to  completely reinvent the Internet Protocol&#8217;s address space and mechanisms. But  that would require a tremendous amount of time and effort. Something had to be  done in the short term. They had to find ways to buy the time needed to come up  with a new IP addressing system. This new protocol, and preferred long-term  solution, became known as <span class="docEmphasis">IPv6</span>. We&#8217;ll examine  IPv6 in <span class="docLink">Chapter 15</span>, &#8220;IPv6: The Future  of IP Addressing.&#8221;</p>
<p class="docText">For now, let&#8217;s focus on the emergency measures deployed to  shore up the ailing IPv4. The vast majority of these measures were simple quick  fixes. Although none of these, individually, would solve the larger problem,  each would help forestall the impending Date of Doom in some small way. We&#8217;ll  call these quick fixes <span class="docEmphasis">interim solutions</span> and look  at them in the next section.<a name="idd1e15859"></a><a name="idd1e15864"></a><a name="idd1e15867"></a><a name="idd1e15872"></a><a name="idd1e15879"></a><a name="idd1e15886"></a></p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9yZXNwb25kaW5nLXRvLXRoZS1jcmlzaXMvfFJlc3BvbmRpbmcgdG8gdGhlIENyaXNpcw==' title='Extend Responding to the Crisis' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/responding-to-the-crisis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Practical Application</title>
		<link>http://www.ciscotrick.com/a-practical-application/</link>
		<comments>http://www.ciscotrick.com/a-practical-application/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:07:48 +0000</pubDate>
		<dc:creator>mekichan</dc:creator>
				<category><![CDATA[IP Addressing Fundamentals]]></category>

		<guid isPermaLink="false">http://www.ciscotrick.com/?p=94</guid>
		<description><![CDATA[To better demonstrate how VLSM works in practical terms, Table 4-6 shows the progression from the  sample network&#8217;s base address (192.168.125.0) through the defined subnets. Pay  particular attention to the binary and decimal translations for each subnet&#8217;s  base and terminal addresses. In decimal terms, you are progressing sequentially  through the address [...]]]></description>
			<content:encoded><![CDATA[<p class="docText">To better demonstrate how VLSM works in practical terms, <span class="docLink">Table 4-6</span> shows the progression from the  sample network&#8217;s base address (192.168.125.0) through the defined subnets. Pay  particular attention to the binary and decimal translations for each subnet&#8217;s  base and terminal addresses. In decimal terms, you are progressing sequentially  through the address space. In binary terms, you can see that each network uses a  different combination of high-order bits in the last octet to identify the  subnet. This might seem strange, but it is eminently logical. I distinguish  between host and subnet bits in the binary address by indicating the subnet bits  in bold italic and then delineating the two subfields with a dash (-).  Ordinarily, you wouldn&#8217;t find a dash in the middle of a bit string.<span id="more-94"></span><a name="idd1e14107"></a><a name="idd1e14112"></a><a name="idd1e14117"></a><a name="idd1e14124"></a></p>
<p><a name="ch04table06"></a></p>
<table class="allBorders" border="1" cellspacing="0" cellpadding="4" width="100%" rules="all">
<caption>
<h5 class="docTableTitle">Table 4-6. Subnetting with VLSM in a 24-Bit  Network</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col"></th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary Network + Subnet  Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal  Translation</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Base</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101</span>.00000000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.0</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (Subnet 0)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">000</span>00000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.0</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (Subnet 0)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (Subnet 0)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">000</span>11111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.31</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">00100</span>000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.32</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">00100</span>111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.39</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 2</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">0010</span>1000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.40</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 2</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 2</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">0010</span>1111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.47</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">001</span>10000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.48</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">001</span>11111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.63</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>01000000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.64</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>11111111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.255</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">The unassigned space illustrated in <span class="docLink">Table 4-6</span> can be used in a number of different ways.  Here are two of the more feasible scenarios for using this space:<a name="idd1e14446"></a><a name="idd1e14451"></a><a name="idd1e14456"></a><a name="idd1e14463"></a></p>
<ul>
<li>
<p class="docList">Any existing subnet can suddenly expand beyond the surplus  afforded by its current mask.</p>
</li>
<li>
<p class="docList">A new group of users might have to be supported, which  necessitates the creation of a new subnet.</p>
</li>
</ul>
<p class="docText">Both of these scenarios and their implications on subnetting  schemes are explored in the remainder of this section.</p>
<p><a name="ch04lev2sec4"></a></p>
<h1 class="docSection2Title">Adding a Subnet</h1>
<p class="docText">In the example used throughout this chapter, Subnets 1 through  3 have been used, with Subnet 0 idle. It is equal in size to a subnet defined  with a mask of 255.255.255.224, but the 32 addresses it would contain are not  used. I did this on purpose to show you that in many cases, old subnetting rules  can be very persistent. Consequently, it is not uncommon to find Subnet 0 unused  in networks today. Under today&#8217;s rules for subnetting, this space doesn&#8217;t have  to lie fallow. To continue with the sample network, if a requirement emerges for  a new subnet with 30 or fewer devices, Subnet 0 could be pressed into service.<a name="idd1e14490"></a><a name="idd1e14495"></a></p>
<p class="docText">Additional unallocated addresses remain in the high end of the  network address block. Addresses 64 through 255 are unused, so it is possible  for additional subnets to be created in the future. Thus, you have some options  for satisfying new requests for subnets. Depending on the number of hosts in a  new subnet, you could assign Subnet 0 or carve Subnet 4 out of the currently  unassigned address space (addresses 64 through 255). A more nettlesome question  is how you accommodate growth within the existing subnets.</p>
<p><a name="ch04lev2sec5"></a></p>
<h1 class="docSection2Title">Outgrowing a Subnet</h1>
<p class="docText">As you were looking at <span class="docLink">Tables 4-4</span> and <span class="docLink">4-5</span>, did you notice that even VLSM  isn&#8217;t perfectly efficient? There are still wasted addresses. That&#8217;s a direct  function of the binary math that is the foundation of the address space itself,  rather than a flaw in any particular approach to carving the space into subnets.  You can create a subnet on any bit boundary, but each bit increments by a factor  of 2. Remember: The rightmost bit in an octet has a decimal value of 1, the bit  to the immediate left carries a value of 2, then 4, then 8, then 16, then 32,  then 64, and ultimately 128 for the leftmost bit in the octet. Consequently, you  must form your subnets in this sequence from powers of 2.<a name="idd1e14520"></a><a name="idd1e14525"></a><a name="idd1e14530"></a><a name="idd1e14535"></a><a name="idd1e14540"></a><a name="idd1e14547"></a></p>
<p class="docText">You could look at this architectural feature as a negative in  that it results in wasted space. Alternatively, you could take a more pragmatic  perspective and appreciate the positive implications of this feature. For  example, even if it were possible to create subnets of the precise size you  require for any given subnet, would you really want to tailor it so concisely?  Many things can happen that would require you to add endpoints to a subnet. For  example, the user community on any of your subnets might hire someone new. The  same thing would hold true for technological innovation. It wasn&#8217;t that many  years ago that printers didn&#8217;t have a built-in network interface card (NIC), and  you had to use a server to spool print requests to them. A more commonly  encountered scenario is that the group you are supporting can simply outgrow its  subnet.</p>
<p class="docText">The point is that there are many reasons why the number of host  addresses in any given subnet could change over time. Trying to add a few  addresses to a tightly constructed subnetted scheme can be painful. Depending on  the extent of the growth, you might find it necessary to completely renumber one  or more subnets! That might not sound so bad, but it is not fun, and your users  might not appreciate having to experience it either. Plus, you might discover a  relatively common practice: application developers who hard-code IP addresses  into their software. Renumbering a network will cause every such application to  fail!</p>
<p class="docText">To illustrate this point, let&#8217;s assume that Subnet 2 of the  sample network needs to grow by five endpoints. Unfortunately, that subnet has  only two available IP addresses within its assigned range (192.168.125.40  through 192.168.125.47), and Subnet 3 picks up right where Subnet 2 ends, so  there is no opportunity to just change the mask&#8217;s size to encompass sequential  but unassigned addresses. Because Subnets 2 and 3 are numerically contiguous,  your only choices both involve renumbering the endpoints within Subnet 2. You  have to move them to a section of the address space that offers more addresses.  Your two options are as follows:</p>
<ul>
<li>
<p class="docList">Move the endpoints from Subnet 2 to Subnet 0.</p>
</li>
<li>
<p class="docList">Move the endpoints from Subnet 2 to the newly created Subnet 4  using previously unassigned addresses from the high end of the address  block.</p>
</li>
</ul>
<p class="docText"><span class="docLink">Table 4-7</span> shows you  what the subnetting scheme would look like if you were to renumber the endpoints  in Subnet 2 to use the range of addresses in Subnet 0. Doing so results in the  allocation of 30 usable host addresses to a group of users that requires only  17, but you don&#8217;t have any better options! The coarseness of the architecture  works against you. A mask of 255.255.255.240 would yield only 14 usable hosts,  which is inadequate. However, a mask of 255.255.255.224 (1 less bit in the  subnet prefix) yields 30 usable hosts and is the only feasible solution. This  should seem familiar to you, but if it doesn&#8217;t, just refer back to <span class="docLink">Table 4-4</span>.<a name="idd1e14589"></a><a name="idd1e14594"></a><a name="idd1e14599"></a><a name="idd1e14606"></a><a name="idd1e14613"></a><a name="idd1e14618"></a></p>
<p><a name="ch04table07"></a></p>
<table class="allBorders" border="1" cellspacing="0" cellpadding="4" width="100%" rules="all">
<caption>
<h5 class="docTableTitle">Table 4-7. Moving Subnet 2 Hosts to Subnet  0</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col"></th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary Network + Subnet  Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal  Translation</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Base</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101</span>.00000000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.0</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 0</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">000</span>00000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.0</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 0</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 0</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">000</span>11111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.31</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">00100</span>000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.32</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">00100</span>111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.39</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (formerly Subnet  2)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>00101000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.40</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (formerly Subnet  2)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (formerly Subnet  2)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>00101111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.47</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">001</span>10000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.48</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">001</span>11111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.63</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>01000000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.64</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>11111111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.255</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">Your second option for satisfying the outgrowth of Subnet 2 is  to create a new subnet from the unassigned addresses. <span class="docLink">Table 4-8</span> demonstrates how this would be done. Pay  particular attention to the binary and decimal translations for Subnet 4 to see  how that would be accomplished.<a name="idd1e14934"></a><a name="idd1e14939"></a><a name="idd1e14944"></a><a name="idd1e14951"></a><a name="idd1e14958"></a><a name="idd1e14963"></a></p>
<p><a name="ch04table08"></a></p>
<table class="allBorders" border="1" cellspacing="0" cellpadding="4" width="100%" rules="all">
<caption>
<h5 class="docTableTitle">Table 4-8. Moving Subnet 2 to the Newly Created Subnet  4</h5>
</caption>
<colgroup>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
<tr>
<th class="thead" align="left" valign="top" scope="col"></th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Binary Network + Subnet  Address</span></p>
</th>
<th class="thead" align="left" valign="top" scope="col">
<p class="docText"><span class="docEmphStrong">Decimal  Translation</span></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Base</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101</span>.00000000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.0</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
<p class="docText"><span class="docEmphStrong">(Subnet 0)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>00000000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.0</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
<p class="docText"><span class="docEmphStrong">(Subnet 0)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (Subnet 0)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>00011111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.31</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">00100</span>000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.32</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 1</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">00100</span>111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.39</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (formerly Subnet  2)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>00101000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.40</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (formerly Subnet  2)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned (formerly Subnet  2)</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>00101111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.47</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">001</span>10000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.48</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 3</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">001</span>11111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.63</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 4</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">010</span>00000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.64</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 4</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Subnet 4</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span><span class="docEmphBoldItalic">010</span>11111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.95</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>01100000</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.96</p>
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">
</td>
</tr>
<tr>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">Unassigned</span></p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText"><span class="docEmphStrong">11000000.10101000.01111101.</span>11111111</p>
</td>
<td class="docTableCell" align="left" valign="top">
<p class="docText">192.168.125.255</p>
</td>
</tr>
</tbody>
</table>
<p class="docText">If you look carefully at the progression of numbersparticularly  the binary numbersyou will see a very familiar pattern. Both Subnets 3 and 4 use  a 3-bit subnet mask. This makes it easy to see why one subnet ends with <span class="docEmphBoldItalic">001</span><span class="docEmphStrong">11111</span> and  another begins with <span class="docEmphBoldItalic">010</span><span class="docEmphStrong">00000</span>. In the other cases, mismatched subnet prefixes  make it a bit tougher to follow the logic. In those cases, ignore my visual cues  about subnet formation and just look at the 8-bit string as a whole. Then,  things make more sense.<a name="idd1e15342"></a><a name="idd1e15347"></a><a name="idd1e15352"></a><a name="idd1e15359"></a></p>
<p><a name="ch04lev3sec1"></a></p>
<h1 class="docSection3Title">Keep Careful Records!</h1>
<p class="docText">Looking back over the previous three tables, you must draw one  simple, inescapable conclusion: It is critical to maintain an accurate and  up-to-date record of address assignments! Subnetting, in its original  incarnation, was deemed practical only if you used a fixed-length mask to  subdivide an entire network address. Although this wasn&#8217;t the most efficient way  to subdivide a network, it was still far more efficient than the previous method  of operation, which was to secure separate network addresses for each of your  subnets.<a name="idd1e15373"></a><a name="idd1e15378"></a><a name="idd1e15383"></a></p>
<p class="docText">The grassroots innovation of flexible subnetting happened  outside the auspices of the IETF. Thus, there was no solid base of research to  draw on, no well-worn trail to follow, and no set of tools to rely on. If you  chose to ignore the recommendation of using a single-sized subnet mask for your  subnetting, you were on your own! This was a simplifying assumption embedded in  the original subnetting RFCs. It gave ordinary network administrators a chance  to improve the efficiency with which they consumed IP address space without  creating a mathematics exercise that could have qualified as a Herculean  task.</p>
<p class="docText">Despite the risks of stepping outside the safe confines of an  RFC, flexible subnetting became the dominant paradigm. Technical personnel  realized that the price they had to pay for this was the creation and  maintenance of an accurate database of address assignments. This has never been  more true.<a name="idd1e15400"></a><a name="idd1e15405"></a><a name="idd1e15410"></a><a name="idd1e15417"></a></p>
<br><a href='http://www.ciscotrick.com/wp-content/plugins/promotepost/promote.php?c=aHR0cDovL3d3dy5jaXNjb3RyaWNrLmNvbS9hLXByYWN0aWNhbC1hcHBsaWNhdGlvbi98QSBQcmFjdGljYWwgQXBwbGljYXRpb24=' title='Extend A Practical Application' onclick="NewWindow(this.href,'name','500','350','yes');return false">Extend This Post Reach</a>]]></content:encoded>
			<wfw:commentRss>http://www.ciscotrick.com/a-practical-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
