<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9566112235862323</id><updated>2012-03-04T23:28:29.602-05:00</updated><title type='text'>CCIE5851</title><subtitle type='html'>Ron Fuller's blog of a Data Center evalangelist on Networking, Virtualization and more</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ccie5851.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ccie5851.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ron Fuller</name><uri>http://www.blogger.com/profile/17992103069727481171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9566112235862323.post-8684455069371978265</id><published>2011-03-20T20:54:00.008-04:00</published><updated>2011-03-22T07:38:09.935-04:00</updated><title type='text'>OTV Deep Dive - Part 3</title><content type='html'>After a long delay, let's pick up where we left off last with our OTV deep dive. This post will focus on a key concept with OTV that is critical to understand. We'll examine how we localize our First Hop Redundancy Protocols (FHRPs). These protocols are Host Standby Routing Protocol (HSRP v1 and v2) Virtual Router Redundancy Protocol (VRRP), and Gateway Load Balancing Protocol (GLBP). These protocols allow two network devices to share a common IP address to be used as the default gateway on a subnet and provide redundancy and load balancing to clients in that subnet.&lt;br /&gt;Before we can discuss FHRP localization, let's review why this might be significant to our design. Typically with FHRPs the members of the group are local to each other both logically and physically. Depending on the FHRP there is load balancing or redirection between the devices to the "active" member to handle traffic. This works well when considered locally and most of us use it without a second thought.&lt;br /&gt;When we start to stretch or extend our VLANs across distances, latency is introduced. While a 1ms one-way latency may not sound significant, when accumulated over a complete flow or transaction, it can become quite detrimental to performance. This is exacerbated if the two devices are both in the same location, but have default gateways in another data center. Sub optimal switching and routing at its finest. This effect is referred to as tromboning traffic and is illustrated below where device A needs to talk with device B and the default gateway resides across a stretched VLAN.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-BxaBgExpJzc/TYaiLE8zNvI/AAAAAAAAARc/lNYCMa1ooCc/s1600/OTV%2BFHRP.PNG"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 578px; FLOAT: left; HEIGHT: 259px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5586330698990696178" border="0" alt="" src="http://4.bp.blogspot.com/-BxaBgExpJzc/TYaiLE8zNvI/AAAAAAAAARc/lNYCMa1ooCc/s320/OTV%2BFHRP.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We address this with OTV by implementing filters to prevent the FHRP peers in each opposite data centers from seeing each other and therefore becoming localized. There are two approaches to do this, one using a MAC access list which we won't cover, and the other, recommended one is via an IP ACL that is applied as a VLAN ACL (VACL). To be fair, both work equally well in my experience, but he IP ACL is easier to operationalize and I am a staunch believer in making network easier to maintain and avoiding what I refer to as Science Fair Projects. We've all worked on, inherited or (hopefully not!) created a Science Fair Project - let's avoid that. ;)&lt;br /&gt;&lt;br /&gt;The configuration for the IP ACL looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ip access-list HSRP_IP&lt;br /&gt;10 permit udp any 224.0.0.2/32 eq 1985&lt;br /&gt;20 permit udp any 224.0.0.102/32 eq 1985&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This access list matches the multicast addresses for HSRPv1, and HSRPv2, though can be modified for VRRP and GLBP.&lt;br /&gt;This access-list is then applied as a VACL to filter the FHRP hellos from entering the OTV through the internal interfaces. The VACL looks like below where we’ll filter HSRP on VLAN 31-33.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;vlan access-map HSRP_Local 10&lt;br /&gt;match ip address HSRP_IP&lt;br /&gt;action drop&lt;br /&gt;vlan access-map HSRP_Local 20&lt;br /&gt;match ip address ALL&lt;br /&gt;action forward&lt;br /&gt;vlan filter HSRP_Local vlan-list 16,23&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;If you are like me and want to verify your VACL is applied and matching, the steps are not as easy we’d like them to be but the capability does exist. *NOTE* that I am not responsible for you monkeying around with any of the other commands available when you attach to the module. You’ve been warned. :)&lt;br /&gt;The first thing to do is attach to the module where your internal interfaces physically are. In the example below, it’s module 1. If your OTV is configured in a non-default VDC, you’ll need to set the parser to use that VDC as below.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;champs1# attach mod 1&lt;br /&gt;Attaching to module 1 ...&lt;br /&gt;To exit type 'exit', to abort type '$.'&lt;br /&gt;module-1# vdc 3&lt;br /&gt;module-1# show system internal access-list input statistics&lt;br /&gt;VLAN 16 :&lt;br /&gt;=========&lt;br /&gt;Tcam 1 resource usage:&lt;br /&gt;----------------------&lt;br /&gt;Label_b = 0x806&lt;br /&gt;Bank 0&lt;br /&gt;------&lt;br /&gt;IPv4 Class&lt;br /&gt;Policies: VACL(HSRP_Local) [Merged]&lt;br /&gt;Entries:&lt;br /&gt;[Index] Entry [Stats]&lt;br /&gt;---------------------&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;[0013] deny udp 0.0.0.0/0 224.0.0.102/32 eq 1985 [1863]&lt;br /&gt;[0014] deny udp 0.0.0.0/0 224.0.0.2/32 eq 1985 [4121]&lt;/span&gt;&lt;br /&gt;[0015] permit ip 0.0.0.0/0 0.0.0.0/0 [1766386]&lt;br /&gt;&lt;br /&gt;VLAN 23 :&lt;br /&gt;=========&lt;br /&gt;Tcam 1 resource usage:&lt;br /&gt;----------------------&lt;br /&gt;Label_b = 0x806&lt;br /&gt;Bank 0&lt;br /&gt;------&lt;br /&gt;IPv4 Class&lt;br /&gt;Policies: VACL(HSRP_Local) [Merged]&lt;br /&gt;Entries:&lt;br /&gt;[Index] Entry [Stats]&lt;br /&gt;---------------------&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;[0013] deny udp 0.0.0.0/0 224.0.0.102/32 eq 1985 [1863]&lt;br /&gt;[0014] deny udp 0.0.0.0/0 224.0.0.2/32 eq 1985 [4121]&lt;br /&gt;&lt;/span&gt;[0015] permit ip 0.0.0.0/0 0.0.0.0/0 [1766386]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With this configuration, the FHRP in each data center will be locally active and mitigate the tromboning we mentioned earlier. This has a significant impact in that now we only send traffic across the Data Center Interconnect (DCI) that needs to go across as the local routers in each site can service the traffic.&lt;br /&gt;&lt;br /&gt;Note that is technique is useful for optimizing egress traffic but does nothing to help draw or “attract” traffic into the right data center. Other technologies that provide that functionality will be the topic of future blogs. ;)&lt;br /&gt;&lt;br /&gt;One last step to undertake when performing FHRP isolation is to exclude the FHRP MAC addresses from being advertised by OTV. You might be thinking OTV won't know about the FHRP MACs becuase of the VACL, right? Wrong. :) Due to the nature of MAC address learning, OTV will learn about the MAC addresses before the VACL drops them so we need to tell OTV to not advertise them. This is a three part process where we'll define the mac access list, add it to a route-map and then apply it to the OTV ISIS process as shown below.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mac-list OTV_HSRP seq 10 deny 0000.0c07.ac00 ffff.ffff.ff00&lt;br /&gt;mac-list OTV_HSRP seq 11 deny 0000.0c9f.f000 ffff.ffff.ff00&lt;br /&gt;mac-list OTV_HSRP seq 15 deny 0100.5e00.0000 ffff.ffff.ff00&lt;br /&gt;mac-list OTV_HSRP seq 20 permit 0000.0000.0000 0000.0000.0000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;route-map OTV_HSRP_filter permit 10&lt;br /&gt;match mac-list OTV_HSRP&lt;br /&gt;&lt;br /&gt;otv-isis default&lt;br /&gt;vpn Overlay0&lt;br /&gt;redistribute filter route-map OTV_HSRP_filter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We’ll cover AED election, and some other fun topics in the next post (hopefully sooner rather than later.&lt;br /&gt;&lt;br /&gt;As always, your comments and feedback are appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9566112235862323-8684455069371978265?l=ccie5851.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ccie5851.blogspot.com/feeds/8684455069371978265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ccie5851.blogspot.com/2011/03/otv-deep-dive-part-3.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/8684455069371978265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/8684455069371978265'/><link rel='alternate' type='text/html' href='http://ccie5851.blogspot.com/2011/03/otv-deep-dive-part-3.html' title='OTV Deep Dive - Part 3'/><author><name>Ron Fuller</name><uri>http://www.blogger.com/profile/17992103069727481171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-BxaBgExpJzc/TYaiLE8zNvI/AAAAAAAAARc/lNYCMa1ooCc/s72-c/OTV%2BFHRP.PNG' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9566112235862323.post-6780295899278702528</id><published>2011-02-20T20:48:00.012-05:00</published><updated>2011-02-21T21:33:55.212-05:00</updated><title type='text'>OTV Deep Dive - Part Two</title><content type='html'>Now that we've covered OTV theory and nomenclature, let's dig in to the fun stuff and talk about the CLI and what OTV looks like when it's setup. We'll be using the topology below comprised of four Nexus 7000s and eight VDCs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-GiZgumQsZW8/TWHKVDohCvI/AAAAAAAAARU/TQZcvOrEMQc/s1600/OTV%2BFull%2BTopology.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 550px; FLOAT: left; HEIGHT: 390px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5575960276762692338" border="0" alt="" src="http://1.bp.blogspot.com/-GiZgumQsZW8/TWHKVDohCvI/AAAAAAAAARU/TQZcvOrEMQc/s320/OTV%2BFull%2BTopology.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We'll focus first on the minimum configuration required to get basic OTV adjacency up and working and then add in multi-homing for redundancy. First, make sure the L3 network that OTV will be traversing is multicast enabled. Today with current shipping code, neighbor discovery is done via multicast which helps facilitate easy additions and removal of sites from the OTV network. With this requirement met, we can get rolling.&lt;br /&gt;&lt;br /&gt;A simple initial config is below and we'll dissect it.&lt;br /&gt;&lt;br /&gt;First, we enable the feature&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;feature otv&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Then we configure the Overlay interface&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;interface Overlay1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Next we configure the join interface. This is the interface that will be used for the IGMP join and will be the source IP address of all packets after encapsulation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;otv join-interface Ethernet1/7.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Now we'll configure the control group. As its name implies the control group is the multicast group used by all OTV speakers in an Overlay network. This should be a unique multicast group in the multicast network.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;otv control-group 239.192.1.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Then we configure the data group which is used to encapsulate any L2 multicast traffic that is being extended across the Overlay. Any L3 mutlicast will be routed off of the VLAN through whatever regular multicast mechanisms exist on the network.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;otv data-group 239.192.2.0/24&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Next to last bare minimum config to add is the list of VLANs to be extended.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;otv extend-vlan 31-33,100,1010,1088-1089&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Finally, no shut to enable the interface.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;no shutdown&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;We can now look at the Overlay interface but honestly, won't see much. Force of habit after a no shut on an interface. :)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;show int o1&lt;br /&gt;Overlay1 is up&lt;br /&gt;BW 1000000 Kbit&lt;br /&gt;Last clearing of "show interface" counters never&lt;br /&gt;RX&lt;br /&gt;0 unicast packets 77420 multicast packets&lt;br /&gt;77420 input packets 574 bits/sec 0 packets/sec&lt;br /&gt;TX&lt;br /&gt;0 unicast packets 0 multicast packets&lt;br /&gt;0 output packets 0 bits/sec 0 packets/sec&lt;/span&gt;&lt;br /&gt;&lt;p&gt;If we configure the other hosts in our network and multicast is working, we'll see adjacencies form as below.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;champs1-OTV# show otv adj&lt;br /&gt;&lt;br /&gt;Overlay Adjacency database&lt;br /&gt;&lt;br /&gt;Overlay-Interface Overlay1 :&lt;br /&gt;Hostname System-ID Dest Addr Up Time State&lt;br /&gt;champs2-OTV 001b.54c2.41c4 10.100.251.14 2d05h UP&lt;br /&gt;fresca-OTV 0026.9822.ea44 10.100.251.78 2d05h UP&lt;br /&gt;pepsi-OTV f866.f206.fd44 10.100.251.82 2d05h UP&lt;br /&gt;&lt;br /&gt;champs1-OTV#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;With this in place, we now have a basic config and will be able to extend VLANs between the four devices.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;The last thing we'll cover in this post is how multi-homing can be enabled. First to level set on multi-homing in this context I'm referring to the ability have redundancy in each site and not have a crippling loop.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The way this is accomplished in OTV is by the use of the concept of a site VLAN. The site VLAN is a VLAN that's dedicated to OTV and &lt;strong&gt;&lt;em&gt;NOT &lt;/em&gt;&lt;/strong&gt;extended across the Overlay but is trunked between the two OTV edge devices. This VLAN doesn't need any IP addresses or SVIs created, it just needs to exist and be added to the OTV config as shown below.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;otv site-vlan 99&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;With the simple addition of this command the OTV edge devices will discover each other locally and then use an algorithm to determine a role each edge device will assume on a per VLAN basis. This role is called the Authoritative Edge Device (AED). The AED is responsible for forwarding all traffic for a given VLAN including broadcast and multicast traffic. Today the algorithm aligns with the VLAN ID with one edge device supporting the odd numbered VLANs and the other supporting the even numbered VLANs. This can be seen by reviewing the output below.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;champs1-OTV# show otv vlan&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OTV Extended VLANs and Edge Device State Information (* - AED)&lt;br /&gt;&lt;br /&gt;VLAN Auth. Edge Device Vlan State        Overlay&lt;br /&gt;---- ----------------------------------- ---------- -------&lt;br /&gt;31* champs1-OTV        active            Overlay1&lt;br /&gt;32  champs2-OTV        inactive(Non AED) Overlay1&lt;br /&gt;33* champs1-OTV        active            Overlay1&lt;br /&gt;&lt;br /&gt;1000 champs2-OTV       inactive(Non AED) Overlay1&lt;br /&gt;1010 champs2-OTV       inactive(Non AED) Overlay1&lt;br /&gt;1088 champs2-OTV       inactive(Non AED) Overlay1&lt;br /&gt;1089* champs1-OTV      active            Overlay1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;If we look at the output above we can see that this edge device is the AED for VLANs 31, 33 and 1098 and is the non-AED for 32,1000, 1010 and 1088.  In the event of a failure of champs2, champs1 will take over and become the AED for all VLANs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We'll explore FHRP localization and what happens across the OTV control group in the next post. As always, your thoughts, comments and feeback are welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9566112235862323-6780295899278702528?l=ccie5851.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ccie5851.blogspot.com/feeds/6780295899278702528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ccie5851.blogspot.com/2011/02/otv-deep-dive-part-two.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/6780295899278702528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/6780295899278702528'/><link rel='alternate' type='text/html' href='http://ccie5851.blogspot.com/2011/02/otv-deep-dive-part-two.html' title='OTV Deep Dive - Part Two'/><author><name>Ron Fuller</name><uri>http://www.blogger.com/profile/17992103069727481171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-GiZgumQsZW8/TWHKVDohCvI/AAAAAAAAARU/TQZcvOrEMQc/s72-c/OTV%2BFull%2BTopology.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9566112235862323.post-8743896337047171973</id><published>2011-02-16T04:21:00.007-05:00</published><updated>2011-02-16T06:12:05.998-05:00</updated><title type='text'>OTV Deep Dive - Part One</title><content type='html'>I've been meaning to do this for a long time and now that I have the blog and am awake in the hotel room at 3AM, what better thing to do than talk about a technology I've been fortunate enough to work with for almost a year. This will be a series of posts as I'd like to take a structured approach to the technology and dig into the details and mechanics as well as operational aspects of the technology.&lt;br /&gt;&lt;br /&gt;Overlay Transport Virtualization (OTV) is a feature available on the Nexus 7000 series switches that enables extension of VLANs across Layer 3 networks. This enables new options of data center scale and design that have not been available in the past. The two common use cases I've worked with customers to implement include data center migration and workload mobility. Interestingly, many jump to a multiple physical data center scenario and start to consider stretched clusters and worry about data sync issues and while OTV can provide value in those scenarios it also is a valid solution inside the data center where L3 interconnects may segment the network but the need for mobility is present.&lt;br /&gt;&lt;br /&gt;OTV is significant in its ability to provide this extension without the hassles and challenges associated with traditional Layer 2 extension such as merging STP domains, MAC learning and flooding. OTV is designed to drop STP BPDUs across the Overlay interface which means STP domains on each side of the L3 network are not merged. This is significant in that it minimizes fate sharing where a STP event in one domain ripples to other domains. Additionally OTV uses IS-IS at its control plane to advertise MAC addresses and provide capabilities such as loop avoidance and optimized traffic handling. Finally, OTV doesn't have state that needs maintained as is required with pseudo wire transports like EoMPLS and VPLS. OTV is an encapsulating technology and as such add a 42 byte header to each frame transported across the Overlay. Below is the frame format in more detail.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-oJZLxhh38oE/TVuvbb34xdI/AAAAAAAAARM/qAdbeT8UQqc/s1600/OTV%2BHeader.PNG"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 562px; FLOAT: left; HEIGHT: 183px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5574241849674614226" border="0" alt="" src="http://3.bp.blogspot.com/-oJZLxhh38oE/TVuvbb34xdI/AAAAAAAAARM/qAdbeT8UQqc/s320/OTV%2BHeader.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We'll start defining the components and interfaces used when discussing OTV. Refer the topology below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-s7OEJvFRKvg/TVun0DxA3OI/AAAAAAAAARE/4kT9IUZUkOI/s1600/OTV%2BTopology.PNG"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 449px; FLOAT: left; HEIGHT: 251px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5574233476607040738" border="0" alt="" src="http://2.bp.blogspot.com/-s7OEJvFRKvg/TVun0DxA3OI/AAAAAAAAARE/4kT9IUZUkOI/s320/OTV%2BTopology.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-s7OEJvFRKvg/TVun0DxA3OI/AAAAAAAAARE/4kT9IUZUkOI/s1600/OTV%2BTopology.PNG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-s7OEJvFRKvg/TVun0DxA3OI/AAAAAAAAARE/4kT9IUZUkOI/s1600/OTV%2BTopology.PNG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We have a typical data center aggregation layer based on Nexus 7000 which is our boundary between Layer 2 and Layer 3. The two switches, Agg1 and Agg2 utilize a Nexus technology, virtual Port Channel (vPC) to provide multi-chassis Etherchannel (MCEC) to the OTV Edge devices. In this topology, the OTV edge devices happen to be Virtual Device Contexts (VDC) that share the same sheet metal as the Agg switches but are logically separate. We'll dig into VDCs more in future blog posts, but know that VDCs are a very, very powerful feature within NX-OS on the Nexus 7000.&lt;br /&gt;&lt;br /&gt;Three primary interfaces are used in OTV. The internal interface as its name implies is internal to OTV and is where the VLANs that are to be extended are brought in to the OTV network. These are normal Ethernet interfaces running at Layer 2 and can be trunks or access ports depending on your network's needs. It is important to note that the internal interfaces *DO* participate in STP and as such, considerations such as rootguard and appropriate STP prioritization should be taken into account. In most topologies you wouldn't want, or need the OTV edge device to be the root though if that works in your topology, OTV will work as desired.&lt;br /&gt;&lt;br /&gt;The next interface is the join interface which is where the encapsulated L2 frames are placed on the L3 network for transport to the appropriate OTV edge device. The join interface has an IP address and behaves much as a client in that it issues IGMP requests to join the OTV multicast control group. In some topologies it is desirable to have the join interface participate in a dynamic routing protocol and that is not a problem either. As mentioned earlier, OTV encapsulates traffic and adds a 42 byte header to each packet so it may be prudent to ensure your transit network can support packets larger than 1500 bytes. Though not a requirement, performance may suffer if jumbo frames are not supported.&lt;br /&gt;&lt;br /&gt;Finally, the Overlay interface is where OTV specific configuration options are applied to define key attributes such as multicast control groups, VLANs to be extended and join interfaces. The Overlay interface is where the (in)famous 5 commands to enable OTV are entered though anyone who's worked with the technology recognize more than 5 commands are needed for a successful implementation. :) The Overlay interface is similar to a Loopback interface in that it's a virtual interface.&lt;br /&gt;&lt;br /&gt;In the next post, we'll discuss the initial OTV configuration and multi-homing capabilities in more detail. As always, I welcome your comments and feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9566112235862323-8743896337047171973?l=ccie5851.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ccie5851.blogspot.com/feeds/8743896337047171973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ccie5851.blogspot.com/2011/02/otv-deep-dive-part-one.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/8743896337047171973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/8743896337047171973'/><link rel='alternate' type='text/html' href='http://ccie5851.blogspot.com/2011/02/otv-deep-dive-part-one.html' title='OTV Deep Dive - Part One'/><author><name>Ron Fuller</name><uri>http://www.blogger.com/profile/17992103069727481171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-oJZLxhh38oE/TVuvbb34xdI/AAAAAAAAARM/qAdbeT8UQqc/s72-c/OTV%2BHeader.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9566112235862323.post-7230385736779361994</id><published>2011-02-12T14:02:00.005-05:00</published><updated>2011-02-12T14:43:49.847-05:00</updated><title type='text'>Nexus 7000 + Fabric Extenders = Scalable Access Layer</title><content type='html'>&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;One of the most difficult components in any data center architecture to design and plan for is the access layer. In a traditional network hierarchy the access layer is where the most dynamic and changing requirements exist. Myriad technologies abound and can tell a history of the data center as new technologies were introduced with the progression from 100Mb Ethernet to 1G to 10G and the emergence of Unified Fabric (FCoE). Scaling these access layers has been a black art at times because of the changing pace of technology. What if you could have an access layer that meets your current 100/1G Ethernet needs today as well as 10G, provided a reduction in management points and helps tame the Spanning Tree beast? Enter the Nexus 7000 with support for Nexus 2000 Fabric Extenders (FEX). &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;The Nexus 7000s have been shipping for close to 3 years now and have a well established install base, mature software and have proven themselves as scalable Data Center platforms. The Nexus 2000 has been shipping for over 2 years and has been solving access layer challenges for customers very well when paired with the Nexus 5000 switch. Combining the two technologies provides similar benefits for the traditional FEX architectures only on a larger scale. Today the Nexus 5000 series support up to a maximum of 16 FEX while the Nexus 7000 supports 32 with current code and plans for more in the future. Let’s dig into the details.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;First, what are the requirements for FEX support on the Nexus 7000? Three primary requirements must be met:&lt;br /&gt;1. NX-OS 5.1(1) or higher must be installed on the Nexus 7000&lt;br /&gt;2. 32 port M1 10GE modules (part number)&lt;br /&gt;3. EPLD must be current to support VNTag&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Once these requirements are met we can connect the FEX to the Nexus 7000. The options supported include traditional 10G Short Reach (SR), 10G Long Reach (LR) optics and Fabric Extender Transceiver (FET) for the M1 32 port card. The M1 32 “L” card add support for active Twinax cables which currently are available in 7 and 10M lengths. In our example, we’ll be using SR optics. &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Let’s start by verifying we meet the requirements.&lt;br /&gt;We see below we are running NX-OS 5.1(2) so we’re good to go there.&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-agg1# show ver&lt;br /&gt;Cisco Nexus Operating System (NX-OS) Software&lt;br /&gt;TAC support: http://www.cisco.com/tac&lt;br /&gt;Documents: http://www.cisco.com/en/US/products/ps9372/tsd_products_support_series_home.html&lt;br /&gt;Copyright (c) 2002-2010, Cisco Systems, Inc. All rights reserved.&lt;br /&gt;The copyrights to certain works contained in this software are&lt;br /&gt;owned by other third parties and used and distributed under&lt;br /&gt;license. Certain components of this software are licensed under&lt;br /&gt;the GNU General Public License (GPL) version 2.0 or the GNU&lt;br /&gt;Lesser General Public License (LGPL) Version 2.1. A copy of each&lt;br /&gt;such license is available at&lt;br /&gt;http://www.opensource.org/licenses/gpl-2.0.php and&lt;br /&gt;http://www.opensource.org/licenses/lgpl-2.1.php&lt;br /&gt;&lt;br /&gt;Software&lt;br /&gt;BIOS: version 3.22.0&lt;br /&gt;&lt;strong&gt;&lt;font color="#33cc00"&gt;kickstart: version 5.1(2)&lt;br /&gt;system: version 5.1(2)&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;BIOS compile time: 02/20/10&lt;br /&gt;kickstart image file is: bootflash:///n7000-s1-kickstart.5.1.2.bin&lt;br /&gt;kickstart compile time: 12/25/2020 12:00:00 [12/18/2010 09:55:20]&lt;br /&gt;system image file is: bootflash:///n7000-s1-dk9.5.1.2.bin&lt;br /&gt;system compile time: 11/29/2010 12:00:00 [12/18/2010 11:02:00]&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;We also have the correct modules installed&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-agg1# show mod&lt;br /&gt;Mod Ports Module-Type Model Status&lt;br /&gt;--- ----- -------------------------------- ------------------ ------------&lt;br /&gt;&lt;font color="#33cc00"&gt;&lt;strong&gt;2 32 10 Gbps Ethernet Module N7K-M132XP-12 ok&lt;br /&gt;3 32 10 Gbps Ethernet XL Module N7K-M132XP-12L ok&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;4 32 1/10 Gbps Ethernet Module N7K-F132XP-15 ok&lt;br /&gt;5 0 Supervisor module-1X N7K-SUP1 active *&lt;br /&gt;6 0 Supervisor module-1X N7K-SUP1 ha-standby&lt;br /&gt;8 48 10/100/1000 Mbps Ethernet Module N7K-M148GT-11 ok&lt;br /&gt;9 48 1000 Mbps Optical Ethernet Modul N7K-M148GS-11 ok&lt;br /&gt;10 48 10/100/1000 Mbps Ethernet Module N7K-M148GT-11 ok&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Now let’s check the EPLD&lt;br /&gt;*NOTE* This must be done from the default VDC and if an EPLD upgrades is required, it is disruptive so plan accordingly.&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-otv1# install all epld bootflash:n7000-s1-epld.5.1.1.img&lt;br /&gt;&lt;br /&gt;Compatibility check:&lt;br /&gt;Module Type Upgradable Impact Reason&lt;br /&gt;------ ---- ---------- ---------- ------&lt;br /&gt;2 LC Yes disruptive Module Upgradable&lt;br /&gt;3 LC Yes disruptive Module Upgradable&lt;br /&gt;4 LC Yes disruptive Module Upgradable&lt;br /&gt;5 SUP Yes disruptive Module Upgradable&lt;br /&gt;6 SUP Yes disruptive Module Upgradable&lt;br /&gt;8 LC Yes disruptive Module Upgradable&lt;br /&gt;9 LC Yes disruptive Module Upgradable&lt;br /&gt;10 LC Yes disruptive Module Upgradable&lt;br /&gt;1 Xbar Yes disruptive Module Upgradable&lt;br /&gt;2 Xbar Yes disruptive Module Upgradable&lt;br /&gt;3 Xbar Yes disruptive Module Upgradable&lt;br /&gt;4 Xbar Yes disruptive Module Upgradable&lt;br /&gt;5 Xbar Yes disruptive Module Upgradable&lt;br /&gt;1 FAN Yes disruptive Module Upgradable&lt;br /&gt;2 FAN Yes disruptive Module Upgradable&lt;br /&gt;3 FAN Yes disruptive Module Upgradable&lt;br /&gt;4 FAN Yes disruptive Module Upgradable&lt;br /&gt;&lt;br /&gt;Copy complete, now saving to disk (please wait)...&lt;br /&gt;Retrieving EPLD versions... Please wait.&lt;br /&gt;&lt;br /&gt;Images will be upgraded according to following table:&lt;br /&gt;Module Type EPLD Running-Version New-Version Upg-Required&lt;br /&gt;------ ---- ------------- --------------- ----------- ------------&lt;br /&gt;2 LC Power Manager 4.008 4.008 No&lt;br /&gt;2 LC IO 1.016 1.016 No&lt;br /&gt;2 LC Forwarding Engine 1.006 1.006 No&lt;br /&gt;2 LC FE Bridge(1) 186.006 186.006 No&lt;br /&gt;2 LC FE Bridge(2) 186.006 186.006 No&lt;br /&gt;2 LC Linksec Engine(1) 2.006 2.006 No&lt;br /&gt;2 LC Linksec Engine(2) 2.006 2.006 No&lt;br /&gt;2 LC Linksec Engine(3) 2.006 2.006 No&lt;br /&gt;2 LC Linksec Engine(4) 2.006 2.006 No&lt;br /&gt;2 LC Linksec Engine(5) 2.006 2.006 No&lt;br /&gt;2 LC Linksec Engine(6) 2.006 2.006 No&lt;br /&gt;2 LC Linksec Engine(7) 2.006 2.006 No&lt;br /&gt;2 LC Linksec Engine(8) 2.006 2.006 No&lt;br /&gt;&lt;font color="#33ff33"&gt;&lt;strong&gt;&lt;font color="#33cc00"&gt;3 LC Power Manager 4.008 4.008 No&lt;br /&gt;3 LC IO 1.016 1.016 No&lt;br /&gt;3 LC Forwarding Engine 1.006 1.006 No&lt;br /&gt;3 LC FE Bridge(1) 186.006 186.006 No&lt;br /&gt;3 LC Linksec Engine(1) 2.006 2.006 No&lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;4 LC Power Manager 1.000 1.000 No&lt;br /&gt;4 LC IO 0.045 0.045 No&lt;br /&gt;5 SUP Power Manager 3.009 3.009 No&lt;br /&gt;5 SUP IO 3.028 3.028 No&lt;br /&gt;5 SUP Inband 1.008 1.008 No&lt;br /&gt;5 SUP Local Bus CPLD 3.000 3.000 No&lt;br /&gt;5 SUP CMP CPLD 6.000 6.000 No&lt;br /&gt;6 SUP Power Manager 3.009 3.009 No&lt;br /&gt;6 SUP IO 3.028 3.028 No&lt;br /&gt;6 SUP Inband 1.008 1.008 No&lt;br /&gt;6 SUP Local Bus CPLD 3.000 3.000 No&lt;br /&gt;6 SUP CMP CPLD 6.000 6.000 No&lt;br /&gt;8 LC Power Manager 5.006 5.006 No&lt;br /&gt;8 LC IO 2.014 2.014 No&lt;br /&gt;8 LC Forwarding Engine 1.006 1.006 No&lt;br /&gt;9 LC Power Manager 4.008 4.008 No&lt;br /&gt;9 LC IO 1.006 1.006 No&lt;br /&gt;9 LC Forwarding Engine 1.006 1.006 No&lt;br /&gt;9 LC SFP 1.004 1.004 No&lt;br /&gt;10 LC Power Manager 5.006 5.006 No&lt;br /&gt;10 LC IO 2.014 2.014 No&lt;br /&gt;10 LC Forwarding Engine 1.006 1.006 No&lt;br /&gt;1 Xbar Power Manager 2.010 2.010 No&lt;br /&gt;2 Xbar Power Manager 2.010 2.010 No&lt;br /&gt;3 Xbar Power Manager 2.010 2.010 No&lt;br /&gt;4 Xbar Power Manager 2.010 2.010 No&lt;br /&gt;5 Xbar Power Manager 2.010 2.010 No&lt;br /&gt;1 FAN Fan Controller (1) 0.007 0.007 No&lt;br /&gt;1 FAN Fan Controller (2) 0.007 0.007 No&lt;br /&gt;2 FAN Fan Controller (1) 0.007 0.007 No&lt;br /&gt;2 FAN Fan Controller (2) 0.007 0.007 No&lt;br /&gt;3 FAN Fan Controller (1) 0.007 0.007 No&lt;br /&gt;3 FAN Fan Controller (2) 0.007 0.007 No&lt;br /&gt;4 FAN Fan Controller (1) 0.007 0.007 No&lt;br /&gt;4 FAN Fan Controller (2) 0.007 0.007 No&lt;br /&gt;All Modules are up to date.&lt;br /&gt;cmhlab-dc2-sw2-otv1#&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;So we’re in good shape there, too. It’s like I’ve done this before….. :)&lt;br /&gt;Now that we’re ready, we’ve cabled the FEX to the switch via port e3/1-4 and we’ll be creating a topology that looks like this.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/-RQsFpuHoyR0/TVbhLtx83EI/AAAAAAAAAQ8/EFs2aLJ-ae0/s1600/N7K%2Band%2BFEX.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 279px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5572889180301483074" border="0" alt="" src="http://3.bp.blogspot.com/-RQsFpuHoyR0/TVbhLtx83EI/AAAAAAAAAQ8/EFs2aLJ-ae0/s320/N7K%2Band%2BFEX.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;First, we need to install the FEX feature set. This is a bit different than what we’ve done with features in the past and must be done from the default VDC.&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-otv1# show run | i fex&lt;br /&gt;cmhlab-dc2-sw2-otv1# confi t&lt;br /&gt;Enter configuration commands, one per line. End with CNTL/Z.&lt;br /&gt;cmhlab-dc2-sw2-otv1(config)# install feature-set fex&lt;br /&gt;cmhlab-dc2-sw2-otv1(config)# show run | i fex&lt;br /&gt;install feature-set fex&lt;br /&gt;allow feature-set fex&lt;br /&gt;allow feature-set fex&lt;br /&gt;allow feature-set fex&lt;br /&gt;allow feature-set fex&lt;br /&gt;cmhlab-dc2-sw2-otv1(config)#&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Note that each VDC now has a config for allow feature-set fex.&lt;br /&gt;Next, we’ll go to our VDC where we want the FEX configured and get it setup.&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-agg1# confi&lt;br /&gt;Enter configuration commands, one per line. End with CNTL/Z.&lt;br /&gt;cmhlab-dc2-sw2-agg1(config)# feature-set fex&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;Then we’ll define the FEX and specify the model. While this isn’t required because the FEX will identify itself to the Nexus switch, I think it makes the config more readable and is somewhat self documenting.&lt;br /&gt;&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-agg1(config)# fex 150&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-fex)# type n2248T&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-fex)# description FEX150-for-Agg1-VDC&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;Now we’ll configure the physical ports the FEX is connected into.&lt;br /&gt;&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-agg1(config-fex)# int e3/1-4&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# desc FEX 150&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# switchport&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# switchport mode fex-fabric&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# fex associate 150&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# channel-group 150&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Now that we’ve told the switch to treat the ports as fex-fabric ports and created a port channel, let’s bring it up.&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;cmhlab-dc2-sw2-agg1(config-if-range)# int po150&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if)# desc Port Channel to FEX 150&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if)# no shut&lt;br /&gt;&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if)# int e3/1-4&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# shut&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# no shut&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)#&lt;br /&gt;cmhlab-dc2-sw2-agg1(config-if-range)# 2011 Feb 12 18:08:23 cmhlab-dc2-sw2-agg1 %FEX-2-NOHMS_ENV_FEX_ONLINE: FEX-150 On-line (Serial Number JAF1440BDFR)&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;It’s that simple.&lt;br /&gt;&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-agg1# show fex&lt;br /&gt;FEX FEX FEX FEX&lt;br /&gt;Number Description State Model Serial&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;150 FEX150-for-Agg1-VDC Online N2K-C2248TP-1GE JAF1440BDFR&lt;br /&gt;cmhlab-dc2-sw2-agg1#&lt;br /&gt;cmhlab-dc2-sw2-agg1# show fex 150&lt;br /&gt;FEX: 150 Description: FEX150-for-Agg1-VDC state: Online&lt;br /&gt;FEX version: 5.1(2) [Switch version: 5.1(2)]&lt;br /&gt;Extender Model: N2K-C2248TP-1GE, Extender Serial: JAF1440BDFR&lt;br /&gt;Part No: 73-12748-05&lt;br /&gt;pinning-mode: static Max-links: 1&lt;br /&gt;Fabric port for control traffic: Eth3/1&lt;br /&gt;Fabric interface state:&lt;br /&gt;Po150 - Interface Up. State: Active&lt;br /&gt;Eth3/1 - Interface Up. State: Active&lt;br /&gt;Eth3/2 - Interface Up. State: Active&lt;br /&gt;Eth3/3 - Interface Up. State: Active&lt;br /&gt;Eth3/4 - Interface Up. State: Active&lt;br /&gt;cmhlab-dc2-sw2-agg1#&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;If we look at the port channel we created, it looks like any other port channel.&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;cmhlab-dc2-sw2-agg1# show int po150&lt;br /&gt;port-channel150 is up&lt;br /&gt;Hardware: Port-Channel, address: c471.feee.c924 (bia c471.feee.c924)&lt;br /&gt;Description: Port Channel to FEX 150&lt;br /&gt;MTU 1500 bytes, BW 40000000 Kbit, DLY 10 usec&lt;br /&gt;reliability 255/255, txload 1/255, rxload 1/255&lt;br /&gt;Encapsulation ARPA&lt;br /&gt;Port mode is fex-fabric&lt;br /&gt;full-duplex, 10 Gb/s&lt;br /&gt;Input flow-control is off, output flow-control is off&lt;br /&gt;Switchport monitor is off&lt;br /&gt;EtherType is 0x8100&lt;br /&gt;Members in this channel: Eth3/1, Eth3/2, Eth3/3, Eth3/4&lt;br /&gt;Last clearing of "show interface" counters never&lt;br /&gt;30 seconds input rate 124432 bits/sec, 12 packets/sec&lt;br /&gt;30 seconds output rate 23272 bits/sec, 20 packets/sec&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;With the FEX being on-line, we now have 48 additional interfaces available to configure.&lt;br /&gt;&lt;br /&gt;&lt;font size="1" face="courier new"&gt;cmhlab-dc2-sw2-agg1# show int brief | i 150&lt;br /&gt;mgmt0 -- up 10.0.2.13 1000 1500&lt;br /&gt;Eth3/1 1 eth fabric up none 10G(S) 150&lt;br /&gt;Eth3/2 1 eth fabric up none 10G(S) 150&lt;br /&gt;Eth3/3 1 eth fabric up none 10G(S) 150&lt;br /&gt;Eth3/4 1 eth fabric up none 10G(S) 150&lt;br /&gt;Po150 1 eth fabric up none a-10G(S) none&lt;br /&gt;Eth150/1/1 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/2 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/3 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/4 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/5 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/6 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/7 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/8 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/9 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/10 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/11 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/12 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/13 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/14 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/15 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/16 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/17 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/18 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/19 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/20 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/21 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/22 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/23 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/24 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/25 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/26 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/27 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/28 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/29 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/30 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/31 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/32 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/33 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/34 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/35 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/36 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/37 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/38 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/39 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/40 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/41 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/42 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/43 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/44 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/45 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/46 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/47 1 eth access down Administratively down auto(D) --&lt;br /&gt;Eth150/1/48 1 eth access down Administratively down auto(D) --&lt;br /&gt;cmhlab-dc2-sw2-agg1#&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Note that today we cannot have a FEX multi-homed into two Nexus 7000s like we can on the Nexus 5000. Look for that capability in a future release along with support for additional FEX platforms.&lt;br /&gt;&lt;br /&gt;When you think of the scale – 32 FEX x 48 ports = 1,536, that’s pretty impressive. Being able to take advantage of the cable savings with localized, in –rack cabling without the challenges of increased STP diameter, the FEX and Nexus 7000 make a powerful impact on the data center topology.&lt;br /&gt;&lt;br /&gt;As always, I welcome your comments and feedback. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9566112235862323-7230385736779361994?l=ccie5851.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ccie5851.blogspot.com/feeds/7230385736779361994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ccie5851.blogspot.com/2011/02/nexus-7000-fabric-extenders-scalable_12.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/7230385736779361994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/7230385736779361994'/><link rel='alternate' type='text/html' href='http://ccie5851.blogspot.com/2011/02/nexus-7000-fabric-extenders-scalable_12.html' title='Nexus 7000 + Fabric Extenders = Scalable Access Layer'/><author><name>Ron Fuller</name><uri>http://www.blogger.com/profile/17992103069727481171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-RQsFpuHoyR0/TVbhLtx83EI/AAAAAAAAAQ8/EFs2aLJ-ae0/s72-c/N7K%2Band%2BFEX.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9566112235862323.post-1806134512917729324</id><published>2011-01-23T21:58:00.004-05:00</published><updated>2011-01-24T14:38:50.789-05:00</updated><title type='text'>The Joys of ISSU on Nexus 7000</title><content type='html'>&lt;span xmlns=""&gt; &lt;p&gt;How many times have you had to fill out a change control document to upgrade code on your network devices where you've detailed the redundancy, portions of the networks impacted, application owners notified only to have it rejected due to "impact"? Prior to my current job at Cisco, this was a common theme. I wished I had a device that would let me roll code without impacting traffic. Fast forward a few years and my wishes have come true with In Service Software Upgrade (ISSU) within NX-OS.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A brief history lesson - Storage switches have had this capability for a long time in the higher end platforms that are considered director class. It makes sense to have ISSU functionality on fibre channel switches because fibre channel as a protocol relies on the network to guarantee delivery of frames. Dropping frames means bad things for storage traffic. Moving the capability for ISSU to Ethernet/IP networks makes sense in a modern data center where high density virtualization and the "always on" mindset prevail. Networking teams have been clamoring for ISSU for a long time. Let's face it, rolling code isn't one of the more exciting things to do on a network, but it's a necessary function, good news is that we now have it.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We'll focus on ISSU on the Nexus series of devices though know that other products in Cisco's portfolio support it. To provide a hitless upgrade capability the device and software require an intrinsic separation of the control plane and data plane. This allows changes to be made in the control plane, like software version, without affecting the data plane, through which the packets and frames that traverse the device pass. NX-OS has been engineered from day one to have this separation of planes. Coupling it with years of experience in ISSU on the Cisco MDS and one of my most favorite features of NX-OS is born.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So enough talk, let's get into the action. To start an ISSU we use the install all command as shown below where we specify the kickstart image and system image to use.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;cmhlab-dc2-sw2-otv1# install all kick bootflash:n7000-s1-kickstart.5.1.2.bin system bootflash:n7000-s1-dk9.5.1.2.bin&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;During the process the install happens before your eyes, which is great for the paranoid amongst us. &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Various components are extracted from the kickstart and system files, and verified to minimize the potential for corruption. Below is a sample of the output.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Verifying image bootflash:/n7000-s1-kickstart.5.1.2.bin for boot variable "kickstart". &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Verifying image bootflash:/n7000-s1-dk9.5.1.2.bin for boot variable "system".&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Verifying image type. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "lc1n7k" version from image bootflash:/n7000-s1-dk9.5.1.2.bin.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "lc1n7k" version from image bootflash:/n7000-s1-dk9.5.1.2.bin. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "bios" version from image bootflash:/n7000-s1-dk9.5.1.2.bin.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "system" version from image bootflash:/n7000-s1-dk9.5.1.2.bin.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "kickstart" version from image bootflash:/n7000-s1-kickstart.5.1.2.bin.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "lc1n7k" version from image bootflash:/n7000-s1-dk9.5.1.2.bin.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "lc1n7k" version from image bootflash:/n7000-s1-dk9.5.1.2.bin.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "cmp" version from image bootflash:/n7000-s1-dk9.5.1.2.bin.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Extracting "cmp-bios" version from image bootflash:/n7000-s1-dk9.5.1.2.bin. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Performing module support checks&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Notifying services about system upgrade. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Once that is completed, the install routine also shows the type of upgrade per module, reflecting a rolling upgrade for line cards and reset for the supervisors. Rolling upgrades are non-disruptive as the modules have been engineered to provide this functionality and not drop link to ports or disrupt switching.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Compatibility check is done:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Module bootable Impact Install-type Reason &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;------ -------- -------------- ------------ ------ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;2 yes non-disruptive rolling &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;5 yes non-disruptive reset &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;6 yes non-disruptive reset &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;9 yes non-disruptive rolling&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Finally, a nice table is presented showing the details of the upgrade and waits for the green light to continue.&lt;br /&gt;&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_nc5kJUsfPmE/TT3B_Trvt2I/AAAAAAAAAQQ/y6tQIahqbo4/s1600/ISSU2.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 537px; FLOAT: left; HEIGHT: 201px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5565818007859476322" border="0" alt="" src="http://4.bp.blogspot.com/_nc5kJUsfPmE/TT3B_Trvt2I/AAAAAAAAAQQ/y6tQIahqbo4/s320/ISSU2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Of course we want to proceed and then we see this output. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Install is in progress, please wait. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Performing runtime checks. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;color:red;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;color:red;"&gt;&lt;strong&gt;Syncing image bootflash:/n7000-s1-kickstart.5.1.2.bin to standby. &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;color:red;"&gt;&lt;strong&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:78%;color:red;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;color:red;"&gt;&lt;strong&gt;Syncing image bootflash:/n7000-s1-dk9.5.1.2.bin to standby.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:78%;color:red;"&gt;&lt;strong&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;*NOTE* The install routine automatically copies the files to the redundant supervisor for you.&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Setting boot variables.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Performing configuration copy.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Module 2: Refreshing compact flash and upgrading bios/loader/bootrom.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Warning: please do not remove or power off the module at this time.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Module 5: Refreshing compact flash and upgrading bios/loader/bootrom.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Warning: please do not remove or power off the module at this time.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Module 6: Refreshing compact flash and upgrading bios/loader/bootrom.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Warning: please do not remove or power off the module at this time.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Module 9: Refreshing compact flash and upgrading bios/loader/bootrom.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Warning: please do not remove or power off the module at this time.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Module 6: Waiting for module online.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;-- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Notifying services about the switchover.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;[####################] 100% -- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;"Switching over onto standby".&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Connection closed by foreign host.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;At this point, the supervisor that was the secondary (module 6 in my example) has reload and come up with the new code. This triggers the primary to initiate a Stateful Switch Over (SSO) to the new code running in the control plane. Meanwhile, data is still traversing the switch with no impact. &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Since our telnet session was disconnected during the SSO (telnet isn't SSO aware), we need to re-establish the session and issue a command to continue monitoring the upgrade.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;rfuller@cmhlab-tools:~$ telnet cmhlab-dc2-sw2-otv1 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Trying 10.2.0.4... &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Connected to cmhlab-dc2-sw2-otv1.csc.dublin.cisco.com. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Escape character is '^]'. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;User Access Verification&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;login: admin&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Password:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Cisco Nexus Operating System (NX-OS) Software&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;TAC support: http://www.cisco.com/tac&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Copyright (c) 2002-2010, Cisco Systems, Inc. All rights reserved.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;The copyrights to certain works contained in this software are&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;owned by other third parties and used and distributed under&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;license. Certain components of this software are licensed under&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;the GNU General Public License (GPL) version 2.0 or the GNU&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Lesser General Public License (LGPL) Version 2.1. A copy of each&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;such license is available at&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://www.opensource.org/licenses/gpl-2.0.php"&gt;http://www.opensource.org/licenses/gpl-2.0.php&lt;/a&gt; and&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://www.opensource.org/licenses/lgpl-2.1.php"&gt;http://www.opensource.org/licenses/lgpl-2.1.php&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;cmhlab-dc2-sw2-otv1# show install all status&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;There is an on-going installation...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Enter Ctrl-C to go back to the prompt.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Continuing with installation, please wait&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Trying to start the installer...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Module 6: Waiting for module online.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;-- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;2011 Jan 24 02:34:55 cmhlab-dc2-sw2-otv1 %IDEHSD-STANDBY-2-MOUNT: slot0: online&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;2011 Jan 24 02:35:06 cmhlab-dc2-sw2-otv1 %CMPPROXY-STANDBY-2-LOG_CMP_UP: Connectivity Management processor(on module 5) is now UP&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;2011 Jan 24 02:37:55 cmhlab-dc2-sw2-otv1 %IDEHSD-STANDBY-2-MOUNT: logflash: online&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Module 2: Non-disruptive upgrading.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;-- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Module 9: Non-disruptive upgrading.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;-- SUCCESS&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9;"&gt;&lt;span style="font-size:78%;"&gt;Install has been successful.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;With that, we've upgraded our NX-OS, had the system automatically copy the files to the right locations, modify the boot values and didn't drop a frame. How's that for hot?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;cmhlab-dc2-sw2-otv1# show ver i uptime&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:red;"&gt;&lt;strong&gt;Kernel uptime is 0 day(s), 0 hour(s), 26 minute(s), 50 second(s)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;*NOTE* The Kernel has been up for just a while but we'll see that the overall system has been up much longer&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-size:78%;"&gt;cmhlab-dc2-sw2-otv1# show ver  i version&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span xmlns=""&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;the GNU General Public License (GPL) version 2.0 or the GNU &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span xmlns=""&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;BIOS: version 3.22.0&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;kickstart: version 5.1(2)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;system: version 5.1(2)&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;cmhlab-dc2-sw2-otv1# show system uptime&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;System start time: Tue Oct 26 19:46:38 2010&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;color:red;"&gt;&lt;strong&gt;System uptime: 89 days, 6 hours, 56 minutes, 26 seconds&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Kernel uptime: 0 days, 0 hours, 29 minutes, 16 seconds&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;Active supervisor uptime: 0 days, 0 hours, 19 minutes, 56 seconds &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9;"&gt;&lt;span style="font-size:78%;"&gt;cmhlab-dc2-sw2-otv1#&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;We'll cover Nexus 5000 and Nexus 1000v and ISSU in the future. Hope it was informative.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9566112235862323-1806134512917729324?l=ccie5851.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ccie5851.blogspot.com/feeds/1806134512917729324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ccie5851.blogspot.com/2011/01/joys-of-issu-on-nexus-7000.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/1806134512917729324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/1806134512917729324'/><link rel='alternate' type='text/html' href='http://ccie5851.blogspot.com/2011/01/joys-of-issu-on-nexus-7000.html' title='The Joys of ISSU on Nexus 7000'/><author><name>Ron Fuller</name><uri>http://www.blogger.com/profile/17992103069727481171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_nc5kJUsfPmE/TT3B_Trvt2I/AAAAAAAAAQQ/y6tQIahqbo4/s72-c/ISSU2.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9566112235862323.post-8476812093212980081</id><published>2011-01-18T07:29:00.002-05:00</published><updated>2011-01-18T08:21:09.782-05:00</updated><title type='text'>Here we go.....</title><content type='html'>I finally decided I needed to do some blogging, so here we go. Before we get into the fun stuff, let's talk a bit about who I am. This will help you decide if you are in the right place or not.&lt;br /&gt;&lt;br /&gt;My name is Ron Fuller and I work as a Technology Solutions Architect with &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Cisco&lt;/span&gt; in Dublin, Ohio. I work with our Enterprise customers on data center architecture, which means I'm not a product guy per &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;se&lt;/span&gt;. Architectures can be enabled by a product or suite of products though I happen to think some enable it better than others. ;) I am a dual &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;CCIE&lt;/span&gt; #5851 (Routing and Switching and Storage Networking) and have held a myriad of certification from other vendors including &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;Novell&lt;/span&gt; - where I started my certification track and was a Master &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;CNE&lt;/span&gt;, &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;VMware&lt;/span&gt;, &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;SNIA&lt;/span&gt;, Microsoft, HP, &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;Okidata&lt;/span&gt;, IBM, &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;ISC&lt;/span&gt;2, &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;CompTIA&lt;/span&gt; and more. Certifications have been a focal point for me early in my career and certainly opened doors that would have otherwise remained closed in tough times.&lt;br /&gt;&lt;br /&gt;I have had the opportunity to be published a few times and my latest effort was a collaboration with two great guys who I am lucky to call friends as well, David Jansen and Kevin Corbin. We created &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;NX&lt;/span&gt;-OS and &lt;span id="SPELLING_ERROR_11" class="blsp-spelling-error"&gt;Cisco&lt;/span&gt; Nexus Switching: Next-Generation Data Center Architectures with &lt;a href="http://www.ciscopress.com/bookstore/product.asp?isbn=1587058928"&gt;&lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;CiscoPress&lt;/span&gt;&lt;/a&gt;. The book was released last June and we're already &lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;workin&lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/_nc5kJUsfPmE/TTWSasm1WPI/AAAAAAAAAP4/-2hYX5YViLw/s1600/Bumper%2BSticker%2Bon%2Bmy%2BLaptop.jpg"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 320px; FLOAT: right; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5563513902034409714" border="0" alt="" src="http://3.bp.blogspot.com/_nc5kJUsfPmE/TTWSasm1WPI/AAAAAAAAAP4/-2hYX5YViLw/s320/Bumper%2BSticker%2Bon%2Bmy%2BLaptop.jpg" /&gt;&lt;/a&gt;g on a 2&lt;span id="SPELLING_ERROR_14" class="blsp-spelling-error"&gt;nd&lt;/span&gt; Edition because of the many changes and innovations &lt;span id="SPELLING_ERROR_15" class="blsp-spelling-error"&gt;NX&lt;/span&gt;-OS has brought to market in the last few months and those coming! I have a passion for &lt;span id="SPELLING_ERROR_16" class="blsp-spelling-error"&gt;NX&lt;/span&gt;-OS and if you've been following me on Twitter (@ccie5851) you might have picked up on it. ;) I have a sticker on my laptop that says it all.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On a personal front, my wife and I have four awesome, smart, creative, cute....you get the picture...kids. We live north of Columbus OH and love to travel- WITH the kids - especially if there is a F1 race involved. We've become very adept at long haul travel with kids and have taken them with us to Japan, England, France, Germany, Australia and our last big adventure, China. I may blog about the science of traveling with little ones in the future. We think we've got a good system but may be biased.&lt;br /&gt;&lt;br /&gt;As I mentioned earlier, F1 is a great excuse to travel and for that matter, I'm a fan of most &lt;span id="SPELLING_ERROR_17" class="blsp-spelling-error"&gt;autosports&lt;/span&gt; though F1 holds a special place in my heart. It is the perfect integration of technology (I'm a geek after all!) and speed, exotic locations and competition. I do watch &lt;span id="SPELLING_ERROR_18" class="blsp-spelling-error"&gt;Indycar&lt;/span&gt; and it's probably best to say I monitor &lt;span id="SPELLING_ERROR_19" class="blsp-spelling-error"&gt;NASCAR&lt;/span&gt;. &lt;span id="SPELLING_ERROR_20" class="blsp-spelling-error"&gt;NASCAR&lt;/span&gt; has so many races and they are so long that it becomes quite the commitment to actually WATCH every race. I still miss the days of Dale and Rusty beating and banging on each other, but as with all things, change happens.&lt;br /&gt;&lt;br /&gt;I'm sure more of my idiosyncrasies will emerge as I write, but know that I plan to discuss &lt;span id="SPELLING_ERROR_21" class="blsp-spelling-error"&gt;NX&lt;/span&gt;-OS and Nexus switching, some &lt;span id="SPELLING_ERROR_22" class="blsp-spelling-error"&gt;UCS&lt;/span&gt; action, &lt;span id="SPELLING_ERROR_23" class="blsp-spelling-error"&gt;MDS&lt;/span&gt; and whatever else comes up. Its an exciting time in the Data Center space and I couldn't be happier to be hip-deep in the action!&lt;br /&gt;&lt;br /&gt;Thanks for taking the time and see you around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9566112235862323-8476812093212980081?l=ccie5851.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ccie5851.blogspot.com/feeds/8476812093212980081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ccie5851.blogspot.com/2011/01/here-we-go.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/8476812093212980081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9566112235862323/posts/default/8476812093212980081'/><link rel='alternate' type='text/html' href='http://ccie5851.blogspot.com/2011/01/here-we-go.html' title='Here we go.....'/><author><name>Ron Fuller</name><uri>http://www.blogger.com/profile/17992103069727481171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_nc5kJUsfPmE/TTWSasm1WPI/AAAAAAAAAP4/-2hYX5YViLw/s72-c/Bumper%2BSticker%2Bon%2Bmy%2BLaptop.jpg' height='72' width='72'/><thr:total>5</thr:total></entry></feed>
