So I’m finally off to Cisco Live! This will be my first time there, and I’m hoping to meet and speak to a lot of people I speak to online. So far my timetable looks like so: Monday 11th July Troubleshooting BGP [BRKRST3320] ASR9000/IOSXR Understanding forwarding, troubleshooting the system and XR operations [BRKSPG2904] Introduction to … Continue reading Cisco Live 2016 – Las Vegas
It’s hard to believe that my blog has just surpassed 1000000 views! I started this blog out just on the side to go over things I was learning. I’ve learned a lot in the process, and managed to bag myself two CCIEs, a JNCIE-SP, a job at Google, and the opportunity to write a book … Continue reading One Million Views
I’m currently learning as much computer science as I can on the side. I’ve come across Big O notation a few times already, and while I understand it, I’m much more of a visual guy. It’s rather easy to use Python and matplotlib to graph out how a function’s execution time grows as the size … Continue reading Visualising Big O notation
Python has a rather handy list method. It allows you to add and remove items at will. How it actually does this is rather elaborate and you can read all about it over here. C doesn’t give you the same flexibility. When you create an array, it is of X size. That size cannot change … Continue reading Linked lists→
Back in March 2014 I wrote an app in Python that would log in and check various OSPF properties. When putting the data into a structure, I was limited both by knowledge and Python at the time. I ended up using a dictionary which worked rather well, but I was never 100% happy with it. … Continue reading Structs in C→
I’ve been doing a lot of coding practise, and recursive functions are one of those things that’s easier to visualise than think about. At it’s heart, a recursive function is one that calls itself in over and over again until a result is found. At first that doesn’t make sense so let’s look at an … Continue reading Visualising recursive functions→
I’ve had zero time to update the blog recently. As some of you may know, I recently started a new job with Google. I’ve moved my family and I over from the UK to Dublin, Ireland. To say I’m busy right now is an understatement. Not only is there a ton of reading for me […]
Let me preface this post by stating I am not a database expert. I use them occasionally now and then. The below post probably doesn’t show best practices. If you have any suggestions feel free to comment. Over the weekend I’ve been testing various ways for me to store, update, and retrieve data from a […]
I created two new twitter accounts yesterday and the amount of followers in such a short time is great to see. Feel free to follow them here – @bgp4_table and @bgp6_table The accounts get updated through Python, and that Python script is run via a cron job once every six hours. I noticed that when […]
For an electronics project I’m working on I wanted a way to check the current global routing table every five minutes for both IPv4 and IPv6. I did not want to log into anyone else’s router or looking glass as checking every 5 minutes may be considered abuse. So I thought to spin up a […]
At the end of my last post on Python multithreading, I said my example was not the best. Let me expand some more on this. While testing code in the previous post, I noticed that certain code was slower when multiple threads were running. Also these threads are not tied to a CPU. If we […]
The first ‘proper’ Python app I made logged onto a list of devices and pulled out OSPF state. This worked perfectly fine. The app correctly works out whether it can log into a device or not, and waits a few seconds to ensure a device actually responds. The issue is that if I have a […]
I had a specific requirement recently and I wanted to test it’s behaviour. In particular the feature is DHCP snooping. Let’s quickly go over the DHCP process at a high level to see how it works: DHCP Let’s take the following simple diagram to show what’s going on. We have a switch with two hosts […]
I usually have access to an ESX box at work where I can run multiple VMs and virtual routers for labbing and testing. I’ve also wanted one at home. It’s nice to be able to quickly spin up VMs when needed without always running them through my laptop. While virtual routers don’t need lots of […]
I’ve just started with object oriented programming in Python so I thought I’d cover some of the basics here. Please don’t assume this is a thourough tutoriol on OOP! The beauty of OOP is that it allows me to create a template with which I can create objects. The building blocks of the object sit […]
I’d like helpdesk to be able to enable and disable switchports without requiring them to know the underlying OS. My plan is to have a webpage with a list of devices. When you click on a device it will check the interfaces status via SNMP and display administrative and operational status of all interfaces on […]
I originally started my PMTUD posts using Ubuntu 14.04. Halfway through the post I simply could not get Ubuntu to change it’s MTU on receipt of ICMP fragmentation needed messages. I then tried Debian and it worked. Windows also had no issues changing it’s MTU. Wanting to finish off the post I switched to Debian […]
This is a continuation of a post I started back here. Please read it first before starting below. RFC 4821 Another workaround we can use is Packetization Layer Path MTU Discovery – RFC 4821. The RFC enables a host to mainly acts in one of two ways: Use regular PMTUD. If no acknowledgments are received […]
One of IPv6′s features is the fact that routers are no longer supposed to fragment packets. Rather it’s up to the hosts on either end to work out the path MTU. This is different in IPv4 in which the routers along the path could fragment the packet. Both IPv4 and IPv6 have a mechanism to […]
I’ve gone over the OSPFv2 and OSPFv3 databases in depth before. Now is the time for IS-IS. As always, I’ll start from a basic two router set up and add devices to the topology. Basic LSPs In OSPF we use the term LSA, Link-State Advertisement. In IS-IS we use the term LSP – Link-State PDUs. […]