<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>Aaron's Worthless Words</title>
	<link>http://aconaway.com</link>
	<description>Not something you want to hear</description>
	<pubDate>Thu, 15 May 2008 13:16:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Storm Control</title>
		<link>http://aconaway.com/2008/05/15/storm-control/</link>
		<comments>http://aconaway.com/2008/05/15/storm-control/#comments</comments>
		<pubDate>Thu, 15 May 2008 13:16:13 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[Catalyst]]></category>

		<category><![CDATA[LAN]]></category>

		<category><![CDATA[Switching]]></category>

		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/05/15/storm-control/</guid>
		<description><![CDATA[We run a large number of LANs all over the country that are &#8220;controlled&#8221; by the particular business unit.  We manage the gear, but, since they have the money and have to pay for anything we do, they make the final decision on what gets put in.  Sometimes that gets out of hand, [...]]]></description>
			<content:encoded><![CDATA[<p>We run a large number of LANs all over the country that are &#8220;controlled&#8221; by the particular business unit.  We manage the gear, but, since they have the money and have to pay for anything we do, they make the final decision on what gets put in.  Sometimes that gets out of hand, as you can well imagine.</p>
<p>A good example came up a few months ago.  It seems that, at some time in the past, one site needed some more LAN ports, but, instead of calling us and having us send them another switch, one of the &#8220;technical people&#8221; there brought in a hub from home.  It really irks me to see a hub on the switched LAN, but we really have no control over those decisions.  They plugged the hub into one of the existing drops somewhere in the building and plugged everyone in.  It worked&#8230;until somebody moved one of the machines.  The machine was at a desk near the hub, and the network cable was just unplugged and left lying there.  A good Samaritan came by, saw that the hub was not plugged into the network, and plugged it back in for us &#8212; providing a nice second link from the hub to the switch stack in the closet. Take one switch stack, add a hub, insert a switching loop, bake at 350F for a few milliseconds, and you have a broadcast storm.  If you don&#8217;t know already, broadcast storms are bad and eat switch CPU like the yummy cookies we baked.  In this case, several 3750s were taken completely down.</p>
<p>How does one prevent such from happening again?  Well, the first thing to do is to get the CTO to tell everyone that they can&#8217;t plug hubs into the network.  That works about 0% of the time, though, so we had to find a solution that was enforceable.   One of my coworkers found the traffic storm control mechanism built into Cisco switches.  This mechanism allows you to set thresholds based on broadcast, multicast, and unicast traffic and take action when those are reached.</p>
<p>Here are the gory details.  I need to mention, though, that storm-control is configured very differently across platforms and IOS versions.  I would say your mileage may vary, but it&#8217;s probably more accurate to say that this won&#8217;t work on your switch.  A 6500 is configured differently than a 4500.  A 2900XL is different from a 2950.  This will get you going, but you&#8217;re going to have to do some research on your own to find out what works on your platform.</p>
<p><code>interface FastEthernet 0/1<br />
storm-control broadcast level 50<br />
storm-control action shutdown</code></p>
<p>What just happened?  Good question to ask.  If broadcast traffic on F0/1 utilizes 50% of available bandwidth, the port is shutdown.  That means that if broadcast traffic takes up 50Mbps of bandwidth on this port, the port is admined down just as if you did a <em>shutdown</em> on it..  You should probably do the same for multicast or unicast as well to make sure you don&#8217;t get bitten by those.  If you don&#8217;t want to shut down the port, you can also use the <em>trap </em>action to just send an SNMP trap with the port and information, but that doesn&#8217;t prevent very much; the storm will probably wreak havoc before an email for the trap lands on your Crackberry.</p>
<p>Here&#8217;s another big disclaimer.  Finding a good level for a port can be very, very difficult.  A linux box is going to have very different broadcast/multicast/unicast traffic than a Windows box which is different than a Mac. You may have to spend a lot of time analyzing SNMP counters to find out what a good level is.  God help you if you have a hub like we did with mixed computer platforms on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/05/15/storm-control/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cisco IP Phone Videos at Blindhog.net</title>
		<link>http://aconaway.com/2008/05/08/cisco-ip-phone-videos/</link>
		<comments>http://aconaway.com/2008/05/08/cisco-ip-phone-videos/#comments</comments>
		<pubDate>Thu, 08 May 2008 18:45:48 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[VOIP]]></category>

		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/05/08/cisco-ip-phone-videos/</guid>
		<description><![CDATA[Josh over at Blindhog.net has an article linking to a bunch of Cisco IP Phone videos &#8212; from the 7906 to the 7975.  These are Cisco videos and a good place to start if you don&#8217;t know anything about their IP phones.
]]></description>
			<content:encoded><![CDATA[<p>Josh over at <a href="http://blindhog.net" title="Blindhog.net -- Main">Blindhog.net</a> has an article linking to <a href="http://www.blindhog.net/cisco-ip-phone-video-tutorials/" title="Blindhog.net -- Cisco IP Phone Videos">a bunch of Cisco IP Phone videos</a> &#8212; from the 7906 to the 7975.  These are Cisco videos and a good place to start if you don&#8217;t know anything about their IP phones.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/05/08/cisco-ip-phone-videos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Star-crossed Lovers:  HSRP/VRRP and NAT</title>
		<link>http://aconaway.com/2008/05/08/star-crossed-lovers-hsrpvrrp-and-nat/</link>
		<comments>http://aconaway.com/2008/05/08/star-crossed-lovers-hsrpvrrp-and-nat/#comments</comments>
		<pubDate>Thu, 08 May 2008 13:22:26 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[NAT]]></category>

		<category><![CDATA[HSRP]]></category>

		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/05/08/star-crossed-lovers-hsrpvrrp-and-nat/</guid>
		<description><![CDATA[I was doing an HSRP lab the other day, and a project from the past popped into my head.  A customer had a host on a network that was separated from the rest of the network by a 1700 with a couple of FEs.  They wanted that host to be NATted to a [...]]]></description>
			<content:encoded><![CDATA[<p>I was doing an HSRP lab the other day, and a project from the past popped into my head.  A customer had a host on a network that was separated from the rest of the network by a 1700 with a couple of FEs.  They wanted that host to be NATted to a local address so that they didn&#8217;t have to do any routing, which makes sense, I guess.  This is just your standard 1-to-1 NAT, so we plunked down a quick config.</p>
<p>The setup had two networks with 192.168.0.0/24 on the customer&#8217;s local network and 192.168.1.0/24 on the &#8220;DMZ&#8221; (Yes, I know it&#8217;s not really a DMZ).  We want to NAT 192.168.1.100 to 192.168.0.100.</p>
<p><code>interface FastEthernet0/0<br />
ip address 192.168.0.10 255.255.255.0<br />
ip nat inside<br />
!<br />
interface FastEthernet0/1<br />
ip address 192.168.1.10 255.255.255.0<br />
ip nat outside<br />
!<br />
ip nat inside source static 192.168.1.100 192.168.0.100</code></p>
<p>This works great, but then the customer asked for some redundancy.  He wanted a second router inline that could take over in case of failure on the original.  &#8220;Piece of cake,&#8221; I thought and went about setting up the HSRP stuff on both the original and new second routers.</p>
<p><code>interface FastEthernet0/0<br />
standby ip 192.168.0.1<br />
standby preempt<br />
standby name MYHSRP</code></p>
<p>But what about that NAT thing?  If the primary router goes down, the NAT goes down with it.  If I configure the secondary router for the NAT, we get an IP conflict.  I looked around for a while and found a feature introduced in IOS version 12.2(4) that allows a NAT to follow an HSRP or VRRP active member. If a router is the active member of an HSRP or VRRP cluster, the NAT is with that box; if it fails over, the standby IP and the NAT move.  Isn&#8217;t that cool?  The only caveat is that it keys off the name/description of the HSRP/VRRP cluster instead of the ID, so you have to have that configured as we do above.</p>
<p><code>ip nat inside source static 192.168.1.100 192.168.0.100 redundancy MYHSRP</code></p>
<p>Let&#8217;s test to be sure it works.  On the active member (a router called NAT0), we can look at the ARP table and see that this router is speaking for the NAT address of 192.168.0.100 as well as the HSRP IP of 192.168.0.1.  The secondary member (NAT1) only has ARP entries for its interface IPs.  Looks good so far.</p>
<p><code>NAT0#show standby brief<br />
Interface   Grp Prio P State    Active          Standby         Virtual IP<br />
Fa0/0       0   100  P Active   local           192.168.0.11    192.168.0.1<br />
NAT0#show arp<br />
Protocol  Address          Age (min)  Hardware Addr   Type   Interface<br />
Internet  192.168.0.100           -   c800.12bc.0000  ARPA   FastEthernet0/0<br />
Internet  192.168.0.10            -   c800.12bc.0000  ARPA   FastEthernet0/0<br />
Internet  192.168.1.10            -   c800.12bc.0001  ARPA   FastEthernet0/1<br />
Internet  192.168.0.1             -   0000.0c07.ac00  ARPA   FastEthernet0/0<br />
...<br />
NAT1#show standby brief<br />
Interface   Grp Prio P State    Active          Standby         Virtual IP<br />
Fa0/0       0   100  P Standby  192.168.0.10    local           192.168.0.1<br />
NAT1#show arp<br />
Protocol  Address          Age (min)  Hardware Addr   Type   Interface<br />
Internet  192.168.1.11            -   c801.12bc.0001  ARPA   FastEthernet0/1<br />
Internet  192.168.0.11            -   c801.12bc.0000  ARPA   FastEthernet0/0<br />
</code></p>
<p>When I shut down F0/0 on NAT0, the HSRP and NAT both roll over to NAT1.</p>
<p><code>AT0(config)#int f0/0<br />
NAT0(config-if)#shut<br />
*Mar  1 00:30:25.248: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 0 state Active -&gt; Init<br />
*Mar  1 00:30:27.263: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down<br />
*Mar  1 00:30:28.265: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down<br />
NAT0#<br />
NAT0#sh stand b<br />
Interface   Grp Prio P State    Active          Standby         Virtual IP<br />
Fa0/0       0   100  P Init     unknown         unknown         192.168.0.1<br />
NAT0#sh arp<br />
Protocol  Address          Age (min)  Hardware Addr   Type   Interface<br />
Internet  192.168.1.10            -   c800.12bc.0001  ARPA   FastEthernet0/1<br />
...<br />
NAT1#sh stand b<br />
Interface   Grp Prio P State    Active          Standby         Virtual IP<br />
Fa0/0       0   100  P Active   local           unknown         192.168.0.1<br />
NAT1#sh arp<br />
Protocol  Address          Age (min)  Hardware Addr   Type   Interface<br />
Internet  192.168.0.100           -   c801.12bc.0000  ARPA   FastEthernet0/0<br />
Internet  192.168.1.11            -   c801.12bc.0001  ARPA   FastEthernet0/1<br />
Internet  192.168.0.11            -   c801.12bc.0000  ARPA   FastEthernet0/0<br />
Internet  192.168.0.1             -   0000.0c07.ac00  ARPA   FastEthernet0/0</code></p>
<p>Now we have redundancy and NAT on the same cluster.  Sweet.  I also did the same lab for VRRP, but I&#8217;ll spare you the innards.  When you configure VRRP, you can give it a <em>description</em>, which is the same as the <em>name </em>in HSRP.  You use that string as the redundancy name to have a NAT move with VRRP.  Yes, you can do both an HSRP- and VRRP-based NAT at the same time.</p>
<p>*I labbed this out on a Dyanmips/Dynagen instance of two 2651XM routers running 12.4(19) Advanced Enterprise. Like all the configs here, your mileage may vary if you have different versions or feature sets on your routers.</p>
<p>Edit:  I wanted to make a not on GLBP and NAT.  Since all the nodes in a GLBP cluster actually route traffic and are routed to, you can&#8217;t use this type of NAT solution with it.  I don&#8217;t know what the best practice would be, but I imagine it would involve running HSRP on a few routers as we talked about above.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/05/08/star-crossed-lovers-hsrpvrrp-and-nat/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting Started with the FWSM</title>
		<link>http://aconaway.com/2008/04/30/getting-started-with-the-fwsm/</link>
		<comments>http://aconaway.com/2008/04/30/getting-started-with-the-fwsm/#comments</comments>
		<pubDate>Thu, 01 May 2008 02:00:05 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[FWSM]]></category>

		<category><![CDATA[Firewall]]></category>

		<category><![CDATA[Cisco]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/04/30/getting-started-with-the-fwsm/</guid>
		<description><![CDATA[Have I talked about the Cisco Firewall Services Module (FWSM) before?  It&#8217;s a firewall on a module for the 6500 and is based on the PIX firewall.  The term &#8220;based on&#8221; is important here, since it does a lot of stuff the PIX does but everything.  It obviously does connection inspection and [...]]]></description>
			<content:encoded><![CDATA[<p>Have I talked about the Cisco Firewall Services Module (FWSM) before?  It&#8217;s a firewall on a module for the 6500 and is based on the PIX firewall.  The term &#8220;based on&#8221; is important here, since it does a lot of stuff the PIX does but everything.  It obviously does connection inspection and filtering, <strike>but it does not do any VPN stuff.  It&#8217;s not a license thing; it just won&#8217;t do it.  If you want to do VPNs on the 6500, you have to get the IPSec VPN Service Module</strike>.  The VPN thing isn&#8217;t true, actually.  I believe version 3.1 and higher has support for VPNs.</p>
<p>Anyway, we won&#8217;t be going over any configs this time, but we can get some in the future.  I just wanted to go over some stuff that you may need to know to get an FWSM working.</p>
<p>The FWSM does not have any physical ports on it.  It uses the backplane of the switch to get a foot in the networks that you need it to.  What does that give you?  Well, it&#8217;s ultrafast on the 256Gbps backplane, which is a lot better than the 1Gbps on a physical interface.  It also lets you have more interfaces than you could ever have on a firewall appliance (I think you can have 128 interfaces&#8230;someone correct me).  I don&#8217;t know any firewall appliance that has more than 20 or so interfaces.  It also is good for your cabling guy since there are no cables.  I love it since I&#8217;m the cabling guy, too.</p>
<p>The FWSm can be set up with several <a href="http://www.cisco.com/en/US/docs/security/fwsm/fwsm22/configuration/guide/context.html">security contexts</a>.  That means that you can chop up the resources of the module into &#8220;virtual firewalls&#8221; that operate separately from each other.  This is pretty cool, actually, since you can, say, make a firewall for each of your hosting customers so that configurations on one don&#8217;t affect the others.  You can also set the thing up in single context mode so it acts just like a single firewall.  You&#8217;ll have to do some research to figure out what you want to do, and there are a lot of possibilities.</p>
<p>You can also set each context up in <a href="http://www.cisco.com/en/US/docs/security/fwsm/fwsm22/configuration/guide/fwmode.html">either routed or transparent mode</a>.  Routed mode is the &#8220;traditional&#8221; way to set up a firewall, where each interface is a different IP network with packets being routed through the FWSM.  Transparent mode is where the FWSM has two interfaces that bridge the same IP network.  I&#8217;ve always used routed mode everywhere, but you may have some use for transparent mode.</p>
<p>You also have to do <a href="http://www.cisco.com/en/US/docs/security/fwsm/fwsm22/configuration/guide/switch.html">some stuff</a> on the 6500 to get the FWSM working.  You make a vlan-group (a list of VLANs) to present to the FWSM and then assign that to the module.  If you have more than one FWSM, you can have multiple vlan-groups; different FWSMs can control access in and out of different networks.  Remember the context thing?  If you have an FWSM in multiple contexts, you present the module with all the VLANs on all the contexts and split them up when you get to the context config part.</p>
<p>No configs.  This is weird, but you&#8217;ll need to get all this information straightened out before you can get an FWSM configured properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/04/30/getting-started-with-the-fwsm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Diagrams &#8212; Physical Is Not Enough!</title>
		<link>http://aconaway.com/2008/04/24/diagrams-physical-is-not-enough/</link>
		<comments>http://aconaway.com/2008/04/24/diagrams-physical-is-not-enough/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 14:22:09 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[Diagrams]]></category>

		<category><![CDATA[Documentation]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/04/24/diagrams-physical-is-not-enough/</guid>
		<description><![CDATA[In my billion years in the industry, when I&#8217;ve asked for network diagrams, I&#8217;ve inevitably received a physical diagram &#8212; a diagram that shows where stuff is plugged in.  This is fine and dandy and has lots of information, but that&#8217;s not really enough these days.  In the times of Arthur, when every [...]]]></description>
			<content:encoded><![CDATA[<p>In my billion years in the industry, when I&#8217;ve asked for network diagrams, I&#8217;ve inevitably received a physical diagram &#8212; a diagram that shows where stuff is plugged in.  This is fine and dandy and has lots of information, but that&#8217;s not really enough these days.  In the times of Arthur, when every piece of network gear did a single thing, you only needed to know where things were plugged in.  In the modern era, devices do more &#8212; a switch can route and house wireless, an ASA can terminate VPNs and be a switch &#8212; so you need more than just where the cables run.</p>
<p>Logical diagrams show layer-3 (the IP networks) and how those are interconnected.  From that, the diagram inherits the data paths as well &#8212; how does the packet get from network A to network B and back.  You can&#8217;t see that with physical diagrams in a lot of cases.</p>
<p><a href="http://aconaway.com/static/PhysicalDiagramExample.png">Here&#8217;s a physical diagram</a> of a single Internet router and a 6509 with an FWSM.  It literally shows a router and a switch.  How many IP networks do I have?  How many firewall interfaces do I have?  How many layer-3 interfaces on the 6509 am I using?  <a href="http://aconaway.com/static/LogicalDiagramExample.png">This logical diagram</a>, however, shows the same network from layer-3.  A big difference, eh?   Didn&#8217;t know I had 8 networks, did you?</p>
<p>Don&#8217;t go replacing all your physical diagrams with logical ones, though.  You still have to know where things are plugged in, so keep the physical&#8230;just add a logical as well.</p>
<p>Tip of the day:  Use Visio tabs for logical and physical diagrams on the same document.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/04/24/diagrams-physical-is-not-enough/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reliable Static Routing</title>
		<link>http://aconaway.com/2008/04/23/reliable-static-routing/</link>
		<comments>http://aconaway.com/2008/04/23/reliable-static-routing/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 00:52:32 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[Static]]></category>

		<category><![CDATA[Routing]]></category>

		<category><![CDATA[Cisco]]></category>

		<category><![CDATA[InterNetworking]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/04/23/reliable-static-routing/</guid>
		<description><![CDATA[Here&#8217;s a scenario I ran into long ago.  We had several sites that had a frame relay link back to headquarters and a DSL line.  Each link was terminated into a different router on a flat LAN with the users.  The DSL was for Internet access, but also terminated a VPN as [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a scenario I ran into long ago.  We had several sites that had a frame relay link back to headquarters and a DSL line.  Each link was terminated into a different router on a flat LAN with the users.  The DSL was for Internet access, but also terminated a VPN as a backup to the frame circuit.  The requirements were something like this.</p>
<ul>
<li>Corporate traffic had to go across the frame relay link during normal operations.</li>
<li>Internet traffic had to go across the DSL line during normal operations.</li>
<li>If the DSL circuit went down, Internet traffic should be moved over to the frame relay circuit to use the corporate Internet link.</li>
<li>If the frame went down, traffic should be sent out the VPN tunnel for access to corporate stuff.</li>
</ul>
<p>We set the default routes of the machines (via DHCP) to the frame relay router.  That router&#8217;s default route sent traffic to the DSL router, which, of course, had a default route towards the provider.  Both routers were participating in EIGRP with the rest of the corporate network, so they all knew where to route traffic destined for corporate traffic.  If there was a frame outage, the default routes kicked in and sent traffic to the DSL router, which had the VPN tunnels.  The problem came when there was a DSL outage.</p>
<p>At first, we were just monitoring the DSL IP and manually changing default routes when there was an outage, but you know DSL.  We were lucky to have only 3 or 4 a day go down, so it was taking up a lot of our time just moving default routes around.  We had to go to an automated solution, so we looked at doing object tracking but came up just short; it just didn&#8217;t do what we wanted.  We had to go one more step and discovered reliable static routing (RSR).</p>
<p>In normal object tracking, you can track an interface or a route to an IP.  With RSR, you can track reachability to an IP via ICMP (or a whole list of other things).  This is just what we needed.  We figured Yahoo was a site that would always be up, so we went about tracking one of Yahoo&#8217;s IPs from the frame routers, and, if it went down, we could send traffic back across the frame relay cloud.</p>
<p>To set up RSR, you have to set up an IP SLA entry, build a tracking object, then have the default route track the object.  First, the IP SLA entry that we made.</p>
<p><code>ip sla monitor 1<br />
 type echo protocol ipIcmpEcho 66.94.234.13<br />
 frequency 10<br />
</code></p>
<p>This built IP SLA entry 1 to ping 66.94.234.13 every 10 seconds.  With IP SLA, you also have to set a schedule for it to run.  We wanted it to start ASAP and run forever, so we just did one of these.</p>
<p><code>ip sla monitor schedule 1 start-time now</code></p>
<p>This schedules entry 1 to start now, so every time the box came up, the IP SLA process started pinging away.  You then combine the entry with a tracking object like this.</p>
<p><code>track 100 rtr 1 reachability</code></p>
<p>We built object 100 to monitor the reachability of SLA entry 1, so now we have an object to track if a host is unreachable.  Sweet.  How about the static part of the route?  We set the default route of the frame router as the LAN IP of the DSL router tracking object 100.  We also set a weighted default route pointing out the frame relay circuit to use when the object fails.  Assume 10.0.0.0/24 for the frame cloud and 192.168.0.0/30 for the LAN.</p>
<p><code>ip route 0.0.0.0 0.0.0.0 192.168.0.1 track 100<br />
ip route 0.0.0.0 0.0.0.0 10.0.0.254 250</code></p>
<p>In this setup, the default route is the DSL router, and, if the tracking object fails, it rolls to the frame cloud.  Can you spot the flaw, though?  When the route changes over, the object has recovered since it can reach Yahoo through the corporate Internet, and the default route get moved back to the DSL router&#8230;which then fails again&#8230;and rolls back&#8230;and&#8230;ack!  An easy fix is to set a static route for the tracked IP to the DSL router.  </p>
<p><code>ip route 66.94.234.13 255.255.255.255 192.168.0.1</code></p>
<p>This route also lets the frame monitor monitor the DSL service, so, when it comes back up, the tracking object recovers.  Of couse, if someone at the site tried to get to Yahoo on that IP during a DSL outage, they would time out (shouldn&#8217;t they be working?), but, when the DSL recovered, the router would know.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/04/23/reliable-static-routing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting Started with EtherChannel</title>
		<link>http://aconaway.com/2008/04/18/getting-started-with-etherchannel/</link>
		<comments>http://aconaway.com/2008/04/18/getting-started-with-etherchannel/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 20:20:16 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[Catalyst]]></category>

		<category><![CDATA[LAN]]></category>

		<category><![CDATA[Switching]]></category>

		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/04/18/getting-started-with-etherchannel/</guid>
		<description><![CDATA[In my professional life at some point, I came across someone who had a stack of Catalyst 2950 switches all trunked together with their Internet routers connected to the top of the stack.  This was all well and good until they kept adding hosts to the &#8220;middle&#8221; of the stack, then they had all [...]]]></description>
			<content:encoded><![CDATA[<p>In my professional life at some point, I came across someone who had a stack of Catalyst 2950 switches all trunked together with their Internet routers connected to the top of the stack.  This was all well and good until they kept adding hosts to the &#8220;middle&#8221; of the stack, then they had all sorts of latency and packet loss.</p>
<p>The old adage of your chain only being as strong as your weakest length holds true in this case. Here, the weakest link is actually the most-congested trunk, though.  Let&#8217;s step through to see.   A 2950 is a 10/100 switch, so a single trunk can handle 100Mbps of traffic.  We have 10 of these guys, Switch1 to Switch10, all trunked to the one above and below.  If a server in the center of the stack on Switch5 is sending a lot of data to the Internet routers on Switch1, the trunks off of Switch5 will start to get saturated. Switch4 has a few hosts doing the same thing, so traffic from both Switch4 and Switch5 heads towards Switch1, further filling the trunks.  Same for Switch3.  Same for Switch2.  Next thing you know, there&#8217;s 184Mbps or so trying to go across a 100Mbps link.</p>
<p>I fixed the problem using <a href="http://www.cisco.com/en/US/tech/tk389/tk213/technologies_tech_note09186a0080094714.shtml" title="Cisco.com -- Understanding EtherChannel">EtherChannel</a>.  EtherChannel, sometimes called trunking (not Cisco trunks&#8230;don&#8217;t get confused) or bonding, takes up to 8 interfaces of a switch and binds them logically as one <em>Port-channel</em> interface.  The switch then load-balances (not really, but can be pretty close) the traffic across all the links, so, in essence, if you have 2 100Mbps ports in an EtherChannel, you get 200Mbps of bandwidth.  If you put in 8 ports, you&#8217;ll get 800Mbps.  Or, at least, close to it.</p>
<p>There are, as usual, stipulations for using it.</p>
<ul>
<li>All ports on the EtherChannel must terminate to the same device on both ends.  You can&#8217;t have one port go to one switch and another to another switch.</li>
<li>The ports must use identical media.  You can&#8217;t have a copper port and a fiber port in the same group.</li>
<li>The ports must have the same capabilities.  You can&#8217;t put a 100Mbps port and a 1Gbps port in the same group.</li>
<li>The ports must be configured identically or it won&#8217;t work.  This is actually pretty easy to maintain since configuring the Port-channel actually sets the config on all participating ports.</li>
<li>Both ends of the ports must be EtherChannel.  You can&#8217;t run it on one switch but not the other.</li>
</ul>
<p>Enough of that.  Let&#8217;s configure.  The scenario is that you have SwitchA and you want to bind F0/1 and F0/2 into an EtherChannel.  Of course, you want to carry traffic from all VLANs, so let&#8217;s make it a trunk.</p>
<blockquote><p>int F0/1<br />
channel-group 1</p>
<p>int F0/2<br />
channel-group 1</p>
<p>int Port-channel 1<br />
speed 100<br />
duplex full<br />
switchport trunk encapsulation dot1q<br />
switchport mode trunk</p></blockquote>
<p>Easy as pie.  Do the same thing on the other end and you have a 200Mbps, bonded trunk.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/04/18/getting-started-with-etherchannel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BGP Route-reflectors</title>
		<link>http://aconaway.com/2008/04/17/bgp-route-reflectors/</link>
		<comments>http://aconaway.com/2008/04/17/bgp-route-reflectors/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 17:14:49 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[Routing]]></category>

		<category><![CDATA[BGP]]></category>

		<category><![CDATA[Cisco]]></category>

		<category><![CDATA[InterNetworking]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/04/17/bgp-route-reflectors/</guid>
		<description><![CDATA[If you&#8217;re running iBGP, you may have run across this.  What if you had three routers &#8212; R0, R1, R2 &#8212; that were running BGP under the same ASN, but R1 and R2 weren&#8217;t peered?  Any routes coming from R1 would not show up on R2 and vice versa.  iBGP, by standard, [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re running iBGP, you may have run across this.  What if you had three routers &#8212; R0, R1, R2 &#8212; that were running BGP under the same ASN, but R1 and R2 weren&#8217;t peered?  Any routes coming from R1 would not show up on R2 and vice versa.  iBGP, by standard, does not pass on routes it learned via the same ASN. That is, if a router learns a route from another router in the same autonomous system, the route does not get forwarded. I guess it just assumes that all iBGP routers are fully meshed&#8230;I don&#8217;t really know.</p>
<p>That sucks, right? One of several fixes for this is the <em>route-reflector-client</em> directive under the BGP neighbor configuration.  A route-reflector literally reflects the routes from one client to the others just as if you&#8217;ve got a fully meshed network.  Here&#8217;s a sample config for the reflector, R0.</p>
<p><code>router bgp 65000<br />
neighbor 10.0.0.11 remote-as 65000<br />
neighbor 10.0.0.11 route-reflector-client<br />
neighbor 10.0.0.12 remote-as 65000<br />
neighbor 10.0.0.12 route-reflector-client</code></p>
<p>There&#8217;s actually no additional config on R1 and R2 at all; the router reflection is transparent to them.  They actually see the route just as though they got the update directly from the originating router, so any routes received from the reflector appear as though they came from the originator.  In that same breath, you have to realize that R1 and R2 must have routes to each other since the untouched BGP routes will have a next-hop address as the originating router.</p>
<p>Edit:  <a href="http://aconaway.com/static/labs/bgp/BGP-Route-reflector.png">Here&#8217;s a crayon drawing</a> I did to show an example of where you would use route-reflectors.  R0 is connected to R1 and R2 via different WANs, but R1 and R2 aren&#8217;t connected at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/04/17/bgp-route-reflectors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>VTP and You</title>
		<link>http://aconaway.com/2008/04/16/vtp-and-you/</link>
		<comments>http://aconaway.com/2008/04/16/vtp-and-you/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 17:56:24 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[VTP]]></category>

		<category><![CDATA[VLANs]]></category>

		<category><![CDATA[LAN]]></category>

		<category><![CDATA[Switching]]></category>

		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/04/16/vtp-and-you/</guid>
		<description><![CDATA[VLAN Trunk Protocol (VTP) is a little gem on Cisco switches that allows you configure VLANs in one place and have them appear on all of your switches.  This is great for large enterprises with 8457839 switches all trunked together because who wants to configure the new VLAN for that one-off application on all [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cisco.com/warp/public/473/21.html" title="Cisco.com -- Understanding VLAN Trunk Protocol">VLAN Trunk Protocol (VTP)</a> is a little gem on Cisco switches that allows you configure VLANs in one place and have them appear on all of your switches.  This is great for large enterprises with 8457839 switches all trunked together because who wants to configure the new VLAN for that one-off application on all 8457839 switches?</p>
<p>VTP works by having designated VTP <em>servers</em> (not real servers like your Linux box, but a switch) tell the rest of the switches in the network with what VLANs they should be configured.  All the designated VTP <em>clients</em> say &#8220;OK&#8221; and configure themselves with those VLANs.  When you take a VLAN out of the server, all the clients take it out; when you add a new VLAN, all the clients add it as well.  The server and client designation is known as the VTP <em>mode</em>, and there&#8217;s one more to mention.  When a switch is in VTP <em>transparent</em> mode, he will see VTP from the servers but will ignore them and pass them on to the next switch as if nothing ever happened.</p>
<p>To configure VTP, you have to define the VTP <em>domain</em>, which is a name for a group of switches that exchange VTP information.  In general, in an enterprise, all your switches will probably be in the same VTP domain, but there are situations where you have multiple VTP domains on a LAN (like production and test networks).  Next, you set the mode on the switch &#8212; server, client, transparent.  I would suggest you configure a <em>password</em> as well to at least appear as though you&#8217;re practicing good security practices (I&#8217;m not sure it&#8217;s actually secure or not since every switch has the same password and the hash is sent in every packet&#8230;somebody enlighten me, please).</p>
<p>Get on your configuring gloves while I give you <a href="http://www.xpresslearn.com/cisco/vtp-facts" title="XpressLearn.com -- VTP Facts">some more detail</a>.  VTP only works over 802.1q or ISL trunks.  Also, VTP packets are Ethernet frames with the VTP stuff shoved into the data section.  A switch can only be in one VTP domain at a time and can only be in one mode at a time.  You can have more than one VTP server for a domain if you&#8217;d like (via a revisioning mechnism where the latest update always wins).</p>
<p>Here&#8217;s your scenario.  You have SwitchA&#8217;s port G1/1 plugged into SwitchB&#8217;s G2/1.  You want SwitchA to be the VTP server and SwitchB to be the client.  Let&#8217;s get the config in place.</p>
<blockquote><p> SwitchA(config)#interface G1/1<br />
SwitchA(config-if)#switchport trunk encapsulation dot1q<br />
SwitchA(config-if)#switchport mode trunk<br />
SwitchA(config-if)#exit<br />
SwitchA(config)#vtp mode server<br />
SwitchA(config)#vtp domain VTP-DOMAIN<br />
SwitchA(config)#vtp password VTP.PASS</p>
<p>SwitchB(config)#interface G2/1<br />
SwitchB(config-if)#switchport trunk encapsulation dot1q<br />
SwitchB(config-if)#switchport mode trunk<br />
SwitchB(config-if)#exit<br />
SwitchB(config)#vtp mode client<br />
SwitchB(config)#vtp domain VTP-DOMAIN<br />
SwitchB(config)#vtp password VTP.PASS</p></blockquote>
<p>Both switches are now in VTP domain &#8220;VTP-DOMAIN&#8221; and share the password &#8220;VTP.PASS&#8221;.  When you add a VLAN to SwitchA, it automatically gets added to SwitchB.  When you add a VLAN to SwitchB, it actually errors out and says something like &#8220;Dude, I&#8217;m a VTP client.  You can&#8217;t update me.&#8221;</p>
<p>At work, we have a large number of ports but a small number of switches.  We also make very few changes to VLANs, so the work needed to maintain the VLANs is very low.  Because of that, we actually do use transparent mode on all the switches.  I&#8217;m also a bit of a purist, and configuring VLANs is something I like to do by hand; in my opinion, some things, especially mechanisms that can take whole networks down, are better left to the human.  That&#8217;s just me, though.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/04/16/vtp-and-you/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using the Pipe in IOS</title>
		<link>http://aconaway.com/2008/04/13/using-the-pipe-in-ios/</link>
		<comments>http://aconaway.com/2008/04/13/using-the-pipe-in-ios/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 01:34:58 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
		
		<category><![CDATA[IOS]]></category>

		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://aconaway.com/2008/04/13/using-the-pipe-in-ios/</guid>
		<description><![CDATA[A lot of IOS commands give you a lot of information.  Most of the time, though, it&#8217;s way too much information, and it sure would be nice to do some grep-like stuff on the output, right?  Well, just like on Linux, you can use the pipe (&#124;) to do such.  That&#8217;s not [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of IOS commands give you a lot of information.  Most of the time, though, it&#8217;s way too much information, and it sure would be nice to do some grep-like stuff on the output, right?  Well, just like on Linux, you can use the pipe (|) to do such.  That&#8217;s not a butt cheek, by the way.</p>
<p>The most useful function is the <em>include</em> directive.  This is the equivalent of just plain <em>grep</em> on Linux, and will show you only lines that match a string that you give it.  Say that you want to find what ports on your switch are down, but don&#8217;t want to grind through all the lines of a <em>show ip interface brief</em>.  If you just pipe it to the <em>include</em> command followed by the word &#8220;down&#8221;, you&#8217;ll see something like this.</p>
<blockquote><p>Switch#show ip interface brief | include down<br />
GigabitEthernet0/4     unassigned      YES unset  down                  down<br />
GigabitEthernet0/7     unassigned      YES unset  down                  down<br />
GigabitEthernet0/17    unassigned      YES unset  down                  down<br />
GigabitEthernet0/18    unassigned      YES unset  down                  down<br />
GigabitEthernet0/19    unassigned      YES unset  down                  down<br />
GigabitEthernet0/20    unassigned      YES unset  down                  down</p></blockquote>
<p>You can also use the <em>exclude</em> directive, which is the same as a <em>grep -v</em> on Linux.  I hope you figured out that this gives you all lines that don&#8217;t match the word, so, let&#8217;s use the <em>exclude</em> directive to found out what ports are down.  How about we just ignore the lines that are up.</p>
<blockquote><p>Switch#show ip interface brief | exclude up<br />
Interface              IP-Address      OK? Method Status                Protocol<br />
GigabitEthernet0/4     unassigned      YES unset  down                  down<br />
GigabitEthernet0/7     unassigned      YES unset  down                  down<br />
GigabitEthernet0/17    unassigned      YES unset  down                  down<br />
GigabitEthernet0/18    unassigned      YES unset  down                  down<br />
GigabitEthernet0/19    unassigned      YES unset  down                  down<br />
GigabitEthernet0/20    unassigned      YES unset  down                  down</p></blockquote>
<p>Well, this won&#8217;t exactly give you all the ports that are down.  What if the port is up/down?</p>
<p>What else can you use with the pipe?  What if you want to look at the configurations of all the ports or interfaces on a box but don&#8217;t want to go through the config hitting the spacebar over and over.  If you use the <em>begin</em> command, you&#8217;ll see the output beginning from the first match, so, using the string <em>interface</em> will show you the config starting at the first interface.</p>
<blockquote><p>Switch#show running-config | begin interface<br />
interface GigabitEthernet0/1<br />
description Server<br />
switchport access vlan 4<br />
switchport mode access<br />
spanning-tree portfast</p>
<p>&#8230;</p></blockquote>
<p>Another good one is the <em>section</em> command.  It&#8217;s usually used on the output of show running-config and shows you sections of the config that match your string.  Huh?  If you want to see the BGP section of the configuration, you can do something like thing just to see that part of the configuration.</p>
<blockquote><p>Router#show running-config | section bgp<br />
router bgp 1<br />
neighbor 1.1.1.1 remote-as 65000<br />
neighbor 1.1.1.1 version 4</p></blockquote>
<p>There are a few other commands for use with the pipe, so explore on your own.  You might also want to check out <a href="http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fdial_c/fnsprt13/dafaapre.htm" title="Cisco.com -- Regular Expressions">regular expressions on the Cisco IOS</a> if you want to match more than just simple text.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2008/04/13/using-the-pipe-in-ios/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
