Posts by Category

Labs

Interacting with NetApp APIs, Part 3

April 06, 2017 | 5 minute read

In Part 2 of this series we made our first API call and received over 200 lines of XML as a result. The reason why we received so much output is because we d...

Interacting with NetApp APIs, Part 2

April 05, 2017 | 4 minute read

Picking up where I left off in Part 1 of this series, let’s continue our exploration of ZExplore :) Mandatory Parameters In part 1 I touched on the fact th...

Interacting with NetApp APIs, Part 1

April 03, 2017 | 5 minute read

If you’re a regular reader of this blog, you’ll see that I’ve been posting about automation and Python quite a lot recently. The reason being that it’s not o...

Ansible Playbook Structure

November 27, 2016 | 5 minute read

Update: If you find this article useful, I suggest reading the Anatomy of an Ansible Playbook post as well. Recently I posted about how it can be easy to ge...

Finding a Host’s Switchport

October 30, 2015 | 4 minute read

In this post I will demonstrate how we can find out which of SW3’s switchports PC1 is connected to in the topology diagram below. To make things more fun tho...

Mastering EIGRP Metric Calculations

October 24, 2015 | 7 minute read

To properly administer an EIGRP network an admin really should know how EIGRP calculates and chooses best paths. If you’ve read any CCNA or CCNP resource you...

Shape Average Vs Shape Peak - Part 3

July 30, 2013 | 2 minute read

In my previous post in this series I covered the difference between Shape Average, Shape Peak and Shape with no Excess. Now that that’s out of the way, let’s...

EIGRP No Auto Summary Command, Part 2

July 20, 2013 | 2 minute read

A few years ago I wrote a blog post about EIGRP and the “auto-summary” command called EIGRP No Auto Summary Command, Part 1. In that post I provided a brief ...

MTU Vs MSS - Part Two

May 24, 2013 | 2 minute read

A little while back I posted an entry called MTU Vs MSS - Part One. At the time the plan was to follow it up with Part Two a short time later, however, here ...

Understanding MQC Series

May 18, 2013 | less than 1 minute read

Series Index I am in the process of writing a series of blog posts which will cover: Modular QoS CLI (MQC) Weighted Fair Queue (WFQ) Class-Based Wei...

Understanding MQC, Part 3: Output Analysis

May 18, 2013 | 13 minute read

In my previous post I implemented a basic QoS configuration. In this post I will demonstrate how the “bandwidth” and “priority” commands treat their respecti...

Understanding MQC, Part 2: Basic Configuration

May 18, 2013 | 3 minute read

In my previous post I mentioned the six steps which are required in order to implement a QoS solution. In this post I’ll use those steps to create an example...

Understanding MQC, Part 1: The Basics

May 18, 2013 | 3 minute read

Over the course of my next few blog posts I will be covering Modular QoS CLI (MQC), Weighted Fair Queue (WFQ), Class-Based Weighed Fair Queuing (CBWFQ) and L...

New Website Launch - Ultimate Cisco Lab

May 09, 2013 | less than 1 minute read

In the Connecting Your PC to Your Virtual GNS3 Routers post I provided basic instructions explaining how you can connect your PC to your GNS3 topology, allow...

Virtual Equipment + Physical Equipment = Big Lab

December 01, 2012 | 1 minute read

I have posted a few entries covering GNS3 and how you can use it to help you with your studies. And, in the Connecting Your PC to Your Virtual GNS3 Routers I...

New PC - Nexus 1000V here I come!

December 01, 2012 | 1 minute read

As per my previous post, I have been in the market for a new PC for a little while now and have finally made a purchase. The specs can be found below. CP...

Download & Install Nexus 1000v For Free!

November 08, 2012 | 1 minute read

Cisco has recently announced that the Nexus 1000v can be downloaded and installed free of charge. This is great news for those of us who use VMware products,...

Saving GNS3 Topologies

September 01, 2012 | 2 minute read

A lot of people (myself included) have had trouble saving their GNS3 topologies properly. You think you’ve done it properly, only to find the next time you o...

MTU Vs MSS - Part One

February 17, 2012 | 3 minute read

Have you ever seen the below configuration and wondered what these commands do? And why the MSS value always seems to be 40 bytes lower than the MTU? interf...

GNS3 IOS Memory Errors - Solution

February 10, 2012 | 2 minute read

In a previous post I talked about GNS3 memory errors that produced the below log messages when certain IOS images were used and NATing was enabled: R1(confi...

Fast GNS3 Router Bootup

October 08, 2011 | 1 minute read

As all Cisco IOS users/Cisco engineers will have seen when booting up a switch or a router, the device will decompress the image file which is represented by...

Emulating a Multi Layer Switch in GNS3

September 28, 2011 | 2 minute read

As most of you know, you can get switch-like capabilities in GNS3 by inserting a NM-16ESW in to a compatible router. This is necessary because at present, dy...

GNS3 Duplex Mismatch Messages

September 24, 2011 | 1 minute read

When Cisco devices are connected to one another and CDP is enabled (which it is by default), if one port is configured as full duplex but the other is config...

GNS3 IOS Memory Errors

September 23, 2011 | 4 minute read

Update: Please see this page for a fix to this issue. The other day I decided to upgrade my GNS3 IOS to c3725-adventerprisek9-mz.124-15.T14.bin. All seemed ...

Connecting Your PC to Your Virtual GNS3 Routers

September 18, 2011 | 3 minute read

Update: Please also see my Virtual Equipment + Physical Equipment = Big Lab post for more information. As you already know, GNS3 allows you to create virtua...

Router URL Filtering using NBAR

August 29, 2011 | 2 minute read

There are many ways you can block users from accessing websites they shouldn’t be, such as firewalls, proxy servers, DNS servers, etc. However, if you have a...

Single Public IP NATing to Multiple Hosts

August 26, 2011 | 2 minute read

In my previous blog entry, Multiple Public IP NATing to Multiple Hosts, I described how you can use “one to one” NATing to allocate one public IP address per...

Multiple Public IP NATing to Multiple Hosts

August 26, 2011 | 3 minute read

I have seen quite a lot of ask the question, “how do I NAT multiple public IPs to multiple inside hosts?”. I think what confuses most people is when they are...

EIGRP Network Command Tips

August 08, 2011 | 2 minute read

I discussed the EIGRP “network” command in the EIGEP Network Command – The Easy Way Out post, as well as the EIGRP Route Advertising post, and I’m about to d...

EIGRP Network Command - The Easy Way Out

August 08, 2011 | 1 minute read

In my EIGRP Route Advertising post I said “in order for two routers to exchange EIGRP routes, they must both be part of the same subnet and have a network co...

The “do” Command

August 08, 2011 | 1 minute read

Don’t you just hate it when your in the middle of implementing a new configuration but then decide you’d like to issue a “show” or “ping” command so you drop...

Dangers of the EIGRP “Neighbor” Command

August 06, 2011 | 5 minute read

I have touched on EIGRP a few times before and here we are again. In my EIGRP Route Advertising post I explained how EIGRP neighbor relationships can be cre...

EIGRP No Auto Summary Command, Part 1

May 28, 2010 | 6 minute read

In my previous post about EIGRP Route Advertisements I touched on the “no auto-summary” command, but did not delve in to the details of what this command act...

EIGRP Route Advertising

May 15, 2010 | 2 minute read

In the forums that I frequently visit I always see people asking how EIGRP route advertising works. The users are not sure how to correctly use the “network”...

CBAC in Action, Part 2

April 18, 2010 | 1 minute read

In my previous CBAC post I covered how to deny all external traffic unless it is in response to a request someone on the LAN has made, e.g If you send a ping...

CBAC in Action, Part 1

April 18, 2010 | 3 minute read

In a previous post I talked about CBAC and a few of the ways in which it, in conjunction with NBAR can be used to secure your network. Today I will create a ...

GNS3 + Real Cisco Gear

April 14, 2010 | 2 minute read

For those of you who have never heard of GNS3 before, you are in for a treat! What it does is allow you to run multiple routers on your computer in a virtua...

Back to top ↑

All Labs

Use Ansible Tags to Organise your Plays & Tasks

April 14, 2017 | 7 minute read

The Ansible tag documentation does a great job of explaining tags, tag re-used and tag inheritance.  However, I’d like to dive a little deeper to show you ju...

Finding a Host’s Switchport

October 30, 2015 | 4 minute read

In this post I will demonstrate how we can find out which of SW3’s switchports PC1 is connected to in the topology diagram below. To make things more fun tho...

Shape Average Vs Shape Peak - Part 3

July 30, 2013 | 2 minute read

In my previous post in this series I covered the difference between Shape Average, Shape Peak and Shape with no Excess. Now that that’s out of the way, let’s...

EIGRP No Auto Summary Command, Part 2

July 20, 2013 | 2 minute read

A few years ago I wrote a blog post about EIGRP and the “auto-summary” command called EIGRP No Auto Summary Command, Part 1. In that post I provided a brief ...

MTU Vs MSS - Part Two

May 24, 2013 | 2 minute read

A little while back I posted an entry called MTU Vs MSS - Part One. At the time the plan was to follow it up with Part Two a short time later, however, here ...

Understanding MQC Series

May 18, 2013 | less than 1 minute read

Series Index I am in the process of writing a series of blog posts which will cover: Modular QoS CLI (MQC) Weighted Fair Queue (WFQ) Class-Based Wei...

Understanding MQC, Part 3: Output Analysis

May 18, 2013 | 13 minute read

In my previous post I implemented a basic QoS configuration. In this post I will demonstrate how the “bandwidth” and “priority” commands treat their respecti...

Understanding MQC, Part 2: Basic Configuration

May 18, 2013 | 3 minute read

In my previous post I mentioned the six steps which are required in order to implement a QoS solution. In this post I’ll use those steps to create an example...

Understanding MQC, Part 1: The Basics

May 18, 2013 | 3 minute read

Over the course of my next few blog posts I will be covering Modular QoS CLI (MQC), Weighted Fair Queue (WFQ), Class-Based Weighed Fair Queuing (CBWFQ) and L...

New Website Launch - Ultimate Cisco Lab

May 09, 2013 | less than 1 minute read

In the Connecting Your PC to Your Virtual GNS3 Routers post I provided basic instructions explaining how you can connect your PC to your GNS3 topology, allow...

Virtual Equipment + Physical Equipment = Big Lab

December 01, 2012 | 1 minute read

I have posted a few entries covering GNS3 and how you can use it to help you with your studies. And, in the Connecting Your PC to Your Virtual GNS3 Routers I...

New PC - Nexus 1000V here I come!

December 01, 2012 | 1 minute read

As per my previous post, I have been in the market for a new PC for a little while now and have finally made a purchase. The specs can be found below. CP...

Download & Install Nexus 1000v For Free!

November 08, 2012 | 1 minute read

Cisco has recently announced that the Nexus 1000v can be downloaded and installed free of charge. This is great news for those of us who use VMware products,...

Saving GNS3 Topologies

September 01, 2012 | 2 minute read

A lot of people (myself included) have had trouble saving their GNS3 topologies properly. You think you’ve done it properly, only to find the next time you o...

MTU Vs MSS - Part One

February 17, 2012 | 3 minute read

Have you ever seen the below configuration and wondered what these commands do? And why the MSS value always seems to be 40 bytes lower than the MTU? interf...

GNS3 IOS Memory Errors - Solution

February 10, 2012 | 2 minute read

In a previous post I talked about GNS3 memory errors that produced the below log messages when certain IOS images were used and NATing was enabled: R1(confi...

Fast GNS3 Router Bootup

October 08, 2011 | 1 minute read

As all Cisco IOS users/Cisco engineers will have seen when booting up a switch or a router, the device will decompress the image file which is represented by...

Emulating a Multi Layer Switch in GNS3

September 28, 2011 | 2 minute read

As most of you know, you can get switch-like capabilities in GNS3 by inserting a NM-16ESW in to a compatible router. This is necessary because at present, dy...

GNS3 Duplex Mismatch Messages

September 24, 2011 | 1 minute read

When Cisco devices are connected to one another and CDP is enabled (which it is by default), if one port is configured as full duplex but the other is config...

GNS3 IOS Memory Errors

September 23, 2011 | 4 minute read

Update: Please see this page for a fix to this issue. The other day I decided to upgrade my GNS3 IOS to c3725-adventerprisek9-mz.124-15.T14.bin. All seemed ...

Connecting Your PC to Your Virtual GNS3 Routers

September 18, 2011 | 3 minute read

Update: Please also see my Virtual Equipment + Physical Equipment = Big Lab post for more information. As you already know, GNS3 allows you to create virtua...

Router URL Filtering using NBAR

August 29, 2011 | 2 minute read

There are many ways you can block users from accessing websites they shouldn’t be, such as firewalls, proxy servers, DNS servers, etc. However, if you have a...

Single Public IP NATing to Multiple Hosts

August 26, 2011 | 2 minute read

In my previous blog entry, Multiple Public IP NATing to Multiple Hosts, I described how you can use “one to one” NATing to allocate one public IP address per...

Multiple Public IP NATing to Multiple Hosts

August 26, 2011 | 3 minute read

I have seen quite a lot of ask the question, “how do I NAT multiple public IPs to multiple inside hosts?”. I think what confuses most people is when they are...

EIGRP Network Command Tips

August 08, 2011 | 2 minute read

I discussed the EIGRP “network” command in the EIGEP Network Command – The Easy Way Out post, as well as the EIGRP Route Advertising post, and I’m about to d...

EIGRP Network Command - The Easy Way Out

August 08, 2011 | 1 minute read

In my EIGRP Route Advertising post I said “in order for two routers to exchange EIGRP routes, they must both be part of the same subnet and have a network co...

The “do” Command

August 08, 2011 | 1 minute read

Don’t you just hate it when your in the middle of implementing a new configuration but then decide you’d like to issue a “show” or “ping” command so you drop...

Dangers of the EIGRP “Neighbor” Command

August 06, 2011 | 5 minute read

I have touched on EIGRP a few times before and here we are again. In my EIGRP Route Advertising post I explained how EIGRP neighbor relationships can be cre...

EIGRP No Auto Summary Command, Part 1

May 28, 2010 | 6 minute read

In my previous post about EIGRP Route Advertisements I touched on the “no auto-summary” command, but did not delve in to the details of what this command act...

EIGRP Route Advertising

May 15, 2010 | 2 minute read

In the forums that I frequently visit I always see people asking how EIGRP route advertising works. The users are not sure how to correctly use the “network”...

CBAC in Action, Part 2

April 18, 2010 | 1 minute read

In my previous CBAC post I covered how to deny all external traffic unless it is in response to a request someone on the LAN has made, e.g If you send a ping...

CBAC in Action, Part 1

April 18, 2010 | 3 minute read

In a previous post I talked about CBAC and a few of the ways in which it, in conjunction with NBAR can be used to secure your network. Today I will create a ...

GNS3 + Real Cisco Gear

April 14, 2010 | 2 minute read

For those of you who have never heard of GNS3 before, you are in for a treat! What it does is allow you to run multiple routers on your computer in a virtua...

Back to top ↑

Ansible

Understanding Ansible Output Structure

May 21, 2017 | 10 minute read

Note that this post uses NTC-Ansible. Installation instructions can be found here. In the Ansible –extra-vars post we saw just how out of control outputs ca...

Looping through Dictionaries in Ansible

May 21, 2017 | 3 minute read

Note that this post uses NTC-Ansible. Installation instructions can be found here. In the Understanding Ansible Output Structure post we saw how to extract ...

Cleaning Up Ansible Loop Outputs

May 20, 2017 | 3 minute read

Note that this post uses NTC-Ansible. Installation instructions can be found here. As we saw in the –extra-vars post, the first Playbook produces a very cle...

Ansible –extra-vars

May 20, 2017 | 7 minute read

Note that this post uses NTC-Ansible. Installation instructions can be found here. Often you will see variables defined in a Playbook, a Task and/or a varia...

Installing Ansible on Windows

May 19, 2017 | 2 minute read

While Ansible is not supported on Windows, it is very easy to get it up and running. The Ansible documentation provides information on how to do it using  Wi...

Installing NTC Ansible

April 27, 2017 | 2 minute read

I’ve written about NTC-Ansible a couple of times already and thought now would be a good time to run you through the installation process. The github page pr...

Jinja2 Tests Overview

April 18, 2017 | less than 1 minute read

As per the Jinja documentation: Beside “filters“, there are also so-called “tests” available. Tests can be used to test a variable against a common expressi...

Jinja2 selectattr() Filter

April 18, 2017 | 1 minute read

As per the documentation: “selectattr() filters a sequence of objects by applying a test to the specified attribute of each object, and only selecting the o...

Jinja2 Overview

April 18, 2017 | less than 1 minute read

There are two ways in which you can use Jinja templates inside of Ansible are: Templates Filters This blog post demonstrates both of these techniques...

Jinja2 map() Filter

April 18, 2017 | 2 minute read

Reference: jinja Applies a filter on a sequence of objects or looks up an attribute. This is useful when dealing with lists of objects but you are really on...

Jinja2 Filter Overview

April 18, 2017 | 3 minute read

Reference: Stack Overflow With the pipe character you pass a value to a filter. There are numerous Jinja 2 filters but Ansible brings some additional filter...

Jinja2 equalto() Test

April 18, 2017 | less than 1 minute read

Reference: Jinja Check if an object has the same value as another object. Example As per the selectattr( )  page, the Jinja equalto( )  Test, as well as t...

Jinja2 default() Test

April 18, 2017 | less than 1 minute read

Example #1 Reference: Jinja Syntax: default(value, default_value=u'', boolean=False) Example #1 If the value is undefined it will return the passed def...

Ansible vars Lists

April 18, 2017 | less than 1 minute read

Lists can be provided to a module through vars specified inside a Playbook or they can be provided directly inside a Task. In the examples below we want to ...

Ansible Variables

April 18, 2017 | 3 minute read

Using Variables: About Jinja2 Reference: Ansible Ansible allows you to reference variables in your playbooks using the Jinja2 templating system. While you ...

Ansible Variable Persistence

April 18, 2017 | less than 1 minute read

Reference: Stackoverflow set_fact module only sets facts available during a run. For persistent facts, you’ll need to either: Static: define them i...

Ansible set_facts

April 18, 2017 | less than 1 minute read

Reference: Ansible This module allows setting new variables. Variables are set on a host-by-host basis just like facts discovered by the setup module. ...

Ansible search() Test

April 18, 2017 | less than 1 minute read

Reference: Ansible match  requires a complete match in the string, while search  only requires matching a subset of the string. Example As per the selecta...

Ansible Minimum Viable Playbook (MVP)

April 18, 2017 | less than 1 minute read

Reference: Adam’s Tech Blog The Minimum Viable Playbook (MVP) is the shortest, most useful Ansible playbook I have. Whenever I need to write some Ansible co...

Ansible match() Test

April 18, 2017 | less than 1 minute read

Reference: Ansible match requires a complete match in the string, while search only requires matching a subset of the string. Example As per the selectatt...

Ansible Lists & Dicts Overview

April 18, 2017 | less than 1 minute read

Reference: Ansible All members of a list are lines beginning at the same indentation level starting with a -  (a dash and a space): --- # A list of tasty f...

Ansible Inventory

April 18, 2017 | 1 minute read

Hostnames Reference: Ansible Variables & Inventory  inventory_hostname  is the name of the hostname as configured in Ansible’s inventory host file. Thi...

Ansible Installation

April 18, 2017 | less than 1 minute read

Reference: Ansible To configure the PPA on your machine and install Ansible run these commands: $ sudo apt-get install software-properties-common $ sudo ap...

Ansible Conditionals

April 18, 2017 | less than 1 minute read

Inline expressions Reference: Inline ‘if’ expressions It’s possible to use inline if-expressions: {{ 'Update' if files else 'Continue' }} Note: See the...

Ansible Built-in Variables

April 18, 2017 | less than 1 minute read

Ansible has built in variables which you can come in handy with some Playbooks. They can be viewed using the following Ad-Hoc command: ansible all -i 192.16...

Ansible Ad-Hoc Commands

April 18, 2017 | less than 1 minute read

As per the Ansible documentation: An ad-hoc command is something that you might type in to do something really quick, but don’t want to save for later. For...

Use Ansible Tags to Organise your Plays & Tasks

April 14, 2017 | 7 minute read

The Ansible tag documentation does a great job of explaining tags, tag re-used and tag inheritance.  However, I’d like to dive a little deeper to show you ju...

The Anatomy of an Ansible Playbook

April 09, 2017 | 6 minute read

I published my Ansible Playbook Structure post a few months ago. Upon re-reading it recently I felt that it lacked detailed around the components of a playbo...

Writing your own API, Part 4

November 27, 2016 | 4 minute read

Now that we’ve covered how TextFSM work and how it can be used to record useful information from device outputs, it’s time to move our focus on how we use Te...

Why Automate?

November 27, 2016 | 1 minute read

As my collection of automation posts continues to grow, now is a good time to discuss why you should use automation. The two automation related comments/que...

Ansible Playbook Structure

November 27, 2016 | 5 minute read

Update: If you find this article useful, I suggest reading the Anatomy of an Ansible Playbook post as well. Recently I posted about how it can be easy to ge...

Writing your own API, Part 3

November 21, 2016 | 9 minute read

In my previous post I covered how to to download, install and test TextFSM. In this post I’ll demonstrate how to write your own template files so that you ca...

Writing your own API, Part 2

November 21, 2016 | 2 minute read

As I mentioned in my previous post, NTC-Ansible uses TextFSM templates to allow you to convert your CLI outputs to JSON and then access the data in an API-li...

Writing your own API, Part 1

November 21, 2016 | 2 minute read

In this series of posts I will cover how you can create your own API-like functionality for devices which do not have APIs built into them. Before I get star...

Getting started with Ansible

November 20, 2016 | 2 minute read

In my previous post, Getting started with Network Automation, I discussed why I chose Ansible as my configuration management and orchestration tool over the ...

Getting started with Network Automation

November 20, 2016 | 1 minute read

I’ve been looking into network automation for quite some time now. Originally I started off looking into automating small tasks by writing Python scripts but...

Back to top ↑

Python

Installing & using Python virtualenv

April 05, 2018 | 1 minute read

virtualenv, as the name suggests, creates virtual Python environments. If you’re familiar with server virtualisation, virtualenv acts in a similar fashion to...

Python: Demystifying AWS’ Boto3

August 31, 2017 | 10 minute read

As the GitHub page says, “Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for Python, which allows Python developers to write software ...

Testing your code with pytest

August 13, 2017 | 3 minute read

If you’re fairly new to coding chances are you’ve run into an issue where you make a minor change in one place, and then end up breaking your script in anoth...

Allure2: A GUI for your code tests

August 13, 2017 | 4 minute read

In my previous post I touched on the basics of how you can use pytest to test your code. In this post I’ll be covering how you can use Allure2 to prettify yo...

Python: Shadowing

July 17, 2017 | 2 minute read

In my previous post, Python: Scope, I touched on the topic of Shadowing. In this post I’ll be delving deeper into it. As Wikipedia says, variable shadowing ...

Python: Scope

July 16, 2017 | 4 minute read

Scope is the term used to define the location(s) in which Python searches for a name to object mapping (e.g a variable). As described in this StackOverflow ...

Python: if name == “main

July 13, 2017 | 1 minute read

There are plenty of articles on the internet that attempt to explain what if name == “main“ is and what it does, but (in my humble opinion), the examples are...

Windows: Accessing Python & pip from anywhere

June 14, 2017 | less than 1 minute read

When you install Python on Windows, you may find that you cannot access it and/or pip from anywhere on the commandline. For example, you find that you need t...

Interpreted, Bytecode & Just-in-Time

June 02, 2017 | 4 minute read

In my previous post I discussed what a compiler does. In this post I will cover Interpreted code, Bytecode and Just-in-Time compilation. One thing to note at...

What does a Compiler do?

May 17, 2017 | 6 minute read

If you’ve used Linux before and/or have coded using a language such as C, you will have come across a compiler. Though because they’re so easy to use, you mi...

Python: A Strong, Dynamically Typed Language

May 16, 2017 | 4 minute read

You’ve probably already heard that Python is a strong, dynamically typed language. But what does that actually mean? Let’s jump in and take a look. Dynamica...

Python: Statements & Expression

May 13, 2017 | 2 minute read

In Learning Python (a must read for anyone interested in Python!), author Mark Lutz refers to statements and expressions frequently, but give a clear explana...

Python: The difference between Lists & Tuples

May 03, 2017 | 7 minute read

A common misconception is that the only difference between Lists and Tuples is that the former is mutable while the latter is immutable. While this is true, ...

Interacting with NetApp APIs, Part 3

April 06, 2017 | 5 minute read

In Part 2 of this series we made our first API call and received over 200 lines of XML as a result. The reason why we received so much output is because we d...

Interacting with NetApp APIs, Part 2

April 05, 2017 | 4 minute read

Picking up where I left off in Part 1 of this series, let’s continue our exploration of ZExplore :) Mandatory Parameters In part 1 I touched on the fact th...

Interacting with NetApp APIs, Part 1

April 03, 2017 | 5 minute read

If you’re a regular reader of this blog, you’ll see that I’ve been posting about automation and Python quite a lot recently. The reason being that it’s not o...

Learning Python

February 02, 2017 | 1 minute read

In my Why Automate? post I discussed how important I feel automation skills will be for engineers in the near future. I even went as far as to say that those...

Writing your own API, Part 4

November 27, 2016 | 4 minute read

Now that we’ve covered how TextFSM work and how it can be used to record useful information from device outputs, it’s time to move our focus on how we use Te...

Writing your own API, Part 3

November 21, 2016 | 9 minute read

In my previous post I covered how to to download, install and test TextFSM. In this post I’ll demonstrate how to write your own template files so that you ca...

Writing your own API, Part 2

November 21, 2016 | 2 minute read

As I mentioned in my previous post, NTC-Ansible uses TextFSM templates to allow you to convert your CLI outputs to JSON and then access the data in an API-li...

Writing your own API, Part 1

November 21, 2016 | 2 minute read

In this series of posts I will cover how you can create your own API-like functionality for devices which do not have APIs built into them. Before I get star...

Getting started with Ansible

November 20, 2016 | 2 minute read

In my previous post, Getting started with Network Automation, I discussed why I chose Ansible as my configuration management and orchestration tool over the ...

Getting started with Network Automation

November 20, 2016 | 1 minute read

I’ve been looking into network automation for quite some time now. Originally I started off looking into automating small tasks by writing Python scripts but...

Back to top ↑

Beginner's Guide

Interacting with NetApp APIs, Part 3

April 06, 2017 | 5 minute read

In Part 2 of this series we made our first API call and received over 200 lines of XML as a result. The reason why we received so much output is because we d...

Interacting with NetApp APIs, Part 2

April 05, 2017 | 4 minute read

Picking up where I left off in Part 1 of this series, let’s continue our exploration of ZExplore :) Mandatory Parameters In part 1 I touched on the fact th...

Interacting with NetApp APIs, Part 1

April 03, 2017 | 5 minute read

If you’re a regular reader of this blog, you’ll see that I’ve been posting about automation and Python quite a lot recently. The reason being that it’s not o...

Back to top ↑

Misc.

Finding a Host’s Switchport

October 30, 2015 | 4 minute read

In this post I will demonstrate how we can find out which of SW3’s switchports PC1 is connected to in the topology diagram below. To make things more fun tho...

How to Land your Dream Job

November 15, 2014 | 4 minute read

I have been very lucky in my career to date. Over the years I have been given the privilege of working in some great roles which I have thoroughly enjoyed. B...

MTU Vs MSS - Part Two

May 24, 2013 | 2 minute read

A little while back I posted an entry called MTU Vs MSS - Part One. At the time the plan was to follow it up with Part Two a short time later, however, here ...

New Website Launch - Ultimate Cisco Lab

May 09, 2013 | less than 1 minute read

In the Connecting Your PC to Your Virtual GNS3 Routers post I provided basic instructions explaining how you can connect your PC to your GNS3 topology, allow...

StackExchange - Network Engineering

March 23, 2013 | less than 1 minute read

Just a quick post in case you haven’t seen it already - we’re trying to get a “Network Engineering” site going over at StackExchange. If you’re interested, p...

Virtual Equipment + Physical Equipment = Big Lab

December 01, 2012 | 1 minute read

I have posted a few entries covering GNS3 and how you can use it to help you with your studies. And, in the Connecting Your PC to Your Virtual GNS3 Routers I...

New PC - Nexus 1000V here I come!

December 01, 2012 | 1 minute read

As per my previous post, I have been in the market for a new PC for a little while now and have finally made a purchase. The specs can be found below. CP...

Download & Install Nexus 1000v For Free!

November 08, 2012 | 1 minute read

Cisco has recently announced that the Nexus 1000v can be downloaded and installed free of charge. This is great news for those of us who use VMware products,...

MTU Vs MSS - Part One

February 17, 2012 | 3 minute read

Have you ever seen the below configuration and wondered what these commands do? And why the MSS value always seems to be 40 bytes lower than the MTU? interf...

GNS3 Duplex Mismatch Messages

September 24, 2011 | 1 minute read

When Cisco devices are connected to one another and CDP is enabled (which it is by default), if one port is configured as full duplex but the other is config...

URL Redirects using NAT

August 30, 2011 | 1 minute read

In my previous post, Router URL Filtering using NBAR, I explained how it was possible to block users from accessing websites simply by using NBAR, a class-ma...

The “do” Command

August 08, 2011 | 1 minute read

Don’t you just hate it when your in the middle of implementing a new configuration but then decide you’d like to issue a “show” or “ping” command so you drop...

Get Involved - Forums

April 18, 2010 | 2 minute read

Whether you are are a seasoned Cisco professional or just starting out, one of the best sources of information you will find (apart from this blog :P) are in...

NBAR and its Many Uses

April 16, 2010 | 1 minute read

NBAR, also known as Network Based Application Recognition is an invaluable tool that many people do not know exists or simply just don’t use it enough. As t...

Back to top ↑

DevOps

DevOps: The Evolution of Applications

March 12, 2018 | 5 minute read

One server per application In the not too distant past, it was normal to have a one to one relationship between applications and servers. For example, your ...

Testing your code with pytest

August 13, 2017 | 3 minute read

If you’re fairly new to coding chances are you’ve run into an issue where you make a minor change in one place, and then end up breaking your script in anoth...

Allure2: A GUI for your code tests

August 13, 2017 | 4 minute read

In my previous post I touched on the basics of how you can use pytest to test your code. In this post I’ll be covering how you can use Allure2 to prettify yo...

Python: Shadowing

July 17, 2017 | 2 minute read

In my previous post, Python: Scope, I touched on the topic of Shadowing. In this post I’ll be delving deeper into it. As Wikipedia says, variable shadowing ...

Python: Scope

July 16, 2017 | 4 minute read

Scope is the term used to define the location(s) in which Python searches for a name to object mapping (e.g a variable). As described in this StackOverflow ...

Python: if name == “main

July 13, 2017 | 1 minute read

There are plenty of articles on the internet that attempt to explain what if name == “main“ is and what it does, but (in my humble opinion), the examples are...

Interpreted, Bytecode & Just-in-Time

June 02, 2017 | 4 minute read

In my previous post I discussed what a compiler does. In this post I will cover Interpreted code, Bytecode and Just-in-Time compilation. One thing to note at...

Installing Git on Windows

May 19, 2017 | 1 minute read

Installing Git on Windows is very similar to installing it on Linux. That might not come as a surprise though because the tools we’ll be using in this post a...

What does a Compiler do?

May 17, 2017 | 6 minute read

If you’ve used Linux before and/or have coded using a language such as C, you will have come across a compiler. Though because they’re so easy to use, you mi...

Back to top ↑

Cisco

Subnetting Made Easy, Part 6

March 27, 2016 | 21 minute read

Note: As you will soon see I use tables (some might say excessively :P) in this post. I did this is because it closely resembles what a lot of network engine...

Finding a Host’s Switchport

October 30, 2015 | 4 minute read

In this post I will demonstrate how we can find out which of SW3’s switchports PC1 is connected to in the topology diagram below. To make things more fun tho...

Mastering EIGRP Metric Calculations

October 24, 2015 | 7 minute read

To properly administer an EIGRP network an admin really should know how EIGRP calculates and chooses best paths. If you’ve read any CCNA or CCNP resource you...

Subnetting Made Easy, Part 5

October 04, 2015 | 4 minute read

After publishing my previous post, I received another e-mail from the author of the original e-mail: … So basically, I would like to find out how to find th...

Subnetting Made Easy, Part 4

October 02, 2015 | 3 minute read

Recently I received the following e-mail from a reader: I have read, and followed your method of finding subnet mask addresses, and calculating the first an...

Subnetting Made Easy - Index

August 31, 2013 | less than 1 minute read

Below is a list of all the posts in the “Subnetting Made Easy” series: Subnetting Made Easy, Part 1 Subnetting Made Easy, Part 2 Subnetting Made Easy...

Subnetting Made Easy, Part 3

August 04, 2013 | 1 minute read

Note: For the first post in this series, please see the Subnetting Made Easy, Part 1 post. Recently I received an e-mail from a reader who was having troubl...

Subnetting Made Easy - Formula

August 29, 2011 | less than 1 minute read

I covered subnetting in my earlier posts, Subnetting Made Easy, Part 1 and Subnetting Made Easy, Part 2. In the latter mentioned post, I explained how you c...

Subnetting Made Easy, Part 2

August 28, 2011 | 3 minute read

In my previous post, Subnetting Made Easy, Part 1, I demonstrated the way I use to find the Network Address, First Usable Address, Last Usable Address and Br...

Subnetting Made Easy, Part 1

August 27, 2011 | 3 minute read

There are a wide range of techniques people use to work out their network, host and broadcast addresses. I prefer to take the binary approach as I find it th...

Back to top ↑

Subnetting

Subnetting Made Easy, Part 6

March 27, 2016 | 21 minute read

Note: As you will soon see I use tables (some might say excessively :P) in this post. I did this is because it closely resembles what a lot of network engine...

Subnetting Made Easy, Part 5

October 04, 2015 | 4 minute read

After publishing my previous post, I received another e-mail from the author of the original e-mail: … So basically, I would like to find out how to find th...

Subnetting Made Easy, Part 4

October 02, 2015 | 3 minute read

Recently I received the following e-mail from a reader: I have read, and followed your method of finding subnet mask addresses, and calculating the first an...

Subnetting Made Easy - Index

August 31, 2013 | less than 1 minute read

Below is a list of all the posts in the “Subnetting Made Easy” series: Subnetting Made Easy, Part 1 Subnetting Made Easy, Part 2 Subnetting Made Easy...

Subnetting Made Easy, Part 3

August 04, 2013 | 1 minute read

Note: For the first post in this series, please see the Subnetting Made Easy, Part 1 post. Recently I received an e-mail from a reader who was having troubl...

EIGRP No Auto Summary Command, Part 2

July 20, 2013 | 2 minute read

A few years ago I wrote a blog post about EIGRP and the “auto-summary” command called EIGRP No Auto Summary Command, Part 1. In that post I provided a brief ...

Subnetting Made Easy - Formula

August 29, 2011 | less than 1 minute read

I covered subnetting in my earlier posts, Subnetting Made Easy, Part 1 and Subnetting Made Easy, Part 2. In the latter mentioned post, I explained how you c...

Subnetting Made Easy, Part 2

August 28, 2011 | 3 minute read

In my previous post, Subnetting Made Easy, Part 1, I demonstrated the way I use to find the Network Address, First Usable Address, Last Usable Address and Br...

Subnetting Made Easy, Part 1

August 27, 2011 | 3 minute read

There are a wide range of techniques people use to work out their network, host and broadcast addresses. I prefer to take the binary approach as I find it th...

Back to top ↑

Git

Git: nano on Windows

September 02, 2017 | less than 1 minute read

When you’re developing on two different OS’ (e.g Windows & Linux), the last thing you want to do is have to remember which tools to use on which system. ...

Git: Merging & Rebasing basics

August 26, 2017 | 17 minute read

In the Git: Keeping in sync post we learned how to merge the orgin/master commits into our local master branch. Then in Git: Effective branching using workfl...

Git: Keeping in sync

August 20, 2017 | 8 minute read

In the Getting start with git post we covered a number of things, one of which was using push to send our commits to a remote git repo. This is works fine wh...

Git: Effective branching using workflows

August 20, 2017 | 2 minute read

In the Getting started with git we learned about local and remote branches (master and origin/master respectively), and in Git: Keeping in sync we learned ho...

Getting started with git

August 19, 2017 | 7 minute read

What is git? Wikipedia has a great answer for this question: Git is a version control system for tracking changes in computer files and coordinating work o...

Installing Git on Windows

May 19, 2017 | 1 minute read

Installing Git on Windows is very similar to installing it on Linux. That might not come as a surprise though because the tools we’ll be using in this post a...

Git Local Overwrite

April 18, 2017 | 1 minute read

If your local repository is behind that of the remote repository and your locally tracked files differ from those of the remote repository, you will encounte...

Installing Git on Ubuntu

April 18, 2017 | less than 1 minute read

Install git sudo apt-get install git Generating Ubuntu SSH key ssh-keygen Find your SSH key. cd ~/.ss...

Back to top ↑

Monitoring

Getting Started with Prometheus - Part 2

November 13, 2017 | 4 minute read

As you’ve probably guessed by Docker posts, I’m a huge fan of containerisation. Therefore instead of installing Prometheus on a host, let’s instead spin it u...

Getting Started with Prometheus - Part 1

November 12, 2017 | 4 minute read

If you’ve used Grafana, or even heard of it, chances are you’ve also heard of InfluxDB and Prometheus too. As I haven’t touched on the latter yet, I figured ...

Navigating InfluxDB CLI

June 13, 2017 | 1 minute read

I’ve demonstrated a few InfluxDB commands in my Getting to know InfluxDB and InfluxDB: Retention Policies & Shard Groups posts but though it would be a g...

Getting to know Telegraf

June 13, 2017 | 1 minute read

I first mentioned Telegraf in the My Monitoring Journey: Cacti, Graphite, Grafana & Chronograf post and then covered its installation and setup in the In...

InfluxDB: Retention Policies & Shard Groups

June 11, 2017 | 6 minute read

Note: This is a continuation of the Getting to know InfluxDB post. If you haven’t read it yet, I suggest you do before reading this post. I found InfluxDB’s...

Getting to know InfluxDB

June 11, 2017 | 6 minute read

I touched on InfluxDB in the My Monitoring Journey: Cacti, Graphite, Grafana & Chronograf post and then covered its installation and setup in the Install...

Back to top ↑

EIGRP

Mastering EIGRP Metric Calculations

October 24, 2015 | 7 minute read

To properly administer an EIGRP network an admin really should know how EIGRP calculates and chooses best paths. If you’ve read any CCNA or CCNP resource you...

EIGRP No Auto Summary Command, Part 2

July 20, 2013 | 2 minute read

A few years ago I wrote a blog post about EIGRP and the “auto-summary” command called EIGRP No Auto Summary Command, Part 1. In that post I provided a brief ...

Emulating a Multi Layer Switch in GNS3

September 28, 2011 | 2 minute read

As most of you know, you can get switch-like capabilities in GNS3 by inserting a NM-16ESW in to a compatible router. This is necessary because at present, dy...

EIGRP Network Command Tips

August 08, 2011 | 2 minute read

I discussed the EIGRP “network” command in the EIGEP Network Command – The Easy Way Out post, as well as the EIGRP Route Advertising post, and I’m about to d...

EIGRP Network Command - The Easy Way Out

August 08, 2011 | 1 minute read

In my EIGRP Route Advertising post I said “in order for two routers to exchange EIGRP routes, they must both be part of the same subnet and have a network co...

Dangers of the EIGRP “Neighbor” Command

August 06, 2011 | 5 minute read

I have touched on EIGRP a few times before and here we are again. In my EIGRP Route Advertising post I explained how EIGRP neighbor relationships can be cre...

EIGRP No Auto Summary Command, Part 1

May 28, 2010 | 6 minute read

In my previous post about EIGRP Route Advertisements I touched on the “no auto-summary” command, but did not delve in to the details of what this command act...

EIGRP Route Advertising

May 15, 2010 | 2 minute read

In the forums that I frequently visit I always see people asking how EIGRP route advertising works. The users are not sure how to correctly use the “network”...

Back to top ↑

OSPF

A Deep Dive in OSPF LSAs, Part 7

April 28, 2015 | 6 minute read

So far in this series I’ve covered Type 1, 2 and 3 LSAs. Next I’m going to cover Type 4 and Type 5 LSAs with the help of this topology. Before we get star...

A Deep Dive in OSPF LSAs, Part 6

April 24, 2015 | 5 minute read

Up until this point I have only covered Type 1 and Type 2 LSAs in this series. I’m guessing by now you must be quite familiar with them and are interested to...

A Deep Dive in OSPF LSAs, Part 5

April 24, 2015 | 5 minute read

In Part 3 I demonstrated how you can use Type 1 and Type 2 LSAs to map the topology an OSPF area. In this post we’ll do the reverse. By looking at a network ...

A Deep Dive in OSPF LSAs, Part 4

April 23, 2015 | 4 minute read

As mentioned a couple of times in this series, Type 1 LSAs differ between Broadcast and Point-to-Point segments. To demonstrate this, I’ll be using the same ...

A Deep Dive in OSPF LSAs, Part 3

April 23, 2015 | 4 minute read

In my previous post I covered Type 1 and Type 2 LSAs in relation to broadcast networks. In this post I’ll demonstrate how you can use these LSAs to map the t...

A Deep Dive in OSPF LSAs, Part 2

April 22, 2015 | 7 minute read

In my previous post I covered the inspiration for this series of posts as well as many of OSPF’s LSAs. Now that we’ve got the boring stuff out of the way, le...

A Deep Dive in OSPF LSAs, Part 1

April 22, 2015 | 2 minute read

Configuring an OSPF network can be very easy. Within a couple of commands you can have a fully functioning network. While being easy to configure is definite...

A Deep Dive in OSPF LSAs – Index

April 21, 2015 | less than 1 minute read

Below is a list of all the posts in the “A Deep Dive in OSPF LSAs” series: A Deep Dive in OSPF LSAs, Part 1 A Deep Dive in OSPF LSAs, Part 2 A Deep D...

Back to top ↑

Security

Zone-Based Policy Firewall, Part 2

August 13, 2013 | 4 minute read

In my previous post I touched on the four parts (Zones & Zone Members, Class Maps, Policy Maps and Zone Pairs) which make up a ZFW configuration. In this...

Zone-Based Policy Firewall, Part 1

August 12, 2013 | 6 minute read

Cisco’s Zone-Based Policy Firewall (ZFW) can be quite confusing when you first start looking in to it, so over the next couple of blog posts I hope to provid...

Router URL Filtering using NBAR

August 29, 2011 | 2 minute read

There are many ways you can block users from accessing websites they shouldn’t be, such as firewalls, proxy servers, DNS servers, etc. However, if you have a...

CBAC in Action, Part 2

April 18, 2010 | 1 minute read

In my previous CBAC post I covered how to deny all external traffic unless it is in response to a request someone on the LAN has made, e.g If you send a ping...

CBAC in Action, Part 1

April 18, 2010 | 3 minute read

In a previous post I talked about CBAC and a few of the ways in which it, in conjunction with NBAR can be used to secure your network. Today I will create a ...

CBAC Firewall

April 17, 2010 | 1 minute read

In my previous post I mentioned the Cisco IOS firewall feature known as CBAC (Context-Based Access Control). Today I will describe it in more detail and expl...

NBAR and its Many Uses

April 16, 2010 | 1 minute read

NBAR, also known as Network Based Application Recognition is an invaluable tool that many people do not know exists or simply just don’t use it enough. As t...

Back to top ↑

QoS

Shape Average Vs Shape Peak - Part 3

July 30, 2013 | 2 minute read

In my previous post in this series I covered the difference between Shape Average, Shape Peak and Shape with no Excess. Now that that’s out of the way, let’s...

Understanding MQC Series

May 18, 2013 | less than 1 minute read

Series Index I am in the process of writing a series of blog posts which will cover: Modular QoS CLI (MQC) Weighted Fair Queue (WFQ) Class-Based Wei...

Understanding MQC, Part 3: Output Analysis

May 18, 2013 | 13 minute read

In my previous post I implemented a basic QoS configuration. In this post I will demonstrate how the “bandwidth” and “priority” commands treat their respecti...

Understanding MQC, Part 2: Basic Configuration

May 18, 2013 | 3 minute read

In my previous post I mentioned the six steps which are required in order to implement a QoS solution. In this post I’ll use those steps to create an example...

Understanding MQC, Part 1: The Basics

May 18, 2013 | 3 minute read

Over the course of my next few blog posts I will be covering Modular QoS CLI (MQC), Weighted Fair Queue (WFQ), Class-Based Weighed Fair Queuing (CBWFQ) and L...

Shape Average Vs Shape Peak - Part 2

April 02, 2013 | 4 minute read

Note: If you haven’t read Shape Average Vs Shape Peak - Part 1 already, I suggest you read it first and then return to this entry. Three Types of Shaping T...

Shape Average Vs Shape Peak - Part 1

March 29, 2013 | 5 minute read

When I first started looking in to the differences between Shape Average and Shape Peak, I soon found myself getting lost in all of the acronyms - Tc, Bc, Be...

Back to top ↑

Tools

Navigating InfluxDB CLI

June 13, 2017 | 1 minute read

I’ve demonstrated a few InfluxDB commands in my Getting to know InfluxDB and InfluxDB: Retention Policies & Shard Groups posts but though it would be a g...

Getting to know Telegraf

June 13, 2017 | 1 minute read

I first mentioned Telegraf in the My Monitoring Journey: Cacti, Graphite, Grafana & Chronograf post and then covered its installation and setup in the In...

InfluxDB: Retention Policies & Shard Groups

June 11, 2017 | 6 minute read

Note: This is a continuation of the Getting to know InfluxDB post. If you haven’t read it yet, I suggest you do before reading this post. I found InfluxDB’s...

Getting to know InfluxDB

June 11, 2017 | 6 minute read

I touched on InfluxDB in the My Monitoring Journey: Cacti, Graphite, Grafana & Chronograf post and then covered its installation and setup in the Install...

Back to top ↑

UCS

Back to top ↑

Automation

Installing Ansible on Windows

May 19, 2017 | 2 minute read

While Ansible is not supported on Windows, it is very easy to get it up and running. The Ansible documentation provides information on how to do it using  Wi...

Interacting with NetApp APIs, Part 3

April 06, 2017 | 5 minute read

In Part 2 of this series we made our first API call and received over 200 lines of XML as a result. The reason why we received so much output is because we d...

Interacting with NetApp APIs, Part 2

April 05, 2017 | 4 minute read

Picking up where I left off in Part 1 of this series, let’s continue our exploration of ZExplore :) Mandatory Parameters In part 1 I touched on the fact th...

Interacting with NetApp APIs, Part 1

April 03, 2017 | 5 minute read

If you’re a regular reader of this blog, you’ll see that I’ve been posting about automation and Python quite a lot recently. The reason being that it’s not o...

Why Automate?

November 27, 2016 | 1 minute read

As my collection of automation posts continues to grow, now is a good time to discuss why you should use automation. The two automation related comments/que...

Back to top ↑

Jinja2

Jinja2 Tests Overview

April 18, 2017 | less than 1 minute read

As per the Jinja documentation: Beside “filters“, there are also so-called “tests” available. Tests can be used to test a variable against a common expressi...

Jinja2 selectattr() Filter

April 18, 2017 | 1 minute read

As per the documentation: “selectattr() filters a sequence of objects by applying a test to the specified attribute of each object, and only selecting the o...

Jinja2 Overview

April 18, 2017 | less than 1 minute read

There are two ways in which you can use Jinja templates inside of Ansible are: Templates Filters This blog post demonstrates both of these techniques...

Jinja2 map() Filter

April 18, 2017 | 2 minute read

Reference: jinja Applies a filter on a sequence of objects or looks up an attribute. This is useful when dealing with lists of objects but you are really on...

Jinja2 equalto() Test

April 18, 2017 | less than 1 minute read

Reference: Jinja Check if an object has the same value as another object. Example As per the selectattr( )  page, the Jinja equalto( )  Test, as well as t...

Ansible Variables

April 18, 2017 | 3 minute read

Using Variables: About Jinja2 Reference: Ansible Ansible allows you to reference variables in your playbooks using the Jinja2 templating system. While you ...

Back to top ↑

NetApp

Interacting with NetApp APIs, Part 3

April 06, 2017 | 5 minute read

In Part 2 of this series we made our first API call and received over 200 lines of XML as a result. The reason why we received so much output is because we d...

Interacting with NetApp APIs, Part 2

April 05, 2017 | 4 minute read

Picking up where I left off in Part 1 of this series, let’s continue our exploration of ZExplore :) Mandatory Parameters In part 1 I touched on the fact th...

Interacting with NetApp APIs, Part 1

April 03, 2017 | 5 minute read

If you’re a regular reader of this blog, you’ll see that I’ve been posting about automation and Python quite a lot recently. The reason being that it’s not o...

Building a NetApp ONTAP 9 Lab for free!

October 16, 2016 | less than 1 minute read

What better way to start the Zero to Hero Guide than learning how to build your own ONTAP lab for free? Thanks to Neil Anderson over at FlackBox, we can do j...

NetApp Insight is just around the corner!

October 09, 2015 | less than 1 minute read

I thought I’d write up a quick blog post to celebrate the fact that NetApp Insight is around the corner! If you haven’t seen them already you can find my Ne...

Back to top ↑

TextFSM

Installing NTC Ansible

April 27, 2017 | 2 minute read

I’ve written about NTC-Ansible a couple of times already and thought now would be a good time to run you through the installation process. The github page pr...

Writing your own API, Part 4

November 27, 2016 | 4 minute read

Now that we’ve covered how TextFSM work and how it can be used to record useful information from device outputs, it’s time to move our focus on how we use Te...

Writing your own API, Part 3

November 21, 2016 | 9 minute read

In my previous post I covered how to to download, install and test TextFSM. In this post I’ll demonstrate how to write your own template files so that you ca...

Writing your own API, Part 2

November 21, 2016 | 2 minute read

As I mentioned in my previous post, NTC-Ansible uses TextFSM templates to allow you to convert your CLI outputs to JSON and then access the data in an API-li...

Writing your own API, Part 1

November 21, 2016 | 2 minute read

In this series of posts I will cover how you can create your own API-like functionality for devices which do not have APIs built into them. Before I get star...

Back to top ↑

About

About Me - Update

January 03, 2015 | 4 minute read

Update (January 2015): Well, it has been just over three years since my original “About Me” post and quite a lot has changed. To begin with, I’m no longer 2...

How to Land your Dream Job

November 15, 2014 | 4 minute read

I have been very lucky in my career to date. Over the years I have been given the privilege of working in some great roles which I have thoroughly enjoyed. B...

About Me

November 13, 2011 | 3 minute read

Original (November 2011): 2015 Update: See this page to find out what I’ve been up to over the years since this entry was originally posted. I have receive...

Welcome!

April 13, 2010 | 1 minute read

Hello and welcome to my blog. I know what you are thinking, “not another Cisco Blog!”, but this one will be different, I promise :) The point of this blog ...

Back to top ↑

Docker

Getting Started with Prometheus - Part 2

November 13, 2017 | 4 minute read

As you’ve probably guessed by Docker posts, I’m a huge fan of containerisation. Therefore instead of installing Prometheus on a host, let’s instead spin it u...

Getting Started with Docker - Part 2

November 01, 2017 | 5 minute read

In the previous post we may have started running before we could walk. In this post we’ll first take a few steps back to make sure we cover the basics before...

Getting Started with Docker - Part 1

October 31, 2017 | 6 minute read

For those new to Docker, you’re probably wondering - What is it exactly? “Docker is the company driving the container movement and the only container platfo...

Back to top ↑

Useful Resources

New Website Launch - Ultimate Cisco Lab

May 09, 2013 | less than 1 minute read

In the Connecting Your PC to Your Virtual GNS3 Routers post I provided basic instructions explaining how you can connect your PC to your GNS3 topology, allow...

StackExchange - Network Engineering

March 23, 2013 | less than 1 minute read

Just a quick post in case you haven’t seen it already - we’re trying to get a “Network Engineering” site going over at StackExchange. If you’re interested, p...

Get Involved - Forums

April 18, 2010 | 2 minute read

Whether you are are a seasoned Cisco professional or just starting out, one of the best sources of information you will find (apart from this blog :P) are in...

Back to top ↑

NAT

URL Redirects using NAT

August 30, 2011 | 1 minute read

In my previous post, Router URL Filtering using NBAR, I explained how it was possible to block users from accessing websites simply by using NBAR, a class-ma...

Single Public IP NATing to Multiple Hosts

August 26, 2011 | 2 minute read

In my previous blog entry, Multiple Public IP NATing to Multiple Hosts, I described how you can use “one to one” NATing to allocate one public IP address per...

Multiple Public IP NATing to Multiple Hosts

August 26, 2011 | 3 minute read

I have seen quite a lot of ask the question, “how do I NAT multiple public IPs to multiple inside hosts?”. I think what confuses most people is when they are...

Back to top ↑

Data Center

Virtual Equipment + Physical Equipment = Big Lab

December 01, 2012 | 1 minute read

I have posted a few entries covering GNS3 and how you can use it to help you with your studies. And, in the Connecting Your PC to Your Virtual GNS3 Routers I...

New PC - Nexus 1000V here I come!

December 01, 2012 | 1 minute read

As per my previous post, I have been in the market for a new PC for a little while now and have finally made a purchase. The specs can be found below. CP...

Download & Install Nexus 1000v For Free!

November 08, 2012 | 1 minute read

Cisco has recently announced that the Nexus 1000v can be downloaded and installed free of charge. This is great news for those of us who use VMware products,...

Back to top ↑

Kubernetes

Kubernetes from the Ground Up: Server Components

April 13, 2018 | 7 minute read

In the previous post, Choosing a configuration method, we looked at the three ways in which a Kubernetes cluster can be configured. In this post we’ll go thr...

Kubernetes from the Ground Up: What is it?

March 13, 2018 | 2 minute read

If you’ve looked into containers before, you’ve likely heard the name Kubernetes. This post will tackle what it is at a high level, while subsequent posts wi...

Back to top ↑

Zero to Hero

Building a NetApp ONTAP 9 Lab for free!

October 16, 2016 | less than 1 minute read

What better way to start the Zero to Hero Guide than learning how to build your own ONTAP lab for free? Thanks to Neil Anderson over at FlackBox, we can do j...

The NetApp Zero to Hero Guide - Introduction

December 29, 2015 | 1 minute read

Just under a year ago I wrote a blog series called NetApp From The Ground Up - A Beginner’s Gude. Since the publication of the series I have been getting e-m...

Back to top ↑

Windows

Windows: Accessing Python & pip from anywhere

June 14, 2017 | less than 1 minute read

When you install Python on Windows, you may find that you cannot access it and/or pip from anywhere on the commandline. For example, you find that you need t...

Back to top ↑

Boto3

Python: Demystifying AWS’ Boto3

August 31, 2017 | 10 minute read

As the GitHub page says, “Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for Python, which allows Python developers to write software ...

Back to top ↑