<?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>Just a generic tech blog</title>
	<atom:link href="http://blog.jason-rowley.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jason-rowley.com</link>
	<description></description>
	<lastBuildDate>Fri, 29 Jan 2010 23:04:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>My office away from the office</title>
		<link>http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=my-office-away-from-the-office</link>
		<comments>http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 23:04:42 +0000</pubDate>
		<dc:creator>jrowley</dc:creator>
				<category><![CDATA[Home Office]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[home office setup]]></category>
		<category><![CDATA[klipsch]]></category>
		<category><![CDATA[t-amp]]></category>

		<guid isPermaLink="false">http://blog.jason-rowley.com/?p=66</guid>
		<description><![CDATA[Today, I received my new toys. Since I&#8217;ve been spending almost all of my free time in my home office recently and my old Altec Lansing speakers were crackling, I decided to splurge and order myself a set of Klipsch bookshelf speakers and a mini amp. In my living room, I have a butt kicking, [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I received my new toys. Since I&#8217;ve been spending almost all of my free time in my home office recently and my old Altec Lansing speakers were crackling, I decided to splurge and order myself a set of Klipsch bookshelf speakers and a mini amp.</p>
<p><span id="more-66"></span><br />
<script type="text/javascript"><!--
google_ad_client = "pub-5313541117764769";
/* 234x60, created 1/7/10 */
google_ad_slot = "3405453421";
google_ad_width = 234;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>In my living room, I have a butt kicking, heart stopping, head pounding <a href="http://www.klipsch.com/na-en/products/rf-82-overview/" target="_blank">Klipsch</a> <a href="http://www.klipsch.com/na-en/products/rc-62-overview/" target="_blank">Reference</a> <a href="http://www.klipsch.com/na-en/products/rs-62-overview/" target="_blank">Series</a> setup with a 1200-watt [peak] <a href="http://www.klipsch.com/na-en/products/rsw-12-specifications/" target="_blank">powered sub</a>. I don&#8217;t need that much in my office though. My new setup had to be Klipsch, but I don&#8217;t care for their PC speakers. I wanted to get some book shelf speakers, but wasn&#8217;t sure how to hook them up without buying a huge fracking receiver.</p>
<p>After a bit of googling, I stumbled upon some <a href="http://en.wikipedia.org/wiki/Class_T_amplifier" target="_blank">class T amplifiers</a>. After reading every review I could find (there aren&#8217;t that many reviews out there), I decided to spring for the <a href="http://www.p-macaudio.com/ProductDetails.asp?ProductCode=TP21" target="_blank">Topping T-Amp TP-21</a> from P-Mac Audio. I also ordered a set of <a href="http://www.klipsch.com/na-en/products/rb-51-overview/" target="_blank">RB-51s</a> from Klipsch.</p>
<p>I was a little worried that the T-Amp wouldn&#8217;t be able to drive the RB-51s even though a couple people said they sound great together. I was also worried about the sound quality. The amp is only $139 though. Not like I&#8217;m spending $1000 on a mid-line receiver.</p>
<p>Well, today they arrived!</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0426.jpg" rel="lightbox[66]"><img class="alignnone size-medium wp-image-67" title="IMG_0426" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0426-300x142.jpg" alt="" width="300" height="142" /></a></p>
<p>I plugged them in to the amp and connected the amp to my sound card and fired up iTunes. I used some John Coltrain and Diana Krall to see how they sounded and was disappointed. Out of the box, the sound is very flat. After futzing around with the iTunes mixer, I got the sound just the way I like it. I probably should buy a dedicated pre-amp.</p>
<p>Then, I switched over to some progressive metal. Dream Theater&#8217;s Images and Words rocked. I&#8217;m a picky listener, definitely not an &#8220;audiophile&#8221;, but I think this combo rivals my home theater setup &#8211; excluding the volume and lack of a sub, of course.</p>
<p>Even though the amp is only 25-watts per channel, since the Klipsch are so sensitive, the can get quite loud. I turned the volume all the way up and there was only a little clipping. Could be the cheapy sound card in my pc though since I also had the PC volume way up.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0398.jpg" rel="lightbox[66]"><img class="alignnone size-medium wp-image-68" title="IMG_0398" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0398-300x179.jpg" alt="" width="300" height="179" /></a><br />
[ Power switch is on the back rear ]</p>
<p>What I like about the amp and speakers is that they both can use banana plugs. That makes setup or tear down a breeze. Corrosion is also less of a worry since I bought some pre-soldered cables with bananas.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0401.jpg" rel="lightbox[66]"><img class="alignnone size-medium wp-image-69" title="IMG_0401" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0401-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>I like the magnetic clips. My old floor standing speakers have plastic inserts and I&#8217;m always worried about them getting broken since my defective, clumsy cat likes to jump up on them from across the room. Sometimes she makes it, sometimes not quite..</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0411.jpg" rel="lightbox[66]"><img class="alignnone size-medium wp-image-70" title="IMG_0411" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0411-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0416.jpg" rel="lightbox[66]"><img class="alignnone size-medium wp-image-71" title="IMG_0416" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/29/my-office-away-from-the-office/IMG_0416-300x164.jpg" alt="" width="300" height="164" /></a></p>
<p>All in all, I&#8217;m very happy with the setup. Now to get back to lab practice.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;title=My+office+away+from+the+office" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;title=My+office+away+from+the+office" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;title=My+office+away+from+the+office&amp;desc=Today%2C%20I%20received%20my%20new%20toys.%20Since%20I%27ve%20been%20spending%20almost%20all%20of%20my%20free%20time%20in%20my%20home%20office%20recently%20and%20my%20old%20Altec%20Lansing%20speakers%20were%20crackling%2C%20I%20decided%20to%20splurge%20and%20order%20myself%20a%20set%20of%20Klipsch%20bookshelf%20speakers%20and%20a%20mini%20amp.%0D%0A%0D%0A%0D%0A%5Bad%23Google%20Adsense%5D%0D%0A%0D%0AIn%20my%20living%20room%2C%20I%20h" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;bm_description=My+office+away+from+the+office&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;title=My+office+away+from+the+office" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;title=My+office+away+from+the+office" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/&amp;title=My+office+away+from+the+office" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=My+office+away+from+the+office+-+http://b2l.me/e3mt3&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://blog.jason-rowley.com/2010/01/29/my-office-away-from-the-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Production network mockups with dynagen and GNS3</title>
		<link>http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=production-network-mockups-with-dynagen-and-gns3</link>
		<comments>http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 19:14:09 +0000</pubDate>
		<dc:creator>jrowley</dc:creator>
				<category><![CDATA[CCIE-SP]]></category>
		<category><![CDATA[dynamips]]></category>
		<category><![CDATA[dynagen]]></category>
		<category><![CDATA[GNS3]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.jason-rowley.com/?p=34</guid>
		<description><![CDATA[Just a quick follow up on my previous post on using dynagen and GNS3. This one demonstrates the ability to mock up production networks for times when others are using your physical lab. Sure, you can&#8217;t emulate a 7600 or GSR, but the same principles apply for most situations (excluding platform specific configurations). The above [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick follow up on my previous post on using dynagen and GNS3. This one demonstrates the ability to mock up production networks for times when others are using your physical lab. Sure, you can&#8217;t emulate a 7600 or GSR, but the same principles apply for most situations (excluding platform specific configurations).</p>
<p><span id="more-34"></span><br />
<br />
<a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/03/production-network-mockups-with-dynagen-and-gns3/Overview.jpg" rel="lightbox[34]"><img class="alignnone size-medium wp-image-35" title="Overview" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/03/production-network-mockups-with-dynagen-and-gns3/Overview-300x134.jpg" alt="" width="300" height="134" /></a></p>
<p>The above image is a GNS3 diagram of what I imported from my manually created dynagen network file. The has a mix of CE, PE, and P routers, as well as external AS routers. All routers are 7206s, excluding the CEs, which are 1721s.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/03/production-network-mockups-with-dynagen-and-gns3/Visio.jpg" rel="lightbox[34]"><img class="alignnone size-medium wp-image-36" title="Visio" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/03/production-network-mockups-with-dynagen-and-gns3/Visio-300x184.jpg" alt="" width="300" height="184" /></a></p>
<p>As shown in the visio image above, we have a core OSPF area. The edges are separate areas. We also use MPLS explicit nulls in the LA and CR routers. Essentially, this is a redacted (IPs, auth keys, etc) configuration in use in a production service provider network.</p>
<p>You can download the visio here: <a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/Production_Mockup.vsd">Production Visio (VSD)</a></p>
<p>Configurations can be found here: <a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/production_mockup_configs_2010-01-23.zip">Configurations (ZIP)</a></p>
<p>GNS/Dynagen configuration file: <a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/production_mockup.txt" target="_blank">Confguration (TXT)</a></p>
<p>To telnet from router to router, use the following:</p>
<pre class="brush: plain;">
Password: cisco
Enable: enable
</pre>
<p>The following ranges are what I use in this testbed.</p>
<p>- 172.16.0.0/24 &#8211; Range for Loopback IPs. This is what we use to source everything from in the P/PE routers (router-ids, bgp neighbors, etc)<br />
- 10.0.0.0/24 &#8211; Range for WAN /31s</p>
<p>The routers are all configured with pretty thorough base config. It includes OSPF, BGP, MPLS, QoS, as well as basic Multicast (mvpn) and L3VPN configurations.</p>
<pre class="brush: plain;">
EASTCA1#sh ip bgp ipv4 mdt all sum
BGP router identifier 172.16.0.101, local AS number 65500
BGP table version is 1, main routing table version 1

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.30     4 65500      72      59        1    0    0 00:47:35        0
172.16.0.31     4 65500      71      58        1    0    0 00:47:35        0
</pre>
<p>I&#8217;ll be using this base configuration as I blog about technologies in future posts. Some of the topics I&#8217;ll be covering are (in no particular order):</p>
<ul>
<li>MPLS Traffic Engineering</li>
<li>BGP Multihoming</li>
<li>BGP Route Aggregation</li>
<li>BGP Route Leaking</li>
<li>MVPN Troubleshooting</li>
<li>QoS Configuration and Troubleshooting</li>
<li>IS-IS deployment</li>
<li>IS-IS tuning</li>
<li>IPv6</li>
<li>OSPFv3</li>
</ul>
<p>Stay tuned!</p>
<p></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;title=Production+network+mockups+with+dynagen+and+GNS3" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;title=Production+network+mockups+with+dynagen+and+GNS3" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;title=Production+network+mockups+with+dynagen+and+GNS3&amp;desc=Just%20a%20quick%20follow%20up%20on%20my%20previous%20post%20on%20using%20dynagen%20and%20GNS3.%20This%20one%20demonstrates%20the%20ability%20to%20mock%20up%20production%20networks%20for%20times%20when%20others%20are%20using%20your%20physical%20lab.%20Sure%2C%20you%20can%27t%20emulate%20a%207600%20or%20GSR%2C%20but%20the%20same%20principles%20apply%20for%20most%20situations%20%28excluding%20platform%20speci" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;bm_description=Production+network+mockups+with+dynagen+and+GNS3&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;title=Production+network+mockups+with+dynagen+and+GNS3" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;title=Production+network+mockups+with+dynagen+and+GNS3" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/&amp;title=Production+network+mockups+with+dynagen+and+GNS3" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Production+network+mockups+with+dynagen+and+GNS3+-+http://b2l.me/cvvcs&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://blog.jason-rowley.com/2010/01/03/production-network-mockups-with-dynagen-and-gns3/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Configuring Dynagen, Dynamips, and GNS3 for lab practice</title>
		<link>http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=configuring-dynagen-dynamips-and-gns3-for-lab-practice</link>
		<comments>http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 02:00:30 +0000</pubDate>
		<dc:creator>jrowley</dc:creator>
				<category><![CDATA[dynamips]]></category>
		<category><![CDATA[dynagen]]></category>
		<category><![CDATA[GNS3]]></category>
		<category><![CDATA[lab]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.jason-rowley.com/?p=20</guid>
		<description><![CDATA[One of the most useful (and cheapest!) ways to learn is to practice with Dynamips, Dynagen, and GNS3. In this post, I&#8217;ll show how I configure my environment &#8211; both for ccie lab practicing, as well as testing new configurations when other people are hogging the real lab routers at work. I have two servers [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most useful (and cheapest!) ways to learn is to practice with Dynamips, <a href="http://dynagen.org/" target="_blank">Dynagen</a>, and <a href="http://www.gns3.net/" target="_blank">GNS3</a>. In this post, I&#8217;ll show how I configure my environment &#8211; both for ccie lab practicing, as well as testing new configurations when other people are hogging the real lab routers at work.</p>
<p><span id="more-20"></span><br />
<br />
I have two servers that I use. One at home, and one in our lab at work.</p>
<p>My home server is not nearly as powerful as my work computer, but it still does the job just fine. I got a great deal from Dell on a <a href="http://www.dell.com/us/en/corp/servers/pedge_sc1430/pd.aspx?refid=pedge_sc1430&amp;s=corp" target="_blank" class="broken_link">SC1430</a> server with dual quad Xeons just before they retired the model. When I bought it, it came with only 1GB of RAM and Dell is about as insane as Cisco is for branded memory. So, I opted to buy from my favorite place &#8211; newegg. If I remember right, I paid just under $800 total for the server and memory. Not friggin&#8217; bad.</p>
<p>My OS of choice is <a href="http://www.fedoraproject.org/" target="_blank">Fedora</a>. I&#8217;ve used Redhat since moving away from Slackware way back in the day. Man, that makes me feel old. Any OS should be fine. Windows (runs fewer routers), MacOS, or any flavor of Linux. Use what you feel comfortable with.</p>
<p>Our monster at work is a Sun X4150. This bad boy also has dual quad Xeons and 16GB of ram, plus around 420GB of SAS storage. The storage array might be a bit overkill, but we also use it as a test platform for our custom Netflow collection software. It also runs Fedora 12.</p>
<p><strong>Installation</strong></p>
<p>We need to download the packages. If you run Windows, you can download the all-in-one package from <a href="http://www.gns3.net/download" target="_blank">http://www.gns3.net/download</a>. This contains everything needed to run virtual routers.</p>
<p>On Linux, I download the packages individually from the following locations:</p>
<ul>
<li><a href="http://www.gns3.net/download" target="_blank">GNS3 v0.7RC1</a></li>
<li>Dynamips 0.2.8-RC2 binary for Linux x86_64 (same link as above)</li>
<li>The latest dynagen from SVN (<a href="http://sourceforge.net/projects/dyna-gen/develop">http://sourceforge.net/projects/dyna-gen/develop</a>)</li>
</ul>
<p>Once I have those, I create a directory in /opt/dynamips, which is where I put dynagen and dynamips binaries.</p>
<pre class="brush: plain;">
pts/4 jrowley@enlil:/home/jrowley $&gt; cd dyna-gen/code/trunk/
pts/4 jrowley@enlil:/home/jrowley/dyna-gen/code/trunk $&gt; cp -R * /opt/dynamips/
</pre>
<p>Now, let&#8217;s download the dynamips binary, make it executable, and rename it.</p>
<pre class="brush: plain;">
pts/4 jrowley@enlil:/opt/dynamips $&gt; wget http://downloads.sourceforge.net/project/gns-3/Dynamips/0.2.8-RC2/dynamips-0.2.8-RC2-amd64.bin?use_mirror=voxel
--2010-01-02 19:59:54--  http://downloads.sourceforge.net/project/gns-3/Dynamips/0.2.8-RC2/dynamips-0.2.8-RC2-amd64.bin?use_mirror=voxel
Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://voxel.dl.sourceforge.net/project/gns-3/Dynamips/0.2.8-RC2/dynamips-0.2.8-RC2-amd64.bin [following]
--2010-01-02 19:59:54--  http://voxel.dl.sourceforge.net/project/gns-3/Dynamips/0.2.8-RC2/dynamips-0.2.8-RC2-amd64.bin
Resolving voxel.dl.sourceforge.net... 74.63.52.169, 69.9.191.19, 74.63.52.167, ...
Connecting to voxel.dl.sourceforge.net|74.63.52.169|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1017080 (993K) [application/octet-stream]
Saving to: dynamips-0.2.8-RC2-amd64.bin

100%[=================================================================================================================&gt;] 1,017,080   1.06M/s   in 0.9s

2010-01-02 19:59:56 (1.06 MB/s) - dynamips-0.2.8-RC2-amd64.bin saved [1017080/1017080]

pts/4 jrowley@enlil:/opt/dynamips $&gt; chmod +x dynamips-0.2.8-RC2-amd64.bin
pts/4 jrowley@enlil:/opt/dynamips $&gt; mv dynamips-0.2.8-RC2-amd64.bin dynamips
pts/4 jrowley@enlil:/opt/dynamips $&gt;
</pre>
<p>Finally, we download and extract GNS3. I just extract it to my desktop, though you could put it anywhere.</p>
<pre class="brush: plain;">
tar fxz GNS3-0.7RC1-src.tar.gz
</pre>
<p>Provided you have all the required dependencies*, you should be able to double click the GNS3 file.</p>
<p><strong>IOS</strong></p>
<p>Note: Please don&#8217;t ask me for any copies of IOS. You will be ignored.</p>
<p>Now, let&#8217;s prepare an IOS image for our router. This step is optional, but it speeds router start up since the images don&#8217;t need to be uncompressed. I also keep the uncompressed copies in my dynamips directory.</p>
<pre class="brush: plain;">
pts/4 jrowley@enlil:/home/jrowley/ios $&gt; unzip c7200-advipservicesk9-mz.122-33.SRD3.bin
Archive:  c7200-advipservicesk9-mz.122-33.SRD3.bin
warning [c7200-advipservicesk9-mz.122-33.SRD3.bin]:  39000 extra bytes at beginning or within zipfile
(attempting to process anyway)
inflating: C7200-AD.BIN
pts/4 jrowley@enlil:/home/jrowley/ios $&gt; mv C7200-AD.BIN c7200-advipservicesk9-mz.122-33.SRD3.bin
pts/4 jrowley@enlil:/home/jrowley/ios $&gt; mkdir /opt/dynamips/ios
pts/4 jrowley@enlil:/home/jrowley/ios $&gt; mv c7200-advipservicesk9-mz.122-33.SRD3.bin /opt/dynamips/ios
pts/4 jrowley@enlil:/home/jrowley/ios $&gt;
</pre>
<p>Don&#8217;t worry about the message about the extra bytes.</p>
<p><strong>GNS3 Configuration</strong></p>
<p>If GNS3 is running, we can move on to configuring it. If you get errors about missing libraries, see the section at the end of this post.</p>
<p>The first thing we need to do is tell GNS3 where to find our IOS. Click Edit -&gt; IOS images and hypervisors.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns2.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-21" title="gns2" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns2-300x195.jpg" alt="" width="300" height="195" /></a></p>
<p>Next, we just choose the IOS we put in our /opt/dynamips/ios directory previously. Don&#8217;t worry about the idle-pc settings yet.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns3.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-22" title="gns3" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns3-300x184.jpg" alt="" width="300" height="184" /></a></p>
<p>Close the window and now click Edit -&gt; Preferences to give the locations of dynamips. Click Dynamips on the left to set this.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns4.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-23" title="gns4" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns4-300x251.jpg" alt="" width="300" height="251" /></a></p>
<p>If you have the path and working directory right, click the test button.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns5.jpg" rel="lightbox[20]"><img class="alignnone size-full wp-image-24" title="gns5" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns5.jpg" alt="" width="310" height="59" /></a></p>
<p>We also need to go to General and change the terminal. Most likely, you&#8217;ll just need to change the %h to 127.0.0.1, but I also had to change xterm to gnome-terminal</p>
<pre class="brush: plain;">
gnome-terminal -e &quot;telnet 127.0.0.1 %p&quot; -t %d
</pre>
<p>Hit Ok to close and now, we&#8217;re ready to add some routers. To do this, select the router type you want to create and drag it to the center panel. In our case, we only have a 7200 image, so let&#8217;s use that.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns6.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-25" title="gns6" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns6-300x252.jpg" alt="" width="300" height="252" /></a></p>
<p>Now, right click the router to configure it</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns7.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-26" title="gns7" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns7-252x300.jpg" alt="" width="252" height="300" /></a></p>
<p>The next window lets us add port adapters. I typically leave the rest defaults.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns8.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-27" title="gns8" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns8-300x231.jpg" alt="" width="300" height="231" /></a></p>
<p>Do this for as many routers as you wish.</p>
<p>Now, it&#8217;s time to connect the routers. To do this, click the connector button in the toolbar.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/connector.jpg" rel="lightbox[20]"><img class="alignnone size-full wp-image-28" title="connector" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/connector.jpg" alt="" width="156" height="46" /></a></p>
<p>Connecting routers is as easy as clicking two routers.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns9.jpg" rel="lightbox[20]"><img class="alignnone size-full wp-image-29" title="gns9" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns9.jpg" alt="" width="264" height="242" /></a></p>
<p>Now, we can click the play button to start the routers. You can start them individually by right clicking on each router, or start them all with the toolbar above.</p>
<p>After the routers are running for a bit, we&#8217;ll want to configure idle-pc values, otherwise at least one of our cores will be at 100% all the time. Right click a router and select &#8220;Idle PC&#8221;.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/idlepc.jpg" rel="lightbox[20]"><img class="alignnone size-full wp-image-30" title="idlepc" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/idlepc.jpg" alt="" width="317" height="284" /></a></p>
<p>You&#8217;ll get a splash screen while GNS calculates the values. Select any value that as an asterisk next to it. If there are none, rerun idle pc.</p>
<p>Note: you should do this for each router even though GNS3 tells you there is already a value for all of them after the first is configured. If you don&#8217;t do all routers, you don&#8217;t get much benefit.</p>
<p>Here, we can see where the CPU usage dropped after both routers were configured.</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/resources1.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-31" title="resources1" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/resources1-300x293.jpg" alt="" width="300" height="293" /></a></p>
<p>To access the routers, simply right click them and select Console. You should get a terminal window (or telnet window on Windows platforms)</p>
<p><a href="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns10.jpg" rel="lightbox[20]"><img class="alignnone size-medium wp-image-32" title="gns10" src="http://blog.jason-rowley.com/wp-content/uploads/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/gns10-300x198.jpg" alt="" width="300" height="198" /></a></p>
<p>Voila! We now have two routers we can configure.</p>
<pre class="brush: plain;">
Router&gt;en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname R1
R1(config)#int gi1/0
R1(config-if)#no shut
R1(config-if)#ip add 19
*Jan  2 20:44:20.123: %LINK-3-UPDOWN: Interface GigabitEthernet1/0, changed state to up
*Jan  2 20:44:21.123: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0, changed state to up2.168.0.1 255.255.255.252
R1(config-if)#end
R1#
*Jan  2 20:44:31.103: %SYS-5-CONFIG_I: Configured from console by console
telnet&gt; quit
Connection closed.
pts/4 jrowley@enlil:/home/jrowley/Desktop $&gt; telnet 0 2001
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
Connected to Dynamips VM &quot;R2&quot; (ID 1, type c7200) - Console port

Router&gt;en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname R2
R2(config)#int gi1/0
R2(config-if)#ip add 192.168.0.2 255.255.255.252
R2(config-if)#no shut
R2(config-if)#end
R2#
*Jan  2 20:45:04.395: %SYS-5-CONFIG_I: Configured from console by console
*Jan  2 20:45:04.875: %LINK-3-UPDOWN: Interface GigabitEthernet1/0, changed state to up
*Jan  2 20:45:05.875: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0, changed state to up
R2#
R2#ping 192.168.0.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/9/12 ms
R2#
</pre>
<p>From here, you can continue adding routers or just play around with the two we created.</p>
<p><strong>Requirements</strong></p>
<p>GNS3 depends on the following packages:</p>
<p>- Qt 4.3 (or higher)<br />
- Python 2.4 (or higher)<br />
- Sip 4.5 (or higher)<br />
- PyQt 4.1 (or higher)</p>
<p>If you use yum, installing them is as easy as:</p>
<pre class="brush: plain;">
yum install qt-devel sip-devel PyQt4-devel python-devel
</pre>
<p>Windows users shouldn&#8217;t need these, as they&#8217;re included in the all-in-one package.</p>
<p><strong>Other thoughts</strong></p>
<p>GNS3 also allows you to create Olives (JunOS virtual routers) if you ever need to test a multi-vendor configuration. Very useful for learning your way around the CLI of my favorite router vendor.</p>
<p>Have fun!<br />
</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;title=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;title=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;title=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice&amp;desc=One%20of%20the%20most%20useful%20%28and%20cheapest%21%29%20ways%20to%20learn%20is%20to%20practice%20with%20Dynamips%2C%20Dynagen%2C%20and%20GNS3.%20In%20this%20post%2C%20I%27ll%20show%20how%20I%20configure%20my%20environment%20-%20both%20for%20ccie%20lab%20practicing%2C%20as%20well%20as%20testing%20new%20configurations%20when%20other%20people%20are%20hogging%20the%20real%20lab%20routers%20at%20work.%0D%0A%0D%0A%0D%0A%5Bad%23Goog" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;bm_description=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;title=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;title=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/&amp;title=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Configuring+Dynagen%2C+Dynamips%2C+and+GNS3+for+lab+practice+-+http://b2l.me/ctnk6&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://blog.jason-rowley.com/2010/01/02/configuring-dynagen-dynamips-and-gns3-for-lab-practice/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mitigating DoS/DDoS attacks with Real Time Black Hole (RTBH) filtering</title>
		<link>http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering</link>
		<comments>http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 17:14:11 +0000</pubDate>
		<dc:creator>jrowley</dc:creator>
				<category><![CDATA[RTBH]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[DDoS]]></category>
		<category><![CDATA[DoS]]></category>
		<category><![CDATA[mitigation]]></category>
		<category><![CDATA[uRPF]]></category>

		<guid isPermaLink="false">http://blog.jason-rowley.com/?p=14</guid>
		<description><![CDATA[RTBH is something that I&#8217;ve been using for quite some time to mitigate inbound Denial of Service (DoS) attacks against customers. We are currently in the process of deploying an automated traffic scrubbing platform (Arbor Networks and Cisco Guards), but I still see this as an extremely valuable way to quickly put an end to [...]]]></description>
			<content:encoded><![CDATA[<p>RTBH is something that I&#8217;ve been using for quite some time to mitigate inbound Denial of Service (DoS) attacks against customers. We are currently in the process of deploying an automated traffic scrubbing platform (Arbor Networks and Cisco Guards), but I still see this as an extremely valuable way to quickly put an end to an attack.</p>
<p><span id="more-14"></span><br />
<br />
<strong>What is an DoS/DDoS attack?</strong></p>
<p>Essentially, a DoS attack is when someone sends bogus traffic towards an IP (or group of IPs) with the goal of overwhelming the destination circuit. In a DoS situation, an attacker usually initiates this traffic from a compromised PC or server. A DDoS (Distributed 11Denial of Service) is when a group of PCs or servers initiate the traffic.</p>
<p><strong>Types of RTBH filtering</strong></p>
<p>There are two types of RTBH mitigation. Source based and destination based.</p>
<p>Source based RTBH is the preferred method of mitigating attacks. In this instance, the source address(es) of an attack are null routed in the network. Combined with uRPF, routers will drop this traffic as it enters the network.</p>
<p>Destination based RTBH should only be used as a last resort, since you are essentially completing the DoS by null routing your customer. The only time this should be done is when other customers are affected and there are too many source addresses to null route (a spoofed DDoS). Additionally, you want to contact your customer as soon as possible so that you can assist them in getting back online.</p>
<p><strong>Unicast Reverse Path Filtering (uRPF)</strong></p>
<p>There are two types of <a href="http://www.cisco.com/web/about/security/intelligence/unicast-rpf.html" target="_blank">uRPF</a> &#8211; strict and loose mode. In strict mode, a ingress packet must be received on an interface that the router would use to forward return packets. If that fails, the packet is dropped. Loose mode is less strict in that the source address must exist in the routing table. Additionally, any source address that is attached to the Null0 interface is dropped.</p>
<p>In our RTBH examples, we&#8217;ll use loose mode uRPF on our peering/transit interfaces.</p>
<p><strong>Deploying RTBH</strong></p>
<p>There are a few steps to fully deploying RTBH in your network.</p>
<p><strong>1) Null route</strong></p>
<p>First, we want to add a null route that we can use as a next-hop for traffic we wish to drop. This could be one of your own IPs, <a href="http://www.rfc-editor.org/rfc/rfc1918.txt" target="_blank">RFC1918</a> space, or from the <a href="http://www.rfc-editor.org/rfc/rfc3330.txt" target="_blank">RFC3330</a> TEST-NET blocks.</p>
<pre class="brush: plain;">
westcr1(config)#ip route 192.0.2.1 255.255.255.255 null0
</pre>
<p>Note: This should never be leaked. In my deployment, we use outbound route-maps to match on, as well as a prefix-list to sanity check longest prefixes. You could also use a tag to specifically exclude this from announcements.</p>
<pre class="brush: plain;">
westcr1(config)#ip route 192.0.2.1 255.255.255.255 null0 tag 666
</pre>
<p>This should be added to any router where you wish to drop traffic. In our network, all routers contain this static route &#8211; edge, aggregation, and core.</p>
<p><strong>2) uRPF</strong></p>
<p>Next, we want to enable loose-mode uRPF on our transit/peering interfaces. By doing this, mitigated traffic is dropped as soon as it enters our network. We use loose mode because traffic can be asymmetrical. That is, it could enter via one peer and return traffic could exit via another peer on a different router.</p>
<p>On a 7600, the command is:</p>
<pre class="brush: plain;">
ip verify unicast source reachable-via any
</pre>
<p>An actual (redacted) interface:</p>
<pre class="brush: plain;">
interface GigabitEthernet1/4
 description [transit]_A.B.C.D_TWTC_ID:##/KFFN/######/TWCS
 ip address A.B.C.D 255.255.255.252
 ip verify unicast source reachable-via any
 ip route-cache flow
 load-interval 30
 speed nonegotiate
 wrr-queue cos-map 1 1 4
 wrr-queue cos-map 1 8 0
 wrr-queue cos-map 2 6 1
 wrr-queue cos-map 2 8 2
 wrr-queue cos-map 3 6 3
 wrr-queue cos-map 3 8 6 7
 service-policy input MARK-IPP-0
</pre>
<p><strong>3) BGP Policy</strong></p>
<p>Now, we need to configure the BGP policy. But, before we do this, we want to identify a single router that is used to inject these null routes. This can be a router or a Unix based server running Quagga. We use a dedicated Cisco 7206 for this purpose.</p>
<p>Injection router configuration</p>
<p>First, we have a prefix-list of &#8220;Golden&#8221; networks that we never want to accidentally null route due to spoofing. Before adding a route, we always check the owner of the netblock an attack originates from. If it&#8217;s obviously critical infrastructure, we&#8217;re dealing with a spoofing attack. We don&#8217;t want to null route a root server or anything like that.</p>
<pre class="brush: plain;">
ip prefix-list GOLDEN:NETWORKS seq 5 permit 198.41.0.0/24 le 32
ip prefix-list GOLDEN:NETWORKS seq 10 permit 192.228.79.0/24 le 32
[...]
</pre>
<p>Next, we want to make sure we don&#8217;t null route a default route.</p>
<pre class="brush: plain;">
ip prefix-list NO-DEFAULT seq 5 permit 0.0.0.0/0
</pre>
<p>Now, it&#8217;s time for the route-map.</p>
<pre class="brush: plain;">
route-map BLACKHOLE deny 5
 match ip address prefix-list GOLDEN:NETWORKS
!
route-map BLACKHOLE deny 10
 match ip address prefix-list NO-DEFAULT
!
route-map BLACKHOLE permit 20
 match tag 187
 set ip next-hop 192.0.2.1
 set local-preference 1000
 set origin igp
 set community 65500:666 no-export
!
route-map BLACKHOLE permit 30
 set ip next-hop 192.0.2.1
 set local-preference 1000
 set origin igp
 set community 65500:666 no-export
</pre>
<p>Here, we deny anything listed in the first two prefix-lists. The 3rd stanza is used to match on known netblocks assigned to organizations such as RBN and others.</p>
<p>The fourth matches any other routes.</p>
<p><strong>4) Static route redistribution</strong></p>
<p>Now, in order to announce these prefixes, we apply the route-map to static route redistribution in our BGP config.</p>
<pre class="brush: plain;">
router bgp 65500
 address-family ipv4
  redistribute static route-map BLACKHOLE
</pre>
<p>Note: I&#8217;m assuming your router already has bgp sessions to other devices to propagate the routes.</p>
<p><strong>5) Adding routes</strong></p>
<p>Now, when you experience a DoS, you can find the source (we use Netflow) and add a static route such as:</p>
<pre class="brush: plain;">
nullrouter(config)#ip route 192.168.202.12 255.255.255.255 Null0 tag 80
</pre>
<p>The tag doesn&#8217;t need to be included, but we use it to identify what type of attack. In this case, it was a DoS targeting port 80. If this was an address of a known c&amp;c server, we&#8217;d use tag 187 to identify it as such.</p>
<p>Now, if we login to a router that receives these routes, we should see 192.0.2.1 set as the next-hop.</p>
<pre class="brush: plain;">
atlngaxxla1#sh ip bgp 192.168.202.12
BGP routing table entry for 192.168.202.12/32, version 41279494
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to update-groups:
     2          3          4          5          8
  Local, (Received from a RR-client), (received &amp; used)
    192.0.2.1 from A.B.C.253 (A.B.C.253)
      Origin IGP, metric 0, localpref 1000, valid, internal, best
      Community: 65500:666 no-export
</pre>
<p>This causes uRPF to fail on your transit/peering interfaces because the route is destined to the Null0 interface, dropping traffic immediately on entering your network.</p>
<p>This also causes traffic initiated inside the network to be dropped.</p>
<pre class="brush: plain;">
pts/1 jrowley@SIFT01:/home/jrowley $&amp;gt; traceroute 192.168.202.12
traceroute to 192.168.202.12 (192.168.202.12), 30 hops max, 40 byte packets
 1  vlan18.host.domain.net (A.B.C.126)  1.791 ms  1.844 ms  1.895 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * ^C
</pre>
<p><strong>Considerations</strong></p>
<p>It is imperative that you use this sparingly. RTBH can be like shooting yourself in the foot with a bazooka if done wrong.</p>
<p>Always use no-export on null routes. Even though they are typically /32s, you still want to take care that they are not leaked to your peers.</p>
<p>Additionally, never accept RTBH announcements from your peers (customers are ok only if your inbound policies are tight enough to only permit /32s from their own address space).</p>
<p>Never null route your customers unless absolutely necessary.</p>
<p>Don&#8217;t leave null routes in place permanently. We typically remove them after one week, except for known bad nets.</p>
<hr />In the near future, I will be publishing a method of detecting DoS/DDoS attacks with NfSen on my generic blog over at <a href="http://blog.synacknetworks.com" target="_blank">http://blog.synacknetworks.com</a> along with a custom alerting plugin that we use to send email notifications of ongoing attacks.</p>
<p>The plugin was originally written by a previous employee, but I have recently rewritten it from scratch after deploying dedicated inline nprobe servers to generate netflow data, adding a few features such as auto expiration. Stay tuned.<br />
</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;title=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;title=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;title=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering&amp;desc=RTBH%20is%20something%20that%20I%27ve%20been%20using%20for%20quite%20some%20time%20to%20mitigate%20inbound%20Denial%20of%20Service%20%28DoS%29%20attacks%20against%20customers.%20We%20are%20currently%20in%20the%20process%20of%20deploying%20an%20automated%20traffic%20scrubbing%20platform%20%28Arbor%20Networks%20and%20Cisco%20Guards%29%2C%20but%20I%20still%20see%20this%20as%20an%20extremely%20valuable%20way%20" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;bm_description=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;title=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;title=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/&amp;title=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Mitigating+DoS%2FDDoS+attacks+with+Real+Time+Black+Hole+%28RTBH%29+filtering+-+http://b2l.me/cssf6&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://blog.jason-rowley.com/2010/01/02/mitigating-dosddos-attacks-with-real-time-black-hole-rtbh-filtering/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
