I’ve been wanting to write this blog for awhile, but I’ve been behind on blogs (as you can likely see).  At any rate, I had the task to move a port-channel a couple of weeks ago and I developed a procedure for doing so in a ‘hitless’ fashion.  Actually, it tied in nicely to my CCIE studies which are still ,unfortunately, stuck on spanning tree.  

So here’s what the network looks like to start with…

image

The environment is a internet facing VPN DMZ.  It’s totally redundant, but the firewalls are in a active standby pair.  That means, that the VPN clusters that are hung off the right switch, need to traverse the trunk between the switches to talk to the internet (depicted by red dotted line below)

image 

Normally, I’d just schedule an outage to shut down the old port-channel and turn the new one up.  However, this environment supports a lot (I mean a ton) of IPSec VPN sessions worldwide so I didn’t really want to kick anyone off.  As an additional challenge ,the existing port-channel was set to ‘mode on’ which needed to be changed over to LACP.  So I started doing some lab work to see what I could come up with.  In the end, I came up with the following procedure. 

Verify which switch is the spanning tree root
Since I hadn’t done any ‘fancy’ spanning-tree config, the same switch was the root for all the VLANs that spanned the port-channel trunk.  In my case, the left switch was the root.  This is important because all of the ports on the root switch are in forwarding mode.

Configure the port-channel on the non-root switch
I started by configuring the first end of the new port-channel on the non-root switch.  My config looked something like this…

interface range gi3/23 – 24
no shut
switchport
channel-group 10 mode on

int po10
switchport
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,10,20,30
switchport mode trunk
spanning-tree cost 50
no shut

spanning-tree uplinkfast

In addition to configuring the port-channel, I did a couple of other steps.  I set the spanning-tree cost of the new port-channel (po10) to 50.  This guarantees that spanning-tree will see it as being less desirable than the existing 2x Gig port-channel.  This step is critical so that you can control when the switch decides to use the new link.  I also configured uplinkfast on the switch.  Uplinkfast is a Cisco feature that allows an alternate port to immediately transition to forwarding when the existing forwarding link fails.  If this feature isn’t on, the switch can detect that the forwarding interface failed, but then has to transition the alternate link through the spanning tree stages (listening and learning) before the alternate can forward traffic.  Cisco documentation on the uplinkfast.

Configure the port-channel on the root switch
This is the configuration I used on the root-switch.

interface range gi3/22 – 24
no shut
switchport
channel-group 10 mode on

int po10
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,10,20,20
switchport mode trunk
spanning-tree cost 50
no shut

Verify Spanning Tree is acting the way it should be
If you’ve done everything right at this point, things should look like this…

image

The legacy port-channel is still forwarding traffic and non-root switch see’s the new port-channel, but it’s in blocking mode.  It’s blocking the new port-channel since the port-cost is significantly higher than the existing port-channel.  However, even though it’s blocking, the switch knows that this is a safe alternate to the existing path.  Make sure you wait for the new port to go through the spanning-tree port states before you move on!

Shutdown the legacy port-channel
On the non-root switch shutdown the legacy port-channel.  In my case, that was port-channel 1.

int po1
shutdown

The instant that the switch detects that po1 is down, it immediately starts forwarding over the alternate link which happens to be our new port-channel.

image

When it was all said and done monitoring hadn’t detected a single drop during the cutover.  I confirmed that I hadn’t dropped any traffic between the right VPN cluster and the outside world.

Cleanup
At this point, I cleaned up the config for the legacy port-channel and removed the spanning-tree config I put in to facilitate the change.

Summary
Studying for the CCIE has really opened my eyes to a lot of interesting things that I never even thought about before.  It’s pretty easy to spend so much time reading about new things (DC fabrics, SDN, etc) and forget about the basic. 

I’ve got another design that I’m about to use that leans on spanning-tree again.  I’ll be sure to post that once I get done with the implementation.

Tags: ,

So I just got back from vacation and finally got all of my out of office email wrapped up.  That’s a good feeling.  Being gone for a week without access to email really causes quite the build-up.  At any rate, Im anxious to get back at it.  I sort of miss work in a weird sort of way when Im gone for longer than a couple of days. 

Until lately, I’ve just been mildly annoyed by how some of my posts were showing up both in Twitter and my browser.  See below…

image

For some odd reason I was getting this ‘…’ deal in all of my blog posts where I used the ‘…’.  Those of you who read the blog enough likely know that I use the ‘…’ quite frequently and today it finally made me mad enough to look into it.  Apparently the ‘…’ is also referred to as an ‘ellipsis’ and as such, has it’s own fancy HTML code for it (…)

At any rate, I determined it was Windows Live Writer that was causing the problem.  After changing the markup type in Windows Live Writer to XMTHL the problem went away.  Or at least I hope it did…  I guess this will be the test…

Just got this off Bob Planker’s (Lone SysAdmin) blog.

Floppy Drive – What is love

That’s pretty insane.  The beginning is a little off but when it get’s going it actually sounds like the real song.  Crazy…

In addition, I just started using Google Chrome on my PC and I cant believe how fast it is compared to IE.  I’m not sure what I was thinking all of these years.  Everything is sooooo much faster.

That’s all for now…

VPC
Peer Sync configuration:  I have yet to use peer sync but it sounds appealing.  I’ve seen what can happen when you don’t use it.
Always the Network : Colby Glass

VPC Keep Alive Best Practices:  Sniped from the above article.  A good read with some interesting points about the keep alive.
Fragmentation Needed : Chris Marget

UCS
New M3 UCS gear:  I had heard about the new release but hadn’t had time to dig into it yet.  This is a great overview.  Im getting pretty excited about the UCS gear.  That new CCIE data center might be the ‘kick’ I need to start playing with it.
Jason Nash’s Blog

CCIE Data Center
New expert level Cisco cert, I’ll go ahead and make that a goal for my third CCIE ;)
Always the Network : Colby Glass

Tags: , ,

« Older entries