Cisco Network Troubleshooting for Beginners. As a Network Engineer, your primary goal is to make sure that your network equipment is operating properly at all times. But we all know that any equipment can break down. The reasons for this could be software inconsistencies, hardware malfunctions, maybe even environmental hazards.
There aren’t many, but Microsoft Edge does feature a selection of third-party extensions to add some functionality to the new web browser. Networking certifications—like any reputable IT certification—verify your skills to current and future employers and pay off in increased income. Networking. Microsoft Training Courses. Effectively administer Microsoft technology across an organization. The vast majority of desktop and server computers run Microsoft.
Under such unpredictable conditions, your responsibility is to identify and isolate the cause of the malfunction and correct it as soon as you can. That's why it is extremely helpful to know some specific techniques that have been proven to be crucial and essential in the networking world. In today's article I'll present the most important commands that you will definitely find helpful and even mandatory throughout your networking career and specifically during network troubleshooting situations. The commands I am talking about, and which are truly invaluable, are: Ping. Traceroute. Telnet. Show interfaces. Show ip interface. Show ip route. Show running- config.
What to Do Immediately. As soon as you realize you’ve made a mistake, bring it to your boss’ attention. This can be a scary conversation to have, but if you wait.
New certification dumps: CCNA dumps, Cisco brain dumps, MCSA, MCSE, MCITP IT Exam Dumps. Pass exams with braindumps questions answers, download Testing Engines.
Show startup- config. The Ping Utility. The PING command operates on the Network layer and uses the services of the ICMP protocol. It is the first command that you should use at the beginning of your troubleshooting process. With PING you can test whether a remote host is alive by transmitting echo request messages and receive echo replies from the specific host.
Keep in mind that even if a host is alive, it does not mean that it is functioning properly, that is why PING is used at the beginning of your investigation and is the best command to start with. I've covered PING extensively in one of my previous posts, so for more details on PING, check out: How to Troubleshoot Your Connections with Ping and Traceroute. PING command has quite a lot of options from which you can greatly benefit. For example, you can choose to PING with different network protocols. Moreover, you are able to set the exact number of PING requests to be transmitted.
You can also choose the length of data carried within the echo request packet (provided in bytes) and also specify whether fragmentation of this packet is allowed or not during transmission. The last two options in cooperation can be used to identify the lowest MTU value existing in the communication path. On Cisco devices the simpler way to use the PING utility is to issue the command PING along with the IP address of the remote device: For more advanced features, simply issue the PING command and follow the prompts from that point on: The Traceroute Command. The TRACEROUTE command traces the end- to- end path a packet takes though an internetwork. Similarly with PING, it uses the ICMP protocol with TTL timeouts to perform its operation. Again, for more details on this command see How to Troubleshoot Your Connections with Ping and Traceroute.
This command is very useful in identifying potential link bottlenecks throughout the transmission path. Here is a sample output of the TRACEROUTE command: The Telnet Command. Use the telnet command to verify TCP stack and application layer software between source and destination stations. Of course, to be able to telnet on a Cisco device, the latter needs to be already configured to accept telnet connections. To use TELNET just issue the telnet command along with the IP address or hostname of the remote station: The Show Interfaces Command.
The show interfaces command presents all the available interfaces that can be configured on your Cisco device. You can explicitly use this command to show only details on a single interface by issuing the interfaces name after the show interfaces command.
This command is very useful because it can reveal layer 1 and layer 2 problems. Moreover, this command provides details regarding the hardware address (MAC), IP address, encapsulation method and statistics concerning erroneous conditions on the specific interface. Examine the output of the show interface fastethernet 0: The first line of the show interface command is the most important one. The first parameter refers to the physical layer, thereforein this case Fast.
Ethernet 0 is up and operating. The second part of the line refers to the Data Link Layer; therefore here line protocol is up means that we have layer 2 connectivity as well. There are four possible outputs that you may come across: Fast.
Ethernet. 0 is up, line protocol is up: Both the Physical and Data Link layers on the interface are functioning correctly. Fast. Ethernet. 0 is down, line protocol is down: This output indicates a physical interface problem. For example, the cable on this interface or on the remote interface is disconnected.
Fast. Ethernet. 0 is up, line protocol is down: In this case, Physical layer is operational. The line protocol being down indicates a clocking or framing problem. Probable reasons for this are encapsulation and clock rate mismatches. Ethernet. 0 is administratively down, line protocol is down: This output indicates that a local interface has been manually shut down using the shutdown command. The Show IP Interface Command. The show ip interface command will provide details regarding layer 3 configuration on the interfaces. Using this command you can see the IP address and mask configured on a given interface, whether an access list is applied on the interface as well as basic.
IP information. The Show IP Route Command. Use the show ip route command to find detailed information regarding the routes configured on the router. Keep in mind that the router can only route packets to the networks listed in its routing table. It is possible that a router can not reach a network you manually configured therefore, that specific route is removed from its table and that is why you should use the show running configuration command in conjunction with show ip route to spot possible inconsistencies. For more details on IP routing issues see my article on Default and Static Routing Basics. Show Running- Config and Show Startup- Config Commands.
Issue the show running configuration command to find out the whole configuration your Cisco devices use while operating. By looking at the details of your devices, configuration can help you identify the cause to your problem. Use the show startup configuration command to see the configuration commands that will be loaded to your device the next time it reboots and compare it with your running configuration in order to identify possible unconformities. In the End .. Follow Your Instincts. Isolating a network malfunction is not an easy task. In many cases you need to swim into really deep waters in order to identify the error.
Meaning, that you will probably need to get into the bits and bytes in order to locate the error. A lot of network monitor tools are available to help you during these difficult tasks. And although there's a lot you can do, remember to never lose your courage; have patience and follow your gut.
Sometimes the problem that you're searching for will be right in front of you and will slip out of your hands, just when you think you have it. So be persistent, be patient and remember: you will win the battle! Be prepared; in order to fight well, you should be armed well. So get to know your device very well, know how it operates, and know how to use the basic troubleshooting commands - that you just learned - so that you can identify the problem, or at least estimate where the problem might be. Good luck! Ready to test your skills in CISCO? See how they stack up with this assessment from Smarterer.
Start this CISCO test now.
Windows Power. Shell Tip: Working With Custom Objects. Here’s a quick tip on working with Windows Power. Shell. These are published every week for as long as we can come up with new tips. If you have a tip you’d like us to share or a question about how to do something, let us know. Find more tips in the Windows Power.
Shell Tip of the Week archive. Working With Custom Objects. Scripting is always fun when the script does all the work for you. For example, suppose you want to get a list of all the files in the folder C: \Scripts, and then sort those files by size (Length). No problem; all you have to do is let the Get- Child. Item and the Sort- Object cmdlets take care of everything for you. Get- Child. Item C: \Scripts .
Unfortunately, though, things aren’t always this much fun, or this easy. For example, suppose you have the following text file (C: \Scripts\Test. Name,At. Bats,Hits.
Pilar Ackerman,2. Jonathan Haas,3. 7,1.
Syed Abbas,4. 1,2. Luisa Cazzaniga,2. Andrew Cencini,3. Baris Cetinok,1. 9,4. What you’d like to do with this file is calculate the batting average for each player (something you can do by dividing each player’s hits by their number of at- bats), then sort those averages in descending order. That sounds easy enough; after all, can’t we just read in the data and calculate each player’s batting average.
Stats = Import- CSV C: \Scripts\Test. Batter in $col. Stats). That approach will definitely give us each player’s batting average; what it won’t do, however, is sort those averages for us. Instead we end up with this.
Pilar Ackerman 0. Jonathan Haas 0. 4. Syed Abbas 0. 4. 88. Luisa Cazzaniga 0. Andrew Cencini 0. Baris Cetinok 0. 2. Useful, but not what we had in mind.
The problem, of course, is obvious: we can’t sort the averages until we have all the averages. And that’s a problem because our script doesn’t work with the entire collection; it works with only a single batting average at a time. That’s not just a problem, it’s a big problem. Of course, there are plenty of ways to solve this dilemma, all of them involving a sort of “secondary” data repository, be that an array, a hash table, or maybe a disconnected recordset. The idea is simple enough: what we need to do is calculate all the batting averages, store them in this secondary data repository, and then, as soon as we have all the averages, sort that data repository. Like we said, the idea is simple, but the execution isn’t always so straightforward; that’s because all these secondary data repositories have their own quirks and eccentricities, and it’s not always easy to get data into these things.
After all, Power. Shell’s claim to fame is that it enables you to work with objects. Wouldn’t it better if we could store this information in a set of objects, and then work with those objects rather than some sort of secondary data repository? You bet it would. Averages = @(). $col.
Stats = Import- CSV C: \Scripts\Test. Batter in $col. Stats). But just wait; as you’re about to see, it’s actually kind of a neat little solution to this problem. Our custom object script starts out by creating an empty array named $col.
Averages: And yes, we did say that using an array seemed a bit heretical. But don’t worry; we aren’t going to use this array to somehow store a batter’s name and batting average; that is, our array isn’t going to hold information like this, information we’d then have to somehow tease apart before we could sort the batting averages in descending order: Instead, we’re going to use this array to store some custom objects that we create ourselves.
See? We told you that this was a neat little solution to our problem. After creating the empty array we use the Import- CSV cmdlet to read in the text file C: \Scripts\Test. Stats. Incidentally, Import- CSV is a very underrated cmdlet. As long as your text file has a header line (which our text file does), Import- CSV will import each item in a comma- separated values file as a separate object, and an object with clearly- defined properties as well. Take a look at what we get if we pipe the data returned by Import- CSV to the Get- Member cmdlet.
Name Member. Type Definition. Equals Method System. Boolean Equals(Object obj). Get. Hash. Code Method System. Int. 32 Get. Hash. Code(). Get. Type Method System.
Type Get. Type(). To. String Method System. String To. String(). At. Bats Note. Property System. String At. Bats=4.
Hits Note. Property System. String Hits=1. 3. Name Note. Property System. String Name=Ken Myer. Look at the bottom of the list: the three fields referenced in our file header (At. Bats, Hits, and Name) are all listed as object properties.
Cool, huh? As a matter of fact that is cool. Cool or not, however, it doesn’t solve our problem: we don’t even have each player’s batting average, let alone the ability to sort those averages in descending order. But that’s all right; we’re just about to address that issue.
To begin with, we set up a foreach loop that walks us through each item in $col. Stats. foreach ($obj.
Batter in $col. Stats). Inside that loop, we use the New- Object cmdlet to create a brand- new object named $obj. Average. $obj. Average = New- Object System. Object. So what kind of object is $obj. Average? Well, that’s entirely up to us; at the moment $obj. Average is essentially a blank object, one without any defined properties. That’s what the next line of code is for.
Average . In this case we’re adding a Note. Property, giving our property the name Name and a value that represents the Name property for the first item in the collection $col. Stats. In other words, because the first object in $col.
Stats has a Name equal to Ken Myer, that means that $obj. Average will also have a Name equal to Ken Myer. But here’s the really cool part; in the next line of code, we create a property named Batting. Average, and assign that property the player’s batting average. Average . In particular, we did two things to that batting average. To begin with, we used the syntax .
If we don’ explicitly cast these values as numbers Power. Shell will treat them as strings, and we’ll get back an error message similar to this. Method invocation failed because . It happened to a . Needless to say, that’s the 3 in the formatting string is for: it limits the value to 3 decimal places. If we wanted to show 5 decimals places we would just replace that 3 with a 5: . We should probably note, too that our batting averages aren’t perfect; they all include a leading zero, which is definitely not the traditional way to display a batting average.
However, getting rid of leading zeroes is another topic for another day. So what does all this mean? This means that we now have an object named $obj. Average, an object containing the following properties and property values: Property Name. Property Value. Name. Ken Myer. Batting.
Average. 0. 3. 02. OK, so what do we do with this object now that it’s been created? Actually, we can’t do much of anything with it right now; remember, we need to sort the averages in descending order, and we can’t do that until we’ve calculated all the averages. Therefore we need to set $obj. Average aside until later; one easy way to do that is to add the object to an array. Averages += $obj.
Average. And then it’s back to the top of the loop, where we repeat this process with the next player in the text file. OK, so then what do we do once we’ve calculated – and stored – all the bating averages? To be honest, we don’t have to do much of anything. In fact, all we have to do is take our collection of batting averages and pipe them to the Sort- Object cmdlet, asking Sort- Object to sort the data by the Batting. Average property, and in descending order.
Averages ? Of course it is. Name Batting. Average. - -- -- - - -- -- -- .
Syed Abbas 0. Jonathan Haas 0. Pilar Ackerman 0. Andrew Cencini 0. Ken Myer 0. Luisa Cazzaniga 0.