<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Torbjorn.dev</title><link>https://torbjorn.dev/</link><description>Recent content on Torbjorn.dev</description><language>en-us</language><copyright>This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.</copyright><lastBuildDate>Fri, 24 Apr 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://torbjorn.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Moving to Forgejo on Hetzner</title><link>https://torbjorn.dev/blog/forgejo-on-hetzner/</link><pubDate>Wed, 01 Apr 2026 10:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/forgejo-on-hetzner/</guid><description>&lt;p&gt;&lt;img src="https://torbjorn.dev/img/blog/forgejo-migration/intro.png" alt="A hermit crab moving from a corporate shell into a hand-forged metal one"&gt;&lt;/p&gt;
&lt;p&gt;I recently moved my git repositories off GitHub and onto a self-hosted &lt;a href="https://forgejo.org"&gt;Forgejo&lt;/a&gt; instance running on a Hetzner VPS.
The whole thing costs €4.49/month and took an afternoon to set up.&lt;/p&gt;
&lt;p&gt;In this post I&amp;rsquo;ll walk through the deployment, the reasoning behind it and migration steps. This is meant as inspiration, not a batteries-included guide. Adapt it to your own needs.&lt;/p&gt;</description></item><item><title>Gleaning DNS resolver behavior</title><link>https://torbjorn.dev/blog/resinfo/</link><pubDate>Sun, 01 Mar 2026 10:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/resinfo/</guid><description>&lt;p&gt;&lt;img src="https://torbjorn.dev/img/blog/resinfo/dig-resinfo.png" alt="Query response to check.my.dns.resinfo.net"&gt;&lt;/p&gt;
&lt;p&gt;You probably trigger your first query to a DNS resolver before putting socks on in the morning (and so do I).&lt;/p&gt;
&lt;p&gt;What happens when you open &amp;ldquo;lkml.org&amp;rdquo; in your browser is fairly predictable, but what happens when said request hits the resolver varies widely.
This is usually opaque to both you, the user, and the DNS client.
&lt;a href="https://datatracker.ietf.org/doc/html/rfc9606/"&gt;RFC 9606&lt;/a&gt; with its RESINFO record is intended to solve this, but it is about as widely implemented as &lt;a href="https://datatracker.ietf.org/doc/html/rfc2549"&gt;RFC 2549&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Tuning Vibe CLI for Network Engineering</title><link>https://torbjorn.dev/blog/mistral-vibe-cli-for-network-engineering/</link><pubDate>Tue, 16 Dec 2025 10:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/mistral-vibe-cli-for-network-engineering/</guid><description>&lt;div style='width: 100%;'&gt;
&lt;img style='margin: auto; display: block;' src="https://torbjorn.dev/img/blog/mistral-vibe-cli-network-engineering/mistral-vibe-cli-intro.png" class="full-img" alt=""&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/mistralai/mistral-vibe"&gt;Vibe CLI&lt;/a&gt; is Mistral&amp;rsquo;s answer to Claude Code and OpenAI Codex. Out of the box it&amp;rsquo;s optimised for software development, not network engineering. But with the some configuration tweaking it&amp;rsquo;s surprisingly capable for network tasks.&lt;/p&gt;
&lt;p&gt;&lt;a href="#summary"&gt;TL;DR&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="model-selection"&gt;Model selection&lt;/h2&gt;
&lt;p&gt;Vibe defaults to Devstral. It does quite a good job for most things but certain complex tasks do better with reasoning. My general &amp;ldquo;strategy&amp;rdquo; is to use Devstral until it seems to get stumped or otherwise performs poorly, then switch to Magistral.&lt;/p&gt;</description></item><item><title>Building your own Containerlab node kinds</title><link>https://torbjorn.dev/blog/creating-clab-node-kinds/</link><pubDate>Wed, 29 Oct 2025 12:07:52 +0000</pubDate><guid>https://torbjorn.dev/blog/creating-clab-node-kinds/</guid><description>&lt;p&gt;Over the last few weeks I&amp;rsquo;ve added several new node types to containerlab to cover my own lab needs. The process has been surprisingly straightforward after I got familiar with the codebase, and I figure others probably have devices they&amp;rsquo;d like to add too. This post will guide you through the basics of creating vrnetlab-based node kinds for containerlab - it&amp;rsquo;s easier than you might think.&lt;/p&gt;
&lt;p&gt;The node kinds I have contributed thus far are the following:&lt;/p&gt;</description></item><item><title>Containerlab Cisco images simplified</title><link>https://torbjorn.dev/blog/cml-nodes-in-clab/</link><pubDate>Sun, 26 Oct 2025 22:21:47 +0000</pubDate><guid>https://torbjorn.dev/blog/cml-nodes-in-clab/</guid><description>&lt;div style='width: 100%;'&gt;
&lt;img style='margin: auto; display: block;' src="https://torbjorn.dev/img/blog/cml-nodes-in-clab/cisco-vm_clab.png" class="full-img" alt=""&gt;
&lt;/div&gt;
&lt;p&gt;Running Cisco VMs in containerlab can feel surprisingly unintuitive if you&amp;rsquo;re coming from tools like EVE-NG or CML. This post will walk you through the first crucial step: building the images.&lt;/p&gt;
&lt;p&gt;&lt;a href="#summary"&gt;TL;DR&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="vrnetlab"&gt;vrnetlab&lt;/h2&gt;
&lt;p&gt;Vrnetlab is the glue that allows us to join VMs to _container_lab.
It does quite a few useful things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configures &amp;amp; runs VMs inside containers&lt;/li&gt;
&lt;li&gt;Enables &amp;ldquo;container native&amp;rdquo; networking&lt;/li&gt;
&lt;li&gt;Exposes serial to telnet on port 5000&lt;/li&gt;
&lt;li&gt;Loads configuration on startup&lt;/li&gt;
&lt;li&gt;Checks node state &amp;amp; health&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In sum this enables us to deploy containerlab nodes in a declarative and predictable manner.&lt;/p&gt;</description></item><item><title>EEM in Catalyst Center templates</title><link>https://torbjorn.dev/blog/eem-cc-templates/</link><pubDate>Sat, 05 Oct 2024 17:23:26 +0000</pubDate><guid>https://torbjorn.dev/blog/eem-cc-templates/</guid><description>&lt;p&gt;Introducing Catalyst Center templating to brownfield environments often require dynamic configuration outside of what jinja can offer.
I will cover a few scenarios below that demonstrates when and how EEM applets can assist you in overcoming some limitations in CC templating.&lt;/p&gt;
&lt;p&gt;&lt;a href="#summary"&gt;TL;DR&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="why-eem"&gt;Why EEM?&lt;/h2&gt;
&lt;p&gt;Jinja templates on the Catalyst Center are flexible enough to cover most scenarios where dynamic configuration is required, but it has a few notable limitations.
The main ones I face regularly are the lack of access to inventory variables &amp;amp; interactive commands in onboarding templates, and when your desired configuration requires referencing operational data.&lt;/p&gt;</description></item><item><title>PNP Licence level change</title><link>https://torbjorn.dev/blog/pnp-licence-level/</link><pubDate>Fri, 20 Sep 2024 13:05:22 +0000</pubDate><guid>https://torbjorn.dev/blog/pnp-licence-level/</guid><description>&lt;div style='width: 100%;'&gt;
&lt;img style='margin: auto; display: block;' src="https://torbjorn.dev/img/blog/pnp-license-change/pnp-dnac.png" class="large-img" alt=""&gt;
&lt;/div&gt;
&lt;p&gt;IOS-XE routers are currently not being shipped with the ordered license level applied.
This becomes an issue whenever you need non-default licensing level features during PNP onboarding(DMVPN spokes for example).
In this post I will cover the simplest way I have found to remediate this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This method does not work for changing license level from essentials to advantage on Catalyst 9000 series switches.&lt;/p&gt;
&lt;p&gt;&lt;a href="#summary"&gt;TL;DR&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="the-problem"&gt;The problem&lt;/h2&gt;
&lt;p&gt;Onboarding templates are quite limited in functionality. They don&amp;rsquo;t allow for any interactive commands such as reload and only permits you to push the full config in one go.
It is hence not possible to simply set the license level directly in the onboarding template. Solving this will hence require some form of on-box or off-box automation.
I will cover doing this on-box with EEM in this post.&lt;/p&gt;</description></item><item><title>EVE-NG Netplan configuration</title><link>https://torbjorn.dev/blog/eve-ng-netplan/</link><pubDate>Thu, 27 Jun 2024 17:18:34 +0000</pubDate><guid>https://torbjorn.dev/blog/eve-ng-netplan/</guid><description>&lt;div style='width: 100%;'&gt;
&lt;img style='margin: auto; display: block;' src="https://torbjorn.dev/img/blog/eve-ng-netplan/netplan-eve.png" class="full-img" alt=""&gt;
&lt;/div&gt;
&lt;p&gt;If you&amp;rsquo;re like me you found the introduction of &lt;a href="https://netplan.io/"&gt;Netplan&lt;/a&gt; to Ubuntu a fresh of breath air.
YAML is ubiquitous these days and is very convenient wherever manual modification is expected/required.
Why EVE-NG decides to stick with legacy configuration 7 years after the introduction is hence beyond me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; You will likely not get the same level of support from EVE-NG (if any) by converting to Netplan configuration&lt;/p&gt;</description></item><item><title>Deploying Hugo site to Bunny.net</title><link>https://torbjorn.dev/blog/hugo-on-bunny-net/</link><pubDate>Wed, 20 Mar 2024 17:04:51 +0000</pubDate><guid>https://torbjorn.dev/blog/hugo-on-bunny-net/</guid><description>&lt;p&gt;&lt;img src="https://torbjorn.dev/img/blog/hugo-on-bunny-net/hugo-bunny.png" alt="Splash image with logos of gohugo and bunny.net"&gt;&lt;/p&gt;
&lt;p&gt;As part of simplifying my personal tech-stack I found &lt;a href="https://bunny.net"&gt;Bunny.net&lt;/a&gt; to best fit the hosting needs for my static websites. It&amp;rsquo;s good, it&amp;rsquo;s fast &amp;amp; is&amp;rsquo;s cheap - a rare contradiction to RFC 1925!&lt;/p&gt;
&lt;p&gt;In this post I will cover automated site deployments with the following stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bunny Storage &amp;amp; CDN&lt;/li&gt;
&lt;li&gt;Github Actions&lt;/li&gt;
&lt;li&gt;Terraform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="#summary"&gt;TL;DR&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="bunnynet-infrastructure"&gt;Bunny.net infrastructure&lt;/h2&gt;
&lt;p&gt;To serve our website with Bunny we need two things:&lt;/p&gt;</description></item><item><title>CML Autoshutdown nodes</title><link>https://torbjorn.dev/blog/cml-autoshutdown/</link><pubDate>Sun, 25 Feb 2024 09:22:12 +0000</pubDate><guid>https://torbjorn.dev/blog/cml-autoshutdown/</guid><description>&lt;p&gt;If you manage a shared CML instance you probably have to remind your coworkers regularly to shut their labs down regularly to free up the node count. This is unfortunately not something that can be automatically handled out of the box, so we&amp;rsquo;ll have to make our own fix for this.&lt;/p&gt;
&lt;h2 id="the-solution"&gt;The solution&lt;/h2&gt;
&lt;p&gt;The easiest way to do this is to shut down all running labs each night. This isn&amp;rsquo;t perfect, but people quickly learn to save their configs after losing progress once or twice. We will accomplish this with a python script and a cronjob&lt;/p&gt;</description></item><item><title>Ubuntu, SecureCRT &amp; Telnet links</title><link>https://torbjorn.dev/blog/ubuntu-securecrt-telnet-links/</link><pubDate>Thu, 15 Feb 2024 19:13:07 +0100</pubDate><guid>https://torbjorn.dev/blog/ubuntu-securecrt-telnet-links/</guid><description>&lt;p&gt;&lt;img src="https://torbjorn.dev/img/blog/scrt-ubnt/scrt-ubnt.png" alt="SecureCRT &amp;amp; Ubuntu logos"&gt;&lt;/p&gt;
&lt;p&gt;SecureCRT will not open any SSH/Telnet links by default in Ubuntu 22.04. If you&amp;rsquo;ve found this writeup you have probably discovered this already. This article will hopefully save you some time and effort.&lt;/p&gt;
&lt;p&gt;&lt;a href="#tldr"&gt;TL;DR&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="explaination"&gt;Explaination&lt;/h2&gt;
&lt;p&gt;The problem can be split into two parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enabling SecureCRT to open links&lt;/li&gt;
&lt;li&gt;Ensuring SecureCRT is used for opening said links&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="desktop-entry"&gt;Desktop entry&lt;/h3&gt;
&lt;p&gt;Ubuntu uses &lt;a href="https://specifications.freedesktop.org/desktop-entry-spec/latest/"&gt;desktop entries&lt;/a&gt; to specify how a program should be launched. These are configuration files which among other things define which icon to use, description and which arguments the program accepts.&lt;/p&gt;</description></item><item><title>My CCIE - EI v1.1 Lab setup</title><link>https://torbjorn.dev/blog/ccie-ei-lab-v2/</link><pubDate>Sat, 13 Jan 2024 00:01:59 +0200</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-lab-v2/</guid><description>&lt;p&gt;One of the first hurdles one has to overcome in achieving the CCIE - EI is getting access to a proper lab environment.
This post covers how I have solved this for the CCIE EI v1.1.&lt;/p&gt;
&lt;h2 id="hardware--software"&gt;Hardware &amp;amp; Software&lt;/h2&gt;
&lt;p&gt;The new &lt;a href="https://learningcontent.cisco.com/documents/marketing/exam-topics/CCIEEIv1.1-equipment_and_SW.pdf"&gt;equipment and software list&lt;/a&gt; has some major changes. The most important changes are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The DNAC is bumped to a much improved v2.3&lt;/li&gt;
&lt;li&gt;The DNAC is now a lot easier to run virtualized!&lt;/li&gt;
&lt;li&gt;The vEdges are fully replaced by cEdges&lt;/li&gt;
&lt;li&gt;The CSR 1000v is replaced by the C8Kv&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="virtual-machines"&gt;Virtual machines&lt;/h3&gt;
&lt;p&gt;These images are included in Cisco Modeling Labs:&lt;/p&gt;</description></item><item><title>Catlyst 8000v cEdge support in EVE-ng</title><link>https://torbjorn.dev/blog/eve-c8000vcm/</link><pubDate>Thu, 28 Sep 2023 01:43:02 +0200</pubDate><guid>https://torbjorn.dev/blog/eve-c8000vcm/</guid><description>&lt;div style='width: 100%;'&gt;
&lt;img style='margin: auto; display: block;' src="https://torbjorn.dev/img/blog/eve-ng_c8000vcm/eve-c8000v.png" class="full-img" alt=""&gt;
&lt;/div&gt;
&lt;p&gt;When you spend copious amounts of time labbing it quickly becomes tedious to reset lab devices manually.
Especially so when you have multiple config-sets for labbing different technologies and scenarios.
This is enough reason alone to make EVE-ng the superior network labbing platform with its startup-configs feature.&lt;/p&gt;
&lt;p&gt;EVE-ng does however not support config import/export for all nodes out of the box.
After resetting the cEdges in my lab to my base config N times i thought to myself &amp;ldquo;This is just a c8000v in a different mode, adding config export/import should be a quick fix.&amp;rdquo;.
&lt;em&gt;I was wrong&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>CCIE - EI: 1.3 EIGRP 📝</title><link>https://torbjorn.dev/blog/ccie-ei-1-3-eigrp/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-1-3-eigrp/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;h1 id="13---eigrp"&gt;1.3 - EIGRP&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;AD&lt;/strong&gt; 90(internal), 170(external)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Transport:&lt;/strong&gt; IP/88 -&amp;gt; 224.0.0.10/FF02::A&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Timers:&lt;/strong&gt; 5/15, 60/180(sub 1544kbps nbma)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip hello-time eigrp {asn} {seconds}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip hold-time eigrp {asn} {seconds}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;eigrp&amp;gt; timers active-time {minutes}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Authentication:&lt;/strong&gt; MD5 and SHA&lt;/p&gt;
&lt;p&gt;Only MD5 is supported in classic configuration.
Usually configured with a key-ring, though SHA allows for configuration directly under af-interface. Only configurable per-interface(including default interface)&lt;/p&gt;</description></item><item><title>CCIE - EI: 1.4 OSPF 📝</title><link>https://torbjorn.dev/blog/ccie-ei-1-4-ospf/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-1-4-ospf/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;p&gt;The reference bandwidth can be different between adjacent routers, but it doesn&amp;rsquo;t make much sense to do so.&lt;/p&gt;
&lt;h1 id="14---ospf"&gt;1.4 - OSPF&lt;/h1&gt;
&lt;p&gt;Link state protocol using djikstra&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Timers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hello, 10s/30s&lt;/li&gt;
&lt;li&gt;Dead, 40s/120s&lt;/li&gt;
&lt;li&gt;Wait, equal to dead&lt;/li&gt;
&lt;li&gt;LSRefresh, 30m&lt;/li&gt;
&lt;li&gt;MaxAge, 30m&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Messages&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hello
&lt;ul&gt;
&lt;li&gt;Discovery&lt;/li&gt;
&lt;li&gt;Agreement on parameters&lt;/li&gt;
&lt;li&gt;Bidirectionality check&lt;/li&gt;
&lt;li&gt;Health check&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DBD&lt;/li&gt;
&lt;li&gt;LSR&lt;/li&gt;
&lt;li&gt;LSU&lt;/li&gt;
&lt;li&gt;LSAck&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;RID selection&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>CCIE - EI: 1.5 BGP 📝</title><link>https://torbjorn.dev/blog/ccie-ei-1-5-bgp/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-1-5-bgp/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;h1 id="15---bgp"&gt;1.5 - BGP&lt;/h1&gt;
&lt;h2 id="15a-ibgp-and-ebgp-peer-relationships"&gt;1.5a IBGP and EBGP peer relationships&lt;/h2&gt;
&lt;h3 id="ibgp-and-ebgp"&gt;iBGP and eBGP&lt;/h3&gt;
&lt;p&gt;Defined by the remote-as specified for a neighbor.&lt;/p&gt;
&lt;p&gt;Differences between iBGP and eBGP:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;eBGP defaults to next-hop-self&lt;/li&gt;
&lt;li&gt;eBGP uses an advertisement interval of 30, while iBGP uses 0 by default.&lt;/li&gt;
&lt;li&gt;eBGP packets are sent with a TTL of 1, while iBGP uses 255 by default.&lt;/li&gt;
&lt;li&gt;Some differences default behaviour for tie-breakers, see &lt;a href="#best-path-selection"&gt;1.5b Path selection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Some differences in default convergence optimzations, see &lt;a href="#15e-convergence-and-scalability"&gt;1.5e Convergence and Scalability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="peering"&gt;Peering&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Transport&lt;/strong&gt;: TCP/179&lt;br&gt;
Router with the lowest RID initiates peering.&lt;br&gt;
Initiating router can be identified with &lt;code&gt;show tcp brief&lt;/code&gt;&lt;br&gt;
Initiating router can be manually configured with &lt;code&gt;neighbor {} transport active&lt;/code&gt;&lt;/p&gt;</description></item><item><title>CCIE - EI: 1.6 Multicast 📝</title><link>https://torbjorn.dev/blog/ccie-ei-1-6-multicast/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-1-6-multicast/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;h1 id="16---multicast"&gt;1.6 - multicast&lt;/h1&gt;
&lt;p&gt;The documentation for multicast in IOS-XE 16.12 is not very good IMO. Configuration guides like MLD is nowhere to be found in detail&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Address ranges:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Permanent groups 224.0.0.0/23
&lt;ul&gt;
&lt;li&gt;Local groups 224.0.0.0/24, not to be routed&lt;/li&gt;
&lt;li&gt;Routed groups 224.0.1.0/24, will be routed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SSM groups 232.0.0.0/8&lt;/li&gt;
&lt;li&gt;GLOP addresses 233.0.0.0/8, globally unique experimental groups
&lt;ul&gt;
&lt;li&gt;GLOP address = 233.{first 8b of ASN}.{last 8b of ASN}.X&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Private groups 239.0.0.0/8
The remaining address space under 224.0.0.0/4 are &amp;ldquo;transient groups&amp;rdquo;, shared global address space for globally routed multicast groups.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;IPv6 addresses:&lt;/strong&gt;&lt;br&gt;
ff00::/8 is reserved for IPv6 multicast
Format: FF{flags}{scope}::{64b prefix}{32b group ID}&lt;/p&gt;</description></item><item><title>CCIE - EI: 3.1 MPLS 📝</title><link>https://torbjorn.dev/blog/ccie-ei-3-1-mpls/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-3-1-mpls/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;h1 id="31---mpls"&gt;3.1 - MPLS&lt;/h1&gt;
&lt;p&gt;Lower latency and higher throughput are two major benefits to MPLS/Label switching over IP routing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MPLS Header(4B):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;20b - Label&lt;/li&gt;
&lt;li&gt;3b - Exp&lt;/li&gt;
&lt;li&gt;1b - S-bit&lt;/li&gt;
&lt;li&gt;8b - TTL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;LIB&lt;/strong&gt; - Similar to the RIB, containing all local and remote labels + neighbor RID per associated prefix.&lt;br&gt;
&lt;strong&gt;LFIB&lt;/strong&gt; - Similar to the FIB, containing label, outgoing interface and label/action for the best LSP Segment.&lt;/p&gt;</description></item><item><title>CCIE - EI: 3.2 DMVPN 📝</title><link>https://torbjorn.dev/blog/ccie-ei-3-2-dmvpn/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-3-2-dmvpn/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;h1 id="32---dmvpn"&gt;3.2 - DMVPN&lt;/h1&gt;
&lt;p&gt;Docs:
Support &amp;gt; Products &amp;amp; Downloads &amp;gt; Networking Software (IOS and NX-OS) &amp;gt; IOS-XE 16 &amp;gt; Configuration Guides &amp;gt; 16.12.1 &amp;gt; Dynamic Multipoint VPN&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Phase 1&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;No spoke-spoke communication&lt;/li&gt;
&lt;li&gt;Summarization/filtering on hub&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phase 2&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Spoke-spoke communitcation through NHRP requests only&lt;/li&gt;
&lt;li&gt;Next-hop addresses must be intact for spoke-spoke communication&lt;/li&gt;
&lt;li&gt;No filtering/summarization&lt;/li&gt;
&lt;li&gt;Hub briefly used in spoke-spoke data-plane until NHRP request has been received&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phase 3&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Spoke-spoke communication, through NHRP requests/redirection.&lt;/li&gt;
&lt;li&gt;Filtering/summarization allowed&lt;/li&gt;
&lt;li&gt;NHRP redirect to packet-source when ingress and egress interface is equal.&lt;/li&gt;
&lt;li&gt;Hub briefly used in spoke-spoke data-plane until NHRP request/redirect has been received.&lt;/li&gt;
&lt;li&gt;Hierarchical DMVPN is supported &lt;em&gt;without&lt;/em&gt; hub daisy-chaining.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dmvpn-basics"&gt;DMVPN Basics&lt;/h2&gt;
&lt;h3 id="basic-configuration"&gt;Basic configuration&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Hub configuration&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>CCIE - EI: 4.0 Security and Services Pt. 1 📝</title><link>https://torbjorn.dev/blog/ccie-ei-4-0-security-and-services-pt-1/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-4-0-security-and-services-pt-1/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;h1 id="40---infrastructure-security-and-services-pt-1"&gt;4.0 - Infrastructure Security and Services Pt. 1&lt;/h1&gt;
&lt;h2 id="41-device-security-on-cisco-ios-xe"&gt;4.1 Device Security on Cisco IOS XE&lt;/h2&gt;
&lt;h3 id="control-plane-policing-and-protection"&gt;Control plane policing and protection&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CoPP - Control-plane Policing&lt;/strong&gt;&lt;br&gt;
Used to protect routers from DoS attacks through applying policing to control-plane traffic/punted traffic.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;class-map {}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; match {}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;policy-map {}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; class {}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; drop
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;! or
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; police {}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;control-plane
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; service-policy input {}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is a foot-gun if I&amp;rsquo;ve ever seen one&amp;hellip;&lt;/p&gt;</description></item><item><title>CCIE - EI: 4.0 Security and Services Pt. 2 📝</title><link>https://torbjorn.dev/blog/ccie-ei-4-0-security-and-services-pt-2/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-4-0-security-and-services-pt-2/</guid><description>&lt;p&gt;My CCIE Enterprise Infrastructure study notes, what I wrote down while preparing for the lab, not a complete resource.&lt;/p&gt;
&lt;h1 id="40---infrastructure-security-and-services-pt-2"&gt;4.0 - Infrastructure Security and Services Pt. 2&lt;/h1&gt;
&lt;h2 id="45-network-services"&gt;4.5 Network Services&lt;/h2&gt;
&lt;h3 id="45a-first-hop-redundancy-protocols"&gt;4.5.a First-Hop Redundancy Protocols&lt;/h3&gt;
&lt;h4 id="hsrp-glbp-vrrp"&gt;HSRP, GLBP, VRRP&lt;/h4&gt;
&lt;h5 id="glbp"&gt;GLBP&lt;/h5&gt;
&lt;p&gt;Gateway Load Balancing Protocol. Achieving HA load-balancing through ARP trickery and multiple mac addresses.&lt;/p&gt;
&lt;p&gt;Active Virtual Gateways(AVG) assign MAC addresses to Active Virtual Forwarders(AVF) and responds to ARP for the shared virtual IP address. The AVG allocates up to 4 MAC addresses per group to AVFs. GLBP routers can either be in Speak, Standby or Active state for a given group.&lt;/p&gt;</description></item><item><title>CCIE - EI: IPv6 📝</title><link>https://torbjorn.dev/blog/ccie-ei-ipv6/</link><pubDate>Fri, 29 Apr 2022 22:00:00 +0000</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-ipv6/</guid><description>&lt;p&gt;This is a summary of the notes I&amp;rsquo;ve made in preparation for the IPv6 parts of the exam. In other words, this only contains the stuff I felt the need to take note of. Please see &lt;a href="#study-resources"&gt;study resources&lt;/a&gt; for the resources I&amp;rsquo;ve used.&lt;/p&gt;
&lt;h1 id="ipv6"&gt;IPv6&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Fixed header size of 40B, compared to the minimum of 20B and maximum of 60B for IPv4.
&lt;ul&gt;
&lt;li&gt;IPv6 can use extension headers instead of the IPv4 IHS.&lt;/li&gt;
&lt;li&gt;IPv4 packet lengths must adhere to a 32b divisible length and IPv6 must adhere to a 64b divisible length.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;TOS field is identical to IPv4&lt;/li&gt;
&lt;li&gt;Flow labels are included in IPv6 to label all packets in a sequence to ensure equal treatment.
&lt;ul&gt;
&lt;li&gt;Very few applications actually uses this though&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The total length field &lt;em&gt;includes the header&lt;/em&gt; in IPv4, while it excludes the header in IPv6
&lt;ul&gt;
&lt;li&gt;Jumbograms are packets with payloads larger than the 16b length field allows, only possible in IPv6 where the MTU is insane.&lt;/li&gt;
&lt;li&gt;v6 requires an MTU of 1280b, while IPv4 only requires an MTU of 68b.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The &amp;ldquo;protocol&amp;rdquo; field is replaced with the &amp;ldquo;next-header&amp;rdquo; field in IPv6.
&lt;ul&gt;
&lt;li&gt;The protocol numbers used in IPv4 is reused in the IPv6 next-header field.&lt;/li&gt;
&lt;li&gt;The next-header field will either point to a type of payload or extension header(which again contains a next-header field)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The TTL field has been renamed to hop-limit in IPv6&lt;/li&gt;
&lt;li&gt;The checksum field is removed from IPv6 headers as they&amp;rsquo;re not needed.
&lt;ul&gt;
&lt;li&gt;UDP checksum is hence mandatory in IPv6&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Extension headers&lt;/strong&gt;
There are currently six extension headers for IPv6:&lt;/p&gt;</description></item><item><title>My CCIE - EI Lab setup</title><link>https://torbjorn.dev/blog/ccie-ei-lab/</link><pubDate>Thu, 23 Sep 2021 00:01:59 +0200</pubDate><guid>https://torbjorn.dev/blog/ccie-ei-lab/</guid><description>&lt;p&gt;One of the first hurdles one has to overcome in achieving the CCIE - EI has been getting access to a proper lab environment.
At the time of writing I have not found any reputable &amp;ldquo;rack rental&amp;rdquo; provider for the CCIE - EI. Hence I found it neccessary to build my own.&lt;/p&gt;
&lt;p&gt;&lt;a href="#the-end-result"&gt;Click here&lt;/a&gt; if you want to go straight to the inventory list.&lt;/p&gt;
&lt;h2 id="hardware--software"&gt;Hardware &amp;amp; Software&lt;/h2&gt;
&lt;p&gt;Cisco has released &lt;a href="https://learningnetwork.cisco.com/s/article/ccie-enterprise-infrastructure-equipment-and-software-list"&gt;the equipment and software list&lt;/a&gt; for the CCIE - EI Pods for the exam. This is the logical starting point for any lab build. I will break down my choices of lab software choices by the points on this list.&lt;/p&gt;</description></item><item><title>Hello world!</title><link>https://torbjorn.dev/blog/hello-world/</link><pubDate>Sun, 22 Aug 2021 01:51:26 +0200</pubDate><guid>https://torbjorn.dev/blog/hello-world/</guid><description>&lt;p&gt;After being over a year in the making, this website is finally live. 🎉&lt;/p&gt;
&lt;p&gt;A lot has happened since the first commit for this site: A pandemic hit, I moved, and I became a father of two. I should have settled for a simple Wordpress site&amp;hellip;&lt;/p&gt;
&lt;h2 id="goals"&gt;Goals&lt;/h2&gt;
&lt;p&gt;This site was made with a few goals in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Having a single place to refer to when sharing information.&lt;/li&gt;
&lt;li&gt;Assist me in learning through writing longer-form articles about technology.&lt;/li&gt;
&lt;li&gt;Being able to publish to a platform that I own and control.&lt;/li&gt;
&lt;li&gt;Functioning as an extension of my CV/Resume&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whether I am able to fulfill my wishes through this site is yet to be seen.
I am hoping to be able to publish a post on this site on a bi-weekly basis.&lt;/p&gt;</description></item></channel></rss>