This is another very robust, non-trivial competency listed for the LFCE examination. I’m glad it’s included, actually, because networking is a very poorly-understood field among many IT professionals serving as system administrators or, worse, system engineers and beyond. I have worked with numerous IT professionals who have virtually no knowledge of network infrastructure, routing, or any of the finer details of IPv4 or, much less, IPv6. For this examination, I am presuming IPv4 to be the focus, though some IPv6 knowledge certainly wouldn’t hurt anyone (and you should really start building it now, ’cause it’s comin’!).
Knowing how to examine a system’s routing table and thoroughly test its networking capabilities often separates excellent system administrators from average ones, and it should be a defining quality of an engineer. While operating in a simple networking infrastructure often affords too great an opportunity to ignore the skillset entirely, such ignorance becomes painfully clear when operating in a medium or large networking environment. Knowing how to isolate networking issues as clearly as possible is essential to getting the right support involved when a problem afflicts one of your systems in a large environment.
So where to start? Networking is a huge subject area and often full-time networking specialists are required to maintain and support medium and large infrastructures. I began gaining knowledge of networking when I was quite young and I helped my parents to install and manage our first home network components. I then worked in tier 1 through tier 3 capacity at a help desk whose services were very wide ranging and demanded basic networking analytic capabilities from its staff who operated in a reasonably easy-to-understand subsection of a very large academic networking environment. I then solidified much of my current understanding over the years in large part by reviewing the CompTIA Network+ All-In-One Exam Guide before completing the MCITP: Enterprise Administrator on Windows Server 2008 materials in preparation for the corresponding MCITP certification. I actually took an official Microsoft course for Configuring Active Directory (exam 70-640) and Configuring Networking Infrastructure (70-642) and I read the Microsoft Press book for Configuring Application Infrastructure (70-643) and the excellent Microsoft Press book for the Enterprise Administrator examination (70-647). That learning path would, of course, take the reader quite outside the scope of the subject matter at hand, so I’d recommend the CCNA material I mention below as the way to go for someone in need of the fundamental knowledge of networking required to effectively utilize the tools available in the GNU/Linux environment.
One potentially interesting observation of this competency which I have to offer is this: the conceptual knowledge required of candidates is far broader than the technical knowledge. Using the ip utility to configure static routing table entries and routing policy rules is trivial, but understanding how to compose such entries requires broad understanding. Similarly, the Quagga software is not overly complicated, but the knowledge necessary to properly implement its functionality is broad and deep.
So, my networking knowledge has been built over the past 7 years. It’s a huge, intimidating field, but the best place to start is with the system you administer on your home network. Check out its routing table and make sure you understand exactly how every packet gets to its final destination. It isn’t too hard when you have a simple table with two routing entries (probably one for the default gateway and one for the local subnet) and it’s often the starting point from which you’ll begin an investigation of an unknown network. From there, you can begin observing the impact of adding and removing routing table entries and policy rules and you can begin to investigate the various forms which such entries can take.
The easiest portion of this competency is without a doubt static routing. Check out the manual page (section 8) for the ip command. Though broader than this competency alone, my guess is that the successful candidate for the LFCE examination should be able to read and understand the entire thing. It is a very useful study guide of sorts, as tools often are, for understanding the kinds of actions you may be interested in taking when it comes to routing. Obviously, you might focus on the ip route and ip rule sections of the tool to understand the areas of particular relevance to the competency presently discussed.
At a minimum, you should understand the distinction between the routing tables and the routing policy database and how they interoperate. You should be able to configure direct routes and gatewayed routes, and you should be able to quickly inspect and understand routing information on a system.
This portion of the competency is much more difficult and requires specialized software with which most system administrators have probably never come into contact. It appears that the TecMint guide recommends Quagga. That seems a good choice to me, and it’s not overly burdensome to learn sufficiently to accomplish its most basic tasks. I imagine a successful candidate should understand the distinction between interior gateway protocols and exterior gateway protocols, their purposes, and common usage. Quagga supports the interior gateway protocols RIP (which is a distance-vector protocol), OSPF, and IS-IS (which are both link-state protocols). It also supports the exterior gateway protocol BGP. These are the most common routing protocols in use (in fact, BGP is the only EGP in use today), so again, Quagga is a reasonably comprehensive choice.
Basically, dynamic routing protocols exist to allow routing devices the ability to discover, choose, and implement routes to subnets. With the complexity of modern internetworking, supporting routing infrastructure with dynamic routing protocols is practically necessary. Without automated learning of this nature in routing devices, we’d need a whole lot of frustration-resistant network engineers.
I don’t know what the LFCE exam is going to expect of candidates in regard to configuring dynamic routing. I continue to be surprised that it’s included, especially given the terse wording of the competency and the extreme breadth implied thereby. I imagine this will be a big study topic requiring significant energy expenditure for most LFCE candidates. It is my estimation that you’ll want to be sufficiently well prepared so that you don’t find yourself being asked to perform a task which you do not even understand (which would probably happen to most system administrators if they were asked to configure a routing device to use the Border Gateway Protocol to establish routes between autonomous systems).
- Manual pages
- Info pages
- The Quagga software comes with fairly thorough info pages which can also be read at the Quagga project’s site.
- Recommended Textbooks (choose one and make sure you are comfortable with the information contained therein)
- CCENT/CCNA ICND1 100-101 Official Cert Guide, Academic Edition
- Chapter 17 specifically addresses dynamic routing protocols
- A certified system engineer should probably be comfortable with everything in this book
- CCENT/CCNA ICND1 100-101 Official Cert Guide, Academic Edition
- There are deprecated alternatives, such as the route command and ifconfig, but learn and use ip – it’s the far more powerful wave of the future.
- Configure your machine to act as an OSPF neighbor to a connected routing device supporting OSPF.
- Configure your machine to flood the network with OSPF routing information.
- Configure your machine to act as a passive OSPF node on a particular interface.
- Configure your machine to act as a routing device for a particular subnet, leveraging BGP to find external routes.
The most powerful tool at your disposal regarding preparation for this competency is likely the ability to generate virtual networking environments using KVM. Set up a virtual network, load up four small CentOS VMs (just a gig of RAM, or even less, will do), install Quagga on two of the systems and CentOS on two of the systems. Make two distinct subnets, each containing a standard CentOS machine and a Quagga machine. Make the two Quagga systems neighbors and use OSPF to communicate route information between them, allowing the two standard machines to communicate. Change route information and see if the Quagga systems automatically detect and communicate the changes.