<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Ios - Tag - Fryguy's Blog</title><link>https://hugo.fryguy.net/tags/ios/</link><description>Ios - Tag - Fryguy's Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 27 Dec 2013 14:00:40 +0000</lastBuildDate><atom:link href="https://hugo.fryguy.net/tags/ios/" rel="self" type="application/rss+xml"/><item><title>Cisco CSR1000v For Home Labs</title><link>https://hugo.fryguy.net/2013/12/27/cisco-csr1000v-for-home-labs/</link><pubDate>Fri, 27 Dec 2013 14:00:40 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2013/12/27/cisco-csr1000v-for-home-labs/</guid><description><![CDATA[<p align="center">
  
</p>
<p>I have been using the Cisco CSR1000V for my home lab setup for a little bit now.  There have been some questions on how to set this up for a home lab and I figured I would cover how I am using it.<br>
For this post, here is what we are going to build –  a three (3) node CSR1000V network and three (3) vSwitch Networks to connect the CSR1000Vs together.  We will also configure the CSR1000V to have connectivity back to the “home production” network so that we can SSH/Telnet to these routers when we are labbing.<br>
</p>
<h2 id="obtaining-the-csr1000v-router-software">Obtaining the CSR1000V Router Software</h2>
<p>To obtain the Cisco CSR1000V you need to download it from Cisco at this <a href="http://www.cisco.com/en/US/products/ps12559/" target="_blank" rel="noopener noreferrer">LINK</a> and click on the Download software as seen circled below</p>]]></description></item><item><title>IOS XR – iBGP and eBGP</title><link>https://hugo.fryguy.net/2012/09/24/ios-xr-ibgp-and-ebgp/</link><pubDate>Mon, 24 Sep 2012 12:25:02 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2012/09/24/ios-xr-ibgp-and-ebgp/</guid><description><![CDATA[<p><a href="/wp-content/uploads/2012/09/iosxrfryguy-8.jpg" rel=""></a><br>
BGP, this is where it starts to get different with IOS XR.<br>
First up, configuring an iBGP peering with R2’s 150.1.12.2 in AS1 and advertise our loopback interface.<br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config)#</span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config)#<span style="color: #ff0000;">router bgp 1</span></span><br>
Let’s define the network we want to advertise, under the address family:<br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp)#<span style="color: #ff0000;">address-family ipv4 unicast </span></span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp-af)#<span style="color: #ff0000;">net 1.1.1.1/32</span></span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp-af)#<span style="color: #ff0000;">exit</span></span><br>
Now, we can configure the neighbor.  Notice all the commands for the neighbor are under the neighbor now – not next to the neighbor.<br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp)#<span style="color: #ff0000;">nei 150.1.12.2</span></span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp-nbr)#<span style="color: #ff0000;">remote-as 1</span></span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp-nbr)#<span style="color: #ff0000;">address-family ipv4 unicast </span></span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp-nbr-af)#<span style="color: #ff0000;">exit</span></span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp-nbr)#<span style="color: #ff0000;">comm</span></span><br>
<span style="color: #0000ff;">Thu Mar 29 22:47:05.147 UTC</span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config-bgp)#<span style="color: #ff0000;">exit</span></span><br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1(config)#<span style="color: #ff0000;">exit</span></span><br>
Now, time to see if we have a neighbor established:<br>
<span style="color: #0000ff;">RP/0/7/CPU0:R1#<span style="color: #ff0000;">sh bgp nei 150.1.12.2</span></span><br>
<span style="color: #0000ff;">Thu Mar 29 22:48:13.338 UTC</span></p>]]></description></item><item><title>IOS XR – OSPF Configuration</title><link>https://hugo.fryguy.net/2012/09/14/ios-xr-ospf-configuration/</link><pubDate>Fri, 14 Sep 2012 13:22:03 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2012/09/14/ios-xr-ospf-configuration/</guid><description><![CDATA[<p align="center">
  
</p>
<p> </p>
<p class="MsoNoSpacing">
  <span style="font-family: 'Courier New';"><br style="font-family: 'Courier New';" /></span>
</p>
<p class="MsoNoSpacing">
  <span style="font-family: 'Courier New';">Time for some OSPF configs, these will build off the previous configs we just did.<span style="mso-spacerun: yes;">  </span>For this lab, the other router, R2, was<br /> preconfigured to support the connections.<span style="mso-spacerun: yes;"><br /> </span></span>
</p>
<p class="MsoNoSpacing">
  <span style="font-family: 'Courier New';">We will place our loopback and out g0/3/0/2 interface into OSPF process LAB and area 0.0.0.0</span>
</p>
<p class="MsoNoSpacing">
  <span style="font-family: 'Courier New'; color: #0070c0;">RP/0/7/CPU0:R1#<br /> RP/0/7/CPU0:R1#</span><span style="font-family: 'Courier New'; color: red;">conf t</span><span style="font-family: 'Courier New'; color: #002060;"><br /> Thu Mar 29 19:37:52.671 UTC<br style="mso-special-character: line-break;" /><br /> <br style="mso-special-character: line-break;" />Defineour OSPF process name</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config)#</span><span style="font-family: 'Courier New'; color: red;">router ospf LAB</span>
</p>
<p><span style="font-family: 'Courier New'; color: #002060;">Now to define our area first</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config-ospf)#</span><span style="font-family: 'Courier New'; color: red;">area 0.0.0.0</span></p>
<p class="MsoNoSpacing">
  <span style="font-family: 'Courier New'; color: #002060;">Now we can place the interfaces into the area, no need to entering subnets</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config-ospf-ar)#</span><span style="font-family: 'Courier New'; color: red;">inter loo0</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config-ospf-ar-if)#</span><span style="font-family: 'Courier New'; color: red;">inter g0/3/0/2</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config-ospf-ar-if)#</span><span style="font-family: 'Courier New'; color: red;">exit</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config-ospf-ar)#</span><span style="font-family: 'Courier New'; color: red;">exit</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config-ospf)#</span><span style="font-family: 'Courier New'; color: red;">exit</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1(config)#</span><span style="font-family: 'Courier New'; color: red;">commit</span>
</p>
<p class="MsoNoSpacing">
  <span style="font-family: 'Courier New'; color: #0070c0;">Thu Mar 29 19:38:15.182 UTC<br /> RP/0/7/CPU0:R1(config)#</span>
</p>
<p class="MsoNoSpacing">
  <span style="font-family: 'Courier New';">Now to look at our IP Protocols running:</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> RP/0/7/CPU0:R1#</span><span style="font-family: 'Courier New'; color: red;">sh ip proto</span><span style="font-family: 'Courier New'; color: #0070c0;"><br /> Thu Mar 29 19:38:24.113 UTC<br /> Routing Protocol OSPF LAB<span style="mso-spacerun: yes;"><br /> </span>Router Id: 1.1.1.1<span style="mso-spacerun: yes;"><br /> </span>Distance: 110<span style="mso-spacerun: yes;"><br /> </span>Non-Stop Forwarding: Disabled<span style="mso-spacerun: yes;"><br /> </span>Redistribution:<span style="mso-spacerun: yes;"><br /> </span>None<span style="mso-spacerun: yes;"><br /> </span>Area 0.0.0.0<span style="mso-spacerun: yes;"><br /> </span>Loopback0<span style="mso-spacerun: yes;"><br /> </span>GigabitEthernet0/3/0/2<br /> RP/0/7/CPU0:R1#</span>
</p>
<p class="MsoNoSpacing">]]></description></item><item><title>IOS XR – Wildcard Masks</title><link>https://hugo.fryguy.net/2012/09/07/ios-xr-wildcard-masks-2/</link><pubDate>Sat, 08 Sep 2012 01:24:21 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2012/09/07/ios-xr-wildcard-masks-2/</guid><description><![CDATA[<p><a href="/wp-content/uploads/2012/05/iosxrfryguy-21.jpg" rel=""></a><br>
Sorry for the lapse in posting. I am working on something that I think is pretty cool. Should be ready for publication soon!<br>
But back to IOS XR for a quick post!<br>
A really cool thing with IOS XR is interface wildcards.<br>
If you want to only see the Loopback interfaces, all of them. Normally you would do something like Show int br | in Loop, but with XR you can use a wildcard (<em>)<br>
<span style="color: blue;">RP/0/7/CPU0:R1#<span style="color: red;">sh int l</em> br<br /> </span>Mon Apr 16 17:21:08.088 UTC<br /> Intf Intf LineP Encap MTU BW<br /> Name State State Type (byte) (Kbps)<br /> ———————————————————————-<br /> Lo0 up up Loopback 1500 0<br /> Lo100 up up Loopback 1500 0<br /> Lo666 up up Loopback 1500 0<br /> Lo667 up up Loopback 1500 0<br /> Lo1000 up up Loopback 1500 0</span><br>
<span style="color: blue;">RP/0/7/CPU0:R1#</span></p>]]></description></item><item><title>AppleTV Unboxing and first thoughts</title><link>https://hugo.fryguy.net/2012/03/15/appletv-unboxing-and-first-thoughts/</link><pubDate>Thu, 15 Mar 2012 18:00:31 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2012/03/15/appletv-unboxing-and-first-thoughts/</guid><description><![CDATA[<p align="center">
  
</p>
<p>It arrived today – one day early – the AppleTV 3rd Gen. I jumped on ordering this as soon as I was able to, especially since I wanted to get another one for the bedroom (we already have the 2nd Gen in our family room). The 3rd Gen one will be hooked up on our primary TV in the family room, but I could not wait to see what the 1080P looked like, so I hooked it up.<br>
But first the boring unboxing:<br>
You can see the box in the top picture, here is a picture of… the back of the box! It has some information and such on it, pretty cool for a quick overview of what you can use this for.</p>
<p align="center">
  
</p>
<p>When you look at the side of the box, you can see that is boasts 802.11n WiFi, HDMI, and 1080P graphics.</p>]]></description></item><item><title>Cisco 3750 Stack Member Recovery</title><link>https://hugo.fryguy.net/2011/08/15/cisco-3750-stack-member-recover/</link><pubDate>Mon, 15 Aug 2011 15:28:57 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2011/08/15/cisco-3750-stack-member-recover/</guid><description><![CDATA[  
Interesting day today, that it was.  Well, I guess I should say that the weekend was interesting as we had some bad weather &#8211; and just by some random chance we lost a CoreWAN router and a Cisco 3750 Stack member.  So lets just say that I spent my morning recovering the WAN router by moving the circuits to another router and recovering a 3750 switch.  Since moving WAN circuits around is no big deal, lets talk about recovering a Cisco 3750 stack member switch.  
I will assume you have identified the switch that is dead &#8211; no lights is a good indication &#8211; and have received your replacement switch from Cisco already. The first thing you should do is independently boot the new switch and check the IOS version and make sure that it is either the same or compatible.  For me, I prefer to make sure they are the same before adding a switch to the stack as I never trust &#8220;compatible&#8221; version of switch code.  If you have ever upgraded a 3750 stack, you know it can take some time for the stack to come back &#8211; over 10 minutes is not unheard of.  
So what do you do if you lose a switch in your stack, and have the right replacement?  Amazingly enough, just swap it out and the stack will work as normal. Now, don&#8217;t we always wish life was that simple!]]></description></item><item><title>CatOS and IOS</title><link>https://hugo.fryguy.net/2011/08/15/catos-and-ios/</link><pubDate>Mon, 15 Aug 2011 12:05:06 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2011/08/15/catos-and-ios/</guid><description><![CDATA[<p>
<br />
Ahh, Catalyst OS &#8211; old skool Layer 2.  There is a dwindling number of engineer who have seen this code, let alone have ever used this code and understand it.  Since I am about to convert some of the CatOS switches at work to IOS, I figured I would share some of the basics and joys of CatOS with you. Ok, perhaps I am just reminiscing a bit here &#8211; but if this can help just one person, then all is good &#8211; right?<br />
So, what is this thing called CatOS one might ask.  Well, in short it is Cisco OS that is Layer 2 only; there are no routed interfaces, no IP addresses on interfaces (well, there is SC0) or IPs for VLANS &#8211; just L2 VLANS and Ports.  When a Catalyst switch is running CatOS for Layer 2 it is called Hybrid mode &#8211; if the switch is running IOS for Layer 2 and Layer 3, it is called Native mode.  CatOS dates back to 1993 when Cisco acquired Crescendo Communications in 1993 and the Catalyst line &#8211; its first foray into Switching &#8211; and because of the wide acceptance of XDi/CatOS, the OS has lived on for many years.  As the Catalyst line moved forward from the 5000, to the 5500, and now the 6500 &#8211; CatOS has survived.  It is only recently ( Dec 2010 ) that Cisco is no longer fixing and producing CatOS code, and CatOS code will finally go End-Of-Support in December of 2014.<br />]]></description></item><item><title>IOS 15 License</title><link>https://hugo.fryguy.net/2011/06/30/ios-15-license/</link><pubDate>Thu, 30 Jun 2011 19:36:21 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2011/06/30/ios-15-license/</guid><description><![CDATA[<p><a href="/wp-content/uploads/2011/06/IOS-15-Header1.jpg" rel=""></a><br>
The other day I was looking for a Cisco IOS 15 license matrix and was unable to find anything definitive and all that I was doing was trying to find out what services are enabled in different images. Granted, one can use the <a href="http://www.cisco.com/go/fn" target="_blank" rel="noopener noreffer ">Feature Navigator</a> to find out and compare, but sometimes we just need something quick and simple.<br>
In IOS 15 there is a Base image, a Security Image, a Data Image, and a Unified Communications / Collaboration Image.  Each one has some common features, but for the most part each are different.  Below is a matrix that I was able to put together using the Cisco Feature Navigator and comparing all the images to each other.  If you would like an Excel version, you can click <a title="IOS Matrix Excel File" href="http://dl.dropbox.com/u/5753029/IOS%20Matrix%20Post/IOS%2015%20License%20Matrix%20-%20FRY.xlsx" target="_blank" rel="noopener noreferrer">here </a><br>
<a href="/wp-content/uploads/2011/06/IOS-Universal-Image-Post.jpg" rel=""></a><br>
I had to remove the in-line matrix for the moment as it was just too big for WordPress to handle.  For now, just grab the link above.<br>
Also, I think I need to check a few things with some of the other hardware out there.  I think the Cisco 3925e that I selected has much more features in the base code then say, a 2901 would have.  I will do an updated post shortly on some of the model comparisons and IOS feature matrix.<br>
 <br>
 </p>]]></description></item><item><title>Cisco Archive and Configure</title><link>https://hugo.fryguy.net/2011/06/06/cisco-archive-and-configure/</link><pubDate>Mon, 06 Jun 2011 08:15:36 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2011/06/06/cisco-archive-and-configure/</guid><description><![CDATA[<p style="text-align: center;">
  <a href="/?p=1069"></a>
</p>
<p>There has been some interesting discussions on configuration differences with IOS and JUNOS on Twitter the past few days.  One of the biggest things has been the inclusion of a Rollback command in JUNOS; and to be perfectly honest, that has to be one of the best commands that JUNOS has!<br>
In case you are not familiar with it, in JUNOS if you submit a change and then enter <em>commit confirm (default 10 minutes)</em>, the router will not “save” the configuration change until you <em>commit</em> the change again.  This way if you make a change, lock yourself out of the device, it will revert to the previous configuration and you should have your access back.<br>
<em>(some housekeeping)</em><br>
<span style="color: #ff0000;"><strong>Router/Switch Output</strong></span><br>
<span style="color: #0000ff;"><strong> Commands</strong></span><br>
<span style="color: #339966;"><strong> Notes<br /> </strong></span><br>
<span style="color: #ff0000;">[edit]<br /> user@host# </span><span style="color: #0000ff;">commit confirmed</span><br>
<span style="color: #ff0000;">commit confirmed will be automatically rolled back in 10 minutes unless confirmed</span><br>
<span style="color: #ff0000;">commit complete</span><br>
<span style="color: #ff0000;">#commit confirmed will be rolled back in 10 minutes</span><br>
<span style="color: #ff0000;"><span style="color: #339966;">By entering commit again, the change will become permenant</span><br /> [edit]</span><br>
<span style="color: #ff0000;">user@host# </span><span style="color: #0000ff;">commit<br /> </span><br>
Now, what about IOS?  Well, typically we do the <em>reload in x</em> command before we make a change, but is there another way?  Well, yes there is!  We have the <em>archive</em> command and the <em>config replace</em> command string that will perform a similar function to to the JUNOS command and less drastic then the <em>reload in</em> command.<br>
So, lets first cover the <em>archive</em> command.<br>
The <em>archive</em> command allows you to make an archive of the config either over a time-period (say 1440 minutes) or when the <em>write-memory</em> command is initiated.  The archive can be stored in flash, tftp, ftp, or a few other places. To setup archiving:<br>
<span style="color: #ff0000;">Rack1R2#</span><span style="color: #0000ff;">conf t</span><br>
<span style="color: #ff0000;">Enter configuration commands, one per line.  End with CNTL/Z.</span><br>
<span style="color: #339966;">To enter the archive config, enter the archive command</span><br>
<span style="color: #ff0000;">Rack1R2(config)#<span style="color: #0000ff;">archive</span></span><br>
<span style="color: #339966;">From there, you need to tell it 1) where to store the file and 2) what to call it.</span><br>
<span style="color: #339966;">Here it will be flash:/archive with a name of Rollback</span><br>
<span style="color: #ff0000;">Rack1R2(config-archive)#<span style="color: #0000ff;">path flash:/archive/Rollback</span></span><br>
<span style="color: #339966;">Here I tell it to archive the previous config whenever the write-memory command is executed</span><br>
<span style="color: #ff0000;">Rack1R2(config-archive)#<span style="color: #0000ff;">write-memory</span></span><br>
<span style="color: #339966;">Also, I might as well make sure that we back it up once a day at a minimum.  Range is from 1 minute to 525600 minutes (1 year)</span><br>
<span style="color: #ff0000;">Rack1R2(config-archive)#<span style="color: #0000ff;">time-period ?</span></span><br>
<span style="color: #ff0000;">&lt;1-525600&gt;  Number of minutes to wait between archive creation</span><br>
<span style="color: #ff0000;">Rack1R2(config-archive)#<span style="color: #0000ff;">time-period 1440</span></span><br>
<span style="color: #ff0000;">Rack1R2(config-archive)#</span><br>
Now, if we look at the flash:/archive/ folder, what will we see?  Lets look (I already have some saved in memory)<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">dir flash:archive</span></span><br>
<span style="color: #ff0000;">Directory of flash:/archive/</span><br>
<span style="color: #ff0000;">17  -rw-        1806   Jun 3 2011 19:34:16 +00:00  Rollback-2</span><br>
<span style="color: #ff0000;">18  -rw-        1806   Jun 3 2011 19:35:02 +00:00  Rollback-3</span><br>
<span style="color: #ff0000;">16  -rw-        1744   Jun 3 2011 19:31:54 +00:00  Rollback-1</span><br>
<span style="color: #ff0000;">512057344 bytes total (328622080 bytes free)</span><br>
<span style="color: #ff0000;">Rack1R2#</span><br>
As you can see, we have a few files there, each appended with a number (call it revision with highest being most recent). To check, use the show archive command<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">show archive</span></span><br>
<span style="color: #ff0000;">There are currently 4 archive configurations saved.</span><br>
<span style="color: #ff0000;">The next archive file will be named flash:/archive/Rollback-4</span><br>
<span style="color: #ff0000;">Archive #  Name</span><br>
<span style="color: #ff0000;"></span><br>
<span style="color: #ff0000;">1       flash:/archive/Rollback-1</span><br>
<span style="color: #ff0000;">2       flash:/archive/Rollback-2</span><br>
<span style="color: #ff0000;">3       flash:/archive/Rollback-3 &lt;- Most Recent</span><br>
<span style="color: #ff0000;">4</span><br>
<span style="color: #ff0000;">5</span><br>
<span style="color: #ff0000;">6</span><br>
<span style="color: #ff0000;">7</span><br>
<span style="color: #ff0000;">8</span><br>
<span style="color: #ff0000;">9</span><br>
<span style="color: #ff0000;">10</span><br>
<span style="color: #ff0000;">11</span><br>
<span style="color: #ff0000;">12</span><br>
<span style="color: #ff0000;">13</span><br>
<span style="color: #ff0000;">14</span><br>
<span style="color: #ff0000;">Rack1R2#</span><br>
So, what does all this mean and how does this relate to the commit confirm command in Junos?  Good question!  Here we go!<br>
So, when you need to do a change, just execute the <em>archive config</em> command prior to the change.  That will create a snapshot of the existing config in the archive directory.<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">archive config</span></span><br>
<span style="color: #ff0000;"></span><br>
Lets take a look and see what revision we have saved:<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">show archive</span></span><br>
<span style="color: #ff0000;">There are currently 5 archive configurations saved.</span><br>
<span style="color: #ff0000;">The next archive file will be named flash:/archive/Rollback-5</span><br>
<span style="color: #ff0000;">Archive #  Name</span><br>
<span style="color: #ff0000;"></span><br>
<span style="color: #ff0000;">1       flash:/archive/Rollback-1</span><br>
<span style="color: #ff0000;">2       flash:/archive/Rollback-2</span><br>
<span style="color: #ff0000;">3       flash:/archive/Rollback-3</span><br>
<span style="color: #ff0000;">4       flash:/archive/Rollback-4 &lt;- Most Recent</span><br>
<span style="color: #ff0000;">5</span><br>
<span style="color: #ff0000;">6</span><br>
<span style="color: #ff0000;">7</span><br>
<span style="color: #ff0000;">8</span><br>
<span style="color: #ff0000;">9</span><br>
<span style="color: #ff0000;">10</span><br>
<span style="color: #ff0000;">11</span><br>
<span style="color: #ff0000;">12</span><br>
<span style="color: #ff0000;">13</span><br>
<span style="color: #ff0000;">14</span><br>
<span style="color: #ff0000;">Rack1R2#</span><br>
Now, there is another command that we need to know about – its the <em>configure replace</em> command!  We can use that similar to the commit confirm command because of the archive command.<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">configure replace flash:archive/Rollback-4 time 60</span></span><br>
That is all good – lets test the command!<br>
 <br>
I have R1 and R2 configured like the diagram below, connected via Frame-Relay and all interfaces are in RIPv2<br>
<a href="/wp-content/uploads/2011/06/Archive_Diagram_rev1.jpg" rel=""></a><br>
Here is the routing table and interface status on R2:<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">sh ip route</span></span><br>
<span style="color: #ff0000;">Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP</span><br>
<span style="color: #ff0000;">D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area</span><br>
<span style="color: #ff0000;">N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2</span><br>
<span style="color: #ff0000;">E1 – OSPF external type 1, E2 – OSPF external type 2</span><br>
<span style="color: #ff0000;">i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2</span><br>
<span style="color: #ff0000;">ia – IS-IS inter area, * – candidate default, U – per-user static route</span><br>
<span style="color: #ff0000;">o – ODR, P – periodic downloaded static route</span><br>
<span style="color: #ff0000;">Gateway of last resort is not set</span><br>
<span style="color: #ff0000;">150.1.0.0/16 is variably subnetted, 4 subnets, 2 masks</span><br>
<span style="color: #ff0000;">R       150.1.1.1/32 [120/1] via 150.1.12.1, 00:00:23, Serial4/0.1</span><br>
<span style="color: #ff0000;">C       150.1.12.0/24 is directly connected, Serial4/0.1</span><br>
<span style="color: #ff0000;">R       150.1.11.0/24 [120/1] via 150.1.12.1, 00:00:23, Serial4/0.1</span><br>
<span style="color: #ff0000;">R       150.1.111.1/32 [120/1] via 150.1.12.1, 00:00:23, Serial4/0.1</span><br>
<span style="color: #ff0000;">150.2.0.0/32 is subnetted, 3 subnets</span><br>
<span style="color: #ff0000;">C       150.2.222.2 is directly connected, Loopback2</span><br>
<span style="color: #ff0000;">C       150.2.22.2 is directly connected, Loopback1</span><br>
<span style="color: #ff0000;">C       150.2.2.2 is directly connected, Loopback0</span><br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">sh ip int br | ex un</span></span><br>
<span style="color: #ff0000;">Interface                  IP-Address      OK? Method Status                Protocol</span><br>
<span style="color: #ff0000;">Serial4/0.1                150.1.12.2      YES manual up                    up</span><br>
<span style="color: #ff0000;">Loopback0                  150.2.2.2       YES manual up                    up</span><br>
<span style="color: #ff0000;">Loopback1                  150.2.22.2      YES manual up                    up</span><br>
<span style="color: #ff0000;">Loopback2                  150.2.222.2     YES manual up                    up</span><br>
<span style="color: #ff0000;">Rack1R2#</span><br>
Here is the same information for R1<br>
<span style="color: #ff0000;">Rack1R1#<span style="color: #0000ff;">sh ip route</span></span><br>
<span style="color: #ff0000;">Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP</span><br>
<span style="color: #ff0000;">D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area</span><br>
<span style="color: #ff0000;">N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2</span><br>
<span style="color: #ff0000;">E1 – OSPF external type 1, E2 – OSPF external type 2</span><br>
<span style="color: #ff0000;">i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2</span><br>
<span style="color: #ff0000;">ia – IS-IS inter area, * – candidate default, U – per-user static route</span><br>
<span style="color: #ff0000;">o – ODR, P – periodic downloaded static route</span><br>
<span style="color: #ff0000;">Gateway of last resort is not set</span><br>
<span style="color: #ff0000;">150.1.0.0/16 is variably subnetted, 4 subnets, 2 masks</span><br>
<span style="color: #ff0000;">C       150.1.1.1/32 is directly connected, Loopback0</span><br>
<span style="color: #ff0000;">C       150.1.12.0/24 is directly connected, Serial4/0.1</span><br>
<span style="color: #ff0000;">C       150.1.11.0/24 is directly connected, Loopback1</span><br>
<span style="color: #ff0000;">C       150.1.111.1/32 is directly connected, Loopback2</span><br>
<span style="color: #ff0000;">150.2.0.0/32 is subnetted, 3 subnets</span><br>
<span style="color: #ff0000;">R       150.2.222.2 [120/1] via 150.1.12.2, 00:00:12, Serial4/0.1</span><br>
<span style="color: #ff0000;">R       150.2.22.2 [120/1] via 150.1.12.2, 00:00:12, Serial4/0.1</span><br>
<span style="color: #ff0000;">R       150.2.2.2 [120/1] via 150.1.12.2, 00:00:13, Serial4/0.1</span><br>
<span style="color: #ff0000;">Rack1R1#<span style="color: #0000ff;">sh ip int br | ex un</span></span><br>
<span style="color: #ff0000;">Interface                  IP-Address      OK? Method Status                Protocol</span><br>
<span style="color: #ff0000;">Serial4/0.1                150.1.12.1      YES manual up                    up</span><br>
<span style="color: #ff0000;">Loopback0                  150.1.1.1       YES manual up                    up</span><br>
<span style="color: #ff0000;">Loopback1                  150.1.11.1      YES manual up                    up</span><br>
<span style="color: #ff0000;">Loopback2                  150.1.111.1     YES manual up                    up</span><br>
<span style="color: #ff0000;">Rack1R1#</span><br>
Lets test the connectivity by PINGing R2 Loopback 2 from R1 Loopback2<br>
<span style="color: #ff0000;">Rack1R1#<span style="color: #0000ff;">ping 150.2.222.2 so lo2</span></span><br>
<span style="color: #ff0000;">Type escape sequence to abort.</span><br>
<span style="color: #ff0000;">Sending 5, 100-byte ICMP Echos to 150.2.222.2, timeout is 2 seconds:</span><br>
<span style="color: #ff0000;">Packet sent with a source address of 150.1.111.1</span><br>
<span style="color: #ff0000;">!!!!!</span><br>
<span style="color: #ff0000;">Success rate is 100 percent (5/5), round-trip min/avg/max = 56/57/60 ms</span><br>
<span style="color: #ff0000;">Rack1R1#</span><br>
Good, now lets test the config replace command (IOS Rollback)<br>
First, we will archive the config<br>
<span style="color: #0000ff;"><span style="color: #ff0000;">Rack1R2#</span>archive config</span><br>
Now lets see what archives we have:<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">sh archive</span></span><br>
<span style="color: #ff0000;">There are currently 6 archive configurations saved.</span><br>
<span style="color: #ff0000;">The next archive file will be named flash:/archive/Rollback-6</span><br>
<span style="color: #ff0000;">Archive #  Name</span><br>
<span style="color: #ff0000;"></span><br>
<span style="color: #ff0000;">1       flash:/archive/Rollback-1</span><br>
<span style="color: #ff0000;">2       flash:/archive/Rollback-2</span><br>
<span style="color: #ff0000;">3       flash:/archive/Rollback-3</span><br>
<span style="color: #ff0000;">4       flash:/archive/Rollback-4</span><br>
<span style="color: #ff0000;">5       flash:/archive/Rollback-5 &lt;- Most Recent<br /> <span style="color: #008000;">[– SNIP –]</span><br /> </span><br>
Ok, Rollback-5 is the most recent.<br>
Now on R1 we will start a 1000 packet ping<br>
<span style="color: #ff0000;">Rack1R1#<span style="color: #0000ff;">ping 150.2.222.2 so lo2 repeat 100</span></span><br>
<span style="color: #ff0000;">Type escape sequence to abort.</span><br>
<span style="color: #ff0000;">Sending 1000, 100-byte ICMP Echos to 150.2.222.2, timeout is 2 seconds:</span><br>
<span style="color: #ff0000;">Packet sent with a source address of 150.1.111.1</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
Now that we have that started, lets move on<br>
Now, on R2 we will execute the configure replace command, set the timer to 60 seconds, then shut down the Serial 4/0 (frame-relay) interface<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">configure replace flash:/archive/Rollback-5 time 60 </span></span><br>
<span style="color: #ff0000;">Timed Rollback: Backing up to flash:/archive/Rollback-7</span><br>
<span style="color: #ff0000;"><span style="color: #339966;">It will now ask you to make sure you want to do this – checks and balances</span><br /> This will apply all necessary additions and deletions</span><br>
<span style="color: #ff0000;">to replace the current running configuration with the</span><br>
<span style="color: #ff0000;">contents of the specified configuration file, which is</span><br>
<span style="color: #ff0000;">assumed to be a complete configuration, not a partial</span><br>
<span style="color: #ff0000;">configuration. Enter Y if you are sure you want to proceed. ? [no]: <strong><span style="color: #0000ff;">Y</span></strong></span><br>
<span style="color: #ff0000;">Total number of passes: 0</span><br>
<span style="color: #ff0000;">Rollback Done</span><br>
<span style="color: #ff0000;"></span><span style="color: #ff0000;">*Jun  3 21:43:22.026: Rollback:Acquired Configuration lock.</span><br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">conf t</span></span><br>
<span style="color: #ff0000;">Enter configuration commands, one per line.  End with CNTL/Z.</span><br>
<span style="color: #ff0000;">Rack1R2(config)#<span style="color: #0000ff;">int ser 4/0 </span></span><br>
<span style="color: #ff0000;">Rack1R2(config-if)#<span style="color: #0000ff;">shut</span></span><br>
<span style="color: #ff0000;">Rack1R2(config-if)#</span><br>
<span style="color: #ff0000;">*Jun  3 21:43:28.274: %LINK-5-CHANGED: Interface Serial4/0, changed state to administratively down</span><br>
<span style="color: #ff0000;">*Jun  3 21:43:29.274: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial4/0, changed state to down</span><br>
<span style="color: #ff0000;">Rack1R2(config-if)</span><br>
Hmm, if we look at the ping that we have going on R1 we see that it can no longer PING R2<br>
<span style="color: #ff0000;">Rack1R1#<span style="color: #0000ff;">ping 150.2.222.2 so lo2 repeat 1000</span></span><br>
<span style="color: #ff0000;">Type escape sequence to abort.</span><br>
<span style="color: #ff0000;">Sending 1000, 100-byte ICMP Echos to 150.2.222.2, timeout is 2 seconds:</span><br>
<span style="color: #ff0000;">Packet sent with a source address of 150.1.111.1</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!………………………….</span><br>
<span style="color: #ff0000;">……..</span><br>
Lets wait…. there, the config just rolled back on R2 and R1 can PING again!<br>
<span style="color: #ff0000;">Rack1R1#<span style="color: #0000ff;">ping 150.2.222.2 so lo2 repeat 1000</span></span><br>
<span style="color: #ff0000;">Type escape sequence to abort.</span><br>
<span style="color: #ff0000;">Sending 1000, 100-byte ICMP Echos to 150.2.222.2, timeout is 2 seconds:</span><br>
<span style="color: #ff0000;">Packet sent with a source address of 150.1.111.1</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!………………………….</span><br>
<span style="color: #ff0000;">…………………!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">!!!!!!!!!!!!!!!!!!!!</span><br>
<span style="color: #ff0000;">Success rate is 94 percent (948/1000), round-trip min/avg/max = 56/57/240 ms</span><br>
<span style="color: #ff0000;">Rack1R1#</span><br>
So what happened on R2?  Here is the output on the console:<br>
<span style="color: #ff0000;">Rack1R2(config-if)#Timed Rollback: rolling to:flash:/archive/Rollback-7</span><br>
<span style="color: #ff0000;">!Pass 1</span><br>
<span style="color: #339966;">Neat, it will show you the commands it is about to enter!</span><span style="color: #ff0000;"><br /> </span><br>
<span style="color: #ff0000;">!List of Commands:</span><br>
<span style="color: #ff0000;">interface Serial4/0</span><br>
<span style="color: #ff0000;">no shutdown</span><br>
<span style="color: #ff0000;">end</span><br>
<span style="color: #ff0000;">Total number of passes: 1</span><br>
<span style="color: #ff0000;">Rollback Done</span><br>
<span style="color: #ff0000;">*Jun  3 21:44:22.218: Rollback:Acquired Configuration lock.</span><br>
<span style="color: #ff0000;">Rack1R2(config-if)#</span><br>
<span style="color: #ff0000;">*Jun  3 21:44:22.778: %PARSER-3-CONFIGNOTLOCKED: Unlock requested by process ’21’. Configuration not locked.</span><br>
<span style="color: #ff0000;">Rack1R2(config-if)#</span><br>
<span style="color: #ff0000;">*Jun  3 21:44:24.586: %LINK-3-UPDOWN: Interface Serial4/0, changed state to up</span><br>
<span style="color: #ff0000;">*Jun  3 21:44:25.586: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial4/0, changed state to up</span><br>
<span style="color: #ff0000;">Rack1R2(config-if)#</span><br>
If all is good after your change and you need to not roll-back, just issue the command <em>configure confirm</em> and it will cancel the rollback._<br>
_<br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">configure confirm</span></span><br>
 <br>
<span style="color: #000000;">If you already issued that command, you will get the following output:</span><br>
<span style="color: #ff0000;">Rack1R2#<span style="color: #0000ff;">configure confirm </span></span><br>
<span style="color: #ff0000;">%No timed rollback pending</span><br>
<span style="color: #ff0000;">Rack1R2#</span><br>
Not as simple as the JUNOS commands, but is still valuable in the IOS world!<br>
 <br>
<a href="http://dl.dropbox.com/u/5753029/Archive%20Blog/R1_Archive.txt" target="_blank" rel="noopener noreffer ">R1 Config Here</a><br>
<a href="http://dl.dropbox.com/u/5753029/Archive%20Blog/R2_Archive.txt" target="_blank" rel="noopener noreffer ">R2 Config Here</a><br>
 </p>]]></description></item><item><title>Cisco ASR and LACP</title><link>https://hugo.fryguy.net/2010/12/02/cisco-asr-and-lacp/</link><pubDate>Thu, 02 Dec 2010 16:50:03 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2010/12/02/cisco-asr-and-lacp/</guid><description><![CDATA[<p>I am currently working on a new site deployment utilizing some Cisco ASR1002 routers.  When we typically design a location we cross-connect the two WAN routers via a cross-over cable; this allows us to have the capability to continue to transit traffic over the connected WAN routers and WAN links if need to take down the Core at the site for maintenance.<br>
If you look at the image below you will see three Sites – A – B – C.  Traffic that is destined to Site B from Site A will transit the connected WAN link.  So what happens if that WAN link goes down, it will transit through Site C instead.  By having the WAN routers connected via a cross-over cable, the traffic will stay at the end and not transverse the internal LAN of the site.<br>
<a href="/wp-content/uploads/2010/12/site-a-b-c.jpg" rel=""></a><br>
Ok, the background information is now out of the way. Lets continue.<br>
Typically we use a single gigabit ethernet cross-over cable between the routers, due to hardware limitations. Well, with the ASR series we now have more interfaces that we can use for this connectivity.  What I have also found is that the ASR and IOS-XE support LACP and etherchannels.  This is a wonderful thing as it actually solves some of the problems of a single cross-over cable between routers.<br>
So, how does one configure LACP on the ASR 1002?  It is done the same way as you would on the Nexus for L3 etherchannel. Below are the configuration commands as well as the ways to check.<br>
For this example, we are going to create Port-Channel 12 on the router and assign interfaces G0/0/2 and G0/0/3 to the channel-group<br>
Router#<span style="color:#ff0000;">conf t</span><br>
Router(config)#<span style="color:#ff0000;">interface GigabitEthernet0/0/2</span><br>
Router(config-if)# <span style="color:#ff0000;">channel-group 12 mode active</span><br>
Router(config-if)# <span style="color:#ff0000;">no shut</span><br>
Router(config-if)# <span style="color:#ff0000;">exit</span><br>
Router(config)#<span style="color:#ff0000;">interface GigabitEthernet0/0/3</span><br>
Router(config-if)# <span style="color:#ff0000;">channel-group 12 mode active</span><br>
Router(config-if)# <span style="color:#ff0000;">no shut</span><br>
Router(config-if)# <span style="color:#ff0000;">exit</span><br>
Now we can configure an IP address on the port-channel interface:<br>
Router(config)#<span style="color:#ff0000;">interface Port-channel12</span><br>
Router(config-if)# <span style="color:#ff0000;">ip address 10.1.1.1 255.255.255.252</span><br>
<span style="color:#ff0000;"><span style="color:#000000;">T0 check the port-channel:</span></span><br>
Router#<span style="color:#ff0000;">sh int port-channel 12</span><br>
<strong><span style="color:#ff0000;">Port-channel12 is up, line protocol is up </span></strong><br>
<span style="color:#ff0000;">Hardware is GEChannel, address is c471.fe0c.55cb (bia c471.fe0c.55cb)</span><br>
<span style="color:#ff0000;">Internet address is 10.98.255.9/30</span><br>
<span style="color:#ff0000;">MTU 1500 bytes, <strong>BW 2000000 Kbit/sec</strong>, DLY 10 usec, </span><br>
<span style="color:#ff0000;"><span style="color:#000000;">You can also look at the LACP information:</span></span><br>
Router#<span style="color:#ff0000;">sh lacp 12 neighbor </span><br>
<span style="color:#0000ff;">Flags:  S – Device is requesting Slow LACPDUs </span><br>
<span style="color:#0000ff;">F – Device is requesting Fast LACPDUs</span><br>
<span style="color:#0000ff;">A – Device is in Active mode       P – Device is in Passive mode </span><br>
<span style="color:#0000ff;">Channel group 12 neighbors</span><br>
<span style="color:#0000ff;">Partner’s information:</span><br>
<span style="color:#0000ff;">Partner Partner   LACP Partner  Partner   Partner  Partner     Partner</span><br>
<span style="color:#0000ff;">Port      Flags   State     Port Priority Admin Key Oper Key Port Number Port State</span><br>
<span style="color:#0000ff;">Gi0/0/2   SA      bndl      32768         0x0       0xC      0x3         0x3D </span><br>
<span style="color:#0000ff;">Gi0/0/3   SA      bndl      32768         0x0       0xC      0x4         0x3D </span><br>
Router#<br>
Now lets ping to test:<br>
Router#<span style="color:#ff0000;">p 10.1.1.2 t 1</span><br>
<span style="color:#0000ff;">Type escape sequence to abort.</span><br>
<span style="color:#0000ff;">Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 1 seconds:</span><br>
<span style="color:#0000ff;">!!!!!</span><br>
<span style="color:#0000ff;">Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms</span><br>
Router#<br>
If you noticed I typed t 1 – that means use a 1 second timeout.  I did that in case, for some reason, it does not PING successfully I only have to wait half the normal time of 2 seconds per ping.  This might not seem like a big deal, but if you use this on some LAB test – you can save some time and frustration. 🙂</p>]]></description></item></channel></rss>