Showing posts with label cisco. Show all posts
Showing posts with label cisco. Show all posts

Sunday, May 23, 2010

Layer by Layer Troubleshooting with a Cisco Router

Every network admin is going to have trouble with network links on a Cisco router, at one point or another. The best way to troubleshoot any networking issues is to use the OSI model and go layer by layer. In my article How to use the OSI Model to Troubleshoot Networks, we talked about the different troubleshooting approaches and how to use them to troubleshoot your network, in general. In this article, you will find out how to use the OSI model to troubleshoot, bottom up, using a Cisco router.


OSI Model - Bottom Up Troubleshooting


If you will recall, the OSI model starts with the physical layer (layer 1) and goes up to layer 7 (application). When troubleshooting with a Cisco router, much of your time will be spent working in layers 1-3. They are:



  • Layer 3 - Network

  • Layer 2 - Data Link

  • Layer 1 - Physical


Because these layers build on each other, Layer 1 is most critical, without layer 1, layer 2 will not function. Without layer 1 & 2, layer 3 will not function, and so on. For this reason, I start troubleshooting at layer 1, physical, and move on up from there.


Router Troubleshooting at OSI Layer 1 & 2 - Physical & Data link


Remember, if Layer 1 isn't up, nothing else will work so make sure you start here. Examples of layer 1 are your T1 circuit or your Ethernet cable - physical connectivity. I usually troubleshoot layer 1 and layer 2 in union because they are so closely paired. Examples of layer 2 - data link - are your line protocol (such as Ethernet, ATM, 802.11, PPP, frame-relay, HDLC, or PPP).


To troubleshoot at these layers, the first thing I would do on your router is a show interface. Here is an example of a LAN Gigabit Ethernet circuit:


Router# show interface
GigabitEthernet0/0 is up, line protocol is up
Hardware is BCM1125 Internal MAC, address is 0015.2b46.5000 (bia 0015.2b46.5000)
Description: LAN Connection to Data center
Internet address is 10.20.100.1/16
MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full-duplex, 1000Mb/s, link type is autonegotiation, media type is RJ45
output flow-control is XON, input flow-control is XON
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:00, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
Conversations 0/2/256 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 750000 kilobits/sec
5 minute input rate 3218000 bits/sec, 1715 packets/sec
5 minute output rate 1390000 bits/sec, 2129 packets/sec
1416888620 packets input, 15402720 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 1556005 multicast, 0 pause input
0 input packets with dribble condition detected
1666663097 packets output, 573841802 bytes, 0 underruns
19 output errors, 0 collisions, 3 interface resets
0 babbles, 0 late collision, 0 deferred
19 lost carrier, 0 no carrier, 0 pause output
0 output buffer failures, 0 output buffers swapped out

Here is what a WAN T1or T3 circuit might look like:


Routerl# show interface serial 3/0
Serial3/0 is up, line protocol is up
Hardware is DSXPNM Serial
Description: Sprint T3
Internet address is 10.2.100.2/30
MTU 4470 bytes, BW 9000 Kbit, DLY 200 usec,
reliability 255/255, txload 77/255, rxload 26/255
Encapsulation HDLC, crc 16, loopback not set
Keepalive set (10 sec)
Last input 00:00:00, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 18394
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 927000 bits/sec, 1914 packets/sec
5 minute output rate 2752000 bits/sec, 1504 packets/sec
1560997932 packets input, 3254680247 bytes, 0 no buffer
Received 255480 broadcasts, 1 runts, 1 giants, 0 throttles
1567 input errors, 1567 CRC, 976 frame, 496 overrun, 0 ignored, 908 abort
1303636803 packets output, 3737276508 bytes, 0 underruns
0 output errors, 0 collisions, 3 interface resets
0 output buffer failures, 0 output buffers swapped out
1 carrier transitions
DSU mode 1, bandwidth 9000, real bandwidth 9000, scramble 0

Here is the quick version:


Router# show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 10.20.100.1 YES NVRAM up up
Serial3/0 10.2.100.2 YES NVRAM up up

Here is what you look for:



  • Is the interface UP?

  • Is the line protocol UP?

  • If both the interface and line protocol are NOT up, your connection is never going to work.

  • To resolve a line down, I look at the cable or the keepalives

  • To resolve a line protocol down, check to make sure that the protocols match on each side of the connection(notice the "line protocol" on each of the interfaces above).

  • Are you taking input, CRC, framing, or other errors on the line (notice how the serial interface above does show errors)? If so, check your cable or contact your provider.


In general, verify that you have a good cable on each side, verify that line protocols match, and that clocking settings are correct.


If this is an Ethernet connection, is there a link light on the switch?


If this is a serial connection, do you have an external CSU/DSU? If it is an external CSU, check that the Carrier Detect (CD) light & data terminal ready (DTR) lights are on. If not, contact your provider. This also applies if you have an internal Cisco WIC CSU card. If that is the case, take a look at this Cisco link on understanding the lights on that card.


You can, of course, use the Cisco IOS test commands to test your network interfaces with internal staff and with your telecommunications providers.


Do not proceed to upper level layers until your Physical interface on the router shows as being UP and your line protocol is UP. Until then, don't worry about IP addressing, pinging, access-lists or anything like that.


Router Troubleshooting at OSI Layer 3 - Network


Once you have Layers 1 & 2 working (your show interface command shows the line is "UP & UP", it is time to move on to layer 3 - the OSI Network layer. The easiest thing to do here to see if layer 3 is working is to ping the remote side of the LAN or WAN link from this router. Make sure you ping as close as possible to the router you are trying to communication with - from one side across to the other side.


Here are examples of successful & failed pings:


Router# ping 10.2.100.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.100.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
Router#
Router#
Router#
Router#
Router# ping 1.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Router#

The easiest way to check the status of Layer 3 - the network layer - is to do a show ip interface brief, as I did above. Here is an example:


Router# show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 10.20.100.1 YES NVRAM up up
Serial3/0 10.2.100.2 YES NVRAM up up

Notice the IP addressing on each of these interface. Also do a show running-config, like this (you can even specify an interface, like this):


Router# show running-config int serial3/0
Building configuration...

Current configuration : 225 bytes
!
interface Serial3/0
description Sprint T3
bandwidth 9000
ip address 10.2.100.2 255.255.255.252
no ip proxy-arp
no ip mroute-cache
dsu mode 1
dsu bandwidth 9000
no cdp enable
end

Router#

I would recommend taking this interface configuration and comparing it, side by side, with the remote WAN connection to ensure they are the same. Ask yourself questions like:



  • Are these interfaces on the same IP network?

  • Do these interfaces have the same subnet mask?

  • Are there any access-lists (ACL) that are blocking your traffic?

  • Can you remove all optional IP features to make sure that the basic configuration works before adding additional features that could be causing trouble?


Here is an example. Look at the two interfaces below. What is the real problem, causing these two to not communicate?


Router 1


interface Serial3/0 description Sprint T3 - TO ROUTER 2 bandwidth 9000 ip address 10.2.100.2 255.255.255.252


Router 2


interface Serial3/0 description Sprint T3 - TO ROUTER 1 bandwidth 1500 ip address 10.2.100.5 255.255.255.252


No, there is no problem with the bandwidth statement. Bandwidth statements are only used as comments and by routing protocols to select the best route. The real problem here is that the second router's serial interface is not on the same IP subnet as router #1. Even though they have the same subnet, the 10.2.100.5 IP address will never be able to communicate to the 10.2.100.2 IP address because they are on different networks but directly connected.


Let's say that you are now able to ping across the link, from one side to another. While that is a great sign, it doesn't always mean that everything is "fixed". You still may not be able to communicate from a client on the LAN of one router, to a client on the LAN of another router, due to things like improperly configured IP routing protocols.


For one LAN to communicate to another LAN, through routers (through a WAN, usually), you MUST have either static routes or dynamic routes configured. To ensure you have a route configured for the network you are trying to reach, do:


Router# show ip routes


and look at


Router# show ip protocols


For troubleshooting layers 3, all the way up, look at the output of this command:


Router# show ip interfaces

GigabitEthernet0/0 is up, line protocol is up
Internet address is 10.20.100.1/16
Broadcast address is 255.255.255.255
Address determined by non-volatile memory
MTU is 1500 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Multicast reserved groups joined: 224.0.0.10
Outgoing access list is not set
Inbound access list is not set
Proxy ARP is disabled
Local Proxy ARP is disabled
Security level is default
Split horizon is enabled
ICMP redirects are always sent
ICMP unreachables are always sent
ICMP mask replies are never sent
IP fast switching is enabled
IP fast switching on the same interface is disabled
IP Flow switching is enabled
IP CEF switching is enabled
IP CEF Flow Fast switching turbo vector
IP multicast fast switching is disabled
IP multicast distributed fast switching is disabled
IP route-cache flags are Fast, Flow cache, CEF, Subint Flow
Router Discovery is disabled
IP output packet accounting is disabled
IP access violation accounting is disabled
TCP/IP header compression is disabled
RTP/IP header compression is disabled
Policy routing is disabled
Network address translation is enabled, interface in domain inside
WCCP Redirect outbound is disabled
WCCP Redirect inbound is disabled
WCCP Redirect exclude is disabled
BGP Policy Mapping is disabled

Router Troubleshooting at OSI Layers 4 - 7


Now, let's say that you have made it to the point where you can ping from LAN to LAN, through your WAN. Congratulations - that is a very good sign. If you are still having trouble, it must be in OSI Layers4-7. Here are those layers listed out and possible issues you might experience in each layer:



  • Layer 4 - Transport - in the transport layer are TCP and UDP - you could be have an ACL or QoS feature blocking or slowing this traffic. Your TCP traffic could also be fragmented to the point that it could not be reassembled. Another option is that you may not be receiving an ACK back from your traffic that was successfully sent.

  • Layer 5 - Session - in the session layer are protocols like SQL, NFS, SMB, or RPC - you could be taking errors on any one of these session protocols. I would recommend using a protocol analyzer like Wireshark to analyze your session data.

  • Layer 6 - Presentation - in the Presentation layer are data encryption, compression, and formatting - your VPN tunnel could be failing or perhaps you are sending one type of data (like a MPEG) and the receiver is trying to view it as a WMV file.

  • Layer 7 - Application - in the Application layer are, of course, your applications like FTP, HTTP, SCP, TFTP, TELNET, SSH, and more - you could be trying to connect to a telnet server with the SSH protocol, for example.

  • Layer 8 - End User - the standing joke is that "Layer 8" is the user - the user could be just mistyping their username or password or you, the network admin, could have been troubleshooting the wrong IP address all along.


Summary


In summary, using the OSI model to troubleshoot connectivity issues is the fastest and most efficient way to troubleshoot any network issue. Even if someone calls you to work on a Windows share problem, all of the same principles in this article apply to that troublesooting process. So remember, the next time you work on a network issue - remember the OSI model and how to use the bottom-up approach to troubleshooting! It could same you a while lot of time!

Saturday, April 10, 2010

Cisco ios keyboard shortcut

Delete: Removes the character to the right of the cursor
Backspace: Removes the character to the left of the cursor
Up Arrow: Allows you to scroll forward through previous commands
Down Arrow: Allows you to scroll backwards through previous commands
Ctrl+P (or up arrow): Displays the last command entered
Ctrl+N (or down arrow): Displays previous commands entered
Ctrl+A: Moves the cursor to the beginning of the current line
Ctrl+E: Moves the cursor to the end of the current line
Ctrl+F: Moves forward one character
Ctrl+B: Moves backwards one character
Esc+F: Moves forward one word
Esc+B: Moves backwards one word
Ctrl+R: Redisplays a line (starts a new line, with the same command shown)
Ctrl+U: Erases a line
Ctrl+W: Erases a word
Tab: Completes a partial command
Ctrl+Z: Exits configuration mode, returning you to privileged EXEC mode

Interview with 6x CCIE Roman Rodichev!!!!

It is my pleasure and honor to introduce Roman Rodichev 6x CCIE #7927 ( yes six ). Roman is the first person in the world to hold all 6 active CCIE certifications!!! He is also the instructor, content developer, and owner of ieMentor

Larry: Thanks for taking the time to participate in this interview.

Roman: Thank you, Larry. It’s great to see a new online resource dedicated to the CCIE training industry. Thank you for spending time on doing this! A lot of folks who are going for a CCIE appreciate this too.

Larry: Thanks. I am hoping that the blog will become a valuable resource. The first thing I have to ask about is – 6 CCIE certifications!!! What drove you to want to go that far?

Roman: I’m not even sure what exactly drove me to this. I definitely like being challenged, I like taking tests. There is no one common reason for each of the CCIEs though.
R&S was my first and it took a couple of years to prepare for, finally passing it in August 2001 on second attempt. I just got out of college, not yet legal to drink or to rent a car. Clearly that was the most exciting CCIE to get, far more exciting compared to the last one I got this year. What an experience that was, so much inspiration, drive, fear, stress, so little sleep! First attempt was a disaster, out of excitement I threw away one of the provided pieces of paper into trash, and Kathy, my favorite proctor, wouldn’t let me continue on my second day, even though I passed the first day. She said “You are lucky we are not putting you on a black list”. I would have had to wait for almost 6 months to get another seat.
Fortunately, past programming skills helped me develop a quick script that checked Cisco’s CCIE scheduling site for available dates and grabbed a date if it became available. I was back in a month and paid more attention that time. The big driver for R&S was career advancement and desire to get through that magic $100K/year salary barrier. But more importantly, I really liked what I was doing and was fortunate enough to become inspired by a couple of CCIE Cisco folks I met around that time. One of them, Dmitry Bokotey, 5xCCIE#4460, became a very good friend of mine and was the main point of inspiration for getting drunk on Cisco Kool-Aid.
I got Security CCIE six months later on first attempt. Playing with PIXs and VPNs at that time helped out a lot. The other factor was the young age of the Security CCIE track. I always recommend students to take the CCIE lab when it just comes out and not wait for the second version of the blueprint. I realize, of course, that not everyone gets a chance to do that. The first version of the Security lab was a little raw and wasn’t as advanced as the latest blueprint. It didn’t require as much effort. I’m not saying it was easy, but definitely easier than what other folks have to go through now to achieve Security CCIE.
If Cisco could take my Security track away and let me retake the new lab, I’d like to do that. I don’t think they allow this, though.
I remember asking them the same about my Storage CCIE so that I could go and try the new second version of the lab. They wouldn’t let me.
During those two years in 2002 and 2003, I was heavily involved in some voice deployments with CallManager, Unity, IPCC, and other Cisco voice offerings. This helped me gain enough interest and knowledgebase for attempting Voice track. My sheer interest for UC (or IPT back then) held me hostage and begged me to try it. I studied for a couple of months, went and failed. I have to thank proctor Ben Ng for creating a very challenging lab. He was the most helpful proctor of all!
I haven’t seen the new security lab, but based on the six labs I took, in my opinion, Voice was the hardest.
After failing, I studied each night after work for a month, and then went back and was lucky enough to pass it.
This is where the story stops for about three years. During that time I got a chance to do a consulting gig in Europe for about a year, got married, bought a home, those dollars had to go somewhere!!
I forgot about CCIEs for a while. Finally in 2005, around the same time Storage track was coming out, I got involved with ieMentor. It was more of a hobby than a business. I wanted to do something fun and take advantage of all the knowledge CCIEs gave me and pass this knowledge on to other people. Our CCIE Service Provider, CCIE Voice and CCIE Storage workbooks came out around the same time, followed by the CCIE Service Provider and CCIE Storage bootcamps.
Writing a CCIE Storage workbook drove me to take the CCIE Storage lab. Developing labs and questions is the best way to study for the lab. Of course, not everyone would decide to use this wacky approach, but it certainly helped me pass the Storage lab on first attempt in March of 2006 and then release the workbook a month after that. In the summer of 2006, I started delivering the CCIE Service Provider bootcamps without actually having the cert.
CCIE Service Provider is my favorite track. No other track has such a collection of interconnected technologies that allows you to achieve the result only if you get every little piece right. Doing that successful final ping between two CEs is more exciting to me than making a successful phone call between two IP phones. Discovering a failed ping between two CEs is more stressful for me than discovering a broken VPN session. I don’t know, maybe it’s just me, but Service Provider technologies are just a lot of fun to work with! Obviously, I couldn’t teach the class for too long without having the certification. I went and passed it in November of 2006.
Finally, in 2008, a rumor spread that a CCIE wireless track was on the horizon. My brain was refusing to even think about it, while my heart was telling me “Just one more, and that’s it”. Also, the word “sextuple” had something sexy about it. Probably the only sexy thing ever associated with a CCIE. I locked myself in the room for two months studying controllers, access points, authentication, security, WCS, roaming, wireless voice, all the fun stuff you have to know for this great track. I took the lab in San Jose in May of 2009 and it kicked my butt.
Past experience taking these labs taught me a lesson:
1. Document the entire lab even if you think you passed it. This takes about 3 days. Don’t be lazy!!
2. Practice your lab at home and research every topic even if you believe you will get a different lab next time
3. Don’t wait after failing, schedule the lab for the soonest date possible. The most studying you will do is between the attempts.
After coming back from the wireless lab, I locked myself in a room for a month again, went back in July and was lucky to pass it. It was a very nostalgic experience coming to San Jose for the last CCIE, the same location I went to get my first one eight years ago.
In conclusion, what helped me get six CCIEs? A different thing each time:
1. R&S = lots of studying for about two years, a true CCIE preparation experience that most go through
2. Security = experience with PIXes and IOS security + luck
3. Voice = experience with IPT + two months of non-stop studying
4. Storage = writing a workbook
5. SP = teaching a bootcamp
6. Wireless = two months of non-stop studying
Some people who don’t know me think I have no life and that all I do is study. I would say that studying for CCIE R&S was really like that, no partying, lots of lab hours, lots of sleepless nights. Other tracks involved short but intense study methods. I would simply lock myself in a room with equipment and books for a couple of months. Another thing that helps me a lot is that I enjoy reading technical literature, Cisco Press books, but mostly Cisco’s documentation. The problem is that 90% of reading I do is in my car. I certainly don’t recommend it! At any point in time, you will find around ten 20-30 page Cisco website print-outs on my passenger’s seat. I don’t know why, but it helps me better digest and remember the information.
I don’t like long and boring tasks that don’t require some knowledge transfer, like driving, running on treadmill, waiting at the doctor’s office. I can’t just sit and stare at something, I need to read. Yes, reading while driving is not a good idea, but I never had an accident because of it, I usually feel more distracted talking on the phone while driving.
Larry: Wow – that’s quite a story . I think that all of us that have passed, taken or are preparing for a lab can relate in some way. As an instructor, how do you keep up to date on all of the tracks and the changes to the labs?

Roman : Various sources can help. I currently teach SP track and since the blueprint hasn’t changed for a long time, it doesn’t require too many changes to the curriculum. I make sure that I cover all topics on the blueprint. I also monitor IOS release notes to be aware of any changes or new features introduced. I listen to what students are saying or what they hear about from other people preparing for SP. I myself learn something new in each class.

Larry: That is definitely something to remember. We can always learn something new!!
Do you have a favorite technology area? One that really interests you more than the others?

Roman: I enjoy working with Data Center, Virtualization, Unified Communications and Wireless. I like them all equally as long as the project is challenging.

Larry: There are a lot of folks that are currently studying for their first CCIE. They have problems balancing work, studying and family. Do you have any advice for them?

Roman: First of all, I need to mention that my wife and I don’t have kids yet, so I’m absolutely in no position to make recommendation of how to balance your time between kids and studying. For my situation, my success at getting CCIE and how quickly I can achieve it depends entirely on how much I am interested in the technology. If configuring MPLS VPNs is more interesting than watching TV, I will pass the lab quickly.
Find time to read. Print out a 10-20 page section of a configuration guide or a tech note and read it the same day. Do this every day. There are plenty of moments in your day, wherever you are, when you are idling and could spend that time reading.
Finally, again, it’s all about INTEREST and ENJOYMENT. If you are truly interested in the technology, if you are really enjoying studying, you will find time how to balance work, wife (can’t speak for kids) and studying. People who “can’t find time for studying”, don’t actually enjoy studying that technology.

Larry: That is an important item to consider. Having a passion for what you are studying makes it more bearable. What is your reaction to the major changes to the R&S lab structure? Do you have any advice for folks that are studying for this “new breed” of lab?

Roman: I’m not very familiar with it. I’ve heard about new troubleshooting section, but can’t speak much to it. I live in the SP and Storage world.

Larry: One question that I get quite often from people is - Should I go for a professional level certification before moving to the CCIE? What is your advice on that?

Roman: If you are going to do CCIE, why waste time on CCNP? If you are ready for CCIE, you can go and take all CCNP tests in one day, and you’ll pass them. Getting CCNP might get you a $10-20K salary increase, but probably only if you switch jobs. If you think that CCIE is your ultimate goal, go for CCIE, don’t think about CCNP. These two certifications require a different approach in studying. Some people choose to study with pass4sure and pass the CCNP within a week. I would rather prepare first for a CCIE, and then take CCNP tests without preparation a week before the CCIE lab.

Larry: Thanks again for taking the time for this out of your busy schedule. One last closing question – If Cisco brings out another CCIE track will you go for it?

Roman: Well, it’s kind of obvious that Data Center CCIE will be the next track. It would be interesting to see if Cisco keeps Storage CCIE alive or if it decides to merge them. I love Data Center technologies and therefore will do this track. Now, if Cisco decides to make a track on TelePresence, that’s a different story!

Monday, December 21, 2009

MPLS Topics

MPLS Concepts

* Introducing Basic MPLS Concepts
* Introducing MPLS Labels and Label Stacks
* Identifying MPLS Applications


Label Assignment and Distribution

* Discovering LDP Neighbors
* Introducing Typical Label Distribution in Frame-Mode MPLS
* Introducing Convergence in Frame-Mode MPLS
* Introducing MPLS Label Allocation, Distribution, and Retention Modes


Frame-Mode MPLS Implementation on Cisco IOS Platforms

* Introducing CEF Switching
* Configuring Frame-Mode MPLS on Cisco IOS Platforms
* Monitoring Frame-Mode MPLS on Cisco IOS Platforms
* Troubleshooting Frame-Mode MPLS on Cisco IOS Platforms


MPLS VPN Technology

* Introducing VPNs
* Categorizing VPNs
* Introducing MPLS VPN Architecture
* Introducing the MPLS VPN Routing Model
* Forwarding MPLS VPN Packets


MPLS VPN Implementation

* Using MPLS VPN Mechanisms on Cisco IOS Platforms
* Configuring VRF Tables
* Configuring an MP-BGP Session Between PE Routers
* Configuring Small-Scale Routing Protocols Between PE and CE Routers
* Monitoring MPLS VPN Operations
* Configuring OSPF as the Routing Protocol Between PE and CE routers
* Configuring BGP as the Routing Protocol Between PE and CE routers
* Troubleshooting MPLS VPNs


Complex MPLS VPNs

* Using Advanced VRF Import and Export Features
* Introducing Overlapping VPNs
* Introducing Central Services VPNs
* Introducing the Managed CE Routers Service


Internet Access and MPLS VPNs

* Introducing VPN Internet Access Topologies
* Implementing Separate Internet Access and VPN Services
* Implementing Internet Access as a Separate VPN


MPLS TE Overview

* Introducing the TE Concept
* Understanding MPLS TE Components
* Configuring MPLS TE on Cisco IOS Platforms
* Monitoring Basic MPLS TE on Cisco IOS Platforms

Monday, December 7, 2009

Private VLAN

To begin with, let’s recall that VLAN is essentially a broadcast domain. Private VLANs (PVANs) allow splitting the domain into multiple isolated broadcast “subdomains”, introducing subVLANs inside a VLAN. As we know, Ethernet VLANs can not communicate directly with each other – they require a L3 device to forward packets between separate broadcast domains. The same restriction applies to PVLANS – since the subdomains are isolated at Level 2, they need to communicate using an upper level (L3/packet forwarding) device – such as router. However, there is a difference here. In real life, different VLANs usually map to different IP subnets. When we split a VLAN using PVLANs, hosts in different PVLANs still belong to the same IP subnet, yet now they need to use a router (L3 device) to talk to each other (for example, by using local Proxy ARP). On its side, the router may either permit or forbid communications between sub-VLANs using access-lists. Commonly, these configurations arise in “shared” environments, say ISP co-location, where it’s beneficial to put multiple customers into the same IP subnet, yet provide a good level of isolation between them.

For our sample configuration, we will take VLAN 1000 and divide it into three PVLANs – sub-VLAN 1012 (R1 and R2), sub-VLAN 1034 (R3 and R4) and sub-VLAN 1055 (router R5 only). Router R6 will be used as layer 3 device, to resolve the layer 3 communication issue. Look at the figure above for reference. We define VLAN 1000 as “Primary” and classify the ports, assigned to this VLAN, based on their types:



Promiscuous (“P”) port: Usually connects to a router. This port type is allowed to send and receive L2 frames from any other port on the VLAN
Isolated (“I”) port: This type of port is only allowed to communicate with “P”-ports – i.e., they are “stub” port. You commonly see these ports connecting to hosts.
Community (“C”) port: Community ports are allowed to talk to their buddies, sharing the same community (group) and to “P”-ports.

In order to implement sub-VLAN behavior, we need to define how packets are forwarded between different types of ports. First comes the Primary VLAN – VLAN 1000 in our example. This type of VLANs is used to forward frames downstream from “P”-ports to all other port types (“I” and “C” ports) in the system. Essentially, Primary VLAN embraces all ports in the domain, but only transports frames from the router to hosts (from “P” to “I” and “C”). Next come “Secondary” VLANs – they correspond to “Isolated” and “Community” ports. These VLANs transport frames in the opposite direction (upstream) – from “I” and “C” ports to “P” ports.

Isolated VLAN: forwards frames from “I” ports to “P” ports. Since Isolated ports do not exchange frames with each other, we can use just ONE isolated VLAN to connect all I-Port to the P-port.
Community VLANs: Transport frames between community ports (C-ports) within to the same group (community) and forward frames upstream to the P-ports of the primary VLAN.

Here is a simplified overview of how Private VLANs work:

The Primary VLAN delivers frames downstream from the router (promisc port) to all mapped hosts; The Isolated VLAN transports frames from the stub hosts upstream to the router; The Community VLANs allow bi-directional frame exchange withing a single group, in addition to forwarding frames upstream towards “P”-ports. The original Ethernet MAC address learning and forwarding procedure remain the same, as well as broadcast/multicast flooding procedure within boundaries of primary/secondary VLANs. Naturally, private VLANs could be trunked. The secondary VLAN numbers are used to tag frames, just as with regular VLANs, and the primary VLAN traffic is trunked as well. However, you need to configure Private VLAN specific settings (bindings, mappings) on every participating swtich, for it’s not possible to use VTPv2 to dissiminate that information . This due to the fact that VTPv2 has no TLVs to carry private VLANs information, and besides, private VLANs are not intended to be floodes across the whole management domain. Not to mention that using VTP in enterprise networks is usually not a good idea. Though VTPv3 was designed to overcome this limitation among others.

Let’s move to the configuration part, based on the diagram above. What we have is primary VLAN 1000, Isolated VLAN 1005 (R5) Community VLAN 1012 (R1, R2) and Community VLAN 1034 (R3, R4).

Step 1:

First, disable VTP, i.e. enable VTP transparent mode. After disabling VTP, create Primary and Secondary VLANs and bind them into PVLAN domain:

SW1:
vtp mode transparent
!
! Creating primary VLAN, which is shared among secondary’s
!
vlan 1000
private-vlan primary

!
! Community VLAN for R1 and R2: allows a “subVLAN” within a Primary VLAN
!
vlan 1012
private-vlan community
!
! Community VLAN for R3 and R4
!
vlan 1034
private-vlan community

!
! Isolated VLAN: Connects all stub hosts to router.
! Remember - only one isolated vlan per primary VLAN.
! In our case, isolates R5 only.
!
vlan 1055
private-vlan isolated

!
! Associating the primary with secondary’s
!
vlan 1000
private-vlan association 1012,1034,1055

This step is needed is to group PVLANs into a shared domain and establish a formal association (for syntax checking and VLAN type verifications). Repeat the same operations on SW2, since VTP has been disabled.

Step 2:

Configure host ports and bind them to the respective isolated PVLANs. Note that a host port belongs to different VLANs at the same time: downstream primary and upstream secondary. Also, enable trunking between switches, to allow private VLANs traffic to pass between switches.

SW1:
!
! Community port (links R1 to R2 and “P”-ports)
!
interface FastEthernet0/1
description == R1
switchport private-vlan host-association 1000 1012
switchport mode private-vlan host
spanning-tree portfast

!
! Community port (links R3 to R4 and “P”-ports)
!
interface FastEthernet0/3
description == R3
switchport private-vlan host-association 1000 1034
switchport mode private-vlan host
spanning-tree portfast

!
! Isolated port (uses isolated VLAN to talk to “P”-ports)
!
interface FastEthernet0/5
description == R5
switchport private-vlan host-association 1000 1055
switchport mode private-vlan host
spanning-tree portfast

!
! Trunk port
!
interface FastEthernet 0/13
switchport trunk encapsulation dot1q
switchport mode trunk

SW2:
interface FastEthernet0/2
description == R2
switchport private-vlan host-association 1000 1012
switchport mode private-vlan host
spanning-tree portfast
!
interface FastEthernet0/4
description == R4
switchport private-vlan host-association 1000 1034
switchport mode private-vlan host
spanning-tree portfast

!
! Trunk port
!
interface FastEthernet 0/13
switchport trunk encapsulation dot1q
switchport mode trunk

Next, Verify the configuration on SW1:

Rack1SW1#show vlan id 1012

VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1012 VLAN1012 active Fa0/13

VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1012 enet 101012 1500 - - - - - 0 0

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
1000 1012 community Fa0/1

Rack1SW1#show vlan id 1034

VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1034 VLAN1034 active Fa0/13

VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1034 enet 101034 1500 - - - - - 0 0

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
1000 1034 community Fa0/3

Rack1SW1#show vlan id 1055

VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1055 VLAN1055 active Fa0/13

VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1055 enet 101055 1500 - - - - - 0 0

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
1000 1055 isolated Fa0/5

Rack1SW1#show interfaces fastEthernet 0/13 trunk

Port Mode Encapsulation Status Native vlan
Fa0/13 desirable 802.1q trunking 1

Port Vlans allowed on trunk
Fa0/13 1-4094

Port Vlans allowed and active in management domain
Fa0/13 1,1000,1012,1034,1055

Port Vlans in spanning tree forwarding state and not pruned
Fa0/13 1,1000,1012,1034,1055

Verify on SW2:

Rack1SW2#show vlan id 1000

VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1000 VLAN1000 active Fa0/13

VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1000 enet 101000 1500 - - - - - 0 0

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
1000 1012 community Fa0/2, Fa0/6
1000 1034 community Fa0/4, Fa0/6
1000 1055 isolated Fa0/6

Rack1SW2#show vlan id 1012

VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1012 VLAN1012 active Fa0/13

VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1012 enet 101012 1500 - - - - - 0 0

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
1000 1012 community Fa0/2, Fa0/6

Rack1SW2#show vlan id 1034

VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1034 VLAN1034 active Fa0/13

VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1034 enet 101034 1500 - - - - - 0 0

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
1000 1034 community Fa0/4, Fa0/6

Rack1SW2#show vlan id 1055


VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1055 VLAN1055 active Fa0/13

VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1055 enet 101055 1500 - - - - - 0 0

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
1000 1055 isolated Fa0/6

Rack1SW2#show interface fastEthernet 0/13 trunk

Port Mode Encapsulation Status Native vlan
Fa0/13 desirable 802.1q trunking 1

Port Vlans allowed on trunk
Fa0/13 1-4094

Port Vlans allowed and active in management domain
Fa0/13 1,1000,1012,1034,1055

Port Vlans in spanning tree forwarding state and not pruned
Fa0/13 1,1000,1012,1034,1055

Step 3:

Create a promiscuous port and configure downstream mappings. Here we add secondary VLANs for which traffic is received by this particular “P”-port. Primary VLAN is used to send traffic downstream to all “C” and “I” ports per their associations.

SW2:
!
! Promiscuous port, mapped to all secondary VLANs
!
interface FastEthernet0/6
description == R6
switchport private-vlan mapping 1000 1012,1034,1055
switchport mode private-vlan promiscuous
spanning-tree portfast

Verify the promiscuous port configuration:

Rack1SW2#show int fa 0/6 switch | beg private

Administrative Mode: private-vlan promiscuous
Operational Mode: private-vlan promiscuous
Administrative Trunking Encapsulation: negotiate
Operational Trunking Encapsulation: native
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: 1000 (VLAN1000) 1012 (VLAN1012) 1034 (VLAN1034) 1055 (VLAN1055)
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan:
1000 (VLAN1000) 1012 (VLAN1012) 1034 (VLAN1034) 1055 (VLAN1055)

If you need to configure an SVI on a switch to communicate with private VLAN members, you should add an interface corresponding to Primary VLAN only. Obviously that’s because all secondary VLANs are “subordinates” of primary. After an SVI has been created, you have to map the required secondary VLANs to the SVI (just like with a promiscuous port) in order to make communications possible. You may exclude some mappings from SVI interface, and limit it to communicating only with certain secondary VLANs.

SW1:
!
! SW1 SVI is mapped to all secondary VLANs
!
interface Vlan 1000
ip address 10.0.0.7 255.255.255.0
private-vlan mapping 1012,1034,1055

SW2:
!
! SW2 SVI is mapped to 1012/1034 only, so it’s cant communicate with R5
!
interface Vlan1000
ip address 10.0.0.8 255.255.255.0
private-vlan mapping 1012,1034

Now to verify the configuration, configure R1-R6 interfaces in subnet “10.0.0.0/24” and ping broadcast addresses.

Rack1R1#ping 10.0.0.255 repeat 1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 10.0.0.255, timeout is 2 seconds:

Reply to request 0 from 10.0.0.7, 4 ms
Reply to request 0 from 10.0.0.2, 4 ms
Reply to request 0 from 10.0.0.6, 4 ms
Reply to request 0 from 10.0.0.8, 4 ms

Rack1R3#ping 10.0.0.255 repeat 1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 10.0.0.255, timeout is 2 seconds:

Reply to request 0 from 10.0.0.7, 4 ms
Reply to request 0 from 10.0.0.4, 4 ms
Reply to request 0 from 10.0.0.6, 4 ms
Reply to request 0 from 10.0.0.8, 4 ms

Rack1R5#ping 10.0.0.255 repeat 1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 10.0.0.255, timeout is 2 seconds:

Reply to request 0 from 10.0.0.7, 1 ms
Reply to request 0 from 10.0.0.6, 1 ms

Rack1R6#ping 10.0.0.255 repeat 1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 10.0.0.255, timeout is 2 seconds:

Reply to request 0 from 10.0.0.1, 4 ms
Reply to request 0 from 10.0.0.7, 4 ms
Reply to request 0 from 10.0.0.2, 4 ms
Reply to request 0 from 10.0.0.5, 4 ms
Reply to request 0 from 10.0.0.3, 4 ms
Reply to request 0 from 10.0.0.4, 4 ms
Reply to request 0 from 10.0.0.8, 4 ms

Lastly, there is another feature, called protected port or “Private VLAN edge”. The feature is pretty basic and is available even on low-end Cisco switches. It allows isolating ports in the same VLAN. Specifically, all ports in a VLAN, marked as protected are prohibited from sending frames to each other (but still allowed to send frames to other (non-protected) ports within the same VLAN). Usually, ports configured as protected are also configured not to receive unknown unicast (frame with destination MAC address not in switch’s MAC table) and multicast frames flooding for added security.

Example:

interface range FastEthernet 0/1 - 2
switchport mode access
switchport protected
switchport block unicast
switchport block multicast

Sunday, November 1, 2009

Inter-Switch Link



Cisco Inter-Switch Link (ISL) is a Cisco Systems proprietary protocol that maintains VLAN information as traffic flows between switches and routers, or switches and switches.ISL is Cisco's VLAN encapsulation method and supported only on Cisco's equipment through Fast and Gigabit Ethernet links. The size of an Ethernet encapsulated ISL frame can be expected to start from 94 bytes and increase up to 1548 bytes due to the overhead (additional fields) the protocol creates via encapsulation. ISL adds a 26-byte header (containing a 15-bit VLAN identifier) and a 4-byte CRC trailer to the frame. ISL functions at the Data-Link layer of the OSI model. ISL is used to maintain redundant links.

ISL is a Cisco proprietary protocol for the interconnection of multiple switches and maintenance of VLAN information as traffic goes between switches. ISL provides VLAN trunking capabilities while it maintains full wire-speed performance on Ethernet links in full-duplex or half-duplex mode. ISL operates in a point-to-point environment and can support up to 1000 VLANs. In ISL, the original frame is encapsulated and an additional header is added before the frame is carried over a trunk link. At the receiving end, the header is removed and the frame is forwarded to the assigned VLAN. ISL uses Per VLAN Spanning Tree (PVST), which runs one instance of Spanning Tree Protocol (STP) per VLAN. PVST allows the optimization of root switch placement for each VLAN and supports the load balancing of VLANs over multiple trunk links. ISL Frame- The ISL frame consists of three primary fields: the encapsulation frame (original frame), which is encapsulated by the ISL header, and the FCS at the end.

This section provides detailed descriptions of the ISL frame fields:

The DA field of the ISL packet is a 40-bit destination address. This address is a multicast address and is set at "0x01-00-0C-00-00" or "0x03-00-0c-00-00". The first 40 bits of the DA field signal the receiver that the packet is in ISL format.

The TYPE field consists of a 4-bit code. The TYPE field indicates the type of frame that is encapsulated and can be used in the future to indicate alternative encapsulations. This table provides definitions of different TYPE codes:

The USER field consists of a 4-bit code. The USER bits are used to extend the meaning of the TYPE field. The default USER field value is "0000". For Ethernet frames, the USER field bits "0" and "1" indicate the priority of the packet as it passes through the switch. Whenever traffic can be handled in a manner that allows it to be forwarded more quickly, the packets with this bit set should take advantage of the quick path. It is not required that such paths be provided.

The SA field is the source address field of the ISL packet. The field should be set to the "802.3" MAC address of the switch port that transmits the frame. It is a 48-bit value. The receiving device may ignore the SA field of the frame.

The LEN field stores the actual packet size of the original packet as a 16-bit value. The LEN field represents the length of the packet in bytes, with the exclusion of the DA, TYPE, USER, SA, LEN, and FCS fields. The total length of the excluded fields is 18 bytes, so the LEN field represents the total length minus 18 bytes.

AAAA03 (SNAP)—Subnetwork Access Protocol (SNAP) and Logical Link Control (LLC).The AAAA03 SNAP field is a 24-bit constant value of "0xAAAA03".

HSA—High Bits of Source Address.The HSA field is a 24-bit value. This field represents the upper 3 bytes (the manufacturer ID portion) of the SA field. The field must contain the value "0x00-00-0C".

VLAN—Destination Virtual LAN ID. The VLAN field is the VLAN ID of the packet. It is a 15-bit value that is used to distinguish frames on different VLANs. This field is often referred to as the "color" of the frame.

BPDU—Bridge Protocol Data Unit (BPDU) and Cisco Discovery Protocol (CDP) Indicator.
The bit in the BPDU field is set for all BPDU packets that are encapsulated by the ISL frame. The BPDUs are used by the spanning tree algorithm in order to determine information about the topology of the network. This bit is also set for CDP and VLAN Trunk Protocol (VTP) frames that are encapsulated.

The INDX field indicates the port index of the source of the packet as it exits the switch. This field is used for diagnostic purposes only, and may be set to any value by other devices. It is a 16-bit value and is ignored in received packets.
RES—Reserved for Token Ring and FDDI

The RES field is a 16-bit value. This field is used when Token Ring or FDDI packets are encapsulated with an ISL frame. In the case of Token Ring frames, the Access Control (AC) and Frame Control (FC) fields are placed here. In the case of FDDI, the FC field is placed in the Least Significant Byte (LSB) of this field. For example, an FC of "0x12" has a RES field of "0x0012". For Ethernet packets, the RES field should be set to all zeros.

The ENCAP FRAME field is the encapsulated data packet, which includes its own cyclic redundancy check (CRC) value, completely unmodified. The internal frame must have a CRC value that is valid after the ISL encapsulation fields are removed. The length of this field can be from 1 to 24,575 bytes in order to accommodate Ethernet, Token Ring, and FDDI frames. A receiving switch may strip off the ISL encapsulation fields and use this ENCAP FRAME field as the frame is received (associating the appropriate VLAN and other values with the received frame as indicated for switching purposes).
FCS—Frame Check Sequence

The FCS field consists of 4 bytes. This sequence contains a 32-bit CRC value, which is created by the sending MAC and is recalculated by the receiving MAC in order to check for damaged frames. The FCS is generated over the DA, SA, Length/Type, and Data fields. When an ISL header is attached, a new FCS is calculated over the entire ISL packet and added to the end of the frame.

The ISL frame encapsulation is 30 bytes, and the minimum FDDI packet is 17 bytes. Therefore, the minimum ISL encapsulated packet for FDDI is 47 bytes. The maximum Token Ring packet is 18,000 bytes. Therefore, the maximum ISL packet is 18,000 plus 30 bytes of ISL header, for a total of 18,030 bytes. If only Ethernet packets are encapsulated, the range of ISL frame sizes is from 94 to 1548 bytes.The biggest implication for systems that use ISL encapsulation is that the encapsulation is a total of 30 bytes, and fragmentation is not required. Therefore, if the encapsulated packet is 1518 bytes long, the ISL packet is 1548 bytes long for Ethernet. Additionally, if packets other than Ethernet packets are encapsulated, the maximum length can be greatly increased. You must consider this length change when you evaluate whether a topology can support ISL packets size.

Note: The addition of the new FCS does not alter the original FCS that is contained within the encapsulated frame.

VLAN Trunking Protocol (VTP)





Cisco Devices, VTP (VLAN Trunking Protocol) maintains VLAN configuration consistency across the entire network. VTP uses Layer 2 trunk frames to manage the addition, deletion, and renaming of VLANs on a network-wide basis from a centralized switch in the VTP server mode. VTP is responsible for synchronizing VLAN information within a VTP domain and reduces the need to configure the same VLAN information on each switch.

VTP minimizes the possible configuration inconsistencies that arise when changes are made. These inconsistencies can result in security violations, because VLANs can crossconnect when duplicate names are used. They also could become internally disconnected when they are mapped from one LAN type to another, for example, Ethernet to ATM LANE ELANs or FDDI 802.10 VLANs. VTP provides a mapping scheme that enables seamless trunking within a network employing mixed-media technologies.

VTP provides the following benefits:

* VLAN configuration consistency across the network
* Mapping scheme that allows a VLAN to be trunked over mixed media
* Accurate tracking and monitoring of VLANs
* Dynamic reporting of added VLANs across the network
* Plug-and-play configuration when adding new VLANs

As beneficial as VTP can be, it does have disadvantages that are normally related to the Spanning Tree Protocol (STP) as a bridging loop propagating throughout the network can occur. Cisco switches run an instance of STP for each VLAN, and since VTP propagates VLANs across the campus LAN, VTP effectively creates more opportunities for a bridging loop to occur.

Before creating VLANs on the switch that will be propagated via VTP, a VTP domain must first be set up. A VTP domain for a network is a set of all contiguously trunked switches with the same VTP domain name. All switches in the same management domain share their VLAN information with each other, and a switch can participate in only one VTP management domain. Switches in different domains do not share VTP information.

Using VTP, each Catalyst Family Switch advertises the following on its trunk ports:

* Management domain
* Configuration revision number
* Known VLANs and their specific parameters

There are three version of VTP so far. VTP Version 2 (V2) is not much different than VTP Version 1 (V1). The major difference is that VTP V2 introduces the support for Token Ring VLANs. If you are using Token Ring VLANs, you need to enable VTP V2. Otherwise, there is no reason to use VTP V2. VTP version 3 differs from earlier VTP versions in that it does not directly handle VLANs. VTP version 3 is a protocol that is only responsible for distributing a list of opaque databases over an administrative domain. When enabled, VTP version 3 provides the following enhancements to previous VTP versions:

* Support for extended VLANs.
* Support for the creation and advertising of private VLANs.
* Improved server authentication.
* Protection from the "wrong" database accidentally being inserted into a VTP domain.
* Interaction with VTP version 1 and VTP version 2.
* Provides the ability to be configured on a per-port basis.
* Provides the ability to propagate the VLAN database andother databases.

Virtual LAN



VLANs are created to provide the segmentation services traditionally provided by routers in LAN configurations. VLANs address issues such as scalability, security, and network management. Routers in VLAN topologies provide broadcast filtering, security, address summarization, and traffic flow management. By definition, switches may not bridge IP traffic between VLANs as it would violate the integrity of the VLAN broadcast domain. Virtual LANs are essentially Layer 2 constructs, compared with IP subnets which are Layer 3 constructs. In an environment employing VLANs, a one-to-one relationship often exists between VLANs and IP subnets, although it is possible to have multiple subnets on one VLAN or have one subnet spread across multiple VLANs. Virtual LANs and IP subnets provide independent Layer 2 and Layer 3 constructs that map to one another and this correspondence is useful during the network design process. By using VLANs, one can control traffic patterns and react quickly to relocations. VLANs provide the flexibility to adapt to changes in network requirements and allow for simplified administration.



The protocol most commonly used today in configuring virtual LANs is IEEE 802.1Q. The IEEE committee defined this method of multiplexing VLANs in an effort to provide multivendor VLAN support. Prior to the introduction of the 802.1Q standard, several proprietary protocols existed, such as Cisco's ISL (Inter-Switch Link, a variant of IEEE 802.10) and 3Com's VLT (Virtual LAN Trunk). Both ISL and IEEE 802.1Q tagging perform "explicit tagging" - the frame itself is tagged with VLAN information. ISL uses an external tagging process that does not modify the existing Ethernet frame, while 802.1Q uses a frame-internal field for tagging, and so does modify the Ethernet frame. This internal tagging is what allows IEEE 802.1Q to work on both access and trunk links: frames are standard Ethernet, and so can be handled by commodity hardware.

The IEEE 802.1Q header contains a 4-byte tag header containing a 2-byte tag protocol identifier (TPID) and a 2-byte tag control information (TCI). The TPID has a fixed value of 0x8100 that indicates that the frame carries the 802.1Q/802.1p tag information. The TCI contains the following elements:

* Three-bit user priority
* One-bit canonical format indicator (CFI)
* Twelve-bit VLAN identifier (VID)-Uniquely identifies the VLAN to which the frame belongs

The 802.1Q standard can create an interesting scenario on the network. Recalling that the maximum size for an Ethernet frame as specified by IEEE 802.3 is 1518 bytes, this means that if a maximum-sized Ethernet frame gets tagged, the frame size will be 1522 bytes, a number that violates the IEEE 802.3 standard. To resolve this issue, the 802.3 committee created a subgroup called 802.3ac to extend the maximum Ethernet size to 1522 bytes. Network devices that do not support a larger frame size will process the frame successfully but may report these anomalies as a "baby giant". Inter-Switch Link (ISL) is a Cisco proprietary protocol used to interconnect multiple switches and maintain VLAN information as traffic travels between switches on trunk links. This technology provides one method for multiplexing bridge groups (VLANs) over a high-speed backbone. It is defined for Fast Ethernet and Gigabit Ethernet, as is IEEE 802.1Q. ISL has been available on Cisco routers since Cisco IOS Software Release 11.1.

With ISL, an Ethernet frame is encapsulated with a header that transports VLAN IDs between switches and routers. ISL does add overhead to the packet as a 26-byte header containing a 10-bit VLAN ID. In addition, a 4-byte CRC is appended to the end of each frame. This CRC is in addition to any frame checking that the Ethernet frame requires. The fields in an ISL header identify the frame as belonging to a particular VLAN. A VLAN ID is added only if the frame is forwarded out a port configured as a trunk link. If the frame is to be forwarded out a port configured as an access link, the ISL encapsulation is removed.

Thursday, October 22, 2009

Static Routing

Objective:

Design & develop a computer network between 3 routers in three buildings, using static routing.

Setup:

I have taken several steps to establish static routing between routers A, B, C are given below:

Router A: Network address 192.168.1.0 is used for hosts of the router A. PC 0 and PC 1 are connected through a switch ip configuration of 192.168.1.2 and subnet mask is 255.255.255.0 and 192.168.1.3 and subnet mask is 255.255.255.0. For the cable which connects router A with router B is configured with the ip address 192.168.4.1 and subnet mask is 255.255.255.0. Gateway address used for hosts of router A network is 192.168.1.1 and subnet mask is 255.255.255.0.

Router B: Network address 192.168.2.0 is used for hosts of the router B. PC 2 and PC 3 are connected through a switch ip configuration of 192.168.2.2 and subnet mask is 255.255.255.0 and 192.168.2.3 and subnet mask is 255.255.255.0. For the cable which connects router B with router A is configured with the ip address 192.168.4.2 and subnet mask is 255.255.255.0 and for the cable which connects router B with router C is configured with the ip address 192.168.5.1 and subnet mask is 255.255.255.0. Gateway address used for hosts of router B network is 192.168.2.1 and subnet mask is 255.255.255.0.

Router C: Network address 192.168.3.0 is used for hosts of the router A. PC 4 and PC 5 are connected through a switch ip configuration of 192.168.3.2 and subnet mask is 255.255.255.0 and 192.168.3.3 and subnet mask is 255.255.255.0. For the cable which connects router C with router B is configured with the ip address 192.168.5.2 and subnet mask is 255.255.255.0. Gateway address used for hosts of router C network is 192.168.3.1 and subnet mask is 255.255.255.0.

Network Diagram:

Image and video hosting by TinyPic

Commands in the routers:

Defining Routes:

Router A:

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.4.2

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.4.2

Router B:

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.4.1

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.5.2

Router C:

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.5.1

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.5.1


Objective:

Design & develop a computer network between 4 routers situated in different places, using static routing with redundancy.

Setup:

I have taken several steps to establish static routing between routers A, B, C, D are given below:

Router A: Network address 192.168.1.0 is used for hosts of the router A. PC 1 is connected through a switch ip configuration of 192.168.1.2 and subnet mask is 255.255.255.0. For the cable which connects router A with router B is configured with the ip address 192.168.5.1 and subnet mask is 255.255.255.0 and router C is configured with the ip address 192.168.6.2 and subnet mask is 255.255.255.0.There is another router D and For the cable which connects router A with router D is configured with the ip address 192.168.10.1 and subnet mask is 255.255.255.0 and the gateway address used for hosts of router A network is 192.168.1.1 and subnet mask is 255.255.255.0.

Router B: Network address 192.168.3.0 is used for hosts of the router B. PC 2 is connected through a switch ip configuration of 192.168.3.2 and subnet mask is 255.255.255.0. For the cable which connects router B with router A is configured with the ip address 192.168.5.2 and subnet mask is 255.255.255.0 and router C is configured with the ip address 192.168.9.2 and subnet mask is 255.255.255.0.There is another router D and For the cable which connects router A with router D is configured with the ip address 192.168.8.1 and subnet mask is 255.255.255.0 and the gateway address used for hosts of router B network is 192.168.3.1 and subnet mask is 255.255.255.0.

Router C: Network address 192.168.2.0 is used for hosts of the router C. PC 3 is connected through a switch ip configuration of 192.168.2.2 and subnet mask is 255.255.255.0. For the cable which connects router C with router B is configured with the ip address 192.168.9.1 and subnet mask is 255.255.255.0 and router A is configured with the ip address 192.168.6.1 and subnet mask is 255.255.255.0.There is another router D and For the cable which connects router A with router D is configured with the ip address 192.168.7.2 and subnet mask is 255.255.255.0 and the gateway address used for hosts of router A network is 192.168.2.1 and subnet mask is 255.255.255.0.

Router D: Network address 192.168.4.0 is used for hosts of the router D. PC 4 is connected through a switch ip configuration of 192.168.4.2 and subnet mask is 255.255.255.0. For the cable which connects router D with router B is configured with the ip address 192.168.8.2 and subnet mask is 255.255.255.0 and router C is configured with the ip address 192.168.7.2 and subnet mask is 255.255.255.0.There is another router A and For the cable which connects router D with router A is configured with the ip address 192.168.10.2 and subnet mask is 255.255.255.0 and the gateway address used for hosts of router A network is 192.168.4.1 and subnet mask is 255.255.255.0.

Network Diagram:

Image and video hosting by TinyPic

Commands in the routers:

Defining Routes:

Router A:

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.6.1 10

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.10.2 11

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.5.2 12

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.5.2 13

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.10.2 14

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.6.1 15

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.10.2 16

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.5.2 17

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.6.1 18

Router B

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.8.2 10

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.9.1 11

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.5.1 12

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.5.1 13

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.9.1 14

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.8.2 15

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.9.1 16

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.8.2 17

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.5.1 18

Router C

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.6.2 10

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.9.2 11

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.7.1 12

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.7.1 13

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.9.2 14

Router(config)#ip route 192.168.4.0 255.255.255.0 192.168.6.2 15

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.9.2 16

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.7.1 17

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.6.2 18

Router D

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.7.2 10

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.10.1 11

Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.8.1 12

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.8.1 13

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.10.1 14

Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.7.2 15

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.10.1 16

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.7.2 17

Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.8.1 18

Thursday, October 15, 2009

Split horizon route advertisement

In computer networks, distance-vector routing protocols employ the split horizon route advertisement rule which prohibits a router from advertising a route back out the interface from which it was learned. Split horizon is one of the methods used to prevent routing loops due to the slow convergence times of distance-vector routing protocols.

In this example A uses B to reach C.

A-B-C.svg

A will not advertise its route for C (A to B to C) back to B. On the surface, this seems redundant since B will never use A's route because it costs more than B's route to C. However, if B's route to C goes down, B could end up using A's route, which goes through B; A would send the packet right back to B, creating a loop. With split horizon, this particular loop scenario cannot happen which improves convergence time in complex, highly-redundant environments.

An additional variation of split horizon does advertise the route back to the router that is used to reach the destination, but marks the advertisement as unreachable. This is called split horizon with poison reverse.

With poison reverse, when a routing update indicates that a network is unreachable, routes are immediately removed from the routing table. This breaks erroneous, looping routes before they can propagate through the network. This approach differs from the basic split horizon rule where routes are eliminated through timeouts. Poison reverse has no benefit in networks with no redundancy (single path networks). One disadvantage to poison reverse is that it might significantly increase the size of routing announcements exchanged between neighbors. This is because all routes in the distance vector table are included in each announcement. Although this is generally not an issue on local area networks, it can cause periods of increased utilization on lower-capacity WAN connections.

Protocols using split horizon

Hot Standby Router Protocol

Hot Standby Router Protocol (HSRP) is a Cisco proprietary redundancy protocol for establishing a fault-tolerant default gateway, and has been described in detail in RFC 2281. The Virtual Router Redundancy Protocol (VRRP) is a standards-based alternative to HSRP defined in IETF standard RFC 3768. The two technologies are similar in concept, but not compatible.

The protocol establishes a framework between network routers in order to achieve default gateway failover if the primary gateway should become inaccessible,in close association with a rapid-converging routing protocol like EIGRP or OSPF. By multicasting packets, HSRP sends its hello messages to the multicast address 224.0.0.2 (all routers) using UDP port 1985, to other HSRP-enabled routers, defining priority between the routers. The primary router with the highest configured priority will act as a virtual router with a pre-defined gateway IP and will respond to the ARP request from machines connected to the LAN with the mac address 0000.0c07.acXX where XX is the group ID in hex. If the primary router should fail, the router with the next-highest priority would take over the gateway IP and answer ARP requests with the same mac address, thus achieving transparent default gateway fail-over.HSRP and VRRP are not routing protocols as they do not advertise IP routes or affect the routing table in any way.

HSRP and VRRP on some routers have the ability to trigger a failover if one or more interfaces on the router go down. This can be useful for dual branch routers each with a single serial link back to the head end. If the serial link of the primary router goes down, you would want the backup router to take over the primary functionality and thus retain connectivity to the head end.

Route poisoning

Route poisoning is a method to prevent routing loops within computer networks. Distance-vector routing protocols in computer networks use route poisoning to indicate to other routers that a route is no longer reachable and should be removed from their routing tables. A variation of route poisoning is split horizon with poison reverse whereby a router sends updates with unreachable hop counts back to the sender for every route received to help prevent routing loops. When the protocol detects an invalid route, all of the routers in the network are informed that the bad route has a hop count of 16, which stands for infinity (∞). This makes all nodes on the invalid route seem infinitely distant, resulting in preventing any of the routers from sending packets over the invalid route.

Some distance-vector routing protocols, such as RIP, use a maximum hop count to determine how many routers traffic must go through to reach the destination. Each route has a hop count number assigned to it which is incremented as the routing information is passed from router to router. A route is considered unreachable if the hop count exceeds the maximum allowed. Route poisoning is a method of quickly removing outdated routing information from other router's routing tables by changing its hop count to be unreachable (higher than the maximum number of hops allowed) and sending a routing update. In the case of RIP, the maximum hop count is 15, so to perform route poisoning on a route its hop count is changed to 16, deeming it unreachable, and a routing update is sent. When a router receives a poisoned route, it sends an update back to the router from which it received the poisoned route; this is called poison reverse. This is to ensure that all routers on a segment have received the poisoned route information.

Saturday, October 10, 2009

Virtual Routing and Forwarding (VRF)

In IP-based computer networks, Virtual Routing and Forwarding (VRF) is a technology that allows multiple instances of a routing table to co-exist within the same router at the same time. Because the routing instances are independent, the same or overlapping IP addresses can be used without conflicting with each other. Alternative meaning of VRF is a VPN Routing and Forwarding, the key element in the Cisco MPLS VPN technology.A VRF is a routing table instance, that can exist in one instance or multiple instances per each VPN on a Provider Edge (PE) router.VRF may be implemented in a network device by distinct routing tables known as forwarding information bases (FIBs), one per VRF. Alternatively, a network device may have the ability to configure different virtual routers, where each one has its own FIB that is not accessible to any other virtual router instance on the same device.

The simplest form of VRF implementation is VRF Lite. In this implementation, each router within the network participates in the virtual routing environment in a peer-based fashion. While simple to deploy and appropriate for small to medium enterprises and shared data centres, VRF Lite does not scale to the size required by global enterprises or large carriers, as there is the need to implement each VRF instance on every router. The scaling limitations of VRF Lite are resolved by the implementation of IPVPNs. In this implementation, a core backbone network is responsible for the transmission of data across the wide area between VRF instances at each edge location. IPVPNs have been traditionally deployed by carriers to provide a shared wide-area backbone network for multiple customers. They are also appropriate in large enterprise, multi-tenant and shared data centre environments.

In a typical deployment, Customer Edge (CE) routers handle local routing in a traditional fashion and disseminate routing information into Provider Edge (PE) where the routing tables are virtualised. The PE router then encapsulates the traffic, marks it to identify the VRF instance, and transmits it across the provider backbone network to the destination PE router. The destination PE router then un-encapsulates the traffic and forwards it to the CE router at the destination. The backbone network is completely transparent to the customer equipment, allowing multiple customers or user communities to utilize the common backbone network while maintaining end-to-end traffic separation.Routes across the provider backbone network are maintained using an Interior Gateway Protocol - typically iBGP. iBGP uses extended community attributes in a common routing table to differentiate the customers' routes with overlapping IP addresses. IPVPN is most commonly deployed across a Multi-protocol Label Switching (MPLS) backbone as the inherent labelling of packets in MPLS lends itself to the identification of the customer VRF. Some IPVPN implementations (notably Nortel's IP-VPN Lite) utilize a simpler IP-in-IP encapsulation over a pure IP backbone, eliminating the need to maintain and support an MPLS environment.