On Learning: Creating Meaningful Flash Cards

This is part one of a three-part series.

I still study for the CCIE R&S. I study for it in some form (and often multiple forms) every single day. My attitude, thought processes, and learning process has changed quite significantly in the last year and a half. My experience is growing, and timelines are starting to become more concrete. I’ve written about this before, but this past year really has been life-changing with regard to my study habits, “learning how to learn”, and discovering what works best for me to take in, manage, and retain information.

Just over a year ago, I wrote about using Anki. This software has been the catalyst for my learning transformation. I wrote a blog entry after having used Anki for only a short period of time. With this three-part series, I am now expanding on my experiences of using Anki since then, as well as knowledge management across different platforms.

Flash Card Creation:

I have learned a lot about the process of creating good, quality cards, as well as consuming them. For so many years, I took direct notes while reading books or watching videos. Despite taking the notes, they made little impact on my studies due to lack of quality in both the notes and the review process. Using Anki has helped me refine both activities, and I now formulate my notes directly as flash cards. I also realized that I am able to absorb information much better in the written form, as opposed to video. Following are some tips that help me to create more effective cards.

When creating flash cards that go beyond simple raw facts, take the time to succinctly explain the concepts and meanings or reasons behind the topic. It has been said that you don’t really understand something complicated until you can explain it in simplified language. If it’s not making sense to you while you’re trying to make the card (such as if you’re tired of studying for the moment), don’t try to create the card until you can fully grasp the concepts, otherwise you’ll just end up creating poor-quality cards. You can’t force meaningful learning, and you must break down what you don’t fully understand.

When creating cards, understand the tradeoffs of shorter versus longer. Shorter cards are easier to remember, but sometimes a card must be longer due to the amount of information to convey. Always try to limit cards to a single fact or idea. If a card must contain multiple pieces of information (for example, if everything goes together and there’s no real logical way of breaking it up) and you’re having trouble remembering everything after several reviews, try to figure out a way to create a visualization.

I kept forgetting the five requirements of using the EIGRP Add-Path feature with DMVPN until I created this visualization:

This image contains the exact same information that was present in my original text-only card, but by adding colors, shapes, and positions, I was able to have a mental visualization of the information to recall.

If you’re taking in something of unknown importance, create the card anyway and then suspend it from review. For example, in studying for a certification, you may or may not need to know all of the fields within a particular protocol header. Something like this can be relatively complicated as well as intensive to try and memorize, and it might be unnecessary. By having the suspended card in your collection, you can easily revisit the information or reinstate the card if you discover it really is necessary.

Mnemonics are also extremely useful. What are the thirteen fields in the IPv4 header? I can tell you that “Very Heavy Dudes Prefer Fat Fried Food To Pretty Healthy Salad Dish Options” is easier to remember than: Version, Header Length, DS Field, Packet Length, Fragment ID, Fragment Flag, Fragment Offset, TTL, Protocol, Header Checksum, Source IP Address, Destination IP Address, and Options. When I created this mnemonic, I purposely tried to come up with something silly so that it would be easier to remember.

After creating several cards (such as for a section or a chapter), go back and break up cards that convey multiple ideas (that can be easily broken up). For example, a card that asks “How and why…” can probably broken up into separate “how” and “why” cards, which will increase your retention. A card-creation habit I had to break myself out of was phrasing a card as “What is X and how do you configure it?”. I discovered better retention by creating separate cards for “What is X?” and “How do you configure X?”.

Likewise, create cards that allow you to learn the same thing in reverse when possible, known as two-way learning. For example, one card could ask “What is the IP Protocol number used by L2TPv3?”, and a second card could ask “What technology uses IP Protocol 115?”

Don’t worry about this too much at first when you’re creating the cards, as it may inhibit the initial creation. However, do take the time to go back and break them up. What I discovered for myself was that when cards contained multiple pieces of information, I would remember one part, but not the other, so the card became less valuable in helping me to retain the information. Two-way learning cards might be a little more difficult to realize, especially when examining many cards at once, and you may bump into diminishing returns if you attempt to create two-way cards for everything. Raw facts make the easiest two-way cards. However, for cards that explain a particular concept, creating a two-way card can demonstrate that you really understand the topic.

Assign tags to create meaningful groups to use later for custom review decks. Try to use somewhat broad categories, and avoid creating lots of super-detailed tags unless they are combined with tags that are more general. For example, use STP as a broad category, with RSTP,  MST, and STP Enhancements as subcategories. Don’t create tags that will represent only a few cards. Use tags that will create meaningful groups to study from, otherwise just use the search function in the browse window.  On a related note, in the card browser search box, you can exclude a term by prefixing it with a dash. For example -EIGRP or -tag:IS-IS excludes cards containing the word “EIGRP” or cards tagged with “IS-IS”.

When creating cards, try to keep in mind that you may be reviewing them again months or even years later. This incentivizes you to create good, quality cards. As mentioned, don’t create cards if you’re not understanding the material at the time. Be honest with yourself, and If you’re just not getting it, take a break and come back to it. For example, I’ve noticed if I’m feeling tired, I have trouble creating good meaningful cards, but if I come back to the same material the next day, it all begins to make sense and I can create better cards as a result.

Remember, you can’t force learning. It has to mean something to you. When attempting to create quality cards, try to be as accurate as possible with your understanding of a topic (aside from raw facts which are either correct or not), but remember you can always edit a card later if your understanding of the particular topic improves. I have found myself more than once reviewing a card created months ago, with an improved understanding that allows me to re-phrase the card to have more meaning or clarity.

Make your cards as useful as possible within the realm of diminishing returns. Don’t worry about making the cards and tags perfect. The goal is to retain the information from the individual cards, not to have them perfectly phrased or organized. If a topic seems too complex to explain simply, look for ways to break it up into smaller pieces. A concept may seem singular at first, but if you can break it down into even smaller components, you will have both better retention and a better understanding of the topic. Reviewing the individual components will make the assembled whole make more sense in your mind.

In part two (posting next week), I will examine the details of reviewing the cards you have created in a meaningful way.

How to Install Oxidized for Network Configuration Backup

Oxidized is an open-source project started by Saku Ytti and Samer Abdel-Hafez as an alternative to the very popular RANCID software. A little over a year ago, I created a RANCID server to backup the configuration of my network devices. It has been a good, stable piece of software that has been doing the job very well across hundreds of devices.

When I set up the RANCID server, I had heard of Oxidized, but the project wasn’t yet as far along as it is now. A few days ago, I decided to take another look at it. One of the things that made Oxidized more appealing to me right away is its companion web interface. While RANCID can be “web-enabled” with the viewvc interface, it is pretty limited in functionality. I found the Oxidized web interface to be exactly what I was looking for. It also supports a very wide range of network devices and network operating systems.

Compared to using viewvc with RANCID, Oxidized also lets you view current configurations and diffs between versions. However, Oxidized lets you search for terms across all the configurations. If only some of your devices have a very specific configuration or inventory item, you can search and only the devices matching will be displayed. For example, in my environment, I can search for “PVDM” and quickly see which of my Cisco routers contain DSPs.

The web interface is also very fast! I have approximately 500 devices being backed up, and the web interface is always extremely responsive. Another feature of the web interface is the status of the last device configuration poll. You can see how long it takes on average to pull a configuration from the device, the number of times the configuration backup failed, the failure rate, and the time of the last failure. This helped me to identify a broadband link that was consistently slow, because the average run time was much more than the other devices.

As wonderful as Oxidized is, one of its current drawbacks is a lack of good, complete documentation. When I set up an Oxidized server for my environment, I documented all of the steps I took, including caveats I encountered, to have a successful install. The following is a guide to setting up an Oxidized server on CentOS 7 with basic web authentication. Like many Linux-related installation instructions, there are multiple ways to reach the ultimate goal, and what I have done may not be the best, most secure, or optimized way, but I reached the end goal of a working installation.

Continue reading “How to Install Oxidized for Network Configuration Backup”

Today I Passed the CWNA Exam

I have been involved with both wired and wireless networking for many years. My original wireless setups were from the early 2000s, shortly after 802.11b became popular. I remember at one point I had a PCMCIA card with a pigtail and external antenna attached to it.

As my career started taking a focus more toward networking, I became intimately familiar with just about every aspect of wired networking. Having worked with wireless for so long, I knew a decent amount about how the technology works, but not nearly to the level of familiarity I have with Ethernet.

Occasionally, I look at various job listings just to see what employers generally expect within different levels of networking careers. I kept seeing wireless networking as a general skill, and in many listings, I saw the CWNA as either a requirement, or a “nice to have”. I decided it was time to finally bridge the divide in my networking knowledge and learn some wireless topics at a deeper level.

I feel like the CWNA exam is absolutely perfect for this. This exam is not so introductory as to have no value whatsoever, but it is not so deep that you have to devote a significant amount of time toward it to pass. I am not yet looking to devote myself to wireless networking, but the CWNP program does offer more advanced certifications for those that are. If I ever decided to pursue an even deeper level of wireless networking knowledge, I would definitely come back to the CWNP program and work on those additional certifications.

I started studying for this certification, and took and passed the exam on the first attempt, within the course of just a little over a month. I will admit, with me already having CCNP-level knowledge, there were a lot of topics on the CWNA that I was already familiar with (and even a few topics that I disagreed with!). This made studying for the exam go by a little faster.

My process was to first read the Official CWNA Study Guide all the way through. This took a couple of weeks, reading one or two chapters each day. In the past, when studying for a certification, I would have taken tons of notes, which end up being somewhat useless to me. It took me a long time to break this habit. This may work well for some people, but I found out through time that this process doesn’t work for me. I still have all of the notes I’ve ever taken for all of the certifications I’ve studied for, but simply reading my notes doesn’t really do much for me. This time, I took no notes while reading.

For this certification, after reading the entire certification guide, I took all of the chapter questions from the book, and all of the entries in the glossary, and made flash cards out of them in Anki. Using Anki, I was able to very quickly separate what I already knew from what I still needed to retain. After two weeks of spending an hour or so each day reviewing flash cards, I took the first of three online practice tests. I made new flash cards out of the questions that I missed, and continued to study. A week later, I took the second of three practice tests and did much better. Once again, I made cards out of the questions I missed.

Since I did so well on the second practice exam, I decided to schedule the real exam for the following week. I continued to review cards, and a few days before taking the test, I took the third of three practice exams and did very well. I didn’t do as well on the third practice exam as the second, which shook my confidence a little bit, but it was still a passing score, so I proceeded to review the cards and keep the exam as scheduled. In the end, my flash card deck contained about 1100 cards.

The online practice exams are included as part of having access to the textbook. I have a subscription to Safari Books Online (best money I’ve ever spent in my life!), and I was able to register for access to the practice exams on the Sybex website. These official practice tests, along with using Anki, absolutely transformed my method of studying and more importantly, information retention. I actually found the practice tests to be a little more difficult to pass than the actual exam, which was a nice bonus.

There are a lot of little details that you need to memorize to pass the CWNA exam. These are details that will definitely be forgotten after the test is over, unless you keep reviewing the material. But, the CWNA also teaches many different concepts and methodologies that revolve around the world of wireless networking, and this is the most important information that I believe will stick with you if you study for and pass the exam.

For example, if you are setting up a brand new 802.11ac wireless network, when previously there was no wireless network (a Greenfield installation), you might not need to remember what the Modulation and Coding Schemes are that 802.11ac uses, but knowing essentials such as the fact that 802.11ac operates only in the 5 GHz bands, and how the 5 GHz frequency bands operate a little differently than the 2.4 GHz bands, will be excellent knowledge to have when you need to troubleshoot the wireless network post-installation.

The pricing of the CWNA-106 exam isn’t too bad ($175 as I write this), at least not compared to Cisco’s recent price hikes, and the process of studying for and gaining the credentials has been well worth it to me. I will now absolutely be able to more intelligently discuss wireless networking, troubleshoot, and plan and make appropriate proposals when needed.

General Network Challenges, and IP/TCP/UDP Operations

Having fundamental knowledge of what affects TCP, UDP, and IP itself helps you to better troubleshoot the network when things go wrong. I feel like most of the lower-level network-oriented certifications barely touch on these topics, if at all. However, the current Cisco CCNP and CCIE Routing & Switching exams do expect you to know this. This post is geared toward Cisco’s implementation and defaults regarding the various topics. However, whether you are studying for a certification or not, this is all good information to have.

This mega-post covers the following topics:

Continue reading “General Network Challenges, and IP/TCP/UDP Operations”

QoS in Action

Quality of Service is an added-value network infrastructure service that is still very important within the scope of private networks. Some might argue that QoS is not as important as it once was as we start to see more SD-WAN deployments that utilize the general Internet for transport, because the Internet has no inherent QoS. Additionally, many private networks do not utilize QoS whatsoever, and their operators essentially just “hope for the best” as all the different types of traffic traverse the various links. This may be due to lack of awareness or training on the part of the operators, or it may simply be that the business has not placed enough value in its importance.

One of the ideas behind an SD-WAN deployment is that since the Internet does not offer QoS, you can attempt to circumvent this when using the Internet for transport by having multiple connections, ideally from different service providers, and monitor the end-to-end quality of the links through metrics such as bandwidth utilization, delay and jitter. A good SD-WAN solution will monitor the links, and could be configured perhaps to send voice and other delay-sensitive traffic over the link that is the least congested and/or has the lowest delay and jitter, while sending bulk data over a different link.

Even if you are using the general Internet for your transport, QoS may still be important if you consistently use all or the majority of your available bandwidth. You can’t control how your data will flow across the Internet after it leaves your private network, but you can control all aspects of your data until it reaches your private edge. One of the major benefits of using QoS is queuing/scheduling your traffic through classification and marking.

At a high level, you implement QoS by first classifying your traffic. This can be as simple as two classes, such as delay-sensitive traffic, and everything else. The most common model is four-class, and there is also a standardized eight-class model. Most networking equipment that supports QoS allows you to get even more granular, if you wish. You determine classes based on different characteristics such as the type of treatment or relative importance of the traffic. You can also simply classify the traffic based on the source or the destination (such as all traffic to or from a particular server).

After classifying traffic, actions can be taken on the different traffic classes, such as marking or specialized treatment. Classified traffic is often marked using CoS for Layer 2 (such as Ethernet), and DSCP for Layer 3 (IP). Layer 2 is considered a local marking, whereas DSCP can be carried across the entire IP network. For example, traffic coming from an IP phone may be marked as CoS 5 by the switch the phone is connected to. Then when the traffic crosses the first-hop router (which could very well be the same switch), the Layer 2 CoS marking may be mapped to DSCP “EF” at Layer 3. The DSCP marking may be ignored at various points in the network, but it will remain inside the packet header unless a network device purposely changes it. With QoS marked in the IP header, any devices along the path that processes IP packets can examine the header and possibly take action, such offering that particular packet different treatment.

The ultimate purpose of classifying and marking traffic is for queuing/scheduling, which is the process of determining which traffic is sent first. Network interfaces will normally use FIFO (first-in, first-out) scheduling when the link is not congested. However, when the link is congested, traffic that has been classified and marked as more important can be scheduled to be sent first.

When using the Internet for transport, you can’t control the treatment of your most important data once it leaves your network, but you can make sure at your Internet edge that the most important traffic gets sent out before any other traffic does. This is one of the main reasons why QoS is as important as it ever was, even with SD-WAN solutions that use the Internet for transport.

QoS scheduling is also important when the data is transmitting from a higher-speed link to a lower-speed link. For example, a company’s data center will almost always have much higher WAN-facing bandwidth than a branch-office WAN link. QoS scheduling once again ensures that higher-priority traffic makes it to the branch WAN link first. For example, in MPLS L3VPN environments, the service provider can offer as a service (and usually for an extra fee) QoS capabilities. If your data center has a 1 Gbps pipe toward your MPLS WAN, but your branch office is on a 1.5 Mbps T1, subscribing to the service provider’s QoS service can ensure that when a large file is blasted out to the branch office, the VoIP traffic will still receive preferential treatment because it will be scheduled first as it leaves the service provider’s router on the other end of the T1.

Another aspect of QoS is policing and shaping. A service provider will often use policing to create “sub-rate” links. For example, the SP may provide for you a physical gigabit Ethernet link, but you may be only paying for 200 Mbps of service. The SP uses policing to turn the gigabit link into an effective 200 Mbps link by dropping any traffic that goes over the 200 Mbps mark. Policing is typically used on the ingress to a network. Conversely, shaping is typically used on the egress of a network. Shaping works by temporarily buffering excess traffic, and then transmitting it when possible, which helps to avoid dropping the traffic.

Policing can also be very useful within your private network to prevent a source of traffic from overwhelming a particular destination. For example, if you have a server in your data center that provides some kind of updates to the computers in your network (such as a WSUS server), you could use granular policing to prevent it from overwhelming just the slower branch office links during regular business hours, but still offer the full available capacity after hours. 

As important as QoS is, I find it pretty amazing that it is not covered at all in the current Cisco CCNP R&S curriculum. It’s covered earlier under Cisco’s Collaboration, Wireless, and Service Provider tracks, but the general R&S track does not mention QoS at all until the CCIE level (as of this writing).

Getting into QoS can seem very daunting at first. Like most technologies (or sub-technologies), there’s a new lexicon to learn, and not everything may seem obvious at first. When I first started exploring QoS as part of reading the CCIE OCG a couple years ago, it did seem a bit overwhelming, and I felt that even though I could follow along and understand what I was reading while I read it, when I was done I wasn’t really able to retain what I had just read because at that point in time, I’d never experienced it for myself. Working at my current job has changed that, fortunately.

Like so many things, witnessing it in action (especially in production) and repeated exposure to books and documentation has helped to solidify the major concepts of QoS for me. Experience is great, and it really solidifies the things you learn when you study. But I am still a firm believer that you need to obtain the knowledge first (at least in the general sense), and then build the experience afterward. If I had not taken it upon myself to move past the CCNP R&S curriculum and explore the content within the scope of the CCIE, there are several things I would not even know about. Things like QoS, the service provider side of MPLS, and working with VRFs. These things represent tools in a toolbox, and knowing what tools you have to work with is the key to solving business problems and making you a success.

Update: I found out that QoS is indeed introduced now on the current CCNA exam. This is excellent news, and I would expect it to be covered somewhere on the next revision of the CCNP R&S.