<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us">
  <generator uri="https://gohugo.io/" version="0.160.0">Hugo</generator>
  <title type="html"><![CDATA[ipSpace.net blog]]></title>
  <link href="https://blog.ipspace.net/" rel="alternate" type="text/html" title="html" />
  <link href="https://blog.ipspace.net/atom.xml" rel="self" type="application/atom+xml" title="atom" />
  <link href="https://blog.ipspace.net/index.xml" rel="alternate" type="application/rss+xml" title="rss" />
  <updated>2026-04-10T13:26:09+00:00</updated>
  
  <id>https://blog.ipspace.net/</id>
  <entry>
    <title type="html"><![CDATA[Public Videos: Docker 101]]></title>
    <link href="https://blog.ipspace.net/2026/04/docker-101-videos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/04/docker-101-videos/</id>
    <published>2026-04-10T07:36:00+01:00</published>
    <updated>2026-04-10T07:36:00+01:00</updated>
    
    <content type="html"><![CDATA[<p class="sideicon"><img src="/2026/04/containers.png" alt=""></p>
<p>While according to the GIFEE True Believers™, Docker is dead and Kubernetes rules the world, people who want to have a bit of life might be perfectly happy running “obsolete” stuff like Docker on their laptops or Linux VMs.</p>
<p>If you happen to be one of the latter, you might like the <a href="https://my.ipspace.net/bin/list?id=Docker101">Introduction to Docker</a> webinar I put together a few years ago. It’s now public; you can watch it with an ipSpace.net account.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/list?id=Docker101">Explore</a></div>
<p>Looking for more binge-watching materials? You&rsquo;ll find them <a href="https://www.ipspace.net/Subscription/Free">here</a>.</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Interoperability of EVPN/VXLAN with IPv6 Next Hops]]></title>
    <link href="https://blog.ipspace.net/2026/04/frr-evpn-ipv6-pmsi/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/04/frr-evpn-ipv6-pmsi/</id>
    <published>2026-04-08T08:19:00+02:00</published>
    <updated>2026-04-08T08:19:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://frrouting.org/release/10.6.0/">FRRouting release 10.6</a> promised &ldquo;<em>BGP IPv6 VTEP support</em>,&rdquo; claiming &ldquo;<em>it enables EVPN deployments using IPv6 tunnel endpoints while maintaining full backward compatibility with IPv4 VTEPs</em>.&rdquo; Of course, I had to try it out, and since we already have EVPN over IPv6 running on Arista EOS (since netlab <a href="https://netlab.tools/release/26.01/">release 26.01</a>), I decided to set up a simple lab with an Arista cEOS device running release 4.35.2F and the latest FRRouting container.</p>
<p>I was not exactly surprised when it did not work. While Arista accepted FRRouting EVPN routes, the FRRouting BGP daemon rejected routes sent by Arista EOS:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/04/frr-evpn-ipv6-pmsi/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Shameless Guesses, Not Hallucinations]]></title>
    <link href="https://blog.ipspace.net/2026/04/worth-reading-ai-shameless-guesses/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/04/worth-reading-ai-shameless-guesses/</id>
    <published>2026-04-07T07:36:00+02:00</published>
    <updated>2026-04-07T07:36:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In a recent article, Scott Alexander made an interesting point:
<a href="https://www.astralcodexten.com/p/shameless-guesses-not-hallucinations">What AI produces are not hallucinations but shameless guesses</a> (also known as <a href="/2024/07/worth-reading-chatgpt-bullshit/">bullshit</a>) because the training process rewards the correct answers but does not penalize the incorrect ones. After all, having an AI model say, &ldquo;I don&rsquo;t know that&rdquo; is not good for business, is it?</p>
<p>On a tangential note, calling those blunders <em>hallucinations</em> was a marketing masterstroke. Not being a native English speaker, I might be missing some nuances, but I feel like <em>hallucinations</em> might be something you&rsquo;re not responsible for (some of the time), whereas we all know who&rsquo;s responsible for <em>bullshit</em> and <em>shameless guesses</em> &ndash; and <em>responsibility</em> is something the AI companies are clearly trying to stay as far away from as possible.</p>
<p>On another tangential note, if you&rsquo;re not following Scott Alexander&rsquo;s <del>blog</del> <a href="https://www.astralcodexten.com/">substack</a>, you&rsquo;re missing out.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Summarizing IS-IS Level-1 Routes]]></title>
    <link href="https://blog.ipspace.net/2026/04/isis-summary/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/04/isis-summary/</id>
    <published>2026-04-03T08:02:00+01:00</published>
    <updated>2026-04-03T08:02:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>IS-IS was designed to carry <a href="https://blog.ipspace.net/2024/02/interface-node-addresses/">node addresses</a> (NSAPs) between level-1 routers (called <em>Intermediate Systems</em>) within an area and area prefixes between level-2 routers, resulting in a perfect separation of concerns and forwarding information summarization. When IETF tried to use the same routing protocol for a networking stack with a <a href="https://blog.ipspace.net/2021/05/fundamentals-need-interface-addresses/">completely different addressing mentality</a>, something had to give.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/04/isis-summary/'>Read more &hellip;</a></div>]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SR Linux Configuration Conversion Tool]]></title>
    <link href="https://blog.ipspace.net/2026/04/srlinux-config-conversion/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/04/srlinux-config-conversion/</id>
    <published>2026-04-02T08:35:00+02:00</published>
    <updated>2026-04-02T08:35:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A year ago, I was complaining about <a href="https://blog.ipspace.net/2025/04/api-data-model-contract/">SR Linux breaking its configuration data model with a new software release</a>. At that time, I was promised it would only happen once a year, and, like clockwork, that moment arrived with the SR Linux release 26.03.</p>
<p>However, this year <a href="https://www.linkedin.com/in/michelredondo/">Miguel Redondo</a> fixed the netlab SR Linux configuration templates (<a href="https://github.com/ipspace/netlab/pull/3232">VRF export policies</a>, <a href="https://github.com/ipspace/netlab/pull/3235">LocPref routing policy changes</a>) before I could even start looking at them, and <a href="https://www.linkedin.com/in/rdodin/">Roman Dodin</a> released a <a href="https://github.com/srl-labs/srlconv">tool</a> that tells you exactly what changed between software releases and how to fix it.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/04/srlinux-config-conversion/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Every Layer of Review Makes You 10x Slower]]></title>
    <link href="https://blog.ipspace.net/2026/04/worth-reading-reviews-are-slowing-you/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/04/worth-reading-reviews-are-slowing-you/</id>
    <published>2026-04-01T08:25:00+02:00</published>
    <updated>2026-04-01T08:25:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/apenwarr/">Avery Pennarun</a> published yet another excellent article: <a href="https://apenwarr.ca/log/20260316">every layer of review makes you 10x slower</a>, effectively reiterating what I&rsquo;ve been <a href="/2014/09/youve-been-doing-same-thing-for-last-20/">saying for decades</a>: all the technology in the world won’t help you unless you re-architect the broken processes.</p>
<p>AI is no exception, but of course, the AI evangelists, LinkedIn AI Wranglers<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, and Thought Leaders will never tell you that (or even admit it).</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Yes, you can find BS like that on LinkedIn. You&rsquo;re not surprised, are you?&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Use Your Preferred Device for External Routers]]></title>
    <link href="https://blog.ipspace.net/2026/03/bgp-labs-device-flexibility/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/bgp-labs-device-flexibility/</id>
    <published>2026-03-31T07:34:00+02:00</published>
    <updated>2026-03-31T07:34:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR:</strong> With the recent changes to <a href="https://bgplabs.net/">online BGP labs</a>, you can also use Aruba CX, Cisco IOS, Cisco IOS XE, Cisco IOS XR, Dell OS10, Junos, or VyOS as external lab devices in most lab exercises (you could always use these devices for the routers you worked on). Previously, you could choose between Arista EOS and FRRouting, both of which are (obviously) still supported.</p>
<p>One of the goals of the <a href="https://bgplabs.net/">Online BGP Labs project</a> was to create an environment in which you could practice the BGP features you were interested in without spending an inordinate amount of time preparing the lab.</p>
<p>For example, if you want to figure out <a href="https://bgplabs.net/policy/e-wedgies/">why BGP wedgies work the way they do</a>, you need at least four additional autonomous systems, two of them acting as upstream ISPs for your customer router, and at least one of them implementing BGP policies using BGP communities.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/bgp-labs-device-flexibility/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Changing Interfaces Connected to netlab Links]]></title>
    <link href="https://blog.ipspace.net/2026/03/netlab-ifindex/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/netlab-ifindex/</id>
    <published>2026-03-30T07:27:00+02:00</published>
    <updated>2026-03-30T07:27:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Some netlab users want to accurately replicate their physical network&rsquo;s topology in a virtual lab. Ignoring the <a href="/2025/06/digital-twins-powerpoint-reality/">obvious caveats</a> for a moment, the first hiccup is usually the interface naming. All bets are off if you&rsquo;re using anything but Ethernet in your actual network, but even if you did standardize on Ethernet, the container/VM interface names might not match the physical ones.</p>
<p>netlab provided a solution for a long time &ndash; you can <a href="https://netlab.tools/links/#changing-interface-names">specify interface <strong>ifindex</strong></a> when attaching a node to a link. For example, use the following topology to connect Ethernet3 on R1 to Ethernet6 on R2:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/netlab-ifindex/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Securing NTP and the Origins of Time]]></title>
    <link href="https://blog.ipspace.net/2026/03/worth-reading-ntp-origins-time/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/worth-reading-ntp-origins-time/</id>
    <published>2026-03-26T07:54:00+01:00</published>
    <updated>2026-03-26T07:54:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Geoff Huston published <a href="https://blog.apnic.net/2026/03/10/securing-ntp/">an article supposedly describing the challenge of securing NTP</a>, but as is usually the case, he couldn&rsquo;t skip the <em>prior art</em> going all the way back (almost) to the formation of Earth.</p>
<p>Before coming to the <em>how do we secure NTP</em> section, you&rsquo;ll learn everything about the wobbly Earth rotation, the changes in the Earth&rsquo;s angular speed, the impact of tides, the smearing of leap seconds, the differences between UT1 and UTC, why we use quasars to measure time, and everything there is to know about NTP. Have fun!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Why We've Tried to Replace Developers Every Decade]]></title>
    <link href="https://blog.ipspace.net/2026/03/worth-reading-replacing-developers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/worth-reading-replacing-developers/</id>
    <published>2026-03-24T08:19:00+01:00</published>
    <updated>2026-03-24T08:19:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The never-ending &ldquo;we will replace developers&rdquo; (or networking engineers) pipe dream didn&rsquo;t start with the latest bout of AI hype (or SDN). As Stephan Schwab explains in his <a href="https://www.caimito.net/en/blog/2025/12/07/the-recurring-dream-of-replacing-developers.html">Why We&rsquo;ve Tried to Replace Developers Every Decade</a> article, it started with COBOL, the magic high-level programming language that businesspeople would use to write their own programs.</p>
<p>At least some of us know how well that ended. I was also unfortunate to be there for the 5GL hype, the forms-driven programming hype, the &ldquo;everyone will solve every problem out there with Excel macros&rdquo; (it does work for networking inventory, doesn&rsquo;t it?), and a few others. So please excuse me if I remain a bit skeptical about the latest fad, even though I find it (like all the previous ones) very useful when used conservatively in limited domains.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Switch to Lab Directory After an SSH Session Loss]]></title>
    <link href="https://blog.ipspace.net/2026/03/netlab-switch-lab-directory/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/netlab-switch-lab-directory/</id>
    <published>2026-03-23T08:31:00+01:00</published>
    <updated>2025-10-13T09:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I work on a laptop that loves to power down when not used (the right thing to do), which often breaks the SSH session to my netlab server (not so good).</p>
<p>Reconnecting is trivial. Figuring out <em>which lab I was working on</em> and <em>where it lives on the disk</em> after a few hours? That’s the annoying part.</p>
<p>We solved most of that ages ago with the <code>netlab status --all</code> <a href="https://netlab.tools/netlab/status/">command</a>. It shows all running labs<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and their directories, so you can quickly jump back to where you were. However, even that gets tedious the 100th time you have to do it.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/netlab-switch-lab-directory/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Anycast Gateways on VXLAN Segments]]></title>
    <link href="https://blog.ipspace.net/2026/03/lab-vxlan-anycast/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/lab-vxlan-anycast/</id>
    <published>2026-03-20T08:09:00+01:00</published>
    <updated>2026-03-20T08:09:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Most vendors &ldquo;discovered&rdquo; anycast gateways when they tried implementing routing between MAC-VRFs in an EVPN environment and hit all the usual tripwires (more about that later). A few exceptions (like <a href="/2013/06/arista-eos-virtual-arp-varp-behind/">Arista</a>) supported them on VLAN segments for over a decade, and it was a no-brainer to extend that support to VXLAN segments.</p>
<p>Want to try out how that works? The <a href="https://evpn.bgplabs.net/vxlan/4-anycast/">Anycast Gateways on VXLAN Segments</a> lab exercise is just what you need.</p>

<figure><img src="https://evpn.bgplabs.net/vxlan/topology-anycast.png"/>
</figure>
<p>You can run the lab on your own <em>netlab</em>-enabled infrastructure (<a href="https://evpn.bgplabs.net/1-setup/">more details</a>), but also within a <a href="https://evpn.bgplabs.net/4-codespaces/">free GitHub Codespace</a> or even on your Apple-silicon Mac (<a href="https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/">installation</a>, <a href="https://blog.ipspace.net/2025/02/arista-ceos-arm-apple-silicon/">using Arista cEOS container</a>, <a href="https://evpn.bgplabs.net/1-setup/#defaults">using VXLAN/EVPN labs</a>).</p>
<div class='jump-link'><a href="https://evpn.bgplabs.net/vxlan/4-anycast/">Explore the lab exercise</a></div>
]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Arista EOS MPLS P/PE-router Behavior]]></title>
    <link href="https://blog.ipspace.net/2026/03/arista-eos-mpls-behavior/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/arista-eos-mpls-behavior/</id>
    <published>2026-03-19T08:03:00+01:00</published>
    <updated>2026-03-19T08:03:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Something didn&rsquo;t feel right as I tried to check whether the <a href="/2026/03/ecmp-arista-ceos/">IPv4 ECMP</a> I observed in the latest version of Arista cEOS containers works with my <a href="/2021/11/anycast-mpls/">MPLS/anycast scenario</a>. The forwarding tables seemed OK, but I wasn&rsquo;t getting MPLS labels in the ICMP replies (see <a href="https://datatracker.ietf.org/doc/html/rfc4950">RFC 4950</a> for details), even though I know Arista EOS can generate them.</p>
<p>I decided to go down that rabbit hole and built the simplest possible BGP-free core (the addition of BGP will become evident in a few seconds) to investigate PE/P-router behavior:</p>

<figure><img src="/2026/03/ldp-lfib-topo.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/arista-eos-mpls-behavior/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Goodbye, Cumulus Linux]]></title>
    <link href="https://blog.ipspace.net/2026/03/bgp-labs-goodbye-cumulus/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/bgp-labs-goodbye-cumulus/</id>
    <published>2026-03-18T07:30:00+02:00</published>
    <updated>2026-03-18T07:30:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>When I <a href="https://bgplabs.net/99-about/">started the Online BGP Labs project</a> in mid-2023, Cumulus Linux still seemed like a good platform to use. You could run devices as virtual machines (we were still supporting VirtualBox) or in containers (containerlab was improving with every release), and it looked more polished than bare-bones FRRouting.</p>
<p>Things only went downhill from there (from the perspective of offering a free and easy-to-use solution with a CLI resembling commonly-used devices):</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/bgp-labs-goodbye-cumulus/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MANRS for Enterprise Customers]]></title>
    <link href="https://blog.ipspace.net/2026/03/manrs-enterprise/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/manrs-enterprise/</id>
    <published>2026-03-17T08:13:00+01:00</published>
    <updated>2026-03-26T19:36:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In October 2023, I was <a href="https://blog.ipspace.net/2023/11/rapid-progress-rpki-route-origin-validation/">talking</a> about <a href="https://my.ipspace.net/bin/list?id=BGPSec">Internet routing security</a> at the DEEP conference in Zadar, Croatia. After explaining the (obvious) challenges and the initiatives aimed at making Internet routing more secure (<a href="https://manrs.org/">MANRS</a>), I made my usual recommendation: vote with your wallet. However, if you&rsquo;re a company in Croatia (or Slovenia, or a number of other countries), you&rsquo;re stuck.</p>
<p>While ISPs in Croatia might be doing a great job, none of them is a <a href="https://manrs.org/netops/participants/">MANRS participant</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, so we don&rsquo;t know how good they are. The situation is not much better in Slovenia; the only ISPs claiming to serve Slovenia are Anexia (a cloud provider) and Go6 Institute, the small network operated by my good friend (and True Believer in IPv6 and MANRS) <a href="https://www.linkedin.com/in/janzorz/">Jan Žorž</a>. Moving further north, there are decent choices in Austria, and tons of options in Germany or Switzerland. I must be living in a truly thrifty part of Europe.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/manrs-enterprise/'>Read more &hellip;</a></div>]]></content>
    <category term="Internet" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Graphs with Multi-Access Links]]></title>
    <link href="https://blog.ipspace.net/2026/03/netlab-graphs-multiaccess/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/netlab-graphs-multiaccess/</id>
    <published>2026-03-16T08:03:00+01:00</published>
    <updated>2025-10-13T09:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A netlab user wanted to <a href="https://github.com/ipspace/netlab/issues/3197">create a nice-looking topology graph</a> from a simple topology connecting a few devices to a broadcast (multi-access) link. I don&rsquo;t have his exact topology, so we&rsquo;ll use this one (skipping the details like setting device types)</p>
<pre tabindex="0"><code>nodes: [ r1, r2, h1, h2 ]

links:
- r1-r2
- interfaces: [ r1, r2, h1, h2 ]
</code></pre><p>This is what GraphViz generates based on netlab&rsquo;s description of the lab topology:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/netlab-graphs-multiaccess/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Device Telemetry Protocols with Dinesh Dutt]]></title>
    <link href="https://blog.ipspace.net/2026/03/network-device-telemetry-protocols/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/network-device-telemetry-protocols/</id>
    <published>2026-03-13T07:41:00+01:00</published>
    <updated>2026-03-13T07:41:00+01:00</updated>
    <link rel="enclosure" type="audio/mpeg" href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_205-Network_Device_Telemetry_Protocols.mp3" />
    <content type="html"><![CDATA[<p>Whenever I&rsquo;m <a href="/2025/04/api-data-model-contract/">ranting about vendors changing their data models or APIs</a> with every other release, there is inevitably a vendor engineer chiming in, <a href="https://blog.ipspace.net/2025/04/api-data-model-contract/#2619">saying</a>, &ldquo;Life would be so much better if the customers wouldn&rsquo;t insist on doing screen scraping for the last 50 years.&rdquo;</p>
<p>While some of that screen scraping is pure inertia, we sometimes have good reasons to do it rather than use protocols like NETCONF, gNMI, or protobufs. In Episode 205 of Software Gone Wild, I&rsquo;m discussing some of those reasons and exploring the gap between vendor theory and reality with <a href="https://www.stardustsystems.net/team">Dinesh Dutt</a>, who is unlucky enough to have become the world&rsquo;s foremost expert on crappy network telemetry.</p>
<div class='jump-link'><a href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_205-Network_Device_Telemetry_Protocols.mp3">Listen to the podcast</a></div>
]]></content>
    <category term="Software Gone Wild" />
    <category term="podcast" />
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IPv4 ECMP Works on Arista cEOS Release 4.35.2F]]></title>
    <link href="https://blog.ipspace.net/2026/03/ecmp-arista-ceos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/ecmp-arista-ceos/</id>
    <published>2026-03-12T10:09:00+01:00</published>
    <updated>2026-03-12T10:09:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I wrote about the <a href="/2021/11/anycast-mpls/">anycast-ECMP-in-MPLS behavior</a> in 2011, I had to use Cisco IOS to prove that ECMP worked, since Arista cEOS (running the Linux kernel for IP forwarding) didn&rsquo;t install more than one equal-cost path into the Linux forwarding table.</p>
<p>Arista cEOS got better in the meantime; IPv4 ECMP works like a charm on cEOS release 4.35.02F. With the <a href="https://github.com/ipspace/netlab-examples/blob/master/routing/anycast-mpls-ospf/topology.yml">same lab topology</a> I&rsquo;d <a href="/2021/11/anycast-mpls/">used in 2021</a>, I was able to see the traffic spread across multiple nodes:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/ecmp-arista-ceos/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dynamic Path MTU Discovery in Cloudflare One Client]]></title>
    <link href="https://blog.ipspace.net/2026/03/worth-reading-cloudflare-vpn-dynamic-mtu/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/worth-reading-cloudflare-vpn-dynamic-mtu/</id>
    <published>2026-03-11T08:14:00+01:00</published>
    <updated>2026-03-11T08:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s an interesting tidbit from the <em>what took them so long</em> department: <a href="https://blog.cloudflare.com/client-dynamic-path-mtu-discovery/">Cloudflare One Client continuously measures end-to-end MTU</a> and adjusts the local tunnel interface MTU size accordingly (warning: there&rsquo;s a fair amount of dubious handwaving over the interesting details), generating ICMP packet-too-big messages as close to the source as possible.</p>
<p>I managed to avoid VPN clients most of my life, so I have no idea whether this is a &ldquo;<em>finally someone figured that out</em> 🎉&rdquo; moment or a late catch-up to what other VPN clients have been doing for ages. Feedback (in comments or otherwise) would be most welcome!</p>
]]></content>
    <category term="worth reading" />
    <category term="VPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 26.03: EVPN/MPLS, IOS XR Features]]></title>
    <link href="https://blog.ipspace.net/2026/03/netlab-26-03/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/netlab-26-03/</id>
    <published>2026-03-10T09:11:00+01:00</published>
    <updated>2026-03-10T09:11:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> release 26.03 is out. Here are the highlights:</p>
<ul>
<li><a href="https://netlab.tools/release/26.03/#release-26-03-ios-xr">New Cisco IOS XR features</a>: SR-MPLS, MPLS/VPN, MPLS 6PE, EVPN over MPLS, VRRP, BGP session parameters, routing policies, prefix filters, AS-path filters, community filters, and static routes</li>
<li><a href="https://netlab.tools/caveats/#caveats-crpd">Juniper cRPD</a> support (mostly by <a href="https://github.com/leec-666">@leec-666</a>)</li>
<li><a href="https://netlab.tools/module/evpn/#module-evpn">EVPN/VXLAN</a> on Juniper vPTX and vJunos-router by <a href="https://github.com/rickycraft">@rickycraft</a></li>
<li>OpenBSD BGP support by <a href="https://github.com/remilocherer">@remilocherer</a></li>
<li><a href="https://netlab.tools/module/sr-mpls/#sr-mpls-platforms">SR-MPLS support for OSPFv2</a> on EOS, FRR, IOS XE, IOS XR</li>
<li>EVPN/MPLS improvements, including <a href="https://netlab.tools/module/evpn/#global-evpn-parameters">using SR-MPLS transport</a></li>
</ul>
<p>For even more details, check the <a href="https://netlab.tools/release/26.03/">release notes</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/netlab-26-03/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Automating netlab-Based Cisco SD-WAN Deployment]]></title>
    <link href="https://blog.ipspace.net/2026/03/cisco-sdwan-netlab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/cisco-sdwan-netlab/</id>
    <published>2026-03-09T08:29:00+01:00</published>
    <updated>2026-03-09T08:29:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>We haven&rsquo;t implemented support for Cisco SD-WAN in <em><a href="https://netlab.tools/">netlab</a></em> yet, and we might never do so; after all, <em>netlab</em> isn&rsquo;t meant to be a kitchen sink of vendor-specific features. However, having an open-source tool that uses <a href="https://netlab.tools/topology-reference/">input</a> and <a href="https://netlab.tools/outputs/ansible/">output</a> files with standardized encoding (JSON or YAML) makes it easy to develop an independent solution that adds functionality.</p>
<p>That&rsquo;s exactly what <a href="https://www.linkedin.com/in/seb-dargoeuves/">Sebastien d&rsquo;Argoeuves</a> did: he developed a <a href="https://github.com/sdargoeuves/automate_cisco_sdwan_lab">solution</a> that automates Cisco SD-WAN deployment after the corresponding <em>netlab</em> lab is started, and published it in a <a href="https://github.com/sdargoeuves/automate_cisco_sdwan_lab">GitHub repo</a>. If you&rsquo;re an SD-WAN fan, you must give it a try ;)</p>
]]></content>
    <category term="SD-WAN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Presentation: netlab Overview and Use Cases]]></title>
    <link href="https://blog.ipspace.net/2026/03/netlab-use-cases/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/netlab-use-cases/</id>
    <published>2026-03-05T09:24:00+01:00</published>
    <updated>2026-03-05T09:24:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Yesterday, I had a short presentation on netlab use cases during the NetBCN event. It covered a dozen examples, from rapid prototyping to testing network automation software and arguing with vendor TAC. I added the &ldquo;use cases&rdquo; part of the presentation to the standard netlab presentation; you can <a href="https://my.ipspace.net/bin/get/NetTools/netlab%20Overview%20and%20Use%20Cases%20%282026%29.pdf?doccode=NetTools">view the results on ipSpace.net</a> (no account or registration required).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetTools/netlab%20Overview%20and%20Use%20Cases%20%282026%29.pdf?doccode=NetTools">Explore</a></div>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Tale of Two EVPN/MPLS Encapsulations]]></title>
    <link href="https://blog.ipspace.net/2026/03/tale-two-evpn-mpls-encapsulations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/tale-two-evpn-mpls-encapsulations/</id>
    <published>2026-03-04T08:09:00+01:00</published>
    <updated>2026-03-04T08:09:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I decided it was high time to create <a href="https://github.com/ipspace/netlab/tree/dev/tests/integration/evpn">EVPN/MPLS</a> netlab <a href="/2024/05/netlab-integration-tests/">integration tests</a> and wanted to use the same approach I used for the EVPN/VXLAN ones:</p>
<ul>
<li>One of the PE-devices is the device we want to test</li>
<li>The other PE-device is a device that is known to work (ideally, an FRRouting container).</li>
<li>Bonus points if the other PE-device can generate operational data in JSON format. Using a device for which we already have a validation plugin is close to perfection.</li>
<li>Add a P-router in the middle because MPLS.</li>
<li>Attach some hosts to the two PE-devices (we&rsquo;re testing two MAC-VRFs in the <a href="https://github.com/ipspace/netlab/blob/dev/tests/integration/evpn/51-mpls-bridging.yml">final version of the test</a>)</li>
<li>After validating everything that can reasonably be validated (OSPF session, IBGP session, EVPN AF on IBGP session), do the end-to-end pings and hope for the best.</li>
</ul>
<p>This is the graph netlab created from the <a href="/2026/03/tale-two-evpn-mpls-encapsulations/#topo">lab topology</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/tale-two-evpn-mpls-encapsulations/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Faster than Dijkstra?]]></title>
    <link href="https://blog.ipspace.net/2026/03/worth-reading-faster-than-dijkstra/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/worth-reading-faster-than-dijkstra/</id>
    <published>2026-03-03T07:43:00+01:00</published>
    <updated>2026-03-03T07:43:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Bruce Davie published a nice article explaining why
<a href="https://systemsapproach.org/2026/02/09/faster-than-dijkstra/">it makes little sense</a> to use an algorithm that&rsquo;s <a href="https://www.quantamagazine.org/new-method-is-the-fastest-way-to-find-the-best-routes-20250806/">supposedly faster than Dijkstra&rsquo;s</a> in link-state routing protocols.</p>
<p>Other interesting data points from the article (and linked presentations):</p>
<ul>
<li>People are running (a few) thousands of routers in a single area</li>
<li>Running Dijkstra&rsquo;s algorithm on an emulated network with 2000 nodes took 100 msec&hellip; in 2003 (page 18 of <a href="https://archive.nanog.org/meetings/nanog29/presentations/filsfils.pdf">this NANOG presentation</a>).</li>
</ul>
<p>It turns out (as I expected) that all the noise about the <a href="/2018/08/is-bgp-good-enough-with-dinesh-dutt-on/">need for new routing protocols</a> we were experiencing a few years ago was either due to bad implementations or coming from nerds looking for new toys to play with.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Using L3VPN (MPLS/VPN) with SR-MPLS Core]]></title>
    <link href="https://blog.ipspace.net/2026/03/netlab-sr-mpls-l3vpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/03/netlab-sr-mpls-l3vpn/</id>
    <published>2026-03-02T10:39:01+00:00</published>
    <updated>2026-03-02T10:39:01+00:00</updated>
    
    <content type="html"><![CDATA[<p>Someone recently asked me whether it&rsquo;s possible to use <em>netlab</em> to build an MPLS/VPN (technically, <a href="https://www.rfc-editor.org/rfc/rfc4364">BGP/MPLS IP VPN</a>) lab with SR-MPLS core. Of course, let&rsquo;s build a simple lab using Arista EOS and Linux containers to implement this topology:</p>

<figure><img src="/2026/03/sr-vpnv4.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure>
<p>Here&rsquo;s the lab topology we&rsquo;ll use (also <a href="https://github.com/ipspace/netlab-examples/blob/master/MPLS/sr-vpnv4/">available on GitHub</a>):</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/03/netlab-sr-mpls-l3vpn/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS VPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: More Complex EVPN/VXLAN Bridging Scenario]]></title>
    <link href="https://blog.ipspace.net/2026/02/lab-evpn-bridging-complex/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/lab-evpn-bridging-complex/</id>
    <published>2026-02-27T09:13:00+01:00</published>
    <updated>2026-02-27T09:13:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the first EVPN/VXLAN lab, we <a href="https://evpn.bgplabs.net/evpn/1-bridging/">added the EVPN control plane to bridging over VXLAN</a>.  Now, let&rsquo;s try out a more complex scenario: several EVPN MAC-VRFs mapped to different VLAN segments on individual PE-devices.</p>

<figure><img src="https://evpn.bgplabs.net/evpn/topology-complex.png"
   style="max-width:400px;"/>
</figure>
<div class='jump-link'><a href="https://evpn.bgplabs.net/evpn/2-complex/">Explore the lab exercise</a></div>
<p>You can run the lab on your own <em>netlab</em>-enabled infrastructure (<a href="https://evpn.bgplabs.net/1-setup/">more details</a>), but also within a <a href="https://evpn.bgplabs.net/4-codespaces/">free GitHub Codespace</a> or even on your Apple-silicon Mac (<a href="https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/">installation</a>, <a href="https://blog.ipspace.net/2025/02/arista-ceos-arm-apple-silicon/">using Arista cEOS container</a>, <a href="https://evpn.bgplabs.net/1-setup/#defaults">using VXLAN/EVPN labs</a>).</p>
]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Configuring 6PE Route Reflector on Cisco IOS]]></title>
    <link href="https://blog.ipspace.net/2026/02/ios-6pe-route-reflector/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/ios-6pe-route-reflector/</id>
    <published>2026-02-26T08:19:00+01:00</published>
    <updated>2026-02-26T08:19:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Imagine you want to deploy a BGP route reflector for MPLS 6PE or L3VPN service. Both services run over MPLS LSPs, use IPv4 BGP sessions, and use IPv4 next hops for BGP routes. There&rsquo;s absolutely no reason to need IPv6 routing on a node that handles solely the control-plane activity (it never appears as a BGP next hop anywhere), right? Cisco IOS disagrees, as I discovered when running <a href="https://tests.netlab.tools/_html/coverage.mpls">route reflector integration tests</a> for <em>netlab</em> <a href="https://netlab.tools/module/mpls/">6PE and (MPLS) L3VPN functionality</a>.</p>
<p>Most platforms failed those tests because we forgot to configure <strong>route-reflector-clients</strong> in labeled IPv6 and VPNv4/VPNv6 address families<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. That was easy to fix, but the IOS-based devices were still failing the tests, with nothing in the toolchain ever complaining about configuration problems.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/ios-6pe-route-reflector/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[On AI Agents Speaking BGP]]></title>
    <link href="https://blog.ipspace.net/2026/02/ai-speaking-bgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/ai-speaking-bgp/</id>
    <published>2026-02-25T07:39:00+01:00</published>
    <updated>2026-02-25T07:39:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I guess your LinkedIn feed is as full of AI nonsense as mine is, so I usually just skip all that posturing. However, every now and then, I stumble upon an idea that makes sense&hellip; until you start to dig deeper into it.</p>
<p>There was this post about <a href="https://www.linkedin.com/posts/olofk_networkautomation-ai-keepautomationweird-activity-7418405774898417664-rNIN">AI agents speaking BGP</a> with an associated <a href="https://github.com/stiltzkin10/bgp-ai-agent">GitHub repo</a>, so I could go take a look at what it&rsquo;s all about.</p>
<p>The proof-of-concept (so the post author) has two components:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/ai-speaking-bgp/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting: Open Space Events]]></title>
    <link href="https://blog.ipspace.net/2026/02/worth-reading-open-space-conferences/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/worth-reading-open-space-conferences/</id>
    <published>2026-02-24T07:45:00+01:00</published>
    <updated>2026-02-24T07:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Following a link in <a href="https://martinfowler.com/fragments/2026-02-04.html">another Martin Fowler&rsquo;s blog post</a>, I stumbled upon <a href="https://martinfowler.com/bliki/OpenSpace.html">his thoughts</a> on <a href="https://openspaceworld.org/wp2/">Open Space events</a> &ndash; a way to set up self-organizing events.</p>
<p>I&rsquo;m not sure I&rsquo;m brave (or young) enough to try it out, but if you&rsquo;re planning to organize a small gathering (like a local Network Operator Group), this might be an interesting, slightly more structured approach than a Net::Beer event. It would also be nice to know whether someone managed to pull it off in an online format.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: The Caveats of Using Startup Configurations]]></title>
    <link href="https://blog.ipspace.net/2026/02/netlab-startup-config-caveats/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/netlab-startup-config-caveats/</id>
    <published>2026-02-23T07:23:00+01:00</published>
    <updated>2026-02-23T07:23:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/petr-ankudinov/">Petr Ankudinov</a> wrote an excellent comment about <em>netlab</em> <a href="/2026/02/netlab-eos-configuration/">Fast cEOS Configuration</a> implementation. Paraphrasing the <a href="https://www.linkedin.com/feed/update/urn:li:activity:7426526191903293440?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7426526191903293440%2C7426553915321757697%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287426553915321757697%2Curn%3Ali%3Aactivity%3A7426526191903293440%29">original comment</a>:</p>
<blockquote>
<p>If the use case is the initial lab deployment, why don&rsquo;t you use <em>containerlab</em> <strong>startup-config</strong> option to change the device&rsquo;s startup configuration?</p>
</blockquote>
<p>I have to admit, I&rsquo;m too old to boldly go with the <em>just use the startup configuration</em> approach. In ancient times, Cisco IOS did crazy stuff if you rearranged the commands in the startup configuration. But ignoring that historical trivia (Cisco IOS/XE seems to be doing just fine), there are several reasons why I decided to use the startup configurations (and you <a href="https://netlab.tools/platforms/#platform-config-mode">can use them</a> with some containers) as the last resort:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/netlab-startup-config-caveats/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Public Videos: EVPN in MPLS-Based Environments]]></title>
    <link href="https://blog.ipspace.net/2026/02/evpn-mpls-videos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/evpn-mpls-videos/</id>
    <published>2026-02-20T07:36:00+01:00</published>
    <updated>2026-02-20T07:36:00+01:00</updated>
    
    <content type="html"><![CDATA[<p class="sideicon"><img src="/2025/01/dalle-leaf-spine-design.png" alt=""></p>
<p>While we&rsquo;re mostly discussing EVPN in conjunction with VXLAN encapsulation, its initial use case was as an alternate control plane for MPLS networks.</p>
<p>Krzysztof Szarkowicz had a great presentation describing the <a href="https://my.ipspace.net/bin/list?id=EVPN#SP">specifics of EVPN in MPLS-Based Environments</a> a few years ago. Those videos (part of the <a href="https://www.ipspace.net/EVPN_Technical_Deep_Dive">EVPN Technical Deep Dive</a> webinar) are now public; you can watch them without an ipSpace.net account.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/list?id=EVPN#SP">Explore</a></div>
<p>Looking for more binge-watching materials? You&rsquo;ll find them <a href="https://www.ipspace.net/Subscription/Free">here</a>.</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Cisco IOS/XR OSPFv2 Not-So-Passive Interfaces]]></title>
    <link href="https://blog.ipspace.net/2026/02/iosxr-ospfv2-not-so-passive/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/iosxr-ospfv2-not-so-passive/</id>
    <published>2026-02-19T07:46:00+01:00</published>
    <updated>2026-02-19T07:46:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>What&rsquo;s wrong with me? Why do I have to uncover another weirdness  every single time I run <em>netlab</em> integration tests on a new platform? Today, it&rsquo;s Cisco IOS/XR (release 25.2.1) and its understanding of what &ldquo;passive&rdquo; means. According to the <a href="https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/25xx/routing/configuration/guide/b-routing-cg-asr9000-25xx/implementing-ospf.html#concept_0B9B449619D748A8B3F3C61DC756BB83">corresponding documentation</a>, the <strong>passive</strong> interface configuration command is exactly what I understood it to be:</p>
<blockquote>
<p>Use the passive command in appropriate mode to suppress the sending of OSPF protocol operation on an interface.</p>
</blockquote>
<p>However, when I ran the <em>OSPFv2 passive interface</em> <a href="https://github.com/ipspace/netlab/blob/5aae878dff0da1ffb256a33532e0748d9ba7df56/tests/integration/ospf/ospfv2/04-passive.yml">integration test</a> with an IOS/XR container, it kept failing with <em>neighbor is in Init state</em> (the first and only time I ever encountered such an error after testing over two dozen platforms).</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/iosxr-ospfv2-not-so-passive/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN IP-VRFs on Cisco IOS/XE: Configuration Notes]]></title>
    <link href="https://blog.ipspace.net/2026/02/evpn-cisco-l3vpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/evpn-cisco-l3vpn/</id>
    <published>2026-02-18T07:31:00+01:00</published>
    <updated>2026-02-18T07:31:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, I described some of the gotchas I encountered while <a href="/2026/02/evpn-cisco-ios/">trying to make EVPN MAC-VRFs work on Cisco IOS/XE</a>. In the meantime, I got <a href="https://github.com/ipspace/netlab/pull/3101">IP-VRFs with transit VXLAN segments working</a>. Here are the CliffsNotes:</p>
<p>Starting with the disgusting configuration mechanism:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/evpn-cisco-l3vpn/'>Read more &hellip;</a></div>]]></content>
    <category term="evpn" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Modern Forwarding Architectures]]></title>
    <link href="https://blog.ipspace.net/2026/02/worth-reading-modern-forwarding-architectures/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/worth-reading-modern-forwarding-architectures/</id>
    <published>2026-02-17T07:55:00+01:00</published>
    <updated>2026-02-17T07:55:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Ignoring the obligatory misguided mention of OpenFlow and a few other unicorns, I found <a href="https://blog.apnic.net/2026/02/03/centralized-or-distributed-understanding-modern-router-and-ai-fabric-architectures/">this article</a> to be a nice introduction to modern forwarding architectures, including networking infrastructure for AI clusters and distributed cell-based fabrics.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Explore Configurations of Unfamiliar Devices with netlab]]></title>
    <link href="https://blog.ipspace.net/2026/02/netlab-device-configs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/netlab-device-configs/</id>
    <published>2026-02-16T08:28:00+01:00</published>
    <updated>2026-02-16T08:28:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Apart from IP multicast and QoS, <em>netlab</em> can configure <a href="https://netlab.tools/platforms/#supported-configuration-modules">commonly used networking technologies</a> across <a href="https://netlab.tools/platforms/#supported-virtual-network-devices">dozens of devices</a> from most networking vendors. Why don&rsquo;t you use all that embedded knowledge (supported by <a href="https://release.netlab.tools/">hundreds of integration tests</a>) to help you configure unfamiliar devices?</p>
<p>You don&rsquo;t have to install VM or container managers (Vagrant/containerlab), or beg vendors to give you access to device VMs/containers, to get working device configurations. All you need is a Python package that works on Windows<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, macOS, or Linux.</p>
<p>It&rsquo;s as simple as this:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/netlab-device-configs/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Build an SR-MPLS Network with IS-IS]]></title>
    <link href="https://blog.ipspace.net/2026/02/isis-sr-mpls/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/isis-sr-mpls/</id>
    <published>2026-02-13T08:02:00+01:00</published>
    <updated>2026-02-13T08:02:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Want to spend an hour or two configuring some cool stuff this weekend? How about <a href="https://isis.bgplabs.net/advanced/10-sr/">getting SR-MPLS to work with IS-IS and building a BGP-free core with it</a>?</p>

<figure><img src="https://isis.bgplabs.net/advanced/topology-sr-mpls.png"/>
</figure>
<p>If you already set up your own <em>netlab</em> environment, you probably know what to do (or you can get the <a href="https://isis.bgplabs.net/1-setup/">details here</a>). Alternatively, you can <a href="https://github.com/codespaces/new/bgplab/isis">click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a>. After starting the lab environment, change the directory to <code>advanced/10-sr</code> and execute <strong>netlab up</strong>.</p>
<div class='jump-link'><a href="https://isis.bgplabs.net/advanced/10-sr/">Explore the lab exercise</a></div>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN on Cisco IOS/XE: Configuration Notes]]></title>
    <link href="https://blog.ipspace.net/2026/02/evpn-cisco-ios/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/evpn-cisco-ios/</id>
    <published>2026-02-12T07:41:00+01:00</published>
    <updated>2026-02-12T07:41:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After reading the <a href="https://michaelbecze.github.io/blog/2026/01/25/L2-Vxlan-on-Catalylst.html">L2 Vxlan On Catalyst</a> blog post, I decided to add EVPN configuration templates to <em>netlab</em>-supported Cisco IOS/XE devices. It wasn&rsquo;t the easiest <a href="https://netlab.tools/module/evpn/#platform-support">EVPN implementation</a> I encountered; here&rsquo;s what I learned (hoping you&rsquo;ll <a href="https://xkcd.com/979/">find it helpful</a>).</p>
<p>Starting with the trivial hiccups:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/evpn-cisco-ios/'>Read more &hellip;</a></div>]]></content>
    <category term="evpn" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 26.02: KinD support, more EVPN/VXLAN]]></title>
    <link href="https://blog.ipspace.net/2026/02/netlab-26-02/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/netlab-26-02/</id>
    <published>2026-02-11T10:15:00+01:00</published>
    <updated>2026-02-11T10:15:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> release 26.02 is out, including the usual potpourri of goodies:</p>
<ul>
<li>Support for <a href="https://netlab.tools/plugins/kind/#plugin-kind">Kubernetes (KinD) clusters</a> based on work by <a href="https://github.com/wnagele">@wnagele</a></li>
<li>Layer-2 EVPN/VXLAN support on Cat8000v, IOL, and IOLL2</li>
<li><strong><a href="https://netlab.tools/netlab/graph/#netlab-graph">netlab graph</a></strong> command can create graphs from a subset of nodes or links</li>
<li>You can specify the parameters of core links in the <strong><a href="https://netlab.tools/plugins/fabric/#plugin-fabric">fabric</a></strong> plugin</li>
<li>OSPFv3 reports</li>
</ul>
<p>The fun part, however, are the new container configuration methods:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/netlab-26-02/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Open-Source Network Simulators (2026 Edition)]]></title>
    <link href="https://blog.ipspace.net/2026/02/worth-reading-opensource-network-simulators/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/worth-reading-opensource-network-simulators/</id>
    <published>2026-02-10T08:09:00+01:00</published>
    <updated>2026-02-10T08:09:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Brian Linkletter published an updated <a href="https://opensourcenetworksimulators.com/2026/02/open-source-simulator-emulator-in-2026/">overview of open-source network simulators and emulators</a>.</p>
<p><em>containerlab</em> and <em>GNS3</em> are clear leaders (no surprise there) with the original <em>vrnetlab</em> becoming abandonware (fortunately, we have <a href="https://github.com/srl-labs/vrnetlab">Roman Dodin&rsquo;s fork</a>), which makes me think we should focus on using <em>netlab</em> primarily with <em>containerlab</em> and slowly sunset the Vagrant support, particularly considering some people actively hate the license change.</p>
<p>Also, if anyone feels like writing an interface (provider module) between <em>netlab</em> and <em>GNS3</em>, the pull request would be most welcome 😎</p>
<p>Any thoughts? Please leave a comment!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fast Arista cEOS Container Configuration]]></title>
    <link href="https://blog.ipspace.net/2026/02/netlab-eos-configuration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/netlab-eos-configuration/</id>
    <published>2026-02-09T07:23:00+01:00</published>
    <updated>2026-02-09T07:23:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After the enormous speedup I achieved with the <a href="/2026/02/netlab-frr-configuration/">FRR containers</a>, I tried to do something similar with the Arista cEOS ones. After all, Arista&rsquo;s pretty open about running its software on standard Linux, so it should be possible to map host-side configuration files into container-side scripts and execute them, right?</p>
<p>There was just one tiny gotcha: all <em>netlab</em>-generated EOS configuration files are device configuration snippets that are intended to be submitted via EOS CLI, and I didn&rsquo;t feel like cracking open the <a href="https://github.com/ktbyers/netmiko/blob/develop/EXAMPLES.md"><em>netmiko</em> documentation</a> (that&rsquo;s another backburner project).</p>
<p>However, Arista cEOS includes this magic command called <strong>FastCli</strong> ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/netlab-eos-configuration/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Routing Between VXLAN Segments]]></title>
    <link href="https://blog.ipspace.net/2026/02/lab-vxlan-irb/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/lab-vxlan-irb/</id>
    <published>2026-02-06T07:59:00+01:00</published>
    <updated>2026-02-06T07:59:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous <a href="https://evpn.bgplabs.net/">EVPN/VXLAN lab exercises</a>, we covered the <a href="https://evpn.bgplabs.net/vxlan/1-single/">basics of Ethernet bridging over VXLAN</a> and the <a href="https://evpn.bgplabs.net/evpn/1-bridging/">use of the EVPN control plane</a> to build layer-2 segments.</p>
<p>It&rsquo;s time to move up the protocol stack. Let&rsquo;s see how you can route between VXLAN segments, this time using unique unicast IP addresses on the layer-3 switches.</p>

<figure><img src="https://evpn.bgplabs.net/vxlan/topology-irb.png"/>
</figure>
<div class='jump-link'><a href="https://evpn.bgplabs.net/vxlan/3-irb/">Explore the lab exercise</a></div>
<p>You can run the lab on your own <em>netlab</em>-enabled infrastructure (<a href="https://evpn.bgplabs.net/1-setup/">more details</a>), but also within a <a href="https://evpn.bgplabs.net/4-codespaces/">free GitHub Codespace</a> or even on your Apple-silicon Mac (<a href="https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/">installation</a>, <a href="https://blog.ipspace.net/2025/02/arista-ceos-arm-apple-silicon/">using Arista cEOS container</a>, <a href="https://evpn.bgplabs.net/1-setup/#defaults">using VXLAN/EVPN labs</a>).</p>
]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[On MPLS Forwarding Performance Myths]]></title>
    <link href="https://blog.ipspace.net/2026/02/mpls-forwarding-performance/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/mpls-forwarding-performance/</id>
    <published>2026-02-05T08:20:00+01:00</published>
    <updated>2026-02-05T08:20:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Whenever I <a href="/2026/01/mpls-paths-tunnels-interfaces/">claim</a> that the initial use case for MPLS was improved forwarding performance (using the <a href="https://datatracker.ietf.org/doc/html/rfc2105">RFC</a> that matches the <a href="https://www.ietf.org/proceedings/37/rtg/tagsw-slides/index.htm">IETF MPLS BoF slides</a> as supporting evidence), someone inevitably comes up with a source claiming something along these lines:</p>
<blockquote>
<p>The idea of speeding up the lookup operation on an IP datagram turned out to have little practical impact.</p>
</blockquote>
<p>That might be true<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, although I do remember how hard it was for Cisco to build the first IP forwarding hardware in the AGS+ CBUS controller. Switching labels would be much faster (or at least cheaper), but the time it takes to do a forwarding table lookup was never the main consideration. It was all about the aggregate forwarding performance of core devices.</p>
<p>Anyhow, <a href="https://xkcd.com/386/">Duty Calls</a>. It&rsquo;s time for another archeology dig. Unfortunately, most of the primary sources irrecoverably went to <code>/dev/null</code>, and personal memories are never reliable; comments are most welcome.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/mpls-forwarding-performance/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OMG, After a Decade, VXLAN Is Still Insecure]]></title>
    <link href="https://blog.ipspace.net/2026/02/worth-reading-omg-vxlan-still-insecure/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/worth-reading-omg-vxlan-still-insecure/</id>
    <published>2026-02-04T07:22:00+01:00</published>
    <updated>2026-02-04T07:22:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In 2017 (over eight years ago), I was making fun of the fact that &ldquo;<a href="https://blog.ipspace.net/2018/11/omg-vxlan-is-still-insecure/">VXLAN is insecure</a>&rdquo; was news to some people. Obviously, the message needed to be repeated, as the same author gave a <a href="https://troopers.de/downloads/troopers19/TROOPERS19_AR_VXLAN_Security.pdf">very similar presentation</a> two years later at a security conference.</p>
<p>Unfortunately, it seems that everything old is new again (see also RFC 1925 rules 4 and 11), as proved by a &ldquo;Using GRE and VXLAN for Fun and Profit&rdquo; (my summary) <a href="https://infocondb.org/con/def-con/def-con-33/from-spoofing-to-tunneling-new-red-teams-networking-techniques-for-initial-access-and-evasion">presentation at DEFCON 33</a>. Even if you knew that unencrypted tunnels are insecure (duh!) for decades, you might still want to read the <a href="https://blog.apnic.net/2026/01/16/from-spoofing-to-tunnelling-new-red-team-networking-techniques-for-initial-access-and-evasion/">summary of the talk</a> (published on APNIC blog) and <a href="https://i.blackhat.com/BH-USA-25/Presentations/USA-25-Tung-From-Spoofing-To-Tunneling-New.pdf">view the slides</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interface MAC Address in IOS Layer-2 Images]]></title>
    <link href="https://blog.ipspace.net/2026/02/ios-layer2-mac-address/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/ios-layer2-mac-address/</id>
    <published>2026-02-03T08:08:00+01:00</published>
    <updated>2026-02-03T08:08:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another &ldquo;You can&rsquo;t make this up, but it sounds too crazy to be true&rdquo; story: Cisco IOS layer-2 images change the interface MAC address when you change the interface <strong>switchport</strong> status.</p>
<p>Let me start with a bit of background:</p>
<ul>
<li>IOL Layer 2 image starts with interfaces enabled and in bridged (<strong>switchport</strong>) mode (<a href="/2025/03/stupid-bridges-strike-again/">details</a>)</li>
<li><em>netlab</em> has to run a <em>normalize</em> script (applicable to IOLL2, IOSv L2, and Arista EOS) before configuring anything else to ensure all interfaces are shut down.</li>
<li>The IOLL2 <code>normalize</code> Jinja template had a bug &ndash; when setting the interface MAC address, it checked <code>l.mac_address</code> instead of <code>intf.mac_address</code>. Nevertheless, everything worked because the MAC addresses were also set during the initial device configuration.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/ios-layer2-mac-address/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fast FRR Container Configuration]]></title>
    <link href="https://blog.ipspace.net/2026/02/netlab-frr-configuration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/02/netlab-frr-configuration/</id>
    <published>2026-02-02T07:47:00+01:00</published>
    <updated>2026-02-02T07:47:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After creating the infrastructure that <a href="/2026/01/netlab-faster-without-ansible">generates the device configuration files within <em>netlab</em></a> (not in an Ansible playbook), it was time to try to apply it to something else, not just Linux containers. FRR containers were the obvious next target.</p>
<p><em>netlab</em> uses two different mechanisms to configure FRR containers:</p>
<ul>
<li>Data-plane features are configured with <strong>bash</strong> scripts using <strong>ip</strong> commands and friends.</li>
<li>Control-plane features are configured with FRR&rsquo;s <strong>vtysh</strong></li>
</ul>
<p>I wanted to replace both with Linux scripts that could be started with the <strong>docker exec</strong> command.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/02/netlab-frr-configuration/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Public Videos: Network Observability]]></title>
    <link href="https://blog.ipspace.net/2026/01/video-network-observability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/video-network-observability/</id>
    <published>2026-01-30T08:14:00+02:00</published>
    <updated>2026-01-30T08:14:00+02:00</updated>
    
    <content type="html"><![CDATA[<p class="sideicon"><img src="/2026/01/openai-observation.png" alt=""></p>
<p>The videos from the <a href="https://www.ipspace.net/Network_Observability">Network Observability</a> webinar with <a href="https://www.linkedin.com/in/ddutt/">Dinesh Dutt</a> are now <a href="https://my.ipspace.net/bin/list?id=Observe">available without a valid ipSpace.net account</a>. Enjoy!</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/list?id=Observe">Explore</a></div>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Opinion: Impact of AI on Networking Engineers]]></title>
    <link href="https://blog.ipspace.net/2026/01/ai-impact-networking-engineers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/ai-impact-networking-engineers/</id>
    <published>2026-01-29T08:04:00+01:00</published>
    <updated>2026-01-29T08:04:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine sent me a series of questions that might also be on your mind (unless you&rsquo;re lucky enough to live under a rock or on a different planet):</p>
<blockquote>
<p>I wanted to ask you how you think AI will affect networking jobs. What&rsquo;s real and what&rsquo;s hype?</p>
</blockquote>
<p>Before going into the details, let&rsquo;s make a few things clear:</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/ai-impact-networking-engineers/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: A Tech Career in 2026]]></title>
    <link href="https://blog.ipspace.net/2026/01/worth-reading-tech-career-2026/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/worth-reading-tech-career-2026/</id>
    <published>2026-01-28T08:22:00+01:00</published>
    <updated>2026-01-28T08:22:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>There&rsquo;s no &ldquo;<a href="/2024/01/networking-2024/">networking in 20xx</a>&rdquo; video this year, so this <a href="https://www.anildash.com/2026/01/05/a-tech-career-in-2026/">insightful article by Anil Dash</a> will have to do ;) He seems to be based in Silicon Valley, so keep in mind the <a href="https://it20.info/2012/09/cloud-and-the-three-it-geographies-silicon-valley-us-and-rest-of-the-world/">Three IT Geographies</a>, but one cannot beat advice like this:</p>
<blockquote>
<p>So much opportunity, inspiration, creativity, and possibility lies in applying the skills and experience that you may have from technological disciplines in other realms and industries that are often far less advanced in their deployment of technologies.</p>
</blockquote>
<p>As well as:</p>
<blockquote>
<p>This too shall pass. One of the great gifts of working in technology is that it’s given so many of us the habit of constantly learning, of always being curious and paying attention to the new things worth discovering.</p>
</blockquote>
<p>Hope you&rsquo;ll find it helpful and at least a bit inspiring.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: VXLAN Bridging with EVPN Control Plane]]></title>
    <link href="https://blog.ipspace.net/2026/01/lab-evpn-bridging/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/lab-evpn-bridging/</id>
    <published>2026-01-27T07:59:00+01:00</published>
    <updated>2026-01-27T07:59:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous <a href="https://evpn.bgplabs.net/#vxlan">VXLAN labs</a>, we covered the <a href="https://evpn.bgplabs.net/vxlan/1-single/">basics of Ethernet bridging over VXLAN</a> and a <a href="https://evpn.bgplabs.net/vxlan/2-complex/">more complex scenario with multiple VLANs</a>.</p>
<p>Now let&rsquo;s <a href="https://evpn.bgplabs.net/evpn/1-bridging/">add the EVPN control plane into the mix</a>. The data plane (VLANs mapped into VXLAN-over-IPv4) will remain unchanged, but we&rsquo;ll use EVPN (a BGP address family) to build the ingress replication lists and MAC-to-VTEP mappings.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/lab-evpn-bridging/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Deploy Partially-Configured Training Labs with netlab]]></title>
    <link href="https://blog.ipspace.net/2026/01/netlab-partial-configuration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/netlab-partial-configuration/</id>
    <published>2026-01-26T07:53:00+01:00</published>
    <updated>2026-01-26T07:53:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Imagine you want to use <em>netlab</em> to build training labs, like the <a href="https://bgplabs.net/">free BGP labs</a> I created. Sometimes, you want to give students a device to work on while the other lab devices are already configured, just waiting for the students to get their job done.</p>
<div  class="info">
My BGP labs were designed for self-study. You might also want to listen to how <a href="/2025/11/using-netlab-ipv6-training/">Sander Steffann uses <em>netlab</em> in classroom training</a>.
</div>
<p>For example, in the <a href="https://bgplabs.net/basic/1-session/">initial BGP lab</a>, I didn&rsquo;t want any BGP-related configuration on RTR while X1 would already be fully configured &ndash; when the student configures BGP on RTR, everything just works.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/netlab-partial-configuration/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST WATCH: BGP: the First 18 Years]]></title>
    <link href="https://blog.ipspace.net/2026/01/worth-reading-bgp-first-18-years/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/worth-reading-bgp-first-18-years/</id>
    <published>2026-01-23T08:17:00+01:00</published>
    <updated>2026-01-23T08:17:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>If you&rsquo;re at all interested in the history of networking, you simply MUST watch the <a href="https://www.youtube.com/watch?v=HAOVNYSnL7k">BGP at 18: Lessons In Protocol Design</a> lecture by Dr. Yakov Rekhter recorded in 2007 (as you can probably guess from the awful video quality) (HT: <a href="https://www.linkedin.com/in/beri1/">Berislav Todorovic</a> via LinkedIn).</p>
]]></content>
    <category term="worth reading" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Doesn't netlab Use X for Device Configuration Templates?]]></title>
    <link href="https://blog.ipspace.net/2026/01/netlab-not-using-vendor-templates/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/netlab-not-using-vendor-templates/</id>
    <published>2026-01-22T08:14:00+01:00</published>
    <updated>2026-01-22T08:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Petr Ankudinov made an <a href="https://www.linkedin.com/feed/update/urn:li:activity:7397274499341053953?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7397274499341053953%2C7397617419760058368%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287397617419760058368%2Curn%3Ali%3Aactivity%3A7397274499341053953%29">interesting remark</a> when I <a href="https://www.linkedin.com/feed/update/urn:li:activity:7397274499341053953/">complained</a> about how much time I wasted waiting for Cisco 8000v to boot when developing <em>netlab</em> device configuration templates:</p>
<blockquote>
<p>For Arista part - just use AVD with all templates included and ANTA for testing. I was always wondering why netlab is not doing that.</p>
</blockquote>
<p>Like any other decent network automation platform, <em>netlab</em> uses a high-level data model (lab topology) to describe the network. That data model is then transformed into a device-level data model, and the device-level data structures are used to generate device configurations.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/netlab-not-using-vendor-templates/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Distributing Level-2 IS-IS Routes into Level-1 Areas]]></title>
    <link href="https://blog.ipspace.net/2026/01/isis-inter-area-routes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/isis-inter-area-routes/</id>
    <published>2026-01-21T08:06:00+01:00</published>
    <updated>2026-01-21T08:06:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the major differences between OSPF and IS-IS is their handling of inter-area routes. Non-backbone OSPF intra-area routes are copied into the backbone area and later (after the backbone SPF run) copied into other areas. IS-IS does not copy level-2 routes into level-1 areas; level-1 areas (by default) behave like totally stubby OSPF areas with the level-1 routers using the Attached (ATT) bit of level-1-2 routers in the same area to generate the default route.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/isis-inter-area-routes/'>Read more &hellip;</a></div>]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[On MPLS Paths, Tunnels and Interfaces]]></title>
    <link href="https://blog.ipspace.net/2026/01/mpls-paths-tunnels-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/mpls-paths-tunnels-interfaces/</id>
    <published>2026-01-20T07:29:00+01:00</published>
    <updated>2026-01-20T07:29:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers attempted to implement a multi-vendor multicast VPN over MPLS but failed. As a good network engineer, he tried various <a href="https://blog.ipspace.net/2015/06/software-defined-wanwell-orchestrated/">duct tapes</a> but found that the only working one was a GRE tunnel within a VRF, resulting in considerable frustration. In his own words:</p>
<blockquote>
<p>How is a GRE tunnel different compared to an MPLS LSP? I feel like conceptually, they kind of do the same thing. They just tunnel traffic by wrapping it with another header (one being IP/GRE, the other being MPLS).</p>
</blockquote>
<p>Instead of going down the &ldquo;how many angels are dancing on this pin&rdquo; rabbit hole (also known as &ldquo;<a href="https://packetpushers.net/podcasts/heavy-networking/hn102-a-layer-of-indirection-is-mpls-tunneling/">Is MPLS tunneling?</a>&rdquo;), let&rsquo;s focus on the fundamental differences between GRE/IPsec/VXLAN tunnels and MPLS paths.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/mpls-paths-tunnels-interfaces/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
    <category term="MPLS" />
    <category term="GRE" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How Moving Away from Ansible Made netlab Faster]]></title>
    <link href="https://blog.ipspace.net/2026/01/netlab-faster-without-ansible/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/netlab-faster-without-ansible/</id>
    <published>2026-01-19T07:36:00+01:00</published>
    <updated>2026-01-19T07:36:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR:</strong> Of course, the title is clickbait. While the differences are amazing, you won&rsquo;t notice them in small topologies or when using <a href="/2023/02/virtual-device-boot-times/">bloatware that takes minutes to boot</a>.</p>
<p>Let&rsquo;s start with the background story: due to the (now fixed) <a href="/2025/12/ansible-abandoned-network-automation/">suboptimal behavior of bleeding-edge Ansible releases</a>, I decided to <a href="https://netlab.tools/release/26.01/#configuration-deployment-changes">generate the device configuration files within <em>netlab</em></a> (previously, <em>netlab</em> prepared the device data, and the configuration files were rendered in an Ansible playbook).</p>
<p>As we use <strong>bash</strong> scripts to configure Linux containers, it makes little sense (once the <strong>bash</strong> scripts are created) to use an Ansible playbook to execute <strong>docker exec <em>script</em></strong> or <strong>ip netns <em>container</em> exec <em>script</em></strong>. <em>netlab</em> release 26.01 runs the <strong>bash</strong> scripts to configure Linux, Bird, and dnsmasq containers directly within the <strong>netlab initial</strong> process.</p>
<p>Now for the juicy part.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/netlab-faster-without-ansible/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Infrahub with Damien Garros]]></title>
    <link href="https://blog.ipspace.net/2026/01/infrahub-damien-garros/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/infrahub-damien-garros/</id>
    <published>2026-01-16T07:47:00+01:00</published>
    <updated>2026-01-16T07:47:00+01:00</updated>
    <link rel="enclosure" type="audio/mpeg" href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_204-Infrahub_with_Damien_Garros.mp3" />
    <content type="html"><![CDATA[<p>Why do we need <a href="https://github.com/opsmill/infrahub">Infrahub</a>, another network automation tool? What does it bring to the table, who should be using it, and why is it using a graph database internally?</p>
<p>I discussed these questions with <a href="https://www.linkedin.com/in/damiengarros/">Damien Garros</a>, the driving force behind Infrahub, the founder of <a href="https://opsmill.com/">OpsMill</a> (the company developing it), and a <a href="https://www.ipspace.net/Author:Damien_Garros">speaker</a> in the <a href="https://www.ipspace.net/Building_Network_Automation_Solutions">ipSpace.net Network Automation course</a>.</p>
<div class='jump-link'><a href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_204-Infrahub_with_Damien_Garros.mp3">Listen to the podcast</a></div>
]]></content>
    <category term="Software Gone Wild" />
    <category term="podcast" />
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using netlab to Set Up Demos]]></title>
    <link href="https://blog.ipspace.net/2026/01/using-netlab-demos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/using-netlab-demos/</id>
    <published>2026-01-15T08:15:00+01:00</published>
    <updated>2026-01-15T08:15:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/davedotdev/">David Gee</a> was time-pressed to set up a demo network to showcase his <a href="https://curvium.com/services/software/">network automation solution</a> and found that a Ubuntu VM running <em><a href="https://netlab.tools/">netlab</a></em> to orchestrate <a href="https://blog.ipspace.net/2025/02/arista-ceos-arm-apple-silicon/">Arista cEOS containers</a> on his <a href="https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/">Apple Silicon laptop</a> was exactly what he needed.</p>
<p>I fixed a few blog posts based on his feedback (I can&rsquo;t tell you how much I appreciate receiving a detailed &ldquo;you should fix this stuff&rdquo; message, and how rare it is, so thanks a million!), and David was kind enough to add a delightful cherry on top of that cake with this wonderful blurb:</p>
<blockquote>
<p>Netlab has been a lifesaver. Ivan’s entire approach, from the software to collecting instructions and providing a meaningful information trail, enabled me to go from zero to having a functional lab in minutes. It has been an absolute lifesaver.</p>
<p>I can be lazy with the infrastructure side, because he’s done all of the hard work. Now I get to concentrate on the value-added functionality of my own systems and test with the full power of an automated and modern network lab. Game-changing.</p>
</blockquote>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Do You Need IS-IS Areas?]]></title>
    <link href="https://blog.ipspace.net/2026/01/is-is-areas/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/is-is-areas/</id>
    <published>2026-01-14T08:45:00+01:00</published>
    <updated>2026-01-14T08:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR</strong>: Most probably not, but if you do, you&rsquo;d better not rely on random blogs for professional advice #justSaying 😜</p>
<p>Here&rsquo;s an interesting question I got from a reader in the midst of an OSPF-to-IS-IS migration:</p>
<blockquote>
<p>Why should one bother with different [IS-IS] areas when the routing hierarchy is induced by the two levels and the appropriate IS-IS circuit types on the links between the routers?</p>
</blockquote>
<p>Well, if you think you need a routing hierarchy, you&rsquo;re bound to use IS-IS areas because that&rsquo;s how the routing hierarchy is implemented in IS-IS. However&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/is-is-areas/'>Read more &hellip;</a></div>]]></content>
    <category term="IS-IS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 26.01: EVPN for VXLAN-over-IPv6, Netscaler]]></title>
    <link href="https://blog.ipspace.net/2026/01/netlab-26-01/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2026/01/netlab-26-01/</id>
    <published>2026-01-13T07:19:00+01:00</published>
    <updated>2026-01-13T07:19:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I completely rewrote netlab&rsquo;s device configuration file generation during the New Year break. <em>netlab</em> Release 26.01 no longer uses Ansible Jinja2 functionality and works with Ansible releases 12/13, which are used solely for configuration deployment. I had to <a href="https://netlab.tools/release/26.01/#release-26-01-breaking">break a few eggs</a> to get there; if you encounter any problems, please <a href="https://github.com/ipspace/netlab/issues/new/choose">open an issue</a>.</p>
<p>Other new features include:</p>
<ul>
<li>EVPN for VXLAN-over-IPv6</li>
<li>The ‘skip_config’ <a href="https://netlab.tools/nodes/#node-attributes">node attribute</a> that can be used to deploy partially-provisioned labs</li>
<li>Lightweight <a href="https://netlab.tools/netlab/api/#netlab-api">netlab API HTTP server</a> by <a href="https://github.com/captainpacket">Craig Johnson</a></li>
<li>Rudimentary support for Citrix Netscaler by <a href="https://github.com/sdargoeuves">Seb d&rsquo;Argoeuves</a></li>
</ul>
<p>You&rsquo;ll find more details (and goodies) in the <a href="https://netlab.tools/release/26.01/">release notes</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2026/01/netlab-26-01/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Happy Holidays and All the Best in 2026!]]></title>
    <link href="https://blog.ipspace.net/2025/12/wrapup-2025/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/wrapup-2025/</id>
    <published>2025-12-19T10:01:00+00:00</published>
    <updated>2025-12-19T10:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>They say time goes faster as you get older, and it seems to be true. Another year has (almost) gone by.</p>
<p>Try to disconnect from the crazy pace of the networking world, forget the &ldquo;<em>vibe coding with AI will make engineers obsolete</em>&rdquo; stupidities (hint: <a href="https://en.wikipedia.org/wiki/Fifth-generation_programming_language">Fifth Generation Languages</a> and Natural Language Programming were all the rage in the 1980s and 1990s), and focus on your loved ones. I would also like to wish you all the best in 2026!</p>
<p>In the meantime, I&rsquo;m working on weaning <em>netlab</em> off of a particular automation tool (you can always track the progress on <a href="https://github.com/ipspace/netlab">GitHub</a>). Expect the first results in the January <em>netlab</em> release.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Hilarious: HTTP Status Codes as Pizza Images]]></title>
    <link href="https://blog.ipspace.net/2025/12/worth-reading-http-pizza/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/worth-reading-http-pizza/</id>
    <published>2025-12-17T11:31:00+01:00</published>
    <updated>2025-12-17T11:31:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Want to look up various HTTP status/error codes when troubleshooting a <del>DNS</del> <del>BGP</del> <del>network</del> server problem? Start at <a href="https://http.pizza/">http.pizza</a> for badly-needed stress relief (HT: <a href="https://blog.computer-networking.info/nov25/">Networking Notes</a>), then start <del>a chat session with your new AI friend</del> exploring more focused resources like the Wikipedia <a href="https://en.wikipedia.org/wiki/List_of_HTTP_status_codes">list of HTTP status codes</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Has Ansible Team Abandoned Network Automation?]]></title>
    <link href="https://blog.ipspace.net/2025/12/ansible-abandoned-network-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/ansible-abandoned-network-automation/</id>
    <published>2025-12-16T08:28:00+01:00</published>
    <updated>2026-01-16T11:18:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A month ago, I described how Ansible release 12 <a href="/2025/11/ansible-12-different/#configs">broke the network device configuration modules</a>, the little engines (<a href="https://en.wikipedia.org/wiki/The_Little_Engine_That_Could">that could</a>) that brought us from the dark days of copy-and-paste into the more-survivable land of configuration templates.</p>
<div  class="update">
In the meantime, the Ansible networking team <a href="https://github.com/ansible-collections/ansible.netcommon/pull/743">fixed</a> the <strong>ansible.netcommon</strong> collection, but (according to that PR) the ability to process templated configurations directly in the network configuration modules is scheduled to disappear in January 2028 (<a href="https://github.com/ansible-collections/ansible.netcommon/issues/745#issuecomment-3756755302">more details</a>). I moved on; <em>netlab</em> is now <a href="https://netlab.tools/release/26.01/#release-26-01-breaking">generating device configurations outside of Ansible</a>.
</div>
<p>Three releases later (they just released 13.1), the same bug is still there (at least it was on a fresh Python virtual environment install I made on a Ubuntu 24.04 server on December 13th, 2025), making all <strong><em>device</em>_config</strong> modules unusable (without changing your Ansible playbooks) for configuration templating. Even worse:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/12/ansible-abandoned-network-automation/'>Read more &hellip;</a></div>]]></content>
    <category term="Ansible" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Underscores (in Hostnames) Strike Again]]></title>
    <link href="https://blog.ipspace.net/2025/12/underscores-strike-again/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/underscores-strike-again/</id>
    <published>2025-12-15T07:23:00+01:00</published>
    <updated>2025-12-15T07:23:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I don&rsquo;t know why I decided to allow underscores in <em>netlab</em> node names. Maybe it&rsquo;s a leftover from the ancient days when some network devices refused to accept hyphens in hostnames, or perhaps it&rsquo;s a programmer&rsquo;s subconscious hatred of hyphens in identifiers (no programming language I&rsquo;m aware of allows them for a very good reason).</p>
<p>Regardless, you can use underscores in <a href="https://netlab.tools/nodes/"><em>netlab</em> node names</a> (and plugins like <em><a href="https://netlab.tools/plugins/multilab/">multilab</a></em> use them to create unique hostnames), and they work great on Linux distributions we recommend&hellip; until they don&rsquo;t.</p>
<p>What follows is a story about the <a href="https://xkcd.com/2347/">weird dependencies</a> that might bite you if you ignore <a href="https://datatracker.ietf.org/doc/html/rfc952">ancient RFCs</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/12/underscores-strike-again/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Multilevel IS-IS Deployments]]></title>
    <link href="https://blog.ipspace.net/2025/12/multilevel-isis/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/multilevel-isis/</id>
    <published>2025-12-12T11:45:00+01:00</published>
    <updated>2025-12-12T11:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Like OSPF, IS-IS was designed when router memory was measured in megabytes and clock speeds in megahertz. Not surprisingly, it includes a scalability mechanism similar to OSPF areas. An IS-IS router could be a level-1 router (having in-area prefixes and a default route), a level-2 router (knowing just inter-area prefixes), or a level-1-2 router (equivalent to OSPF ABR).</p>
<p>Even though multilevel IS-IS is rarely used today, it always makes sense to understand how things work, and the <a href="https://isis.bgplabs.net/advanced/1-multilevel/">Multilevel IS-IS Deployments</a> lab exercise created by <a href="https://github.com/danpartelly">Dan Partelly</a> gives you a perfect starting point.</p>

<figure><img src="https://isis.bgplabs.net/advanced/topology-multiarea.png"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/isis">Click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://isis.bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>advanced/1-multilevel</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IETF v6ops Working Group with Nick Buraglio]]></title>
    <link href="https://blog.ipspace.net/2025/12/v6ops-ietf-working-group/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/v6ops-ietf-working-group/</id>
    <published>2025-12-11T08:03:00+01:00</published>
    <updated>2025-12-11T08:03:00+01:00</updated>
    <link rel="enclosure" type="audio/mpeg" href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_203-IETF_v6ops_Working_Group_with_Nick_Buraglio.mp3" />
    <content type="html"><![CDATA[<p>The first IPv6 specs were published in 1995, and yet 30 years later, we still have a pretty active <a href="https://datatracker.ietf.org/wg/v6ops/about/">IETF working group</a> focused on &ldquo;<em>developing guidelines for the deployment and operation of new and existing IPv6 networks.</em>&rdquo; (taken from the <a href="https://datatracker.ietf.org/doc/charter-ietf-v6ops/05/">old charter</a>; they <a href="https://datatracker.ietf.org/doc/charter-ietf-v6ops/06/">updated it</a> in late October 2025). Why is it taking so long, and what problems are they trying to solve?</p>
<p>Nick Buraglio, one of the working group chairs, provided some answers in <a href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_203-IETF_v6ops_Working_Group_with_Nick_Buraglio.mp3">Episode 203</a> of the Software Gone Wild podcast.</p>
<div class='jump-link'><a href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_203-IETF_v6ops_Working_Group_with_Nick_Buraglio.mp3">Listen to the podcast</a></div>
]]></content>
    <category term="Software Gone Wild" />
    <category term="podcast" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Evergreen: The Big Ball of Mud]]></title>
    <link href="https://blog.ipspace.net/2025/12/worth-reading-big-ball-mud/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/worth-reading-big-ball-mud/</id>
    <published>2025-12-10T08:07:00+01:00</published>
    <updated>2025-12-10T08:07:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In 2007, <a href="https://en.wikipedia.org/wiki/Jeff_Atwood">Jeff Atwood</a> published a legendary <a href="https://blog.codinghorror.com/the-big-ball-of-mud-and-other-architectural-disasters/">blog post</a> summarizing a <a href="http://www.laputan.org/mud/">1997 paper</a> by Brian Foote and Joseph Yoder.</p>
<p>Reading that blog post (or the original paper), the inevitable conclusion is that we haven&rsquo;t made much progress in the last 20 years. Even worse, almost every single pathological architecture described in that blog post applies quite well to real-life organically grown networks.</p>
<div class='jump-link'><a href="https://blog.codinghorror.com/the-big-ball-of-mud-and-other-architectural-disasters/">Keep reading</a></div>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 25.12: Cisco IOS/XR Configuration Modules, More VXLAN Goodies]]></title>
    <link href="https://blog.ipspace.net/2025/12/netlab-25-12/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/netlab-25-12/</id>
    <published>2025-12-08T07:16:00+01:00</published>
    <updated>2025-12-08T07:16:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/25.12/"><em>netlab</em> release 25.12</a> (25.12.02 to be exact &ndash; I had a few <a href="https://en.wiktionary.org/wiki/PEBCAK">PEBCAK</a> moments) was published last Friday. Here are the highlights:</p>
<ul>
<li>Significantly improved Cisco IOS/XR support. With the <em>netlab</em> release 25.12, you can configure VLANs, VRFs, static routes, route redistribution, OSPF default routes, BGP confederations, and BGP local-as</li>
<li>VXLAN-over-IPv6 on Arista EOS</li>
<li>VXLAN with ingress replication on Cisco Catalyst 8000v</li>
<li>The <strong>shutdown</strong> <a href="https://netlab.tools/links/#link-attributes">link/interface attribute</a> can be used to start labs with interfaces turned off</li>
<li>Large BGP community lists, implemented on Arista EOS, FRR, and Junos. You can use standard- or large community lists in <a href="https://netlab.tools/module/routing/#generic-routing-policies">routing policies</a></li>
<li>The <strong><a href="https://netlab.tools/netlab/validate/#netlab-validate">netlab validate</a></strong> command will <a href="https://netlab.tools/netlab/validate/#netlab-validate-dev">reread validation tests</a> from a modified lab topology file every time you run it. It can also read validation tests from a separate file.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/12/netlab-25-12/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: More Complex VXLAN Deployment Scenario]]></title>
    <link href="https://blog.ipspace.net/2025/12/vxlan-complex/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/vxlan-complex/</id>
    <published>2025-12-05T07:22:00+01:00</published>
    <updated>2025-12-05T07:22:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="https://evpn.bgplabs.net/vxlan/1-single/">first VXLAN lab</a>, we covered the very basics. Now it&rsquo;s time for a few essential concepts (before introducing the EVPN control plane or integrated routing and bridging):</p>
<ul>
<li>Each VXLAN segment could have a different set of VTEPs (used to build the BUM flooding list)</li>
<li>While the VXLAN Network Identifier (VNI) must be unique across the participating VTEPs, you could map different VLAN IDs into a single VNI (allowing you to merge two VLAN segments over VXLAN)</li>
<li>Neither VXLAN VNI nor VLAN ID has to be globally unique (but it helps to make them unique to remain sane)</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/12/vxlan-complex/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Technical Writing: Lower Your Expectations]]></title>
    <link href="https://blog.ipspace.net/2025/12/worth-reading-technical-writing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/worth-reading-technical-writing/</id>
    <published>2025-12-04T07:24:00+01:00</published>
    <updated>2025-12-04T07:24:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/sean-goedecke-5495a7137/">Sean Goedecke</a> published <a href="https://www.seangoedecke.com/technical-communication/">an excellent set of recommendations for good technical writing</a>, including:</p>
<ul>
<li>Keep it short</li>
<li>Try to make your point in the first sentence</li>
<li>Details matter less than you think.</li>
</ul>
<p>Based on some emails I received in the past (and the lack of response to the lengthy emails I sent), we should apply the same rules to emails (and all other forms of technical communication).</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Watching: AI/ML Data Center Design]]></title>
    <link href="https://blog.ipspace.net/2025/12/worth-reading-ai-ml-data-center-design/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/worth-reading-ai-ml-data-center-design/</id>
    <published>2025-12-03T10:30:00+01:00</published>
    <updated>2025-12-03T10:30:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>What could be better than watching <a href="https://www.youtube.com/playlist?list=PLMYH1xDLIabuZCr1Yeoo39enogPA2yJB7">0x02 Jeffs</a> discuss networking? How about having <a href="https://www.linkedin.com/in/petrlapu/">Petr Lapukhov</a> of the <a href="https://datatracker.ietf.org/doc/html/rfc7938">RFC 7938</a> fame as a guest discussing <a href="https://www.youtube.com/live/Xoji3cEDl2Y">AI/ML Data Center Design</a>?</p>
<p><strong>Note:</strong> Petr disappeared into the information black hole called Facebook over a decade ago, so I wondered how they allowed him to chat on a podcast for hours. It turns out he moved to NVIDIA, which might influence the podcast content a bit, but I&rsquo;m pretty sure Petr is still Petr ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multi-Pod EVPN Troubleshooting: Extended BGP Communities]]></title>
    <link href="https://blog.ipspace.net/2025/12/evpn-multi-pod-tshoot-xc/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/evpn-multi-pod-tshoot-xc/</id>
    <published>2025-12-02T07:47:00+02:00</published>
    <updated>2025-12-02T07:47:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, we <a href="/2025/11/evpn-multi-pod-tshoot-rt/">fixed the mismatched route targets</a> in our sample <a href="/2025/10/evpn-designs-multi-pod/">multi-pod EVPN fabric</a>. With that fixed, every PE device should see every other PE device as a remote VTEP for ingress replication purposes. We got that to work on Site-A (AS 65001), but not on Site-B (AS 65002); let&rsquo;s see what else is broken.</p>
<p><strong>Note:</strong> This is the fifth blog post in the Multi-Pod EVPN series. If you stumbled upon it, start with the <a href="/2025/10/evpn-designs-multi-pod/">design overview</a> and <a href="/2025/10/troubleshoot-multi-pod-evpn/">troubleshooting overview</a> posts. More importantly, familiarize yourself with the topology we&rsquo;ll be using; it&rsquo;s described in the <a href="/2025/11/evpn-multi-pod-tshoot-example/">Multi-Pod EVPN Troubleshooting: Fixing Next Hops</a>.</p>
<p>Ready? Let&rsquo;s go. Here&rsquo;s our network topology:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/12/evpn-multi-pod-tshoot-xc/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab as the Universal Configuration Translator]]></title>
    <link href="https://blog.ipspace.net/2025/12/netlab-configuration-translator/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/12/netlab-configuration-translator/</id>
    <published>2025-12-01T07:30:00+01:00</published>
    <updated>2025-12-01T07:30:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://github.com/danpartelly">Dan Partelly</a>, a heavy <em>netlab</em> user (and an active <a href="https://github.com/ipspace/netlab/graphs/contributors">contributor</a>), sent me this interesting perspective on how one might want to use <em>netlab</em> without ever building a lab with it. All I added was a bit of AI-assisted editing; my comments are on a grey background.</em></p>
<hr>
<p>In all podcasts and interviews I listened to, netlab was referred to as a &ldquo;lab management solution&rdquo;. But this is misleading. It&rsquo;s also a translator, due to its ability to abstract devices, and can easily generate perfectly usable configs for <a href="https://netlab.tools/platforms/">devices</a> or <a href="https://netlab.tools/module-reference/">technologies</a> you have never worked on.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/12/netlab-configuration-translator/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fun Reading: From XML to LLMs]]></title>
    <link href="https://blog.ipspace.net/2025/11/worth-reading-xml-to-llm/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/worth-reading-xml-to-llm/</id>
    <published>2025-11-29T07:53:00+01:00</published>
    <updated>2025-11-29T07:53:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In his latest blog post (<a href="https://apenwarr.ca/log/20251120">Systems design 3: LLMs and the semantic revolution</a>), Avery Pennarun claims that LLMs might solve the problem we consistently failed to solve on a large scale for the last 60 (or so) years &ndash; the automated B2B data exchange.</p>
<p>You might agree with him or not (for example, an accountant or two might get upset with hallucinated invoice items), but his articles are always a fun read.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: IS-IS Route Redistribution]]></title>
    <link href="https://blog.ipspace.net/2025/11/isis-route-redistribution/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/isis-route-redistribution/</id>
    <published>2025-11-28T07:45:00+01:00</published>
    <updated>2025-11-28T07:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Route redistribution into IS-IS seems even easier than its OSPFv2/OSPFv3 counterparts. There are no additional LSAs/LSPs; the redistributed prefixes are included in the router LSP. Things get much more interesting once you start looking into the gory details and exploring how different implementations use (or do not) the various metric bits and TLVs.</p>
<p>You&rsquo;ll find more details (and the opportunity to explore the LSP database contents in a safe environment) in the <a href="https://isis.bgplabs.net/feature/7-redistribute/">IS-IS Route Redistribution</a> lab exercise.</p>

<figure><img src="https://isis.bgplabs.net/feature/topology-redistribute.png"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/isis">Click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://isis.bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>feature/7-redistribute</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPFv3 Router ID Documentation on Arista EOS]]></title>
    <link href="https://blog.ipspace.net/2025/11/arista-eos-ospfv3-router-id/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/arista-eos-ospfv3-router-id/</id>
    <published>2025-11-27T07:27:00+01:00</published>
    <updated>2025-11-27T07:27:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I published a blog post <a href="/2025/10/ospf-automatic-router-id/">making fun of the ridiculously incorrect Cisco IOS/XE OSPFv3 documentation</a>, an engineer working for Cisco quickly sent me an email saying, &ldquo;Well, the other vendors are not much better.&rdquo;</p>
<p>Let&rsquo;s see how well Arista EOS is doing; this is their description of the <strong>router-id</strong> command (taken from EOS 4.35.0F documentation; unchanged for at least a dozen releases):</p>

<figure><img src="/2025/11/arista-eos-ospfv3-router-id.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/arista-eos-ospfv3-router-id/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Testing IP Multicast with netlab]]></title>
    <link href="https://blog.ipspace.net/2025/11/worth-reading-netlab-multicast/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/worth-reading-netlab-multicast/</id>
    <published>2025-11-26T07:56:00+01:00</published>
    <updated>2025-11-26T07:56:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/aleksandr-albin-421463191/">Aleksandr Albin</a> built a large (almost 20-router) lab topology (based on an example from Jeff Doyle&rsquo;s Routing TCP/IP Volume 2) that he uses to practice inter-AS IP multicast. He also <a href="https://github.com/alex4lbin/network_labs/tree/main/jd_multicast_lab">published the topology file</a> (and additional configuration templates) on GitHub and <a href="https://www.linkedin.com/feed/update/urn:li:activity:7394777753004236800/">documented his experience</a> in a LinkedIn post.</p>

<figure><a href="/2025/11/multicast-topo.jpg"><img src="/2025/11/multicast-topo.jpg"
   alt="Lab topology, copied with permission by Aleksandr Albin"/></a><figcaption>
    <p>Lab topology, copied with permission by Aleksandr Albin</p>
  </figcaption>
</figure>
<p>It&rsquo;s so nice to see engineers using your tool in real-life scenarios. Thanks a million, Aleksandr, for sharing it.</p>
]]></content>
    <category term="worth reading" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multi-Pod EVPN Troubleshooting: Route Targets]]></title>
    <link href="https://blog.ipspace.net/2025/11/evpn-multi-pod-tshoot-rt/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/evpn-multi-pod-tshoot-rt/</id>
    <published>2025-11-25T07:49:00+02:00</published>
    <updated>2025-11-25T07:49:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, we <a href="/2025/11/evpn-multi-pod-tshoot-example/">fixed the incorrect BGP next hops</a> in our sample <a href="/2025/10/evpn-designs-multi-pod/">multi-pod EVPN fabric</a>. With that fixed, every PE device should see every other PE device as a remote VTEP for ingress replication purposes. However, that&rsquo;s not the case; let&rsquo;s see why and fix it.</p>
<p><strong>Note:</strong> This is the fourth blog post in the Multi-Pod EVPN series. If you stumbled upon it, start with the <a href="/2025/10/evpn-designs-multi-pod/">design overview</a> and <a href="/2025/10/troubleshoot-multi-pod-evpn/">troubleshooting overview</a> posts. More importantly, familiarize yourself with the topology we&rsquo;ll be using; it&rsquo;s described in the <a href="/2025/11/evpn-multi-pod-tshoot-example/">Multi-Pod EVPN Troubleshooting: Fixing Next Hops</a>.</p>
<p>Ready? Let&rsquo;s go. Here&rsquo;s our network topology:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/evpn-multi-pod-tshoot-rt/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IOS/XR Route Redistribution Configuration Mess]]></title>
    <link href="https://blog.ipspace.net/2025/11/iosxr-redistribute-config-mess/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/iosxr-redistribute-config-mess/</id>
    <published>2025-11-24T07:43:00+01:00</published>
    <updated>2025-11-24T07:43:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One would hope that the developers of a network operating system wouldn&rsquo;t feel the irresistible urge to reinvent what should have been a common configuration feature for every routing protocol. Alas, the IOS/XR developers failed to get that memo.</p>
<p>I decided to <a href="https://github.com/ipspace/netlab/pull/2824">implement route redistribution</a> (known as <em>route import</em> in <em>netlab</em>) for OSPFv2/OSPFv3, IS-IS, and BGP on IOS/XR (Cisco 8000v running IOS/XR release 24.4.1) and found that each routing protocol uses a different syntax for the <em>source routing protocol</em> part of the <strong>redistribute</strong> command.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/iosxr-redistribute-config-mess/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Building VXLAN/EVPN Data Center Lab with netlab]]></title>
    <link href="https://blog.ipspace.net/2025/11/worth-reading-netlab-vxlan-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/worth-reading-netlab-vxlan-evpn/</id>
    <published>2025-11-20T07:56:00+01:00</published>
    <updated>2025-11-20T07:56:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/dmitri-klepcha-8b97491b8/">Dmitry Klepcha</a> published an excellent document describing how you can use netlab to build a series of data center fabric labs, starting from a simple IP network (without routing) and finishing with a complex EVPN/VXLAN network using symmetric IRB and MLAG toward hosts.</p>
<p>But wait, there&rsquo;s more: all the lab topologies he used in his exercises are <a href="https://github.com/aeangel/otus-DC-net/tree/main">available on GitHub</a>, which means that you could just clone the repo and start using them (I also &ldquo;borrowed&rdquo; some of <a href="https://aeangel.gitbook.io/netlab_for_otus/en-docs/useful/09_customizing">his ideas</a> as future <em>netlab</em> improvements).</p>
<p>Finally, thanks a million to <a href="https://www.linkedin.com/in/roman-pomazanov/">Roman Pomazanov</a> for bringing Dmitry&rsquo;s work to my attention (and for the quote at the end of <a href="https://www.linkedin.com/posts/roman-pomazanov_theres-a-saying-that-goes-those-who-know-activity-7394645032164827136-ELmR/">his post</a> ;).</p>
]]></content>
    <category term="worth reading" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting: an MCP Agent for Link-State Routing Protocols]]></title>
    <link href="https://blog.ipspace.net/2025/11/mcp-agent-link-state-protocols/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/mcp-agent-link-state-protocols/</id>
    <published>2025-11-19T07:15:00+01:00</published>
    <updated>2025-11-19T07:15:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/vadim-semenov-1b538130/">Vadim Semenov</a> created a <a href="https://www.youtube.com/watch?v=92YBRXqZWUo">nice demo</a> that allows you to use an LLM to query the collected link-state graphs through an MCP agent (<a href="https://suzieq.readthedocs.io/en/latest/">SuzieQ</a> would probably be faster and easier to deploy, but hey, AI).</p>
<p>If you want to kick the tires, you&rsquo;ll find the source code on GitHub (<a href="https://github.com/Vadims06/network-ai-assistant">Network AI assistant</a>, <a href="https://github.com/Vadims06/topolograph-mcp-server">MCP server for Topolograph service</a>). You&rsquo;ll also need Vadim&rsquo;s previous projects: <a href="https://github.com/Vadims06/topolograph">Topolograph</a> and <a href="https://github.com/Vadims06/ospfwatcher">OSPF watcher</a> or <a href="https://github.com/Vadims06/isiswatcher">IS-IS watcher</a>.</p>
]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multi-Pod EVPN Troubleshooting: Fixing Next Hops]]></title>
    <link href="https://blog.ipspace.net/2025/11/evpn-multi-pod-tshoot-example/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/evpn-multi-pod-tshoot-example/</id>
    <published>2025-11-18T08:27:00+02:00</published>
    <updated>2025-11-18T08:27:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Last month, I wrote about the <a href="/2025/10/troubleshoot-multi-pod-evpn/">specifics of troubleshooting</a> <a href="/2025/10/evpn-designs-multi-pod/">multi-pod EVPN designs</a>. Today, I&rsquo;d like to start a journey through an example in which (channeling my inner CCIE preparation lab instructor) I broke as many things as I could think of.</p>
<p>Here&rsquo;s the lab topology we&rsquo;ll use (and as usual, the corresponding <a href="https://github.com/ipspace/netlab-examples/blob/master/EVPN/tshoot-multi-pod/topology.yml"><em>netlab</em> topology file</a> and <a href="https://github.com/ipspace/netlab-examples/tree/master/EVPN/tshoot-multi-pod/config">device configurations</a> are on GitHub). Our network has two sites (pods), each with a spine switch, a leaf switch, and a host attached to the leaf switch. The inter-pod link is connected to the spine switches to minimize the number of devices.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/evpn-multi-pod-tshoot-example/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[AI Enshittification: Swiss Airlines Edition]]></title>
    <link href="https://blog.ipspace.net/2025/11/swiss-airlines-ai-enshittification/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/swiss-airlines-ai-enshittification/</id>
    <published>2025-11-17T08:00:00+01:00</published>
    <updated>2025-11-17T08:00:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Remember the <a href="https://blog.ipspace.net/2020/09/disaster-recovery-vendor-marketing/">vendor consultants</a> who persuasively told you how to use their gear to build a disaster recovery solution with stretched VLANs, even though the only disaster recovery they ever experienced was the frantic attempt to restart their PowerPoint slide deck? Fortunately, I was only involved in the aftermath of their activity when the laws of physics reasserted themselves, and I <a href="https://blog.ipspace.net/2013/01/long-distance-vmotion-stretched-ha/">helped the poor victims</a> rearchitect their network into a somewhat saner state.</p>
<p>There&rsquo;s another batch of <del>snake-oil salesmen</del> consultants peddling their warez to the gullible incompetent managers: the AI preachers promising reduction in support costs. Like the other group of consultants, they have never worked in support and have never implemented a working AI solution in their lives, but that never bothered them or their audience.</p>
<p>Unfortunately, this time I had the unfortunate &ldquo;privilege&rdquo; of having the painful front-row seat.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/swiss-airlines-ai-enshittification/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using netlab for Classroom Training with Sander Steffann]]></title>
    <link href="https://blog.ipspace.net/2025/11/using-netlab-ipv6-training/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/using-netlab-ipv6-training/</id>
    <published>2025-11-14T07:17:00+01:00</published>
    <updated>2025-11-14T07:17:00+01:00</updated>
    <link rel="enclosure" type="audio/mpeg" href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_202-Using_netlab_for_Training.mp3" />
    <content type="html"><![CDATA[<p>In March 2024, I received my <a href="https://github.com/ipspace/netlab/pull/1050">first PR</a> from an airplane: <a href="https://www.linkedin.com/in/sandersteffann/">Sander Steffann</a> was flying to South Africa to deliver an Ansible training and fixed a minor annoyance in the then-new multilab feature.</p>
<p>Of course, I wanted to know more about his setup, but it took us over a year and a half till we managed to sit down (virtually) and chat about it, the state of IPv6, the impact of CG-NAT on fraud prevention, and why digital twins don&rsquo;t make sense in large datacenter migrations.</p>
<p>For more details, listen to Episode 202 of Software Gone Wild.</p>
<div class='jump-link'><a href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_202-Using_netlab_for_Training.mp3">Listen to the podcast</a></div>
]]></content>
    <category term="Software Gone Wild" />
    <category term="podcast" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 25.11: SRv6 on IOS/XE, Streamlined Graphs and Reports]]></title>
    <link href="https://blog.ipspace.net/2025/11/netlab-25-11/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/netlab-25-11/</id>
    <published>2025-11-13T10:02:00+01:00</published>
    <updated>2025-11-13T10:02:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I managed to push out <a href="https://netlab.tools/release/25.11/"><em>netlab</em> release 25.11</a> yesterday. Here are the highlights:</p>
<ul>
<li>SRv6 on IOS/XE. It works with Catalyst 8000v, IOL, and IOL layer-2 image, and can be used to build L3VPNs (the IOS/XE image I have supports no other service on top of SRv6)</li>
<li>RIPv2/RIPng on OpenBSD</li>
<li>A more streamlined way to create <a href="https://netlab.tools/netlab/report/#netlab-report">reports</a> and <a href="https://netlab.tools/netlab/graph/#netlab-graph">graphs</a></li>
<li>The <strong>netlab graph</strong> command <a href="https://netlab.tools/netlab/graph/#generating-image-files">creates the SVG/PNG/JPEG/PDF graph</a> instead of a graph description file if you&rsquo;ve installed D2/Graphviz on your system.</li>
</ul>
<p>We also had to make a few <a href="https://netlab.tools/release/25.11/#breaking-changes">potentially-breaking changes</a>, fixed a <a href="https://netlab.tools/release/25.11/#bug-fixes">bunch of bugs</a>, and added <a href="https://netlab.tools/release/25.11/#new-functionality">over a dozen</a> small improvements.</p>
<p>You&rsquo;ll find all the details in the <a href="https://netlab.tools/release/25.11/">release notes</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/netlab-25-11/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Majority AI View]]></title>
    <link href="https://blog.ipspace.net/2025/11/worth-reading-majority-ai-view/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/worth-reading-majority-ai-view/</id>
    <published>2025-11-12T08:06:00+01:00</published>
    <updated>2025-11-12T08:06:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Many engineers who tried out (or use) various AI products would agree that they&rsquo;re useful when used correctly, but way overhyped. However, as Anil Dash explains in his <a href="https://www.anildash.com/2025/10/17/the-majority-ai-view/">Majority AI View</a> article, we rarely hear that opinion:</p>
<blockquote>
<p>What&rsquo;s amazing is the reality that virtually 100% of tech experts I talk to in the industry feel this way, yet nobody outside of that cohort will mention this reality.</p>
</blockquote>
<div class='jump-link'><a href="https://www.anildash.com/2025/10/17/the-majority-ai-view/">Keep reading</a></div>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[One-Arm Hub-and-Spoke VPN on Arista EOS]]></title>
    <link href="https://blog.ipspace.net/2025/11/one-arm-hub-spoke-vpn-arista-eos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/one-arm-hub-spoke-vpn-arista-eos/</id>
    <published>2025-11-11T07:28:00+01:00</published>
    <updated>2025-11-11T07:28:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In September 2024, I described how you can build <a href="/2024/09/hub-spoke-one-arm/">One-Arm Hub-and-Spoke VPN with MPLS/VPN</a>. In that blog post, I mentioned that the solution doesn&rsquo;t work on Arista EOS because it allocates MPLS labels to whole VRFs (<a href="/2024/10/mpls-vpn-prefix-vrf-labels/">per-VRF label allocation</a>).</p>
<p>In early September, I received an email from <a href="https://www.linkedin.com/in/danielblazek18/">Daniel Blažek</a> telling me that Arista fixed this particular annoyance in the EOS release 4.34.2F. It still uses per-VRF label allocation, but now, you can assign a different label <em>to the default route</em>. Let&rsquo;s see how that works with our <a href="https://github.com/ipspace/netlab-examples/blob/master/MPLS/hub-spoke-one-arm/topology.yml">one-arm hub-and-spoke topology</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/one-arm-hub-spoke-vpn-arista-eos/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Test IPv6 IGP Deployment]]></title>
    <link href="https://blog.ipspace.net/2025/11/netlab-igp-ipv6-deployment/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/netlab-igp-ipv6-deployment/</id>
    <published>2025-11-10T07:45:00+01:00</published>
    <updated>2025-11-10T07:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Imagine you have an IPv4-only network<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and want to try out how to deploy a routing protocol for IPv6. <em>netlab</em> is a pretty good tool for the job as it:</p>
<ul>
<li>Creates an addressing scheme for you</li>
<li>Designs a routing protocol deployment (<a href="https://netlab.tools/module/ospf/">OSPF</a>, <a href="https://netlab.tools/module/isis/">IS-IS</a>) based on just a few bits of information</li>
<li>Deploys ready-to-run router configurations to a virtual lab.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/netlab-igp-ipv6-deployment/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Adjust IS-IS Timers]]></title>
    <link href="https://blog.ipspace.net/2025/11/isis-lab-timers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/isis-lab-timers/</id>
    <published>2025-11-07T07:37:00+01:00</published>
    <updated>2025-11-07T07:37:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Like any other routing protocol, IS-IS has several timers you can tweak to improve the convergence speed of your network, or make your network unstable (eventually breaking it completely) if you reduce them too much (if you care about fast convergence, you REALLY SHOULD use BFD).</p>
<p>You&rsquo;ll find more details (and the opportunity to tweak the timers in a safe environment) in the <a href="https://isis.bgplabs.net/feature/6-timers/">Adjust IS-IS Timers</a> lab exercise.</p>

<figure><img src="https://isis.bgplabs.net/feature/topology-timers.png"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/isis">Click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://isis.bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>feature/6-timers</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Presentation: Testing Disaster Recovery Designs]]></title>
    <link href="https://blog.ipspace.net/2025/11/testing-dr-designs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/testing-dr-designs/</id>
    <published>2025-11-06T08:09:00+01:00</published>
    <updated>2025-11-06T08:09:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Someone asked for my <a href="/2025/10/deep-conference-2025/">DEEP 2025</a> presentation (Testing Disaster Recovery Designs). You can <a href="https://my.ipspace.net/bin/get/AADesign/Test%20Disaster%20Recovery%20Designs%20%28DEEP%202025%29.pdf?doccode=AADesign">download it here</a> (no strings attached). I hope you&rsquo;ll find it interesting.</p>
<div  class="note">
The organizers plan to make the recorded videos public after a few months. Of course, I&rsquo;ll post a link when they do that.
</div>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: AI Won't Replace Network Engineers]]></title>
    <link href="https://blog.ipspace.net/2025/11/worth-reading-ai-replace-network-engineers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/worth-reading-ai-replace-network-engineers/</id>
    <published>2025-11-05T08:38:00+01:00</published>
    <updated>2025-11-05T08:38:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Jason Gintert published an excellent explanation why <a href="https://www.bitsinflight.com/ai-wont-replace-network-engineers/">AI won&rsquo;t replace (all) network engineers</a>, and reading it, I felt like reading one of my &ldquo;automation won&rsquo;t replace network engineers&rdquo; blog posts.</p>
<p>Here&rsquo;s a quote to get you in the mood:</p>
<blockquote>
<p>AI will make good engineers better and will expose mediocre ones. If your value proposition is memorizing CLI commands or being a human grep for log files, then yes, you might need to be worried.</p>
</blockquote>
<div class='jump-link'><a href="https://www.bitsinflight.com/ai-wont-replace-network-engineers/">Keep reading</a></div>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Curious Case of Default OSPF Interface Timers]]></title>
    <link href="https://blog.ipspace.net/2025/11/ospf-interface-timers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/ospf-interface-timers/</id>
    <published>2025-11-04T07:14:00+01:00</published>
    <updated>2025-11-04T07:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>We run two types of integration tests before shipping a <em>netlab</em> release: <em>device</em> integration tests that check whether we correctly implemented <em>netlab</em> features on all supported devices, and <em>platform</em> integration tests that check whether rarely-used core functionality works as expected.</p>
<p>I want to have some validation included in the platform integration tests to ensure the lab devices are started, and that the links and the management network work as expected. The simplest way to get that done is to start OSPF with short hello intervals (to get adjacency up in no time), for example:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/ospf-interface-timers/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Ansible Release 12: the Windows Vista Moment]]></title>
    <link href="https://blog.ipspace.net/2025/11/ansible-12-different/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/11/ansible-12-different/</id>
    <published>2025-11-03T07:44:00+01:00</published>
    <updated>2025-11-03T07:44:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>My <a href="https://github.com/ipspace/netlab/issues/2683">first encounter</a> with Ansible release 12 wasn&rsquo;t exactly encouraging. We were using a few Ansible Jinja2 filters (<strong>ipaddr</strong> and <strong>hwaddr</strong>) in internal <em>netlab</em> templates, and all of a sudden those templates started crashing due to some weird behavior of attributes starting with underscore.</p>
<p>We implemented <em><a href="https://github.com/ipspace/netlab/pull/2684">don&rsquo;t use Ansible release 12</a></em> as a quick workaround, but postponing painful things is never a good solution(see also: visiting a dentist), so I decided to try to make <em>netlab</em> work with Ansible release 12. <a href="https://www.youtube.com/watch?v=n-PEUuzMlWg">What a mistake to make</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/11/ansible-12-different/'>Read more &hellip;</a></div>]]></content>
    <category term="Ansible" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New Project: Open-Source VXLAN/EVPN Labs]]></title>
    <link href="https://blog.ipspace.net/2025/10/vxlan-evpn-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/vxlan-evpn-labs/</id>
    <published>2025-10-30T08:11:00+01:00</published>
    <updated>2025-10-30T08:11:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After launching the <a href="https://bgplabs.net/">BGP labs</a> in 2023 and <a href="https://isis.bgplabs.net/">IS-IS labs</a> in 2024, it was time to start another project that was quietly sitting on the back burner for ages: open-source (and free) <a href="https://evpn.bgplabs.net/">VXLAN/EVPN labs</a>.</p>
<p>The first lab exercise is already online and expects you to <a href="https://evpn.bgplabs.net/vxlan/1-single/">extend a single VLAN segment</a> across an IP underlay network using VXLAN encapsulation with static ingress replication.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/vxlan-evpn-labs/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: AI for Network Managers]]></title>
    <link href="https://blog.ipspace.net/2025/10/worth-reading-ai-network-managers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/worth-reading-ai-network-managers/</id>
    <published>2025-10-29T07:34:00+01:00</published>
    <updated>2025-10-29T07:34:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Pat Allen wrote an <a href="https://www.layer8packet.io/home/ai-for-network-managers-leading-teams-in-the-age-of-intelligent-automation">interesting guide</a> for managers of networking teams dealing with the onslaught of AI (HT: PacketPushers newsletter).</p>
<p>The leitmotif: use AI to generate a rough solution, then review and improve it. That makes perfect sense and works as long as we don&rsquo;t forget we can&rsquo;t trust AI, assuming you save time doing it this way.</p>
<div class='jump-link'><a href="https://www.layer8packet.io/home/ai-for-network-managers-leading-teams-in-the-age-of-intelligent-automation">Keep reading</a></div>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OMG: Automatic OSPFv3 Router ID on Cisco IOS]]></title>
    <link href="https://blog.ipspace.net/2025/10/ospf-automatic-router-id/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/ospf-automatic-router-id/</id>
    <published>2025-10-28T07:52:00+01:00</published>
    <updated>2025-10-28T07:52:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Found this incredible gem<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> hidden in the Usage Guidelines for the <a href="https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipv6/command/ipv6-cr-book/ipv6-r1.html#wp4240068693">OSPFv3 <strong>router-id</strong> configuration command</a> part of the <a href="https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipv6/command/ipv6-cr-book/ipv6-r1.html">Cisco IOS IPv6 reference guide</a>.</p>
<p>The whole paragraph seems hallucinated<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, but that couldn&rsquo;t be because the page was supposedly last updated in 2019, and LLMs weren&rsquo;t good enough to write well-structured nonsense at that time:</p>
<blockquote>
<p>OSPFv3 is backward-compatible with OSPF version 2.</p>
</blockquote>
<p>No, it is not.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/ospf-automatic-router-id/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Adding a Syslog Server to a netlab Lab Topology]]></title>
    <link href="https://blog.ipspace.net/2025/10/netlab-syslog-server/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/netlab-syslog-server/</id>
    <published>2025-10-27T07:23:00+01:00</published>
    <updated>2025-10-27T07:23:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> does not support a Syslog server (yet), but it&rsquo;s really easy to add one to your lab topology, primarily thanks to the Rsyslog team publishing a ready-to-run container. Let&rsquo;s do it ;)</p>
<h3 id="adding-a-syslog-server">Adding a Syslog Server</h3>
<p>Rsyslog is an open-source implementation of a Syslog server (with many bells and whistles, most of which we won&rsquo;t use) that can (among other things) log incoming messages to a file. Even better (for our use case), the Rsyslog team regularly publishes <a href="https://www.rsyslog.com/doc/containers/index.html">Rsyslog containers</a>; we&rsquo;ll use the <a href="https://www.rsyslog.com/doc/containers/collector.html"><code>rsyslog/rsyslog-collector</code> container </a> because it can &ldquo;<em>receive logs via UDP, TCP, and optionally RELP, and can send them to storage backends or files</em>.&rdquo;</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/netlab-syslog-server/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DEEP Is Still a Must-Attend Boutique Conference]]></title>
    <link href="https://blog.ipspace.net/2025/10/deep-conference-2025/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/deep-conference-2025/</id>
    <published>2025-10-24T07:54:00+02:00</published>
    <updated>2025-10-24T07:54:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I love well-organized small conferences, so it wasn&rsquo;t hard to persuade me to have another talk at the <a href="https://deep-conference.com/">DEEP Conference</a> in Zadar, Croatia. This time, I talked about the role of digital twins in disaster recovery/avoidance testing. You might know <a href="https://blog.ipspace.net/2022/04/digital-twin-powerpoint/">my take</a> on <a href="https://blog.ipspace.net/2025/06/digital-twins-powerpoint-reality/">networking digital twins</a>; after that, I only had enough time to focus on <em>bandwidth and latency matter</em>, and <em>this is how you emulate limited bandwidth and add latency</em> bit.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/deep-conference-2025/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Drain Traffic From an IS-IS Node Before Starting Maintenance]]></title>
    <link href="https://blog.ipspace.net/2025/10/isis-lab-overload-maintenance/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/isis-lab-overload-maintenance/</id>
    <published>2025-10-23T07:09:00+02:00</published>
    <updated>2025-10-23T07:09:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s a cool feature every routing protocol should have: a flag that tells everyone a node is going down, giving them time to adjust their routing tables <em>before</em> disrupting traffic flow.</p>
<p>OSPF never had such a feature; common implementations set the cost of all interfaces to a very high value to emulate it. BGP got it (the <a href="https://datatracker.ietf.org/doc/html/rfc8326">Graceful BGP Session Shutdown</a>) almost 30 years after it was created. IS-IS had the <em>overload</em> bit from day one, and it&rsquo;s just what an IS-IS router needs to tell everyone else they should stop using it for transit traffic. You can try it out in the <a href="https://isis.bgplabs.net/feature/5-drain/">Drain Traffic Before Node Maintenance</a> lab exercise.</p>
<p><a href="https://github.com/codespaces/new/bgplab/isis">Click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://isis.bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>feature/5-drain</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPF Router ID and Loopback Interface Myths]]></title>
    <link href="https://blog.ipspace.net/2025/10/ospf-routerid-loopback-interface-myths/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/ospf-routerid-loopback-interface-myths/</id>
    <published>2025-10-21T08:14:00+02:00</published>
    <updated>2025-10-21T08:14:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Dib wrote a <a href="https://www.linkedin.com/feed/update/urn:li:activity:7381217822187708416/">nice article describing the history of the loopback interface</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, triggering an inevitable <a href="https://www.linkedin.com/feed/update/urn:li:activity:7381217822187708416?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7381217822187708416%2C7381277236454395904%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287381277236454395904%2Curn%3Ali%3Aactivity%3A7381217822187708416%29">mention</a> of the role of a loopback interface in OSPF and related flood of ancient memories on my end.</p>
<p>Before going into the details, let&rsquo;s get one fact straight: an OSPF router ID was always (at least from the days of OSPFv1 described in <a href="https://www.rfc-editor.org/rfc/rfc1131.pdf">RFC 1133</a>) just a 32-bit identifier, not an IPv4 address<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. Straight from the RFC 1133:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/ospf-routerid-loopback-interface-myths/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Embed Files in a Lab Topology]]></title>
    <link href="https://blog.ipspace.net/2025/10/netlab-embedded-files/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/netlab-embedded-files/</id>
    <published>2025-10-20T09:45:00+02:00</published>
    <updated>2025-10-20T09:45:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Today, I&rsquo;ll focus on another feature of the new <strong><a href="https://netlab.tools/plugins/files/">files</a></strong> plugin &ndash; you can use it to embed any (hopefully small) file in a lab topology (<strong><a href="/2025/10/netlab-configlets/">configlets</a></strong> are just a special case in which the plugin creates the relative file path from the <strong>configlets</strong> dictionary data).</p>
<p>You could use this functionality to include configuration files for Linux containers, custom reports, or even plugins in the lab topology, and share a complete solution as a single file that can be <a href="/2025/09/netlab-download-url/">downloaded from a GitHub repository</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/netlab-embedded-files/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Hide Transit Subnets in IS-IS Networks]]></title>
    <link href="https://blog.ipspace.net/2025/10/isis-lab-hide-transit/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/isis-lab-hide-transit/</id>
    <published>2025-10-17T07:46:00+02:00</published>
    <updated>2025-10-17T07:46:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Sometimes you want to assign IPv4/IPv6 subnets to transit links in your network (for example, to identify interfaces in <em>traceroute</em> outputs), but don&rsquo;t need to have those subnets in the IP routing tables throughout the whole network. Like OSPF, IS-IS has a nerd knob you can use to exclude transit subnets from the router PDUs.</p>
<p>Want to check how that feature works with your favorite device? Use the <a href="https://isis.bgplabs.net/feature/4-hide-transit/">Hide Transit Subnets in IS-IS Networks</a> lab exercise.</p>

<figure><img src="https://isis.bgplabs.net/feature/topology-hide-transit.png"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/isis">Click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://isis.bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>feature/4-hide-transit</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: Multi-Pod with IP-Only WAN Routers]]></title>
    <link href="https://blog.ipspace.net/2025/10/evpn-designs-inter-as-c/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/evpn-designs-inter-as-c/</id>
    <published>2025-10-15T08:12:00+02:00</published>
    <updated>2025-10-15T08:12:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2025/10/evpn-designs-multi-pod/">multi-pod EVPN design</a>, I described a simple way to merge two EVPN fabrics into a single end-to-end fabric. Here are a few highlights of that design:</p>
<ul>
<li>Each fabric is running OSPF and IBGP, with core (spine) devices being route reflectors</li>
<li>There&rsquo;s an EBGP session between the WAN edge routers (sometimes called border leaf switches)</li>
<li>Every BGP session carries IPv4 (underlay) and EVPN (overlay) routes.</li>
</ul>
<p>In that design, the WAN edge routers have to support EVPN (at least in the control plane) and carry all EVPN routes for both fabrics. Today, we&rsquo;ll change the design to use simpler WAN edge routers that support only IP forwarding.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/evpn-designs-inter-as-c/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Can't We Have Good Documentation]]></title>
    <link href="https://blog.ipspace.net/2025/10/shoddy-documentation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/shoddy-documentation/</id>
    <published>2025-10-14T07:51:00+02:00</published>
    <updated>2025-10-14T07:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Dib <a href="https://www.linkedin.com/feed/update/urn%3Ali%3Aactivity%3A7378661316384870400/">asked a sad question on LinkedIn</a>:</p>
<blockquote>
<p>Where did all the great documentation go?</p>
</blockquote>
<p>In more detail:</p>
<blockquote>
<p>There was a time when documentation answered almost all questions:</p>
<ul>
<li>What is the thing?</li>
<li>What does the thing do?</li>
<li>Why would you use the thing?</li>
<li>How do you configure the thing?</li>
</ul>
</blockquote>
<p>I&rsquo;ve seen the same thing happening in training, and here&rsquo;s my cynical TL&amp;DR answer: because the managers of the documentation/training departments don&rsquo;t understand the true value of what they&rsquo;re producing and thus cannot justify a decent budget to make it happen.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/shoddy-documentation/'>Read more &hellip;</a></div>]]></content>
    <category term="training" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Embed Configuration Templates in a Lab Topology File]]></title>
    <link href="https://blog.ipspace.net/2025/10/netlab-configlets/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/netlab-configlets/</id>
    <published>2025-10-13T08:30:00+02:00</published>
    <updated>2025-10-13T08:30:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A few days ago, I <a href="/2025/10/netlab-simple-configuration-changes/">described how you can use the new <strong>config.inline</strong> functionality</a> to apply additional configuration commands to individual devices in a <em>netlab</em>-powered lab.</p>
<p>However, sometimes you have to apply the same set of commands to several devices. Although you could use device <strong>groups</strong> to do that, <em>netlab</em> release 25.09 offers a much better mechanism: you can embed <a href="https://netlab.tools/custom-config-templates/">custom configuration templates</a> in the lab topology file.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/netlab-configlets/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 25.10: Cisco 8000v, Nicer Graphs]]></title>
    <link href="https://blog.ipspace.net/2025/10/netlab-25-10/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/netlab-25-10/</id>
    <published>2025-10-10T08:02:00+01:00</published>
    <updated>2025-10-10T08:02:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/25.10/"><em>netlab</em> release 25.10</a> includes:</p>
<ul>
<li>Support for container version of Cisco 8000v emulator (finally a reasonable IOS-XR platform)</li>
<li>Support for vJunosEVO (vPTX) release 24+ (it needs UEFI BIOS), thanks to <a href="https://github.com/a-v-popov">Aleksey Popov</a> and <a href="https://github.com/ssasso">Stefano Sasso</a></li>
<li><a href="https://netlab.tools/groups/#groups-members">Wildcards or regular expressions</a> in group- or <strong><a href="https://netlab.tools/module/bgp/#bgp-aslist">as_list</a></strong> members.</li>
<li><a href="https://netlab.tools/release/25.10/#release-25-10-graph">Graphing improvements</a></li>
<li>OSPFv2/v3 on OpenBSD thanks to <a href="https://www.linkedin.com/in/remilocherer/">Remi Locherer</a></li>
<li>OSPFv2/v3 interface parameters on IOS XR</li>
</ul>
<p>You&rsquo;ll find more details in the <a href="https://netlab.tools/release/25.10/">release notes</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/netlab-25-10/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Troubleshooting Multi-Pod EVPN: Overview]]></title>
    <link href="https://blog.ipspace.net/2025/10/troubleshoot-multi-pod-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/troubleshoot-multi-pod-evpn/</id>
    <published>2025-10-09T08:27:00+02:00</published>
    <updated>2025-10-09T08:27:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>An engineer reading my multi-pod EVPN article asked an interesting question:</p>
<blockquote>
<p>How do you handle troubleshooting when VTEPs cannot reach each other across pods?</p>
</blockquote>
<p>The ancient Romans already knew the rough answer: divide and conquer.</p>
<p>In this particular case, the &ldquo;divide&rdquo; part starts with a simple realization: VXLAN/EVPN is just another application running on top of IP.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/troubleshoot-multi-pod-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Changes in ipSpace.net RSS Feeds]]></title>
    <link href="https://blog.ipspace.net/2025/10/changes-rss-feeds/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/changes-rss-feeds/</id>
    <published>2025-10-08T06:40:00+02:00</published>
    <updated>2025-10-08T06:40:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR:</strong> You shouldn&rsquo;t see any immediate impact of this change, but I&rsquo;ll eventually clean up old stuff, so you might want to check the URLs if you use RSS/Atom feeds to get the list of ipSpace.net blog posts or podcast episodes. The (hopefully) final URLs are listed on <a href="https://www.ipspace.net/Feeds">this page</a>.</p>
<p><strong>Executive Summary:</strong> I cleaned up the whole ipSpace.net RSS/Atom feeds system. The script that generated the content for various feeds has been replaced with static Hugo-generated RSS/Atom feeds. I added redirects for all the old stuff I could find (including <code>ioshints.blogspot.com</code>), but I could have missed something. The only defunct feed is the <em>free content</em> feed (which hasn&rsquo;t changed in a while, anyway), as it required scanning the documents database. You can use <a href="https://www.ipspace.net/Subscription/Free">this page</a> to find the (ever-increasing) free content.</p>
<p>And now for the real story ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/changes-rss-feeds/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Working for a Vendor with David Gee]]></title>
    <link href="https://blog.ipspace.net/2025/10/working-for-vendor-david-gee/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/working-for-vendor-david-gee/</id>
    <published>2025-10-07T08:23:00+02:00</published>
    <updated>2025-10-07T08:23:00+02:00</updated>
    <link rel="enclosure" type="audio/mpeg" href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_201-Working_for_a_Vendor_with_David_Gee.mp3" />
    <content type="html"><![CDATA[<p>When I first met David Gee, he worked for a large system integrator. A few years later, he moved to a networking vendor, worked for a few of them, then for a software vendor, and finally decided to start his own system integration business.</p>
<p>Obviously, I wanted to know what drove him to make those changes, what lessons he learned working in various parts of the networking industry, and what (looking back with perfect hindsight) he would have changed.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/working-for-vendor-david-gee/'>Read more &hellip;</a></div>]]></content>
    <category term="Software Gone Wild" />
    <category term="podcast" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Spaghetti Pasta Networking]]></title>
    <link href="https://blog.ipspace.net/2025/10/spaghetti-pasta-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/spaghetti-pasta-networking/</id>
    <published>2025-10-06T08:15:00+02:00</published>
    <updated>2025-10-06T08:15:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s an interesting data point in case you ever wondered why things are getting slower, even though the CPU performance is supposedly increasing. Albert Siersema sent me a link to a <a href="https://passt.top/passt/about/">confusing implementation of spaghetti networking</a>.</p>
<p>It looks like <a href="https://passt.top/passt/about/#motivation">they&rsquo;re trying to solve</a> the <em>how do I connect two containers (network namespaces) without having the privilege to create a vEth pair</em> challenge with plenty of <del>chewing gum and duct tape</del> tap interfaces 🤦‍♂️</p>
]]></content>
    <category term="virtualization" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using BIRD BGP Daemon as a BGP Route Reflector]]></title>
    <link href="https://blog.ipspace.net/2025/10/bgp-labs-bird-rr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/bgp-labs-bird-rr/</id>
    <published>2025-10-03T07:51:00+02:00</published>
    <updated>2025-10-03T07:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In this challenge lab, you&rsquo;ll configure a BIRD daemon running in a container as a BGP route reflector in a transit autonomous system. You should be familiar with the configuration concepts if you completed the <a href="https://bgplabs.net/basic/#ibgp">IBGP lab exercises</a>, but will probably struggle with BIRD configuration if you&rsquo;re not familiar with it.</p>

<figure><img src="https://bgplabs.net/challenge/topology-bird-rr.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/bgplab">Click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>challenge/01-bird-rr</code>, build the BIRD container with <strong>netlab clab build bird</strong> if needed, and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Applying Simple Configuration Changes]]></title>
    <link href="https://blog.ipspace.net/2025/10/netlab-simple-configuration-changes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/netlab-simple-configuration-changes/</id>
    <published>2025-10-02T08:19:00+00:00</published>
    <updated>2025-10-02T08:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>For years, netlab has had <a href="https://netlab.tools/custom-config-templates/">custom configuration templates</a> that can be used to deploy custom configurations onto lab devices. The custom configuration templates can be Jinja2 templates, and you can create <a href="/2022/04/multi-platform-custom-netsim-config/">different templates (for the same functionality) for different platforms</a>. However, using that functionality if you need an extra command or two makes approximately as much sense as using a Kubernetes cluster to deploy a <em><a href="https://en.wikipedia.org/wiki/BusyBox">BusyBox</a></em> container.</p>
<p><em>netlab</em> release 25.09 solves that problem with the <strong><a href="https://netlab.tools/plugins/files/">files</a></strong> plugin and the <em><a href="https://netlab.tools/plugins/files/#inline-node-group-configuration-templates">inline config</a></em> functionality.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/netlab-simple-configuration-changes/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: Multi-Pod Fabrics]]></title>
    <link href="https://blog.ipspace.net/2025/10/evpn-designs-multi-pod/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/10/evpn-designs-multi-pod/</id>
    <published>2025-10-01T07:59:00+02:00</published>
    <updated>2025-10-01T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2025/08/evpn-designs-interas-a/">EVPN Designs: Layer-3 Inter-AS Option A</a>, I described the simplest multi-site design in which the WAN edge routers exchange IP routes in individual VRFs, resulting in two isolated layer-2 fabrics connected with a layer-3 link.</p>
<p>Today, let&rsquo;s explore a design that will excite the True Believers in end-to-end layer-2 networks: two EVPN fabrics connected with an EBGP session to form a unified, larger EVPN fabric. We&rsquo;ll use the same &ldquo;physical&rdquo; topology as the previous example; the only modification is that the WA-WB link is now part of the underlay IP network.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/10/evpn-designs-multi-pod/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Changing the Layout of netlab Topology Graphs]]></title>
    <link href="https://blog.ipspace.net/2025/09/netlab-graphs-layout/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/netlab-graphs-layout/</id>
    <published>2025-09-30T07:26:00+02:00</published>
    <updated>2025-10-13T09:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>After I published the updated <a href="/2021/09/netsim-tools-graphs/">netlab topology graphs</a> article, <a href="https://www.linkedin.com/in/samuel-k-lam/">Samuel K. Lam</a> quickly made a comment along the lines of <em>now we know how the <a href="/2023/06/bgp-leak-lab/">graph</a> representing the following topology was made</em>, adding a nice ASCII art that illustrated the point I was trying to make much better than my graphs:</p>

<figure><img src="/2025/09/bl-topology.png"
   alt="ASCII art representing the BGP leak lab"/><figcaption>
    <p>ASCII art representing the BGP leak lab</p>
  </figcaption>
</figure>
<p>Let&rsquo;s see how close we can get to that ideal topology diagram with GraphViz and D2 graphs.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/netlab-graphs-layout/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Android Phones Might Ask for /64 Delegated Prefix]]></title>
    <link href="https://blog.ipspace.net/2025/09/android-dhcpv6-prefix-delegation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/android-dhcpv6-prefix-delegation/</id>
    <published>2025-09-29T07:43:00+02:00</published>
    <updated>2025-09-29T07:43:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>I&rsquo;m too old to be fighting with windmills, but sometimes I have to get a rant off my chest. This one was triggered by the latest episode of the hilarious<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> &ldquo;DHCPv6 on Android&rdquo; <a href="/2021/10/dhcpv6-matters/">soap opera</a></em></p>
<hr>
<p>In a 720-degree turnaround, Android 11 supports DHCPv6, but only for <em>prefix delegation purposes</em>. Yes, you got it right, in a year or two, every phone might want to have a dedicated /64 prefix assigned to it <em>on WiFi segments</em><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</p>
<p>Want more details? Well, there&rsquo;s a <a href="https://android-developers.googleblog.com/2025/09/simplifying-advanced-networking-with.html">high-level overview</a> published on the Android Developers blog and a corresponding message sent to the <a href="https://mailarchive.ietf.org/arch/msg/v6ops/Sq5TadeSsMQ-0uEWrdem3A1wDh0/">v6ops mailing list</a>. Let&rsquo;s see how much sense that makes.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/android-dhcpv6-prefix-delegation/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
    <category term="DHCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Protect IS-IS Routing Data with MD5 Authentication]]></title>
    <link href="https://blog.ipspace.net/2025/09/isis-lab-authenticate/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/isis-lab-authenticate/</id>
    <published>2025-09-26T07:40:00+02:00</published>
    <updated>2025-09-26T07:40:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Like OSPF and BGP, IS-IS contains a simple mechanism to authenticate routing traffic – IS-IS packets can include a cleartext password or an <a href="https://datatracker.ietf.org/doc/html/rfc5304">MD5</a>- or <a href="https://datatracker.ietf.org/doc/html/rfc5310">SHA hash</a>. Unlike OSPF, IS-IS can also authenticate:</p>
<ul>
<li>The hello packets exchanged between routers</li>
<li>The contents of Link State PDUs flooded across an area or a domain.</li>
</ul>
<p>Want to know more? Check out the <a href="https://isis.bgplabs.net/feature/3-md5/">Protect IS-IS Routing Data with MD5 Authentication</a> lab exercise.</p>

<figure><img src="https://isis.bgplabs.net/feature/topology-md5.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/isis">Click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://isis.bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>feature/3-md5</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Start a Lab From a GitHub netlab Topology File]]></title>
    <link href="https://blog.ipspace.net/2025/09/netlab-download-url/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/netlab-download-url/</id>
    <published>2025-09-24T07:37:00+02:00</published>
    <updated>2025-09-24T07:37:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Someone approached me after my <a href="https://nog.hr/en/meetups/meetup5/">NOG.HR</a> <em>netlab</em> presentation and said: &ldquo;<em>wouldn&rsquo;t it be great if we could just start the lab from an example topology published on GitHub?</em>&rdquo;</p>
<p>It took me <a href="https://github.com/ipspace/netlab/issues/1388">almost a year</a> to get it done, but the <a href="https://netlab.tools/netlab/up/#usage">functionality</a> finally made it into the <a href="https://netlab.tools/release/25.09/">25.09 release</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/netlab-download-url/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SwiNOG 40: Deploying Precision Time Protocol across WAN]]></title>
    <link href="https://blog.ipspace.net/2025/09/swinog40-ptp-wan/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/swinog40-ptp-wan/</id>
    <published>2025-09-23T07:33:00+02:00</published>
    <updated>2025-09-23T07:33:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Is it possible to deploy Precision Time Protocol across a country-wide WAN network and reach nanosecond-level synchronization between cities? It&rsquo;s definitely not trivial and only works over dedicated infrastructure; for more details, watch the <a href="https://www.swinog.ch/wp-content/uploads/2025/06/Oliver-Ettlin-Simplexity-PTP-in-WANs.pdf">PTP in WANs</a> (<a href="https://youtu.be/k2AjtuVluGo">video</a>) presentation Oliver Ettlin had at <a href="/2025/06/swinog/">SwiNOG 40</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Changing Colors and Line Styles in netlab Graphs]]></title>
    <link href="https://blog.ipspace.net/2025/09/netlab-graphs-colors-lines/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/netlab-graphs-colors-lines/</id>
    <published>2025-09-22T07:38:00+02:00</published>
    <updated>2025-09-22T07:38:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, I explained how to <a href="/2021/09/netsim-tools-graphs/">generate network topology graphs</a> (using GraphViz or D2 graphing engines) from a <a href="https://netlab.tools/topology-overview/"><em>netlab</em> lab topology</a>. Let&rsquo;s see how we can make them look nicer (or at least more informative). We&rsquo;ll work with a simple <a href="https://github.com/ipspace/netlab-examples/blob/master/graphs/colors-lines/topology.yml">leaf-and-spine topology</a> with four nodes<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>
<div class="code-caption">Baseline leaf-and-spine topology</div>
<pre tabindex="0"><code>defaults.device: frr
provider: clab

nodes: [ s1, s2, l1, l2 ]
links: [ s1-l1, s1-l2, s2-l1, s2-l2 ]
</code></pre><p>This is the graph generated by <strong>netlab create</strong> followed by <strong>dot graph.dot -T png -o graph.png</strong>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/netlab-graphs-colors-lines/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Pleasant Surprise: Google AI Overview]]></title>
    <link href="https://blog.ipspace.net/2025/09/google-ai-overview/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/google-ai-overview/</id>
    <published>2025-09-20T07:21:00+02:00</published>
    <updated>2025-09-20T07:21:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>When I was writing a blog post, I needed a link to the <em>netlab</em> lab topology documentation, so I <a href="https://www.google.com/search?q=netlab+lab+topology">searched for</a> &ldquo;netlab lab topology&rdquo; (I know I&rsquo;m lazy, but it felt quicker than navigating the sidebar menu).</p>
<p>The AI overview I got was way too verbose, but it nailed the <em>Key Concepts</em> and <em>How It Works</em> well enough that I could just use them in the <em>netlab</em> README.md file. Maybe this AI thing is becoming useful after all ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/google-ai-overview/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Use Additional BGP Paths for IBGP Load Balancing]]></title>
    <link href="https://blog.ipspace.net/2025/09/bgp-labs-addpath/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/bgp-labs-addpath/</id>
    <published>2025-09-19T08:01:00+02:00</published>
    <updated>2025-09-19T08:01:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I wrote about the <a href="https://blog.ipspace.net/2021/12/bgp-multipath-addpath/">optimal BGP path selection with BGP additional paths</a> in 2021, and I probably mentioned (in one of the <a href="https://blog.ipspace.net/tag/bgp/">360 BGP-related blog posts</a>) that you need it to implement IBGP load balancing in networks using BGP route reflectors. If you want to try that out, check out the <a href="https://bgplabs.net/lb/4-ibgp-add-path/">IBGP Load Balancing with BGP Additional Paths</a> lab exercise.</p>

<figure><img src="https://bgplabs.net/lb/topology-ibgp-add-path.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/bgplab">Click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>lb/4-ibgp-add-path</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Arista EOS Hates a Routing Instance with No Interfaces]]></title>
    <link href="https://blog.ipspace.net/2025/09/eos-no-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/eos-no-interfaces/</id>
    <published>2025-09-18T07:20:00+02:00</published>
    <updated>2025-09-18T07:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I always ask engineers <a href="https://github.com/ipspace/netlab/issues">reporting a <em>netlab</em> bug</a> to provide a minimal lab topology that would reproduce the error, sometimes resulting in &ldquo;interesting&rdquo; side effects. For example, I was trying to debug a BGP-related Arista EOS issue using a <em>netlab</em> topology similar to this one:</p>
<pre tabindex="0"><code>defaults.device: eos
module: [ bgp ]
nodes:
  a: { bgp.as: 65000 }
  b: { bgp.as: 65001 }
</code></pre><p>Imagine my astonishment when the two switches failed to configure BGP. Here&rsquo;s the error message I got when running the netlab&rsquo;s <em>deploy device configurations</em> Ansible playbook:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/eos-no-interfaces/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SwiNOG 40: When a Routing Control Functions Is Too Fresh]]></title>
    <link href="https://blog.ipspace.net/2025/09/swinog40-arista-rcf-bug/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/swinog40-arista-rcf-bug/</id>
    <published>2025-09-17T07:33:00+02:00</published>
    <updated>2025-09-17T07:33:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>During integration testing, I find <a href="/tag/netlab/#quirks">unexpected quirks in network devices</a> way too often. However, that&rsquo;s infinitely better than experiencing them in production (even after thoroughly testing stuff) while discovering that your peers don&rsquo;t care about routing security, RPKI, and similar useless stuff.</p>
<p>For example, what happens if you define a new Routing Control Function (RFC) on Arista EOS and apply it to BGP routing updates <em>in the same configuration session</em>? You&rsquo;ll find out in the <a href="https://www.swinog.ch/wp-content/uploads/2025/06/Stefan-Funke-Inter.link-Sorry-we-messed-up.pdf">Sorry We Messed Up</a> (<a href="https://youtu.be/f1jF0zpMol0">video</a>) presentation Stefan Funke had at  <a href="/2025/06/swinog/">SwiNOG 40</a> (note: the bug has been fixed in the meantime).</p>
]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Updated: netlab Network Topology Graphs]]></title>
    <link href="https://blog.ipspace.net/2025/09/update-netlab-graphs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/update-netlab-graphs/</id>
    <published>2025-09-16T07:39:00+02:00</published>
    <updated>2025-09-16T07:39:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/2025/09/netlab-25-09/"><em>netlab</em> release 25.09</a> introduced <a href="https://netlab.tools/release/25.09/#release-25-09-graph">numerous graphing enhancements</a> and a new graph type (IS-IS graphs), so I decided to write a series of blog posts explaining how you can generate graphs from <em>netlab</em> lab topologies.</p>
<p>I wrote an <em>intro to netlab topology graphs</em> years ago, and as expected, it was hopelessly outdated, so I started the project with a complete overhaul of that article.</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[[FATAL] Ansible Release 12.0 Breaks netlab Jinja2 Templates]]></title>
    <link href="https://blog.ipspace.net/2025/09/netlab-25-09-post1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/netlab-25-09-post1/</id>
    <published>2025-09-14T19:25:00+02:00</published>
    <updated>2025-09-14T19:25:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>On September 9th, the <a href="https://pypi.org/project/ansible/#history"><strong>ansible</strong> release 12.0</a> appeared on PyPi. It requires <a href="https://pypi.org/project/ansible-core/#history"><strong>ansible-core</strong> release 2.19</a>, which <a href="https://github.com/ansible/ansible/blob/v2.19.2/changelogs/CHANGELOG-v2.19.rst#breaking-changes-porting-guide">includes breaking changes</a> to Jinja2 templating. <em>netlab</em> Jinja2 templates rely on a few Ansible Jinja2 filters; <em>netlab</em> thus imports and uses those filters, and it looks like those imports pulled in the breaking changes that consequently broke the <em>netlab</em> containerlab configuration file template (<a href="https://github.com/ipspace/netlab/issues/2683">details</a>).</p>
<p><em>netlab</em> did not check the Ansible core version (we never had a similar problem in the past), and the installation scripts did not pin the Ansible version (feel free to blame me for this one), which means that any new <em>netlab</em> installation created after September 9th crashed miserably on the simplest lab topologies.</p>
<p>This is the workaround we implemented in <a href="https://netlab.tools/release/25.09/#release-25-09-post1"><em>netlab</em> release 25.09-post1</a> (released earlier today):</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/netlab-25-09-post1/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Running IS-IS over IPv4 Unnumbered and IPv6 LLA Interfaces]]></title>
    <link href="https://blog.ipspace.net/2025/09/isis-lab-unnumbered/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/isis-lab-unnumbered/</id>
    <published>2025-09-12T07:41:00+02:00</published>
    <updated>2025-09-12T07:41:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>IS-IS does not use IPv4 or IPv6, so it should be a no-brainer to run it over IPv4 unnumbered or IPv6 LLA interfaces. The latter is true; the former is smack in the middle of the <em>It Depends™</em> territory.</p>
<p>Want to know more or test the devices you&rsquo;re usually working with? The <a href="https://isis.bgplabs.net/basic/7-unnumbered/">Running IS-IS Over Unnumbered/LLA-only Interfaces</a> lab exercise is just what you need.</p>

<figure><img src="https://isis.bgplabs.net/basic/topology-unnumbered.png"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/isis">Click here</a> to start the lab in your browser <a href="https://isis.bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://isis.bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>basic/7-unnumbered</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Curious Case of 'ip host' Configuration Command]]></title>
    <link href="https://blog.ipspace.net/2025/09/ip-hosts-configuration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/ip-hosts-configuration/</id>
    <published>2025-09-11T09:51:00+02:00</published>
    <updated>2025-09-11T09:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Since time immemorial, I have used the <strong>ip host</strong> router configuration command to get host-to-IP mappings in networking labs without going through the hassle of setting up a DNS server. Some devices even accepted multiple IP addresses in the <strong>ip host</strong> command, allowing you to list all router interfaces in a single command and get reverse (IP-to-host) mapping working like a charm. Or so I thought 🤦‍♂️</p>
<p>It turns out I&rsquo;m too old, and what I know is sometimes no longer true. It seems that the last implementation working as I expected is Cisco IOS Classic ☹️</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/ip-hosts-configuration/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Labbing Network Technology Details with netlab]]></title>
    <link href="https://blog.ipspace.net/2025/09/labbing-network-technology-details/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/labbing-network-technology-details/</id>
    <published>2025-09-10T08:08:00+00:00</published>
    <updated>2025-09-10T08:08:00+00:00</updated>
    <link rel="enclosure" type="audio/mpeg" href="http://media.blubrry.com/ipspace/stream.ipspace.net/nuggets/podcast/Show_200-Labbing_Network_Technology_Details.mp3" />
    <content type="html"><![CDATA[<p>It&rsquo;s been over four years since I published the <a href="/2021/04/bringing-young-blood-in-networking/">last Software Gone Wild episode</a>. In the meantime, I spent most of my time developing an <a href="https://netlab.tools/">open-source labbing tool</a>, so it should be no surprise that the first post-hiatus episode focused on a <em>netlab</em> use case: how Ethan Banks (of the <a href="https://packetpushers.net/">PacketPushers</a> fame) is using the tool to quickly check the technology details for his <a href="https://packetpushers.net/podcast/n-is-for-networking/">N is for Networking</a> podcast.</p>
<p>As expected, our discussion took us all over the place, including (according to Riverside AI):</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/labbing-network-technology-details/'>Read more &hellip;</a></div>]]></content>
    <category term="Software Gone Wild" />
    <category term="netlab" />
    <category term="podcast" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SwiNOG 40: Reliability of High-Speed Transceivers]]></title>
    <link href="https://blog.ipspace.net/2025/09/swinog40-melting-transceivers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/swinog40-melting-transceivers/</id>
    <published>2025-09-09T14:33:00+02:00</published>
    <updated>2025-09-09T14:33:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Whenever you see Gerhard Stein and Thomas Weible from Flexoptix in a list of presenters, three things immediately become obvious:</p>
<ol>
<li>It will be about transceivers</li>
<li>It will be fun</li>
<li>It will include some crazy stuff</li>
</ol>
<p>Their <a href="/2025/06/swinog/">SwiNOG 40</a> <a href="https://www.swinog.ch/wp-content/uploads/2025/06/Gerhard-Stein-Thomas-Weible-Flexoptix-Network-Reliability-Analysis-Coherent-Non-Coherent.pdf">presentation</a> (<a href="https://youtu.be/FGfZ90oujpE">video</a>) met all three expectation. We learned how well transceivers cope with high temperatures and what happens when you try to melt them with a heat gun.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 25.09: IPv6 RA, Link Impairments, and Performance Gains]]></title>
    <link href="https://blog.ipspace.net/2025/09/netlab-25-09/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/netlab-25-09/</id>
    <published>2025-09-08T08:14:00+01:00</published>
    <updated>2025-09-08T08:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/25.09/"><em>netlab</em> release 25.09</a> includes:</p>
<ul>
<li>Link impairment (implemented with Linux <em>netem</em> queuing discipline) defined in <a href="https://netlab.tools/links/#links-netem">lab topology</a> or configured/controlled with the <strong><a href="https://netlab.tools/netlab/tc/">netlab tc</a></strong> command</li>
<li>Configurable <a href="https://netlab.tools/links/#links-ra">IPv6 Router Advertisement</a> parameters</li>
<li>The <a href="https://netlab.tools/plugins/files/#plugin-files"><strong>files</strong> plugin</a> to store the content of short files (including custom configuration templates) directly in the lab topology</li>
<li>Support for Nokia SR-OS container (SR-SIM)</li>
<li>Support for very large topologies (tested so far: <a href="/2025/09/netlab-lab-size/">approximately 3000 lab devices</a>)</li>
</ul>
<p>But wait, there&rsquo;s more (as always):</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/netlab-25-09/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How Many Lab Devices Can netlab Handle?]]></title>
    <link href="https://blog.ipspace.net/2025/09/netlab-lab-size/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/netlab-lab-size/</id>
    <published>2025-09-04T07:59:00+02:00</published>
    <updated>2025-09-04T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR:</strong> Over 3000</p>
<p>A few weeks ago, <a href="https://github.com/Muddyblack">Christian</a> opened an <a href="https://github.com/ipspace/netlab/issues/2603">issue</a> describing how <em>netlab</em> breaks when the lab topology has more than 250 devices. We fixed that, only to get into <a href="https://github.com/ipspace/netlab/issues/2621">another morass</a>: some code has complexity higher than O(n) (meaning that going from 100 to 200 devices makes things more than twice as slow). Christian is working on one of those problems at the moment (it&rsquo;s not that his ginormous labs won&rsquo;t start, it just takes a long time), and I decided it&rsquo;s time to polish a few other bits of the code.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/09/netlab-lab-size/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SwiNOG 40: Submarine Cables]]></title>
    <link href="https://blog.ipspace.net/2025/09/swinog40-submarine-cables/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/swinog40-submarine-cables/</id>
    <published>2025-09-03T07:33:00+02:00</published>
    <updated>2025-09-03T07:33:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>If you know as much about submarine cables (the thingies that carry 90% of international Internet traffic) as I do (= nothing), you SHOULD watch the <a href="https://www.swinog.ch/wp-content/uploads/2025/06/Liam-Taylor-David-Lloyd-Exa-A-Technical-Update-on-Submarine-Cables.pdf">Technical Update on Submarine Cables</a> (<a href="https://youtu.be/JYblPwg70Ns">video</a>) presentation  Liam Taylor had at the <a href="/2025/06/swinog/">SwiNOG 40 event</a>. Have fun ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Netlab: The Fastest Way to Build Network Labs]]></title>
    <link href="https://blog.ipspace.net/2025/09/netlab-fastest-way-build-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/09/netlab-fastest-way-build-labs/</id>
    <published>2025-09-01T08:22:00+02:00</published>
    <updated>2025-09-01T08:22:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.packetswitch.co.uk/author/suresh/">Suresh Vina</a> published a <a href="https://www.packetswitch.co.uk/netlab-the-fastest-way-to-build-network-labs/">great netlab tutorial</a>, going from the very basics to a full-blown MPLS network with custom multi-vendor device configuration. Thank you!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[iBGP Local-AS Route Propagation]]></title>
    <link href="https://blog.ipspace.net/2025/08/ibgp-local-as-rr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/ibgp-local-as-rr/</id>
    <published>2025-08-29T07:52:00+02:00</published>
    <updated>2025-08-29T07:52:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2025/04/ibgp-local-as-details/">previous blog post on this topic</a>, I described the iBGP local-as functionality and explained why we MUST change the BGP next hop on the routes sent over the fake iBGP session (TL&amp;DR: because we&rsquo;re not running IGP across that link).</p>
<p>That blog post used a simple topology with three routers. Now let&rsquo;s add a few more routers to the mix and see what happens.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/08/ibgp-local-as-rr/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Automation Reality Check with William Collins]]></title>
    <link href="https://blog.ipspace.net/2025/08/network-automation-reality-check/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/network-automation-reality-check/</id>
    <published>2025-08-28T08:20:00+02:00</published>
    <updated>2025-08-28T08:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In early August, <a href="https://www.linkedin.com/in/william-collins/">William Collins</a> invited me to <a href="https://packetpushers.net/podcasts/the-cloud-gambit/tcg056-network-automation-reality-check-with-ivan-pepelnjak/">chat</a> about a <a href="https://www.linkedin.com/feed/update/urn:li:ugcPost:7351491325029957633?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7351491325029957633%2C7352048218139947009%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287352048218139947009%2Curn%3Ali%3AugcPost%3A7351491325029957633%29">sarcastic comment I made</a> about a specific automation tool I have a love-hate relationship with on LinkedIn.</p>
<p>We quickly agreed not to go (too deep) into tool-bashing. Instead, we discussed the eternal problems of network automation, from unhealthy obsession with tools to focus on point solutions while lacking the bigger picture or believing in vendor-delivered nirvana.</p>
<div class='jump-link'><a href="https://packetpushers.net/podcasts/the-cloud-gambit/tcg056-network-automation-reality-check-with-ivan-pepelnjak/">Listen to the podcast</a></div>
]]></content>
    <category term="automation" />
    <category term="podcast" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SwiNOG 40: Application-Based Source Routing with SRv6]]></title>
    <link href="https://blog.ipspace.net/2025/08/swinog40-srv6/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/swinog40-srv6/</id>
    <published>2025-08-27T08:28:00+02:00</published>
    <updated>2025-08-27T08:28:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>The <em>we should give different applications different paths across the network</em> idea never dies (even though in many places the residential Internet gives you enough bandwidth to watch 4K videos), and the <a href="https://www.swinog.ch/wp-content/uploads/2025/06/Severin-Dellsperger-OST-University-Leveraging-Intent-Based-Networking-and-SRv6-for-Dynamic-End-to-End-Traffic-Steering.pdf">Leveraging Intent-Based Networking and SRv6 for Dynamic End-to-End Traffic Steering</a> (<a href="https://youtu.be/vpdKcHth6wg">video</a>) by Severin Dellsperger was an interesting new riff on that ancient grailhunt.</p>
<p>Their solution uses SRv6 for traffic steering<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, an Intent-Based System<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> that figures out paths across the network, and eBPF on client hosts<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> to add per-application SRv6 headers to outgoing traffic.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/08/swinog40-srv6/'>Read more &hellip;</a></div>]]></content>
    <category term="segment routing" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: Layer-3 Inter-AS Option A]]></title>
    <link href="https://blog.ipspace.net/2025/08/evpn-designs-interas-a/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/evpn-designs-interas-a/</id>
    <published>2025-08-26T08:48:00+02:00</published>
    <updated>2025-09-28T11:23:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A <em>netlab</em> user <a href="https://blog.ipspace.net/2024/04/evpn-designs-vxlan-leaf-spine-fabric/#2654">wanted to explore</a> a multi-site design where every site runs an independent EVPN fabric, and the inter-site link is either a layer-2 or a layer-3 interconnect (DCI). Let&rsquo;s start with the easiest scenario: a layer-3 DCI with a separate (virtual) link for every tenant (in the MPLS/VPN world, we&rsquo;d call that Inter-AS Option A)</p>

<figure><img src="/2025/08/evpn-inter-as-topology.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2025/08/evpn-designs-interas-a/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[When Switches Flood LLDP Traffic]]></title>
    <link href="https://blog.ipspace.net/2025/08/switches-flood-lldp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/switches-flood-lldp/</id>
    <published>2025-08-25T09:13:00+02:00</published>
    <updated>2025-08-25T09:13:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A networking engineer (let&rsquo;s call him Joe<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>) sent me an interesting challenge: they built a data center network with Cisco switches, and the switches <em>flood LLDP packets</em> between servers.</p>
<p>That would be interesting by itself (the whole network would appear as a single hub), but they&rsquo;re also using DCBX (which is riding in LLDP TLVs), and the DCBX parameters are negotiated <em>between servers</em> (not between servers and adjacent switches), sometimes resulting in NIC resets<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/08/switches-flood-lldp/'>Read more &hellip;</a></div>]]></content>
    <category term="bridging" />
    <category term="data center" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ArubaCX Decides When You're Done Changing a BGP Routing Policy]]></title>
    <link href="https://blog.ipspace.net/2025/08/aruba-bgp-route-map/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/aruba-bgp-route-map/</id>
    <published>2025-08-22T08:16:00+02:00</published>
    <updated>2025-08-22T08:16:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>When I was cleaning the &ldquo;<a href="https://github.com/ipspace/netlab/blob/5aae878dff0da1ffb256a33532e0748d9ba7df56/tests/integration/bgp.policy/31-med.yml">set BGP MED</a>&rdquo; integration test, I decided that once a BGP prefix is in the BGP table of the BGP peer, there&rsquo;s no need for a further wait before checking its MED value. After all:</p>
<ul>
<li>We configure an outbound routing policy to change MED;</li>
<li>We execute <strong>do clear bgp * soft out</strong> at the end of most BGP policy configuration templates<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></li>
<li>The device under test should thus immediately (re)send the expected BGP prefix with the target MED.</li>
</ul>
<p>That approach failed miserably with ArubaCX; it was time to investigate the details.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/08/aruba-bgp-route-map/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Configuring BGP Community Propagation is Confusing]]></title>
    <link href="https://blog.ipspace.net/2025/08/bgp-community-configuration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/bgp-community-configuration/</id>
    <published>2025-08-21T08:02:00+02:00</published>
    <updated>2025-08-21T08:02:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A large number of vendors claim to use <em>industry-standard CLI</em>, which means &ldquo;<em>something that looks like Cisco IOS, but we can&rsquo;t say that in public</em>.&rdquo; The implementations of that &ldquo;standard&rdquo; are full of quirks; as I was <a href="/2025/08/cisco-ios-community-propagation/">making fun of Cisco IOS last week</a>, it&rsquo;s only fair to look at how others deal with BGP community propagation.</p>
<p><em>netlab</em> has BGP configuration templates for <a href="https://netlab.tools/module/bgp/#platform-support">14 different platforms</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, including these implementations that look like Cisco IOS from a distance if you squint just right<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>: Arista EOS, Aruba CX, and FRRouting. You can check the <a href="https://github.com/ipspace/netlab/tree/dev/netsim/ansible/templates/bgp">configuration templates</a> if you wish; here&rsquo;s the TC&amp;DB<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> overview:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/08/bgp-community-configuration/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SwiNOG 40: Trustworthy Network Automation]]></title>
    <link href="https://blog.ipspace.net/2025/08/swinog40-automation-trust/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/swinog40-automation-trust/</id>
    <published>2025-08-20T07:53:00+02:00</published>
    <updated>2025-08-20T07:53:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="/2025/06/swinog/">SwiNOG 40 event</a> started with an interesting presentation on <a href="https://www.swinog.ch/wp-content/uploads/2025/06/Damien-Gaross-OpsMill-Building-Trustworthy-Network-Automation-From-Principles-to-Practice.pdf">Building Trustworthy Network Automation</a> (<a href="https://youtu.be/1_d_7vs4RUc">video</a>) by <a href="https://www.ipspace.net/Author:Damien_Garros">Damien Garros</a> (now CEO @ <a href="https://opsmill.com/about-us/">OpsMill</a>) who discussed the principles one can use to build a trustworthy network automation solution, including idempotency, dry runs, and transactional changes. He also covered the crucial roles of the declarative approach, version control, and testing.</p>
<p>If you have ever watched any of my <a href="https://my.ipspace.net/bin/list?id=NetOps">network automation materials</a>, you won&rsquo;t be surprised by anything he said, but if you&rsquo;re just starting your network automation journey, you MUST watch this presentation to get your bearings straight.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fun Reading: AI: Great Expectations]]></title>
    <link href="https://blog.ipspace.net/2025/08/worth-reading-ai-expectations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/worth-reading-ai-expectations/</id>
    <published>2025-08-12T08:26:00+02:00</published>
    <updated>2025-08-12T08:26:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Rodney Brooks republished an article on <a href="https://rodneybrooks.com/ai-great-expectations/">great AI expectations</a> that he wrote 37 years ago. Not surprisingly, apart from a few technical details triggered by four decades of exponential growth in silicon capabilities, the article could have been written yesterday.</p>
<p>Side note: I&rsquo;m a bit younger than Rodney, but I also went through at least three waves of AI hype cycles, starting with Prolog and 4GL, then expert systems, and finally neural networks. Around that time, I stopped caring and focused on networking, but I have enough battle scars to remain skeptical.</p>
]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Community Propagation on Cisco IOS/XE: The 90's Called]]></title>
    <link href="https://blog.ipspace.net/2025/08/cisco-ios-community-propagation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/cisco-ios-community-propagation/</id>
    <published>2025-08-11T08:09:00+02:00</published>
    <updated>2025-08-11T08:09:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Just when I thought no vendor <del>stupidity</del> <a href="https://blog.ipspace.net/tag/netlab/#quirks">peculiarity</a> could surprise me,  Cisco IOS/XE proved me wrong.</p>
<p>I was improving a completely unrelated BGP functionality. I ran BGP integration tests on Cisco IOL (because it&rsquo;s the fastest one to boot), and the <a href="https://github.com/ipspace/netlab/blob/dev/tests/integration/bgp/05-community.yml">BGP community propagation</a> test failed. After verifying that I did not change the template and that the data structures had not changed, I checked the IOL release I was using.</p>
<p>Surprise 🎉🎉: the <strong>neighbor send-community</strong> configurations that worked since (at least) the IOS Classic release 15.x stopped working in Cisco IOS/XE release 17.16.01a.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/08/cisco-ios-community-propagation/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: Storage Devices and Latency]]></title>
    <link href="https://blog.ipspace.net/2025/08/worth-reading-storage-latency/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/08/worth-reading-storage-latency/</id>
    <published>2025-08-04T07:53:00+02:00</published>
    <updated>2025-08-04T07:53:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>PlanetScale published a great article describing the high-level principles of <a href="https://planetscale.com/blog/io-devices-and-latency">how storage devices work</a> and covering everything from tape drives to SSDs and network-attached storage   — a must-read for anyone even remotely interested in how their data is stored.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fun Reading: Who is LLM?]]></title>
    <link href="https://blog.ipspace.net/2025/07/worth-reading-who-is-llm/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/worth-reading-who-is-llm/</id>
    <published>2025-07-28T07:44:00+02:00</published>
    <updated>2025-07-28T07:44:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Is an LLM a stubborn donkey, a genie, or a slot machine (and why)? Find out in the <a href="https://martinfowler.com/articles/who-is-llm.html">Who is LLM?</a> article by Martin Fowler.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ArubaCX: When BGP Soft Reconfiguration Becomes a No-Op]]></title>
    <link href="https://blog.ipspace.net/2025/07/aruba-bgp-soft-reconfiguration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/aruba-bgp-soft-reconfiguration/</id>
    <published>2025-07-25T07:58:00+02:00</published>
    <updated>2025-07-25T07:58:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Changing an existing BGP routing policy is always tricky on platforms that apply line-by-line changes to device configurations (Cisco IOS and most other platforms claiming to have <em>industry-standard CLI</em>, with the notable exception of Arista EOS). The safest approach seems to be:</p>
<ul>
<li>Do not panic when the user makes changes to route maps and underlying filters (prefix lists, AS-path access lists, or community lists).</li>
<li>Let the user decide when they&rsquo;re done and process the BGP table with the new routing policy at that time.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/aruba-bgp-soft-reconfiguration/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Ultra Ethernet: Reinventing X.25]]></title>
    <link href="https://blog.ipspace.net/2025/07/ultra-ethernet-reinventing-x25/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/ultra-ethernet-reinventing-x25/</id>
    <published>2025-07-23T08:06:00+02:00</published>
    <updated>2025-07-23T08:06:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>One should never trust the technical details published by the <em>industry press</em>, but assuming the <a href="https://www.nextplatform.com/2025/07/17/broadcom-tries-to-kill-infiniband-and-nvswitch-with-one-ethernet-stone/">Tomahawk Ultra puff piece</a> isn&rsquo;t too far off the mark, the new Broadcom ASIC (supposedly loosely based on emerging Ultra Ethernet specs):</p>
<ol>
<li>Uses <em>Optimized Ethernet Header</em>, replacing IP/UDP header with a 10-byte something (let&rsquo;s call it <em>session identifier</em>)</li>
<li>Makes Ethernet lossless with hop-by-hop retransmission/error recovery</li>
<li>Uses credit-based flow control (the receiver continuously updates the sender about the amount of available space)</li>
</ol>
<p>If you&rsquo;re ancient enough, you might recognize #3 as part of Fibre Channel, #2 and #3 as part of IEEE 802.1 LLC2 (used by IBM to implement SNA over Token Ring and Ethernet), and all three as the fundamental ideas of X.25 that Broadcom obviously reinvented at 800 Gbps speeds, proving (yet again) RFC 1925 Rule 11.</p>
]]></content>
    <category term="data center" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Always Check Your Tests Against Faulty Inputs]]></title>
    <link href="https://blog.ipspace.net/2025/07/tests-should-detect-errors/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/tests-should-detect-errors/</id>
    <published>2025-07-21T07:19:00+02:00</published>
    <updated>2025-07-21T07:19:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, I published a blog post <a href="/2025/06/testing-ospf-configurations/">proudly describing</a> the <em>netlab</em> integration test that should <a href="https://github.com/ipspace/netlab/blob/d9051cf06471160a2b97791df44145351800149a/tests/integration/ospf/ospfv2/01-network.yml">check for incorrect OSPF network types</a> in <em>netlab</em>-generated device configurations. Almost immediately, Erik Auerswald <a href="https://blog.ipspace.net/2025/06/testing-ospf-configurations/#2682">pointed out</a> that my test wouldn&rsquo;t detect that error (it might detect other errors, though) as the OSPF network adjacency is always established even when the adjacent routers have mismatching OSPF network types.</p>
<p>I made one of the oldest testing mistakes: I checked whether my test would work <em>under the correct conditions</em> but not whether it would detect <em>an incorrect condition</em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/tests-should-detect-errors/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cisco IOS/XE Hates Redistributed Static IPv6 Routes]]></title>
    <link href="https://blog.ipspace.net/2025/07/cisco-iosxe-hates-redistributed-ipv6-bgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/cisco-iosxe-hates-redistributed-ipv6-bgp/</id>
    <published>2025-07-18T07:41:00+02:00</published>
    <updated>2025-07-18T07:41:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Writing tests that check the correctness of network device configurations is hard (<a href="/2024/05/netlab-integration-tests/">overview</a>, <a href="/2025/06/testing-ospf-configurations/">more details</a>). It&rsquo;s also an interesting exercise in getting the timing just right:</p>
<ul>
<li>Routing protocols are an <a href="/2021/02/routing-protocols-eventually-consistent/">eventually-consistent distributed system</a>, and things eventually appear in the right place (if you got the configurations right), but you never know when exactly that will happen.</li>
<li>You can therefore set some reasonable upper bounds on when things should happen, and declare failure if the timeouts are exceeded. Even then, you&rsquo;ll get false positives (as in: the test is telling you the configurations are incorrect, when it&rsquo;s just a device having a bad hair day).</li>
</ul>
<p>And just when you think you nailed it, you encounter a device that blows your assumptions out of the water.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/cisco-iosxe-hates-redistributed-ipv6-bgp/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 25.07: Summaries and Confederations]]></title>
    <link href="https://blog.ipspace.net/2025/07/netlab-25-07/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/netlab-25-07/</id>
    <published>2025-07-15T08:27:00+01:00</published>
    <updated>2025-07-15T08:27:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/25.07/"><em>netlab</em> release 25.07</a> was published yesterday. The major new features include:</p>
<ul>
<li>The <a href="https://netlab.tools/plugins/ospf.areas/">ospf.areas plugin</a> supports OSPFv2 and OSPFv3 stub areas, NSSA areas, and area ranges.</li>
<li>The <a href="https://netlab.tools/plugins/bgp.policy/">BGP routing policies</a> plugin supports aggregate BGP routes</li>
<li>The <a href="https://netlab.tools/module/bgp/">BGP configuration module</a> supports BGP confederations</li>
</ul>
<p>But wait, there&rsquo;s much more:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/netlab-25-07/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dual-Stack Common-Services VRF Confuses Aruba CX]]></title>
    <link href="https://blog.ipspace.net/2025/07/aruba-common-services-dual-stack-confusion/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/aruba-common-services-dual-stack-confusion/</id>
    <published>2025-07-11T08:18:00+02:00</published>
    <updated>2025-07-11T08:18:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>As I was running the <em>netlab</em> pre-release integration tests, I noticed that ArubaCX failed the <a href="https://github.com/ipspace/netlab/blob/22bf9ec15aec8bbea8d43d6550aaf0bb18e9d729/tests/integration/vrf/32-vrf-common-hosts-ipv6.yml">IPv6 Common Services test</a> (it worked before). Here&rsquo;s the gist of what that test does:</p>
<ul>
<li>It creates three VRFs (<strong>red</strong>, <strong>blue</strong>, and <strong>common</strong>)</li>
<li>It imports routes from <strong>red</strong> and <strong>blue</strong> VRF into the <strong>common</strong> VRF and routes from the <strong>common</strong> VRF into the <strong>red</strong> and <strong>blue</strong> VRF (the schoolbook example of <em>common services VRF</em>)</li>
<li>Just to be on the safe side, it imports <strong>red</strong> routes into the <strong>red</strong> VRF and so on.</li>
</ul>
<p>Here&rsquo;s the relevant part of the <em>netlab</em> lab topology:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/aruba-common-services-dual-stack-confusion/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Secret Rules of the Terminal]]></title>
    <link href="https://blog.ipspace.net/2025/07/worth-reading-secret-rules-terminal/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/worth-reading-secret-rules-terminal/</id>
    <published>2025-07-09T08:36:00+02:00</published>
    <updated>2025-07-09T08:36:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Did you ever wonder why pressing an up-arrow in a (Linux) terminal window sometimes recalls the previous command but other times creates <code>^[[A</code>?</p>
<p><a href="https://jvns.ca/">Julia Evans</a> did, and spent months exploring the quirks of the Linux terminal (and writing <a href="https://jvns.ca/categories/terminal/">blog posts</a> describing what she found), finally resulting in <a href="https://wizardzines.com/zines/terminal/">The Secret Rules of the Terminal</a> (including the various shells, terminal emulators, escape codes, and TTY driver). A must-read if you&rsquo;re a newbie who wants to understand why things happen the way they do.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Expanding a Running Netlab Topology]]></title>
    <link href="https://blog.ipspace.net/2025/07/expanding-netlab-topology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/expanding-netlab-topology/</id>
    <published>2025-07-07T08:11:00+02:00</published>
    <updated>2025-07-07T08:11:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>One of the happy <em>netlab</em> users sent me an interesting challenge:</p>
<ul>
<li>He&rsquo;s built a large lab and added tons of extra configuration to the lab devices.</li>
<li>Afterwards, he realized he&rsquo;d like to add a few more devices to the lab and was worried about losing all the changes he had made.</li>
</ul>
<p>Unfortunately, you cannot add new devices to an already-running lab. You must shut down the lab, change the topology description, and start a new lab. However, there are things you can do to preserve the extra work you already did:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/expanding-netlab-topology/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Expert Generalists]]></title>
    <link href="https://blog.ipspace.net/2025/07/worth-reading-expert-generalist/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/worth-reading-expert-generalist/</id>
    <published>2025-07-03T08:20:00+02:00</published>
    <updated>2025-07-03T08:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Martin_Fowler_(software_engineer)">Martin Fowler</a> published <a href="https://martinfowler.com/articles/expert-generalist.html">an interesting article about Expert Generalists</a>. Straight from the abstract:</p>
<blockquote>
<p>As computer systems get more sophisticated we&rsquo;ve seen a growing trend to value deep specialists. But we&rsquo;ve found that our most effective colleagues have a skill in spanning many specialties.</p>
</blockquote>
<p>Also:</p>
<blockquote>
<p>There are two sides to real expertise. The first is the familiar depth: a detailed command of one domain&rsquo;s inner workings. The second, crucial in our fast-moving field is the ability to learn quickly, spot the fundamentals that run beneath shifting tools and trends, and apply them wherever we land.</p>
</blockquote>
<p>Remember how I told you to <a href="https://blog.ipspace.net/2021/03/no-recipe-for-success/">focus on the fundamentals</a>? 😎</p>
<div class='jump-link'><a href="https://martinfowler.com/articles/expert-generalist.html">Keep reading</a></div>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Molly-Guard: a Lifesaver on a Ubuntu Server]]></title>
    <link href="https://blog.ipspace.net/2025/07/molly-guard-ubuntu/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/molly-guard-ubuntu/</id>
    <published>2025-07-02T08:18:00+02:00</published>
    <updated>2025-07-02T08:18:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Have you ever managed to type <strong>reload</strong> in the wrong terminal window and brought down a core switch (I probably did)? I managed to do the Ubuntu equivalent of that stupidity: I told my main Ubuntu server to <strong>sudo poweroff</strong> instead of doing that to a Vagrant VM.</p>
<p>Fortunately, the open-source world doesn&rsquo;t have to rely on the roadmaps created by networking vendors&rsquo; product managers; if there&rsquo;s a big enough pain, someone will solve it.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/molly-guard-ubuntu/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[IS-IS 3-Way Handshake and the Power of SHOULD]]></title>
    <link href="https://blog.ipspace.net/2025/07/isis-3way-handshake/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/07/isis-3way-handshake/</id>
    <published>2025-07-01T08:17:00+02:00</published>
    <updated>2025-07-01T08:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Yesterday, I <a href="/2025/06/netlab-start-tools/">mentioned</a> that a Cisco router running pre-standard IS-IS 3-way handshake (<a href="https://isis.bgplabs.net/basic/3-p2p/#three-way-handshake">this is why you need it</a>) interoperates with multiple implementations of <a href="https://datatracker.ietf.org/doc/html/rfc5303">RFC 5303</a>. How&rsquo;s that possible, and does it matter whether you configure the ancient Cisco routers (release 15.x) to use IETF 3-way handshake instead of the &ldquo;proprietary&rdquo; one?</p>
<div class='long-quote'>
<strong>TL&amp;DR:</strong> It SHOULD NOT matter, but the more I explore the RFCs, the more I&rsquo;m amazed anything works at all.
</div>


<p>I took a <a href="/2025/06/netlab-start-tools/">trip to the Wireshark land</a> to figure out the details (you can <a href="/2025/07/capture-isis-hello.pcapng">download the capture file</a>):</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/07/isis-3way-handshake/'>Read more &hellip;</a></div>]]></content>
    <category term="IS-IS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Start netlab Tools without Changing Topology File]]></title>
    <link href="https://blog.ipspace.net/2025/06/netlab-start-tools/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/netlab-start-tools/</id>
    <published>2025-06-30T09:14:00+02:00</published>
    <updated>2025-06-30T09:14:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://github.com/DanPartelly">Dan Partelly</a> figured out that we <a href="https://github.com/ipspace/netlab/pull/2463">have to configure</a> the <a href="https://datatracker.ietf.org/doc/html/rfc5303">standard (IETF)</a> 3-way IS-IS handshake on old IOSv images. On the other hand, <a href="https://release.netlab.tools/_html/iosv-libvirt-isis">all IS-IS integration tests pass</a> for IOSv and IOSvL2. I wondered what was going on.</p>
<p>Fortunately, a few months ago, I spent some time installing the client-side Edgeshark components on my laptop. All I needed to do was enable the <a href="https://netlab.tools/extool/edgeshark/"><strong>edgeshark</strong></a> tool in my lab topology and restart the lab.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/netlab-start-tools/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SwiNOG 40: A Day of Awesomeness]]></title>
    <link href="https://blog.ipspace.net/2025/06/swinog/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/swinog/</id>
    <published>2025-06-26T11:13:00+02:00</published>
    <updated>2025-06-26T11:13:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A few days ago, I attended a <a href="https://www.swinog.ch/meetings/">SwiNOG meeting</a> for the first time and realized what a mistake I was making — I should have been there years ago.</p>
<p>Not only was the event impeccably organized (what else would you expect in Switzerland) and at the best event location I have ever experienced (it&rsquo;s hard to beat <a href="https://gurtenpark.roundshot.com/#/">this view</a>), it was also full of short, interesting, up-to-the-point presentations (<a href="https://www.swinog.ch/meetings/swinog40/">view the slide decks and videos</a>). Plus, I met so many old friends I haven&rsquo;t seen in years, and people I communicated with for years but never met before.</p>
<p>It&rsquo;s not like the organizers would need any more publicity (the event was sold out), but if you happen to be near Switzerland in time for the next meeting, make sure to be there.</p>
<p>Thanks again to the wonderful SwiNOG core team for a fantastic experience! I hope we&rsquo;ll meet again at the next SwiNOG meeting!</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Testing OSPF Device Configurations]]></title>
    <link href="https://blog.ipspace.net/2025/06/testing-ospf-configurations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/testing-ospf-configurations/</id>
    <published>2025-06-25T08:40:00+02:00</published>
    <updated>2025-06-25T08:40:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A year ago, I described how we use the <strong>netlab validate</strong> command to <a href="/2024/05/netlab-integration-tests/">test device configuration templates</a> for most platforms supported by <em>netlab</em>. That blog post included a simple &ldquo;this is how you test interface address configuration&rdquo; example; now, let&rsquo;s move to something a bit more complex: baseline OSPF configuration.</p>
<p>Testing the correctness of OSPF configurations seems easy:</p>
<ul>
<li>Build a lab with a test device and a few other OSPF devices</li>
<li>Configure the devices</li>
<li>Log into the test device and inspect OSPF operational data</li>
</ul>
<p>There&rsquo;s just a tiny little fly in this ointment&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/testing-ospf-configurations/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Quality of OSPFv2 NSSA Implementations]]></title>
    <link href="https://blog.ipspace.net/2025/06/ospf-nssa-implementations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/ospf-nssa-implementations/</id>
    <published>2025-06-24T07:44:00+02:00</published>
    <updated>2025-06-24T07:44:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, we added OSPF areas functionality to <em>netlab</em>. In the next release<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, you&rsquo;ll be able to configure stub areas, NSSA areas, inter-area route summarization and filtering (OSPF ranges), and summarization of NSSA type-7 prefixes for OSPFv2 and OSPFv3.</p>
<p>OSPFv2 (defined in <a href="https://www.rfc-editor.org/rfc/rfc2328.html">RFC 2328</a>) is 27 years old, and NSSA functionality (<a href="https://datatracker.ietf.org/doc/html/rfc3101">RFC 3101</a>) was last touched 22 years ago. One would hope the implementations in network devices are mature and feature-complete. Yeah, keep dreaming 🤦‍♂️.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/ospf-nssa-implementations/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Static Routes in netlab Lab Topologies]]></title>
    <link href="https://blog.ipspace.net/2025/06/netlab-static-routes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/netlab-static-routes/</id>
    <published>2025-06-23T07:50:00+02:00</published>
    <updated>2025-06-23T07:50:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>As much as we&rsquo;d love everything in our networks to be dynamic, auto-configured, or software-defined, reality often intervenes and forces us to use <em>static routes</em>, so we needed a mechanism to specify them in <em>netlab</em> lab topologies.</p>
<p>A static route has two components: the destination prefix and the next hop &ndash; the device that we hope knows how to reach that destination. The next hop is usually specified as an IPv4 or IPv6 address, but may also include outgoing interface information<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/netlab-static-routes/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Digital Twins: Between PowerPoint and Reality]]></title>
    <link href="https://blog.ipspace.net/2025/06/digital-twins-powerpoint-reality/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/digital-twins-powerpoint-reality/</id>
    <published>2025-06-19T07:16:00+00:00</published>
    <updated>2025-06-19T07:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A Network Artist left an interesting remark on one of my blog posts:</p>
<blockquote>
<p>It&rsquo;s kind of confusing sometimes to see the digital twin (being a really good idea) never really take off.</p>
</blockquote>
<p>His remark prompted me to resurface a two-year-old draft listing a bunch of minor annoyances that make Networking Digital Twins more of a PowerPoint project than a reality.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/digital-twins-powerpoint-reality/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dear Vendors, EVPN Route Attributes Matter]]></title>
    <link href="https://blog.ipspace.net/2025/06/evpn-route-attributes-matter/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/evpn-route-attributes-matter/</id>
    <published>2025-06-18T07:50:00+02:00</published>
    <updated>2025-06-18T07:50:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>Another scary tale from the <a href="/tag/netlab#quirks">Archives of Sloppy Code</a>: we can&rsquo;t decide whether some attributes are mandatory or optional.</em></p>
<p>When I was fixing the errors in <em>netlab</em> SR-OS configuration templates, I couldn&rsquo;t get the <a href="https://github.com/ipspace/netlab/blob/24325f608d123102fa90096ee66f21a796bdb7c0/tests/integration/evpn/13-vxlan-ebgp-allowas.yml">EBGP-based EVPN with overlapping leaf AS numbers to work</a>. I could see the EVPN routes in the SR-OS BGP table, but the device refused to use them. I concluded  (incorrectly) that there must be a quirk in the SR-OS EVPN code and moved on.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/evpn-route-attributes-matter/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 25.06: Fixing Nokia SR-OS Configuration Templates]]></title>
    <link href="https://blog.ipspace.net/2025/06/netlab-25-06/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/netlab-25-06/</id>
    <published>2025-06-16T08:23:00+01:00</published>
    <updated>2025-06-16T08:23:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR</strong>: <a href="https://netlab.tools/release/25.06/"><em>netlab</em> release 25.06</a> was published last week.</p>
<p>Before discussing the new features, let&rsquo;s walk the elephant out of the room: I changed the release versions to YY.MM scheme, so I will never again have to waste my time on the existential question of which number in the release specification to increase.</p>
<p>Now for the new features:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/netlab-25-06/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Finding Source Routing Paths]]></title>
    <link href="https://blog.ipspace.net/2025/06/source-routing-paths/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/source-routing-paths/</id>
    <published>2025-06-13T08:10:00+02:00</published>
    <updated>2025-06-13T08:10:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2025/06/finding-paths-across-network/">previous blog post</a>, we discussed the generic steps that network devices (or a centralized controller) must take to discover paths across a network. Today, we&rsquo;ll see how these principles are applied in <em>source routing</em>, one of the <a href="/2025/05/forwarding-packets-across-network/">three main ways to move packets across a network</a>.</p>
<p><strong>Brief recap:</strong> In source routing, the sender has to specify the (loose or strict) path a packet should take across the network. The sender thus needs a mechanism to determine that path, and as always, there are numerous solutions to this challenge. We&rsquo;ll explore a few of them, using the sample topology shown in the following diagram.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/source-routing-paths/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ArubaCX Cannot Count When Dealing with VXLAN]]></title>
    <link href="https://blog.ipspace.net/2025/06/aruba-vxlan-packet-length/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/aruba-vxlan-packet-length/</id>
    <published>2025-06-12T07:08:00+02:00</published>
    <updated>2025-06-12T07:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>This blog post describes yet another <a href="/tag/netlab#quirks">bizarre example of how reliable digital twins are</a>, but don&rsquo;t worry; they all work great in PowerPoint.</em></p>
<p>After &ldquo;fixing&rdquo; the integration tests to deal with ArubaCX&rsquo;s notion of <a href="/2025/05/arubacx-vxlan-vni-arp/">VXLAN VNI having 16 bits</a>, the bridging test worked, but the IRB tests kept failing.</p>
<p>In the IRB test, the lab has two layer-3 switches. Each of them should be able to <em>bridge</em> within a VLAN/VXLAN segment and <em>route</em> across the segments.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/aruba-vxlan-packet-length/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 2.0: Routers, Hosts, Gateways and Bridges]]></title>
    <link href="https://blog.ipspace.net/2025/06/netlab-hosts-routers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/netlab-hosts-routers/</id>
    <published>2025-06-11T08:20:00+02:00</published>
    <updated>2025-06-11T08:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In a previous blog post, I explained how you can <a href="/2025/05/netlab-custom-bridges/">use <em>bridges</em> in a <em>netlab</em> topology to create custom LAN segments</a>. Netlab supports two other <a href="https://netlab.tools/node-roles/">node roles</a> (<em>host</em> and <em>router</em>), and we&rsquo;ll eventually add <em>gateways</em>.</p>
<p><em>netlab</em> assumes that most network devices are <em>routers</em> (it considers a <em>firewall</em> to be a router in disguise), apart from Linux <em>hosts</em>, but you can always change what a node is with the <strong>role</strong> node attribute:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/netlab-hosts-routers/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting: Juniper MX and Jumbo Frames]]></title>
    <link href="https://blog.ipspace.net/2025/06/juniper-mx-jumbo-frames/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/juniper-mx-jumbo-frames/</id>
    <published>2025-06-10T07:41:00+02:00</published>
    <updated>2025-06-10T07:41:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Did you know that there&rsquo;s an Ethernet link between the Packet Forwarding Engine (PFE &ndash; data plane) and Routing Engine (RE &ndash; control plane) in every Juniper MX? That&rsquo;s why you have to run two VMs to emulate it (sometimes conveniently packed into one larger VM, proving RFC 1925 rule 6a).</p>
<p>That Ethernet link happens to have the MTU fixed at 1500 bytes. Guess what happens in the world where everyone uses jumbo frames? Did you say fragmentation? Bingo! And what do you think happens when one of those fragments gets dropped due to control-plane policing, and the rest of them are stuck in the reassembly queue? You&rsquo;ll find the gory details in a <a href="https://www.oasis-tech.net/networks/how-troubleshooting-of-routing-flaps-ends-with-a-new-junos-command/">lengthy blog post</a> by Nitzan Tzelniker.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Publishing Content as an Introvert]]></title>
    <link href="https://blog.ipspace.net/2025/06/publishing-introvert/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/publishing-introvert/</id>
    <published>2025-06-09T07:56:00+02:00</published>
    <updated>2025-06-09T07:56:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I got an interesting question from a reader. He listened to my podcast with Eric Chou and decided to try to <em>learn in public</em>:</p>
<blockquote>
<p>Currently, I&rsquo;m studying for the CCNP ENARSI exam, and would like to start posting my labs to LinkedIn, and perhaps even upload my lab topologies and configs to Git.</p>
</blockquote>
<p>That&rsquo;s a great idea. I would minimize the LinkedIn part<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and focus on Git:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/publishing-introvert/'>Read more &hellip;</a></div>]]></content>
    <category term="certifications" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Finding End-to-End Paths: Topology and Endpoints]]></title>
    <link href="https://blog.ipspace.net/2025/06/finding-paths-across-network/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/finding-paths-across-network/</id>
    <published>2025-06-06T07:51:00+02:00</published>
    <updated>2025-06-06T07:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>We know there are <a href="/2025/05/forwarding-packets-across-network/">three main ways to move packets across a network</a>. However, before we can start forwarding packets, someone has to populate the forwarding tables in the intermediate devices or build the sequence of nodes to traverse in source routing.</p>
<p>Usually, whoever is responsible for the contents of the forwarding tables must first discover the network topology. Let&rsquo;s start there, using the following network diagram to illustrate the discussion.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/finding-paths-across-network/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Weird: Ports on Linux Bridge Are Stuck]]></title>
    <link href="https://blog.ipspace.net/2025/06/linux-bridge-stuck-ports/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/linux-bridge-stuck-ports/</id>
    <published>2025-06-05T07:23:00+02:00</published>
    <updated>2025-06-05T07:23:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>Just when you thought you got used to the <a href="/tag/netlab#quirks">weirdnesses in the networking implementations</a>, you get a curveball like this one. Life is never dull if you test network devices.</em></p>
<p>Before releasing <em>netlab</em> release 2.0, I ran the <a href="https://release.netlab.tools/">full suite of integration tests</a> for all devices for which I have the images. Interestingly, <a href="https://github.com/ipspace/netlab/issues/2254">most VXLAN tests failed for Cumulus Linux 4.x</a> even though we haven&rsquo;t touched that code for ages.</p>
<p>Next step: trying to figure out what changed. The <a href="https://github.com/ipspace/netlab/issues/2254#issuecomment-2866376707">configuration changes were minimal</a>. Even worse, <a href="https://github.com/ipspace/netlab/issues/2254#issuecomment-2866739975">the failure was non-deterministic</a>. Somehow, we managed to transform a Cumulus Linux 4.x VM into a <a href="https://en.wikipedia.org/wiki/Uncertainty_principle">Heisenberg switch</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/linux-bridge-stuck-ports/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="virtualization" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Where Are the NETCONF/YANG Tools?]]></title>
    <link href="https://blog.ipspace.net/2025/06/netconf-tooling/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/netconf-tooling/</id>
    <published>2025-06-04T07:38:00+02:00</published>
    <updated>2025-06-04T07:38:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Jo attempted to follow the vendor Kool-Aid recommendations and use NETCONF/YANG to configure network devices. Here&rsquo;s what he <a href="https://blog.ipspace.net/2025/05/screen-scraping-2025/#2644">found</a> (slightly edited):</p>
<hr>
<p>IMHO, the whole NETCONF ecosystem primarily suffers from a tooling problem. Or I haven&rsquo;t found the right tools yet.</p>
<p><a href="https://ncclient.readthedocs.io/en/latest/">ncclient</a> is (as you mentioned somewhere else) an underdocumented mess. And that undocumented part is <a href="https://github.com/ncclient/ncclient/issues/374#issuecomment-595092038">not even up to date</a>. The commit hash at the bottom of the docs page is from 2020&hellip; I am amazed how so many people got it working well enough to depend on it in their applications.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/netconf-tooling/'>Read more &hellip;</a></div>]]></content>
    <category term="NETCONF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting: Bootstrapping HTTPS]]></title>
    <link href="https://blog.ipspace.net/2025/06/bootstrapping-https/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/bootstrapping-https/</id>
    <published>2025-06-03T08:30:00+02:00</published>
    <updated>2025-06-03T08:30:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Jan Schaumann published an <a href="https://www.netmeister.org/blog/http-123.html">interesting blog post</a> describing the circuitous journey a browser might take to figure out that it can use QUIC with a web server.</p>
<p>Now, if only there were a record in a distributed database telling the browser what the web server supports. <a href="https://www.rfc-editor.org/rfc/rfc9460.html">Oh, wait</a>&hellip; Not surprisingly, browser vendors don&rsquo;t trust that data and have implemented a <a href="https://docs.google.com/document/d/1i4m7DbrWGgXafHxwl8SwIusY2ELUe8WX258xt2LFxPM/edit?tab=t.0#heading=h.dk2fhev07ryt">happy eyeballs-like protocol</a> to decide between HTTPS over TCP and QUIC.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cumulus Linux (As We Know It) Is Gone]]></title>
    <link href="https://blog.ipspace.net/2025/06/cumulus-linux-gone/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/06/cumulus-linux-gone/</id>
    <published>2025-06-02T08:36:00+02:00</published>
    <updated>2026-03-29T18:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A reader of my blog pointed out the following minutiae hidden at the very bottom of the <a href="https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-513/Whats-New/">Cumulus Linux 5.13 What&rsquo;s New</a> document:</p>
<blockquote>
<p>NVIDIA no longer releases Cumulus VX as a standalone image. To simulate a Cumulus Linux switch, use NVIDIA AIR.</p>
</blockquote>
<p>And what is <a href="https://docs.nvidia.com/networking-ethernet-software/nvidia-air/">NVIDIA AIR</a>?</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/06/cumulus-linux-gone/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multi-Layer Switching and Tunneling]]></title>
    <link href="https://blog.ipspace.net/2025/05/multi-layer-switching-tunneling/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/multi-layer-switching-tunneling/</id>
    <published>2025-05-30T08:20:00+02:00</published>
    <updated>2025-05-30T08:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>When deep-diving into the <a href="/2025/04/bridging-routing-switching-terminology/">confusing terminology of switching, routing, and bridging</a>, I mentioned you could perform packet forwarding at different layers of a networking stack. In this blog post, we&rsquo;ll explore what happens when we combine packet forwarding on multiple layers within a single network, resulting in <strong>multi-layer switching</strong>, where edge devices perform Layer <em>n</em> forwarding (usually Layer 3), and core devices perform Layer <em>n-1</em> forwarding (typically Layer 2).</p>
<p>Each layer can use any forwarding paradigm you choose. However, since we generally use IP at Layer 3, edge devices typically perform hop-by-hop destination-based forwarding, while core devices can use alternative methods.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/multi-layer-switching-tunneling/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dear ArubaCX, VXLAN VNI Has 24 Bits]]></title>
    <link href="https://blog.ipspace.net/2025/05/arubacx-vxlan-vni-arp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/arubacx-vxlan-vni-arp/</id>
    <published>2025-05-29T07:55:00+02:00</published>
    <updated>2025-05-29T07:55:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>I thought I&rsquo;ve <a href="/tag/netlab#quirks">seen it all</a>, but the networking vendors (and their lack of testing) never cease to amaze me. Today&rsquo;s special: ArubaCX software VXLAN implementation.</em></p>
<p>We decided it&rsquo;s a good idea to rewrite the <a href="https://github.com/ipspace/netlab/tree/dev/tests/integration/vxlan">VXLAN integration tests</a> to use one target device and one FRR container to test inter-vendor VXLAN interoperability. After all, what could possibly go wrong with a <a href="https://www.rfc-editor.org/rfc/rfc7348.html">simple encapsulation format</a> that could be described on a single page?</p>
<p>Everything worked fine (as expected), except for the ArubaCX VM (running release Virtual.10.15.1005, build ID AOS-CX:Virtual.10.15.1005:9d92f5caa6b6:202502181604), which failed every single test.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/arubacx-vxlan-vni-arp/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Practical Advice for Engineers]]></title>
    <link href="https://blog.ipspace.net/2025/05/worth-reading-practical-advice-engineers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/worth-reading-practical-advice-engineers/</id>
    <published>2025-05-28T07:48:00+02:00</published>
    <updated>2025-05-28T07:48:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Sean Goedecke published an interesting compilation of <a href="https://www.seangoedecke.com/in-these-troubled-times/">practical advice for engineers</a>. Not surprisingly, they include things like &ldquo;<em>focus on fundamentals</em>&rdquo; and &ldquo;<em>spend your working time doing things that are valuable to the company and your career</em>&rdquo; (OMG, does that really have to be said?).</p>
<p>Bonus point: a link to an article by Patrick McKenzie (of the <a href="https://www.bitsaboutmoney.com/">Bits About Money</a> fame) explaining why you <a href="https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/">SHOULD NOT call yourself a programmer</a> (there goes the <em>everyone should be a programmer</em> gospel 😜).</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ChatGPT Strikes Again: IS-IS on Unnumbered Interfaces 🤦‍♂️]]></title>
    <link href="https://blog.ipspace.net/2025/05/chatgpt-isis-unnumbered/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/chatgpt-isis-unnumbered/</id>
    <published>2025-05-27T08:36:00+02:00</published>
    <updated>2025-05-27T08:36:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the last few days, I decided to check out how much better ChatGPT has gotten in the last year or two. I tried to be positive and was rewarded with some <a href="https://blog.ipspace.net/2025/05/chatgpt-netlab-topology/">surprisingly good results</a>. I even figured out I can use it to summarize my blog posts using prompts like this one:</p>
<blockquote>
<p>Using solely the information from blog.ipspace.net, what can you tell me about running ospf over unnumbered interfaces</p>
</blockquote>
<p>And then I asked it about unnumbered interfaces and IS-IS, and it all went sideways:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/chatgpt-isis-unnumbered/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: On the Advantages of XML]]></title>
    <link href="https://blog.ipspace.net/2025/05/repost-xml-advantages/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/repost-xml-advantages/</id>
    <published>2025-05-26T08:07:00+02:00</published>
    <updated>2025-05-26T08:07:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Continuing the discussion started by my <a href="/2025/04/api-data-model-contract/">Breaking APIs or Data Models Is a Cardinal Sin</a> and  <a href="/2025/05/screen-scraping-2025/">Screen Scraping in 2025</a> blog posts, <a href="https://www.linkedin.com/in/dr-tony-przygienda-018501/">Dr. Tony Przygienda</a> left another thoughtful comment worth reposting as a publicly visible blog post:</p>
<hr>
<p>Having read <a href="/2025/05/screen-scraping-2025/">your newest rant around my rant</a> ;-} I can attest that you hit the nail on the very head in basically all you say:</p>
<ul>
<li>XML output big? yeah.</li>
<li>JSON squishy syntax? yeah.</li>
<li>SSH prioritization? You didn&rsquo;t live it until you had a customer where a runaway python script generated 800+ XML netconf sessions pumping data ;-)</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/repost-xml-advantages/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: netlab Introduction by Ethan Banks]]></title>
    <link href="https://blog.ipspace.net/2025/05/ethan-banks-netlab-intro/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/ethan-banks-netlab-intro/</id>
    <published>2025-05-23T08:45:00+02:00</published>
    <updated>2025-05-23T08:45:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Ethan Banks created an excellent introductory <em><a href="https://www.youtube.com/watch?v=ExPh5jBfKR0">Netlab - Automate Your Network Labs With YAML!</a></em> video showing how easy it is to <a href="https://netlab.tools/netlab/up/">start and configure</a> a container- or VM-based lab, and explaining the basic <a href="https://netlab.tools/netlab/cli/"><em>netlab</em> commands</a> you need to get started.</p>
<p>Thanks a million!</p>
<p>P.S.: If you&rsquo;ve done something similar and I haven&rsquo;t noticed it, please <a href="https://www.ipspace.net/Contact#GetInTouch">send me the link</a>.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: True Unnumbered Interfaces]]></title>
    <link href="https://blog.ipspace.net/2025/05/true-unnumbered-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/true-unnumbered-interfaces/</id>
    <published>2025-05-22T07:55:00+02:00</published>
    <updated>2025-05-22T07:55:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Hendrik left an <a href="https://blog.ipspace.net/2022/01/isis-unnumbered/#2628">interesting comment</a> on my <a href="/2022/01/isis-unnumbered/">Running IS-IS over Unnumbered Ethernet Interfaces</a> blog post:</p>
<blockquote>
<p>FRRouting (Linux) with pure IS-IS, the only way it currently (10.3) works is to copy the loopback IPv4 address to the interfaces that you need to do IPv4 routing on. The OpenFabric (IS-IS &ldquo;extension&rdquo; draft) does support true unnumbered interfaces and routes IPv6.</p>
</blockquote>
<p>Let&rsquo;s unpack this. There are (at least) four reasons a router needs an address associated with an interface<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/true-unnumbered-interfaces/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Amazing Speed of Bug Fixes in Nokia SR Linux]]></title>
    <link href="https://blog.ipspace.net/2025/05/nokia-srlinux-bug-fixes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/nokia-srlinux-bug-fixes/</id>
    <published>2025-05-21T08:25:00+02:00</published>
    <updated>2025-05-21T08:25:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, I was <a href="/2025/04/api-data-model-contract/">criticising Nokia&rsquo;s unnecessary changes to the SR Linux configuration data model</a>, so it&rsquo;s only fair that I also publish a counterexample:</p>
<ul>
<li>On April 12th, SR Linux failed one of the <a href="https://tests.netlab.tools/"><em>netlab</em> integration tests</a>. We keep adding functionality to these tests as we discover edge cases we didn&rsquo;t test before, so sometimes a device that passed the test before might fail the modified version.</li>
<li>I <a href="https://github.com/ipspace/netlab/issues/2142">opened a netlab issue</a>, believing it might be a configuration error on our part.</li>
<li>It quickly became evident that we&rsquo;re dealing with an SR Linux bug, as the failure to apply routing policies was random.</li>
</ul>
<p>I thought that was the end of the story and closed the issue, but then something truly amazing happened:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/nokia-srlinux-bug-fixes/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 2.0: Use Custom Bridges on Multi-Access Links]]></title>
    <link href="https://blog.ipspace.net/2025/05/netlab-custom-bridges/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/netlab-custom-bridges/</id>
    <published>2025-05-20T08:17:00+02:00</published>
    <updated>2025-05-20T08:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> uses <a href="/2025/02/virtual-labs-p2p-links/">point-to-point links provided by the underlying virtualization software</a> to implement links with two nodes and <a href="/2025/02/virtual-lab-links/">Linux bridges to implement links with more than two nodes connected to them</a>. That&rsquo;s usually OK if you don&rsquo;t care about the bridge implementation details, but what if you&rsquo;d like to use a bridge (or a layer-2 switch if you happen to be of marketing persuasion) you&rsquo;re familiar with?</p>
<p>You could always implement a bridged segment with a set of links connecting edge nodes to a VLAN-capable device. For example, you could use the following topology to connect two Linux hosts through a bridge running Arista EOS:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/netlab-custom-bridges/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Vibe Coding netlab Lab Topology with ChatGPT]]></title>
    <link href="https://blog.ipspace.net/2025/05/chatgpt-netlab-topology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/chatgpt-netlab-topology/</id>
    <published>2025-05-19T07:08:00+02:00</published>
    <updated>2025-05-19T07:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I was considering an AI add-on that would have access to the netlab documentation and help you figure out how to use it for a few years, but never got around to implementing it (and surprisingly, with all the AI hype out there, there were no volunteers submitting pull requests). A few weeks ago, someone suggested adding an MCP server as an interface to ipSpace.net content, but the discussion quickly devolved into vague ideas.</p>
<p>However, as ChatGPT now has access to the live Internet, I decided to try out whether it can get the job done with a bit of prompting.</p>
<p><strong>TL&amp;DR:</strong> After a hiccup, it worked surprisingly well.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/chatgpt-netlab-topology/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: CLI Is an API]]></title>
    <link href="https://blog.ipspace.net/2025/05/response-cli-api/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/response-cli-api/</id>
    <published>2025-05-14T08:32:00+02:00</published>
    <updated>2025-05-14T08:32:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/andrew-yourtchenko-9304551/">Andrew Yourtchenko</a> and <a href="https://www.linkedin.com/in/dr-tony-przygienda-018501/">Dr. Tony Przygienda</a> left wonderful comments to my <a href="/2025/05/screen-scraping-2025/">Screen Scraping in 2025</a> blog post, but unfortunately they prefer commenting on a closed platform with ephemeral content; the only way to make their thoughts available to a wider audience is by reposting them. Andrew first:</p>
<hr>
<p>I keep saying CLI is an API. However, it is much simpler and an <em>easier</em> way to adapt to the changes, if these three conditions are met:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/response-cli-api/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 2.0.0: Hosts, Bridges, and SRv6]]></title>
    <link href="https://blog.ipspace.net/2025/05/netlab-2-0-0/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/netlab-2-0-0/</id>
    <published>2025-05-12T08:05:00+01:00</published>
    <updated>2025-05-12T08:05:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/2.0/#release-2-0-0"><em>netlab</em> release 2.0.0</a> is out. I spent the whole week fixing bugs and running integration tests, so I&rsquo;m too brain-dead to go into the details. These are the major features we added (more about them in a few days; the details are in the <a href="https://netlab.tools/release/2.0/#release-2-0-0">release notes</a>):</p>
<ul>
<li>Well-defined <a href="https://netlab.tools/node-roles/#node-router-host">node roles</a> (<strong>host</strong>, <strong>router</strong>, <strong>bridge</strong>) are now available on <a href="https://netlab.tools/platforms/#platform-host">multiple platforms</a></li>
<li>The <strong><a href="https://netlab.tools/plugins/firewall.zonebased/#plugin-firewall-zonebased">firewall.zonebased</a></strong> plugin allows you to configure a rudimentary firewall</li>
<li>SRv6: <a href="https://netlab.tools/module/srv6/#module-srv6">BGP L3VPN support</a> is now available for FRRouting, so you can go out and kick its (free) tires.</li>
<li><strong>bridge</strong> nodes can be used as <a href="https://netlab.tools/node-roles/#node-role-bridge">simple bridges</a> or to <a href="https://netlab.tools/node-roles/#node-bridge-lan">implement multi-access links</a></li>
<li><strong><a href="https://netlab.tools/netlab/defaults/#netlab-defaults">netlab defaults</a></strong> command provides <strong>sysctl</strong>-like CLI interface to user/system defaults.</li>
</ul>
<p>Other changes include:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/netlab-2-0-0/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Forwarding Packets Across a Network]]></title>
    <link href="https://blog.ipspace.net/2025/05/forwarding-packets-across-network/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/forwarding-packets-across-network/</id>
    <published>2025-05-08T08:20:00+02:00</published>
    <updated>2025-05-08T08:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>After inspecting the confusing <a href="/2025/04/bridging-routing-switching-terminology/">bridging/routing/switching terminology</a> and a brief detour into the <a href="/2013/08/management-control-and-data-planes-in/">control/data plane details</a>, let’s talk about how packets actually move across a network.</p>
<p>As always, things were simpler when networks were implemented with a single cable. In that setup, all nodes were directly reachable, and the only challenge was figuring out the destination node’s address; it didn’t matter whether it was a MAC address, an IP address, or a Fiber Channel address. On a single cable, you could just broadcast, like, “Who has this service?” and someone would reply, “I’m the printer you’re looking for.” That’s how many early non-IP protocols operated.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/forwarding-packets-across-network/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Screen Scraping in 2025]]></title>
    <link href="https://blog.ipspace.net/2025/05/screen-scraping-2025/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/screen-scraping-2025/</id>
    <published>2025-05-07T11:32:00+02:00</published>
    <updated>2025-05-07T11:32:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/dr-tony-przygienda-018501/">Dr. Tony Przygienda</a> left a <a href="https://blog.ipspace.net/2025/04/api-data-model-contract/#2619">very valid (off-topic) comment</a> to my <a href="/2025/04/api-data-model-contract/#2619">Breaking APIs or Data Models Is a Cardinal Sin</a> blog post:</p>
<blockquote>
<p>If, on the other hand, the customers would not camp for literally tens of years on regex scripts scraping screens, lots of stuff could progress much faster.</p>
</blockquote>
<p>He&rsquo;s right, particularly from Juniper&rsquo;s perspective; they were the first vendor to use a <a href="https://blog.ipspace.net/2017/12/how-did-netconf-start-on-software-gone/">data-driven approach to <strong>show</strong> commands</a>. Unfortunately, we&rsquo;re still not living in a perfect world:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/screen-scraping-2025/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPF Loop Prevention with Area Range Summary LSAs]]></title>
    <link href="https://blog.ipspace.net/2025/05/ospf-area-range-loop-prevention/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/05/ospf-area-range-loop-prevention/</id>
    <published>2025-05-06T08:17:00+02:00</published>
    <updated>2025-05-06T08:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In a <a href="/2025/04/ospf-summary-lsa-loop-prevention/">previous blog post</a>, I described how OSPF route selection rules prevent a summary LSA from being inserted back into an area from which it was generated. That works nicely for area prefixes turned directly into summary LSAs, but how does the loop prevention logic work for summarized prefixes (what OSPF calls <em>area ranges</em>)?</p>
<p><strong>TL&amp;DR:</strong> It doesn&rsquo;t, unless&hellip; ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/05/ospf-area-range-loop-prevention/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPF Summary LSA Loop Prevention]]></title>
    <link href="https://blog.ipspace.net/2025/04/ospf-summary-lsa-loop-prevention/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/ospf-summary-lsa-loop-prevention/</id>
    <published>2025-04-30T08:17:00+02:00</published>
    <updated>2025-04-30T08:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A networking-focused entity known only as <em>humblegrumble</em> sent me the following question after reading my <a href="https://blog.ipspace.net/kb/Internet/OSPF_DV/">When OSPF Becomes a Distance Vector Protocol</a> article:</p>
<blockquote>
<p>How do A1 and A2 know not to advertise a Type-3 summary LSA generated from area 1 prefixes back into area 1?</p>
</blockquote>
<p>He&rsquo;s right. There is no &ldquo;originating area&rdquo; information in the type-3 LSA, so how does an ABR know not to reinsert the type-3 LSA generated by another ABR back into the area?</p>
<p><strong>TL&amp;DR:</strong> The OSPF route selection process takes care of that.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/ospf-summary-lsa-loop-prevention/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Breaking APIs or Data Models Is a Cardinal Sin]]></title>
    <link href="https://blog.ipspace.net/2025/04/api-data-model-contract/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/api-data-model-contract/</id>
    <published>2025-04-29T08:15:00+02:00</published>
    <updated>2025-04-29T08:15:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Imagine you decide to believe the marketing story of your preferred networking vendor and start using the REST API to configure their devices. That probably involves some investment in automation or orchestration tools, as nobody in their right mind wants to use <strong>curl</strong> or <strong>Postman</strong> to configure network devices.</p>
<p>A few months later, after your toolchain has been thoroughly tested, you decide to upgrade the operating system on the network devices, and everything breaks. The root cause: the vendor changed their API or the data model between software releases.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/api-data-model-contract/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ChatGPT on OSPF Area Ranges and Summary LSAs]]></title>
    <link href="https://blog.ipspace.net/2025/04/chatgpt-ospf-area-ranges/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/chatgpt-ospf-area-ranges/</id>
    <published>2025-04-28T07:46:00+02:00</published>
    <updated>2025-04-28T07:46:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I wanted to test a <em>loop prevention when propagating summary LSA across areas</em> scenario (more about that in another blog post) using the <a href="https://github.com/ipspace/netlab-examples/blob/master/OSPF/inter-area-dv/topology.yml">lab topology</a> I developed for the <em><a href="/kb/Internet/OSPF_DV/">When OSPF Becomes a Distance Vector Protocol</a></em> article.</p>
<p>I started the lab with the FRRouting routers and configured OSPF area ranges. Astonishingly, I discovered that the more-specific prefixes from an area appear as summary routes in the backbone area even when the area range is configured. When I tried to reproduce the scenario a few days later, it turned out to be a timing quirk (I didn&rsquo;t wait long enough), but my squirrelly mind was already investigating.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/chatgpt-ospf-area-ranges/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Switching, Routing, and Bridging Terminology]]></title>
    <link href="https://blog.ipspace.net/2025/04/bridging-routing-switching-terminology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/bridging-routing-switching-terminology/</id>
    <published>2025-04-25T07:45:00+02:00</published>
    <updated>2025-04-25T07:45:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>After discussing <a href="https://my.ipspace.net/bin/list?id=Net101#LAYERS">networking layers</a> and <a href="https://my.ipspace.net/bin/list?id=Net101#ADDR">addressing</a>, it&rsquo;s time to focus on moving packets across a network. Vendors love to use ill-defined terms like <em>switching</em> instead of <em>forwarding</em>, <em>routing</em>, or <em>bridging</em>, so let’s start with the terminology.</p>
<p>Connecting all relevant devices to a single cable would indubitably simplify any networking stack, but unfortunately, we&rsquo;re almost never that lucky. We need devices in the network (typically with multiple interfaces) that perform packet forwarding between end nodes.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/bridging-routing-switching-terminology/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: BGP Unnumbered in 2025]]></title>
    <link href="https://blog.ipspace.net/2025/04/worth-reading-bgp-unnumbered-2025/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/worth-reading-bgp-unnumbered-2025/</id>
    <published>2025-04-24T08:06:00+02:00</published>
    <updated>2025-04-24T08:06:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Gabriel sent me a pointer to a blog post by <a href="https://blog.bott.im/about/">Rudolph Bott</a> describing the <a href="https://blog.bott.im/bgp-unnumbered-in-2025-same-idea-different-implementations/">details of BGP Unnumbered implementations on Nokia, Juniper, and Bird</a>.</p>
<p>Even more interestingly, Rudolph points out the elephant I <a href="https://blog.ipspace.net/2022/11/bgp-unnumbered-duct-tape/">completely missed</a>: <a href="https://www.rfc-editor.org/rfc/rfc8950.html">RFC 8950</a> refers to <a href="https://www.rfc-editor.org/rfc/rfc2545#section-3">RFC 2545</a>, which requires a GUA IPv6 next hop in BGP updates (well, it uses the SHALL wording, which usually means &ldquo;troubles ahead&rdquo;). What do you do if you&rsquo;re running EBGP on an interface with no global IPv6 addresses? As expected, vendors do different things, resulting in another <a href="/2025/04/evpn-symmetric-irb-arp/">fun interoperability exercise</a>.</p>
<p>Finally, there&rsquo;s <a href="https://datatracker.ietf.org/doc/html/rfc7404">RFC 7404</a> that advocates LLA-only infrastructure links, so we might find the answer there. Nope; it doesn&rsquo;t even acknowledge the problem in the Caveats section.</p>
<p>For even more information, read the <a href="/series/unnumbered-interfaces/">Unnumbered IPv4 Interfaces</a> and <a href="/series/dcbgp/">BGP in Data Center Fabrics</a> blog posts.</p>
]]></content>
    <category term="BGP" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How ARP Killed a Static Route]]></title>
    <link href="https://blog.ipspace.net/2025/04/static-routes-arp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/static-routes-arp/</id>
    <published>2025-04-22T07:55:00+02:00</published>
    <updated>2025-04-22T07:55:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>The amount of weird stuff we <a href="/tag/netlab#quirks">discover in netlab integration tests</a> is astounding, or maybe I have a knack for looking into the wrong dark corners (my wife would definitely agree with that). Today&rsquo;s special: when having two next hops kills a static route.</em></p>
<p><strong>TL&amp;DR:</strong> default ARP settings on a multi-subnet Linux host are <a href="/2025/04/static-routes-arp/#sysctl">less than optimal</a>.</p>
<p>We use these principles when creating <a href="https://tests.netlab.tools/"><em>netlab</em> integration tests</a>:</p>
<ul>
<li>They should contain a single device-under-test and a bunch of attached probes.</li>
<li>They should test a single feature.</li>
<li>They should not rely on the device-under-test. All validation has to be done on probes.</li>
</ul>
<p>How do you test static routes under these restrictions? Here&rsquo;s what we did:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/static-routes-arp/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="ARP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Rant: You Should Have Written a Book]]></title>
    <link href="https://blog.ipspace.net/2025/04/rant-should-have-written-a-book/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/rant-should-have-written-a-book/</id>
    <published>2025-04-17T08:07:00+02:00</published>
    <updated>2025-04-17T08:07:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>I apologize for the rant; I have to vent my frustration with people whose quantity of opinions seems to be exceeding their experience (or maybe they&rsquo;re coming from an alternate universe with different laws of physics, which would be way cool but also unlikely). You&rsquo;ve been warned; please feel free to move on or <a href="/2025/04/rant-should-have-written-a-book/#postrant">skip the rant part of the blog post</a>.</em></p>
<p><strong>Rant mode: ON</strong></p>
<p>This is the (unedited) gem I received after making some of my EVPN videos public:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/rant-should-have-written-a-book/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Execute a Command on Multiple Devices]]></title>
    <link href="https://blog.ipspace.net/2025/04/netlab-exec/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/netlab-exec/</id>
    <published>2025-04-16T07:47:00+02:00</published>
    <updated>2025-04-16T07:47:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>When I was updating the <a href="/2009/03/bgp-local-as-feature-basics/">Network Migration with BGP Local-AS Feature</a> blog post, I wanted to execute the same command (<strong>show ip bgp</strong>) on all routers in my network.</p>
<p>Not a problem: since <a href="https://github.com/ipspace/netlab/pull/1398">Dan Partelly added</a> the <strong><a href="https://netlab.tools/netlab/exec/">netlab exec</a></strong> command, it&rsquo;s as simple as <strong>netlab exec * show ip bgp</strong>. Well, not exactly; there are still a few quirks.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/netlab-exec/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: Peer-to-Peer Communication in IPv6 World]]></title>
    <link href="https://blog.ipspace.net/2025/04/response-peer-to-peer-apps-ipv6/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/response-peer-to-peer-apps-ipv6/</id>
    <published>2025-04-15T07:23:00+02:00</published>
    <updated>2025-04-15T07:23:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daryll Swer <a href="https://blog.ipspace.net/2025/04/response-nat-traversal/#2598">posted a very informative response</a> to my <a href="https://blog.ipspace.net/2025/04/response-nat-traversal/">NAT Traversal Mess</a> blog post, focusing on:</p>
<blockquote>
<p>Punching holes through that firewall is equivalent to establishing NAT translations.</p>
</blockquote>
<p>It would be a shame to let that response wither as small print at the bottom of a blog post; here it is:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/response-peer-to-peer-apps-ipv6/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
    <category term="firewalls" />
    <category term="NAT" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: NAT Traversal Mess]]></title>
    <link href="https://blog.ipspace.net/2025/04/response-nat-traversal/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/response-nat-traversal/</id>
    <published>2025-04-10T08:00:00+02:00</published>
    <updated>2025-04-10T08:00:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Let&rsquo;s look at another part of the <a href="https://blog.ipspace.net/2025/03/rise-of-nat/#2571">lengthy comment Bob left</a> after listening to the <a href="/2025/03/rise-of-nat/">Rise of NAT podcast</a>. This one is focused on the NAT traversal mess:</p>
<blockquote>
<p>You mentioned that only video-conferencing and BitTorrent use client-to-client connectivity (and they are indeed the main use cases), but hell, do they need to engineer complex systems to circumvent these NATs and firewalls: STUN, TURN, ICE, DHT&hellip;</p>
</blockquote>
<p>Cleaning up the acronym list first: DHT is unlike the others and <a href="https://en.wikipedia.org/wiki/Distributed_hash_table">has nothing to do with NAT</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/response-nat-traversal/'>Read more &hellip;</a></div>]]></content>
    <category term="NAT" />
  </entry>
  <entry>
    <title type="html"><![CDATA[iBGP Local-AS Next Hop Requirements]]></title>
    <link href="https://blog.ipspace.net/2025/04/ibgp-local-as-details/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/ibgp-local-as-details/</id>
    <published>2025-04-08T08:08:00+02:00</published>
    <updated>2025-04-08T08:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Did you know you could use the <strong>neighbor local-as</strong> BGP functionality to fake an iBGP session between different autonomous systems? I knew Cisco IOS supported that monstrosity for ages (supposedly &ldquo;<em>to merge two ISPs that have different AS numbers</em>&rdquo;) and added the appropriate tweaks<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> into <em><a href="https://netlab.tools/">netlab</a></em> when I added the <a href="https://github.com/ipspace/netlab/commit/0943d5fe5686adf1766fc1062313ef2ed55f50e3">BGP <strong>local-as</strong> support</a> in release 1.3.1. Someone couldn&rsquo;t resist <a href="https://github.com/ipspace/netlab/issues/368">pushing us down that slippery slope</a>, and we ended with IBGP local-as implemented on <a href="https://netlab.tools/module/bgp/#platform-support">18 platforms</a> (almost a dozen network operating systems).</p>
<p>I even wrote a <a href="https://github.com/ipspace/netlab/blob/release_1.9.5/tests/integration/bgp/08-ibgp-localas.yml">related integration test</a>, and all our implementations passed it until I asked myself a simple question: &ldquo;But does it work?&rdquo; and the number of correct implementations that passed the test without warnings dropped to zero.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/ibgp-local-as-details/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Transitioning into Networking, 2025 Edition]]></title>
    <link href="https://blog.ipspace.net/2025/04/transition-into-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/transition-into-networking/</id>
    <published>2025-04-04T08:20:00+02:00</published>
    <updated>2025-04-04T08:20:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Elmer sent me the following question:</p>
<blockquote>
<p>I’ve been working in systems engineering (Linux, virtualization, infrastructure ops) and am considering shifting toward network engineering or architecture. I got my CCNA years ago and started CCNP but didn’t continue.</p>
<p>I’d really appreciate any thoughts you might have on how someone with my background could best make that transition today, especially with how things are evolving around automation and the cloud.</p>
</blockquote>
<p>I keep answering a variant of this question every other year or so (<a href="https://blog.ipspace.net/2019/03/from-ccna-to-sdn-interview-with-david/">2019</a>, <a href="https://blog.ipspace.net/2021/03/interview-is-networking-dead/">2021</a>, <a href="https://blog.ipspace.net/2023/01/video-networking-engineer-path-success/">2023</a>, <a href="https://blog.ipspace.net/2024/01/networking-2024/">2024</a>). I guess it&rsquo;s time for another answer, so here we go.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/transition-into-networking/'>Read more &hellip;</a></div>]]></content>
    <category term="certifications" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ARP Challenges in EVPN/VXLAN Symmetric IRB]]></title>
    <link href="https://blog.ipspace.net/2025/04/evpn-symmetric-irb-arp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/evpn-symmetric-irb-arp/</id>
    <published>2025-04-03T08:30:00+02:00</published>
    <updated>2025-04-03T08:30:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>Whenever I claimed that EVPN is The SIP of Networking, vendor engineers quickly told me that &ldquo;EVPN interoperability is a solved problem&rdquo; and that they run regular multi-vendor interoperability labs to iron out the quirks. As it turns out, things aren&rsquo;t as rosy in real life; it&rsquo;s still helpful to have an EVPN equivalent of the DTMF tone generators handy.</em></p>
<p>I encountered a particularly nasty quirk when running the <em>netlab</em> <a href="https://tests.netlab.tools/_html/coverage.evpn">EVPN integration test</a> using <a href="https://github.com/ipspace/netlab/blob/dev/tests/integration/evpn/03-vxlan-symmetric-irb.yml">symmetric IRB with an anycast gateway</a> between Nokia SR Linux (or Juniper vSwitch) and FRR container.</p>

<figure><img src="/2025/04/evpn-symmetric-irb.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/evpn-symmetric-irb-arp/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Comparing IP and CLNP: Local (Node) Multihoming]]></title>
    <link href="https://blog.ipspace.net/2025/04/comparing-ip-clnp-multihoming/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/comparing-ip-clnp-multihoming/</id>
    <published>2025-04-02T08:21:00+01:00</published>
    <updated>2025-04-02T08:21:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Another area where CLNP is a clear winner when compared to the TCP/IP stack is multi-homed nodes (nodes with multiple interfaces, not <a href="https://blog.ipspace.net/series/multihoming/">site multi-homing</a>, where whole networks are connected to two upstream providers).</p>
<p>Multi-homed TCP/IP nodes must have multiple IP addresses because IP uses address interfaces. There is no well-defined procedure in TCP/IP for how a multi-homed node should behave. In the early days of TCP/IP, they tried to address that in <a href="https://datatracker.ietf.org/doc/html/rfc1122">RFC 1122</a> (Host Requirements RFC), but even then, there were two ideas about dealing with multiple interfaces: the <a href="https://datatracker.ietf.org/doc/html/rfc1122#page-60">strong and weak end system models</a> (<a href="https://blog.ipspace.net/2009/06/multihomed-ip-hosts/">more details</a>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/04/comparing-ip-clnp-multihoming/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Why Quantum Crypto is Bollocks]]></title>
    <link href="https://blog.ipspace.net/2025/04/worth-reading-quantum-crypto-bollocks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/04/worth-reading-quantum-crypto-bollocks/</id>
    <published>2025-04-01T07:13:00+01:00</published>
    <updated>2025-04-01T07:13:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Today is a perfect day to point out the fantastic <a href="https://www.cs.auckland.ac.nz/~pgut001/pubs/bollocks.pdf">Why Quantum Cryptanalysis is Bollocks</a> presentation (HT: <a href="https://blog.apnic.net/2025/03/21/a-load-of-old/">A blog post</a> by George Michaelson)</p>
<p>It&rsquo;s a must-read, even if you&rsquo;re absolutely uninterested in the topic. Just replace &ldquo;Quantum mumbo-jumbo&rdquo; with AI or SDN ;) Have fun!</p>
]]></content>
    <category term="worth reading" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Passive BGP Sessions]]></title>
    <link href="https://blog.ipspace.net/2025/03/bgp-labs-passive-sessions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/bgp-labs-passive-sessions/</id>
    <published>2025-03-28T07:40:00+02:00</published>
    <updated>2025-03-28T07:40:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="https://bgplabs.net/session/9-dynamic/">Dynamic BGP Peers</a> lab exercise gave you the opportunity to build a large-scale environment in which routers having an approved source IP addresses (usually matching an ACL/prefix list) can connect to a BGP <a href="https://bgplabs.net/ibgp/3-rr/">route reflector</a> or <a href="https://bgplabs.net/session/5-routeserver/">route server</a>.</p>
<p>In a more controlled environment, you&rsquo;d want to define BGP neighbors on the BGP RR/RS but not waste CPU cycles trying to establish BGP sessions with unreachable neighbors. Welcome to the world of <a href="https://bgplabs.net/session/8-passive/">passive BGP sessions</a>.</p>

<figure><img src="https://bgplabs.net/session/topology-passive-bgp.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/bgplab">Click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>session/8-passive</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: Any-to-Any Connectivity in the Internet]]></title>
    <link href="https://blog.ipspace.net/2025/03/response-end-to-end-connectivity/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/response-end-to-end-connectivity/</id>
    <published>2025-03-27T07:45:00+01:00</published>
    <updated>2025-03-27T07:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Bob left a <a href="https://blog.ipspace.net/2025/03/rise-of-nat/#2571">lengthy comment</a> arguing with the (somewhat black-and-white) claims I made in the <a href="/2025/03/rise-of-nat/">Rise of NAT podcast</a>. Let&rsquo;s start with the any-to-any connectivity:</p>
<blockquote>
<p>From my young millennial point of view, the logic is reversed: it is because of NATs and firewalls that the internet became so asymmetrical (client/server) just like the Minitel was designed (yes, I am French), whereas the Internet (and later the web, although a client/server protocol, was meant for everyone to be a client and a server) was designed to be more balanced.</p>
</blockquote>
<p>Let&rsquo;s start with the early Internet. It had no peer-to-peer applications. It connected a few large computers (mainframes) that could act as servers but also allowed terminal-based user access and thus ran per-user clients.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/response-end-to-end-connectivity/'>Read more &hellip;</a></div>]]></content>
    <category term="Internet" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: On Writing]]></title>
    <link href="https://blog.ipspace.net/2025/03/worth-reading-on-writing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/worth-reading-on-writing/</id>
    <published>2025-03-26T08:14:00+01:00</published>
    <updated>2025-03-26T08:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the most significant problems engineers face when trying to improve their online presence is the &ldquo;How do I start writing?&rdquo; roadblock (hint: publishing bland AI-generated slop won&rsquo;t get you far unless you aim to become a Thought Leader).</p>
<p><a href="https://thezvi.wordpress.com/about/">Zvi Mowshowitz</a> collected <a href="https://thezvi.wordpress.com/2025/03/04/on-writing-1/">links to over a dozen different writing styles</a>, starting with JRR Tolkien. I&rsquo;m pretty sure you&rsquo;ll find something useful in that vast collection.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.9.6: Static Routes to Default Gateways]]></title>
    <link href="https://blog.ipspace.net/2025/03/netlab-1-9-6-gateway/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/netlab-1-9-6-gateway/</id>
    <published>2025-03-25T08:25:00+01:00</published>
    <updated>2025-03-25T08:25:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, I had to push out <a href="https://netlab.tools/release/1.9/#release-1-9-6"><em>netlab</em> release 1.9.6</a> to address a particularly nasty Python <a href="https://xkcd.com/1987/">dependency hell</a> to make <em>netlab</em> work (again) on Ubuntu 24.04 (<a href="/2025/03/netlab-1-9-6-gateway/#dep">more details</a>). The release also brought these goodies (and a <a href="https://netlab.tools/release/1.9/#bug-fixes-1-9-6">bunch of bug fixes</a>):</p>
<ul>
<li>Add default gateway (including anycast- and VRRP gateway )as a valid next-hop for <a href="https://netlab.tools/module/routing/#generic-routing-static">static routes</a></li>
<li>Rewrite the default gateway processing and add IPv6 default gateways on links without anycast or VRRP gateways</li>
<li><a href="https://netlab.tools/labs/libvirt/#libvirt-network">Set libvirt MTU to 9500</a> on bridge-based networks to avoid the &ldquo;<a href="https://blog.ipspace.net/2025/03/linux-bridge-mtu-hell/">transparent fragmentation</a>&rdquo; on Linux bridges.</li>
<li>Use device- or node variables to <a href="https://netlab.tools/caveats/#juniper-vmx">specify the Juniper vMX license file</a>.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/netlab-1-9-6-gateway/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IPv6 and the Revenge of the Stupid Bridges]]></title>
    <link href="https://blog.ipspace.net/2025/03/stupid-bridges-strike-again/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/stupid-bridges-strike-again/</id>
    <published>2025-03-24T08:08:00+01:00</published>
    <updated>2025-03-24T12:40:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>This blog post describes another &ldquo;OMG, this cannot possibly be true&rdquo; scenario discovered during the <a href="https://netlab.tools/">netlab</a> VRRP <a href="https://tests.netlab.tools/">integration testing</a>.</em></p>
<p>I wanted to test whether we got the <a href="/2025/01/cisco-vrrp3-ipv6-configuration/">nasty nuances of VRRPv3 IPv6 configuration</a> right on <a href="https://netlab.tools/module/gateway/#platform-support">all supported platforms</a> and created a simple lab topology in which the device-under-test and an Arista cEOS container would be connected to two IPv6 networks (Arista EOS is a lovely device to use when testing a VRRP cluster because it produces JSON-formatted <strong>show vrrp</strong> printouts).</p>
<p>Most platforms worked as expected, but Aruba CX, Cumulus Linux with NVUE, and Dell OS10 consistently failed the tests. We were stumped until Jeroen van Bemmel discovered that the Arista container <a href="https://github.com/ipspace/netlab/issues/1821">forwards IPv6 router advertisements between the two LAN segments</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/stupid-bridges-strike-again/'>Read more &hellip;</a></div>]]></content>
    <category term="bridging" />
    <category term="IPv6" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Routed Interfaces on Layer-3 Switches and Internal VLANs]]></title>
    <link href="https://blog.ipspace.net/2025/03/routed-interfaces-layer-3-switches/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/routed-interfaces-layer-3-switches/</id>
    <published>2025-03-20T08:16:00+01:00</published>
    <updated>2025-03-20T08:16:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2022/09/interfaces-ports/">Router Interfaces and Switch Ports</a> blog post, I described why we have <em>switch ports</em> and <em>routed interfaces</em> on layer-3 switches. Another blog post in the same series <a href="/2022/09/vlan-interfaces/">described the conceptual architecture of a layer-3 switch</a>:</p>
<ul>
<li>All interfaces are connected to a VLAN-aware switch</li>
<li>The switch interfaces could be <em>access</em> or <em>trunk</em> interfaces<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</li>
<li>Each VLAN in a VLAN-aware switch can be connected to an internal router through a VLAN interface.</li>
</ul>
<p>However, that&rsquo;s not how we configure layer-3 switches. There&rsquo;s a significant gap between the conceptual configuration model and the internal architecture:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/routed-interfaces-layer-3-switches/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="IP routing" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Comparing IP and CLNP: Network State Summarization]]></title>
    <link href="https://blog.ipspace.net/2025/03/comparing-ip-clnp-state-summarization/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/comparing-ip-clnp-state-summarization/</id>
    <published>2025-03-19T07:59:00+01:00</published>
    <updated>2025-03-19T07:59:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous blog posts, we discussed how <a href="/2024/10/comparing-ip-clnp-addressing/">TCP/IP and CLNP reach adjacent nodes and build ARP/ND/ES caches</a> and how they <a href="/2025/03/comparing-ip-clnp-off-subnet-nodes/">reach off-subnet nodes</a>. Now, let&rsquo;s move from the network edge into the network core and explore how the two protocol stacks reduce the amount of information they have to propagate in routing protocols.</p>
<p>While I&rsquo;m not exactly an OSI fan, I must admit they got many things right (and IPv6 copied those ideas), but TCP/IP is a clear winner in this aspect.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/comparing-ip-clnp-state-summarization/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Standards for ANSI Escape Codes]]></title>
    <link href="https://blog.ipspace.net/2025/03/worth-reading-standards-ansi-escape-codes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/worth-reading-standards-ansi-escape-codes/</id>
    <published>2025-03-18T08:03:00+01:00</published>
    <updated>2025-03-18T08:03:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I encountered the <em>Escape sequences</em> (named <a href="https://en.wikipedia.org/wiki/Escape_character#ASCII_escape_character">after the first character in the sequence</a>) while programming stuff that would look nicely on the venerable VT100 terminals (not to mention writing one or two VT100 emulators myself).</p>
<p>In the meantime, those sequences got standardized and (par for the course) extended with &ldquo;proprietary&rdquo; stuff everyone uses now. <a href="https://jvns.ca/">Julia Evans</a> did a great job <a href="https://jvns.ca/blog/2025/03/07/escape-code-standards/">documenting the state of the art</a>. Thanks a million!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Arista EOS Spooky Action at a Distance]]></title>
    <link href="https://blog.ipspace.net/2025/03/arista-spooky-action-distance/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/arista-spooky-action-distance/</id>
    <published>2025-03-17T09:10:00+01:00</published>
    <updated>2025-03-17T09:10:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>This blog post describes yet another bizarre behavior discovered during the <a href="https://netlab.tools/">netlab</a> <a href="https://tests.netlab.tools/">integration testing</a>.</em></p>
<p>It started innocently enough: I was working on the <a href="https://github.com/ipspace/netlab/blob/dev/tests/integration/gateway/02-vrrp.yml">VRRP integration test</a> and wanted to use Arista EOS as the second (probe) device in the VRRP cluster because it produces nice JSON-formatted results that are easy to use in validation tests.</p>
<p>Everything looked great until I ran the test on <a href="https://netlab.tools/module/gateway/#platform-support">all platforms on which <em>netlab</em> configures VRRP</a>, and all of them passed <em>apart from Arista EOS</em> (that was <a href="/2025/01/sturgeon-law-vrrp-edition/">before we figured out how Sturgeon&rsquo;s Law applies to VRRPv3</a>) &ndash; a &ldquo;That&rsquo;s funny&rdquo; moment that was directly responsible for me wasting a few hours chasing white rabbits down this trail.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/arista-spooky-action-distance/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: IS-IS Designated Router Election]]></title>
    <link href="https://blog.ipspace.net/2025/03/isis-dis-election/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/isis-dis-election/</id>
    <published>2025-03-13T08:03:00+01:00</published>
    <updated>2025-03-13T08:03:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Like OSPF, IS-IS needs a router to originate the pseudo-node for a LAN segment. IS-IS standards call that router a Designated Intermediate System (DIS), and since it is not responsible for flooding, it does not need a backup.</p>
<p>Want to know more? The <a href="https://isis.bgplabs.net/feature/2-dis/">Influence the Designated IS Election</a> lab exercise provides the details (and some hands-on work).</p>

<figure><img src="https://isis.bgplabs.net/feature/topology-dis.png"/>
</figure>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Linux Bridge MTU Hell]]></title>
    <link href="https://blog.ipspace.net/2025/03/linux-bridge-mtu-hell/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/linux-bridge-mtu-hell/</id>
    <published>2025-03-11T08:11:00+01:00</published>
    <updated>2025-03-11T08:11:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>It all started with an innocuous article <a href="https://packetpushers.net/blog/mtu-deep-dive-part-1/">describing the MTU basics</a>. As the real purpose of the MTU is to prevent packet drops due to fixed-size receiver buffers, and I <del>waste</del> spend most of my time in virtual labs, I wanted to check how various virtual network devices react to incoming oversized packets.</p>
<p>As the first step, I created a simple <em>netlab</em> topology in which a single link had a slightly larger than usual MTU&hellip; and then all hell broke loose.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/linux-bridge-mtu-hell/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Traffic Steering into LSPs]]></title>
    <link href="https://blog.ipspace.net/2025/03/lsp-traffic-steering/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/lsp-traffic-steering/</id>
    <published>2025-03-10T08:12:00+01:00</published>
    <updated>2025-03-10T08:12:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>You can use SR-MPLS, MPLS-TE, or an SDN controller to build virtual circuits (label-switched paths) across the network core. The controller can push the LSPs into network devices with PCEP, BGP-LU, or some sort of NETCONF/RESTCONF trickery.</p>
<p>Unfortunately, you&rsquo;re only half done once you have installed the LSPs. You still have to persuade the network devices to use them. Welcome to the confusing world of traffic steering explored in the <a href="https://routingcraft.net/loopback-as-a-service/">Loopback as a Service</a> blog post by <a href="https://routingcraft.net/contact/">Dmytro Shypovalov</a>.</p>
<div class='jump-link'><a href="https://routingcraft.net/loopback-as-a-service/">Keep reading</a></div>
]]></content>
    <category term="worth reading" />
    <category term="MPLS" />
    <category term="traffic engineering" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.9.5: New Cumulus Linux(NVUE) and Junos Features]]></title>
    <link href="https://blog.ipspace.net/2025/03/netlab-1-9-5-junos-cumulus/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/netlab-1-9-5-junos-cumulus/</id>
    <published>2025-03-07T07:52:00+01:00</published>
    <updated>2025-03-07T07:52:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://github.com/jbemmel">Jeroen van Bemmel</a> and <a href="https://github.com/ssasso">Stefano Sasso</a> contributed tons of new device features for the <a href="https://netlab.tools/release/1.9/#release-1-9-5"><em>netlab</em> release 1.9.5</a>:</p>
<p><strong>Cumulus Linux (NVUE):</strong></p>
<ul>
<li>VXLAN and EVPN</li>
<li>VLAN-aware router (VLAN subinterfaces) functionality</li>
<li>VRF route leaking</li>
<li>VRF-aware BGP and full RFC 8950 support (IPv4 BGP AF over regular IPv6 BGP session)</li>
<li>BGP allowas_in and EBGP multihop</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/netlab-1-9-5-junos-cumulus/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Comparing IP and CLNP: Reaching Off-Subnet Nodes]]></title>
    <link href="https://blog.ipspace.net/2025/03/comparing-ip-clnp-off-subnet-nodes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/comparing-ip-clnp-off-subnet-nodes/</id>
    <published>2025-03-05T08:08:00+01:00</published>
    <updated>2025-03-05T08:08:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The previous blog post in this series discussed how <a href="/2024/10/comparing-ip-clnp-addressing/">TCP/IP and CLNP reach adjacent nodes and build ARP/ND/ES caches</a>. Now let&rsquo;s move one step further: how do nodes running IPv4/IPv6 or CLNP discover the first-hop router that could forward their traffic to off-subnet nodes they want to communicate with?</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/comparing-ip-clnp-off-subnet-nodes/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Capturing Traffic in Virtual Networking Labs]]></title>
    <link href="https://blog.ipspace.net/2025/03/virtual-labs-traffic-capture/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/virtual-labs-traffic-capture/</id>
    <published>2025-03-04T07:43:00+01:00</published>
    <updated>2025-03-04T07:43:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I announced the <a href="/2025/02/virtual-dummy-interfaces/">Stub Networks in Virtual Labs</a> blog post on LinkedIn, I claimed it was <em>the last chapter in the &ldquo;links in virtual labs&rdquo; saga</em>. I was wrong; here comes the fourth part of the <em>virtual links</em> trilogy &ndash; capturing &ldquo;on the wire&rdquo; traffic in virtual networking labs.</p>
<p>While network devices provide traffic capture capabilities (usually <strong>tcpdump</strong> in disguise generating a <code>.pcap</code> file), it&rsquo;s often better to capture the traffic outside of the device to see what the root cause of the problems you&rsquo;re experiencing might be.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/03/virtual-labs-traffic-capture/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Podcast: The Rise of NAT]]></title>
    <link href="https://blog.ipspace.net/2025/03/rise-of-nat/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/03/rise-of-nat/</id>
    <published>2025-03-03T07:21:00+01:00</published>
    <updated>2025-03-03T07:21:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When <a href="https://pod.chaoslever.com/about/">Ned Bellavance</a> asked me to be a guest on the Chaos Lever podcast talking about NAT, I replied, &ldquo;<em>and why do you hate me so much?</em>&rdquo;</p>
<p>However, it turned out one can have a fun conversation about a controversial topic. For more details, listen to <a href="https://pod.chaoslever.com/the-rise-of-nat-a-necessary-evil-in-networking-chaos-lever/">The Rise of NAT</a> on <a href="https://pod.chaoslever.com/">Chaos Lever</a>. I hope you&rsquo;ll enjoy it ;)</p>
]]></content>
    <category term="NAT" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Generative AI Con]]></title>
    <link href="https://blog.ipspace.net/2025/02/worth-reading-generative-ai-con/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/worth-reading-generative-ai-con/</id>
    <published>2025-02-28T08:37:00+01:00</published>
    <updated>2025-02-28T08:37:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I love good steamy rants, and <a href="https://www.wheresyoured.at/longcon/">The Generative AI Con</a> from Edward Zitron is as good as they come. Pour yourself a glass of wine (or a cup of tea or whatever else you prefer) and have some fun ;)</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The IPv6 Agnostic Blog]]></title>
    <link href="https://blog.ipspace.net/2025/02/worth-reading-ipv6-failures/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/worth-reading-ipv6-failures/</id>
    <published>2025-02-26T08:19:00+01:00</published>
    <updated>2025-02-26T08:19:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Ole Troan, an excellent networking engineer working on IPv6 for decades, has decided to comment on the color of the IPv6 kettle, starting with:</p>
<ul>
<li><a href="https://ipv6.hanazo.no/posts/ipv6-transition-inevitable/">Is the transition to IPv6 inevitable?</a> (hint: <a href="https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines">Betteridge&rsquo;s law of headlines</a>)</li>
<li><a href="https://ipv6.hanazo.no/posts/ipv6-missed-opportunities-1/">The mistakes and missed opportunities in the design of IPv6 - episode 1</a> (aka <a href="https://en.wikipedia.org/wiki/Second-system_effect">Second System Effect</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>)</li>
</ul>
<p>I&rsquo;m pretty sure Ole won&rsquo;t stop there, so stay tuned.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/worth-reading-ipv6-failures/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Stub Networks in Virtual Labs]]></title>
    <link href="https://blog.ipspace.net/2025/02/virtual-dummy-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/virtual-dummy-interfaces/</id>
    <published>2025-02-25T07:55:00+01:00</published>
    <updated>2025-02-25T07:55:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The previous blog posts described how virtualization products create <a href="/2025/02/virtual-lab-links/">LAN segments</a> and <a href="/2025/02/virtual-labs-p2p-links/">point-to-point links</a>.</p>
<p>However, sometimes we need <em>stub segments</em> &ndash; segments connected to a single router or switch &ndash; because we don&rsquo;t want to waste resources creating hosts attached to a network device, but would still prefer a more realistic mechanism than static routes to inject IP subnets into routing protocols.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/virtual-dummy-interfaces/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Network Traffic Telemetry Protocols]]></title>
    <link href="https://blog.ipspace.net/2025/02/network-traffic-telemetry/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/network-traffic-telemetry/</id>
    <published>2025-02-24T07:57:00+01:00</published>
    <updated>2025-02-24T07:57:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/podintsov/?ref=pavel.network">Pavel Odintsov</a> published a series of introductory blog posts describing protocols we can use to collect network traffic telemetry:</p>
<ul>
<li><a href="https://pavel.network/network-traffic-telemetry-on-modern-routers-part-1/">Part 1</a> covers the ancient Netflow v5, Netflow v9, and IPFIX. It also mentions sampling and flow aggregation.</li>
<li><a href="https://pavel.network/network-traffic-telemetry-on-modern-routers-part-2/">Part 2</a> describes sFlow, port mirroring and sampled mirroring, and the use of IPFIX/Netflow v9 to transport mirrored traffic.</li>
</ul>
<p>These blog posts will not make you an expert but will give you an excellent overview of the telemetry landscape<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Hint: more than enough to turn you into an instant AI-assisted LinkedIn <del>garbage generator</del> Thought Leader™ 😜&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Run BGP Across a Firewall]]></title>
    <link href="https://blog.ipspace.net/2025/02/bgp-labs-ebgp-multihop/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/bgp-labs-ebgp-multihop/</id>
    <published>2025-02-21T08:29:00+01:00</published>
    <updated>2025-02-21T08:29:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I <a href="/2024/06/ebgp-multihop-use-cases/">asked my readers what they would consider a good use case for EBGP multihop</a> (thanks again to everyone who answered!), many suggested running BGP across a layer-3 firewall (Running BGP across a &ldquo;transparent&rdquo; (bump-in-the-wire) firewall is trivial). I turned that suggestion into a <a href="https://bgplabs.net/basic/e-ebgp-multihop/">lab exercise</a> in which you have to establish an EBGP multihop session across a &ldquo;firewall&rdquo; simulated by a Linux host.</p>

<figure><img src="https://bgplabs.net/basic/topology-ebgp-multihop.png"/>
</figure>
<p>If you haven&rsquo;t <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>, <a href="https://github.com/codespaces/new/bgplab/bgplab">click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a>. After starting your codespace, change the directory to <code>basic/e-ebgp-multihop</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Using SDN Controller with RSVP/TE]]></title>
    <link href="https://blog.ipspace.net/2025/02/using-sdn-controller-rsvp-te/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/using-sdn-controller-rsvp-te/</id>
    <published>2025-02-20T08:14:00+01:00</published>
    <updated>2025-02-20T08:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Dmytro Shypovalov published another article well worth reading: <a href="https://routingcraft.net/why-use-an-sdn-controller-for-rsvp-te/">why should you use an SDN controller for RSVP-TE</a>. It covers:</p>
<ul>
<li>The reasons people might still prefer RSVP-TE over SR-MPLS and the current state of RSVP-TE</li>
<li>What an SDN controller might bring to the RSVP-TE world</li>
<li>SR/RSVP coexistence and interworking</li>
</ul>
<p>Have fun!</p>
]]></content>
    <category term="worth reading" />
    <category term="SDN" />
    <category term="MPLS-TE" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Goodbye, Cumulus Community Vagrant Boxes]]></title>
    <link href="https://blog.ipspace.net/2025/02/goodbye-cumulus-community/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/goodbye-cumulus-community/</id>
    <published>2025-02-19T08:01:00+01:00</published>
    <updated>2025-02-19T08:01:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Last Monday, I decided to review and merge the &ldquo;<a href="https://github.com/ipspace/netlab/pull/1832">VXLAN on Cumulus Linux 5.x with NVUE</a>&rdquo; pull request. I usually run integration tests on the modified code to catch any remaining gremlins, but this time, all the integration tests started failing during the VM creation phase. I was completely weirded out, considering everything worked a week ago.</p>
<p>Fortunately, Vagrant debugging is pretty good<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and I was quickly able to pinpoint the issue (<a href="https://github.com/ipspace/netlab/issues/1781#issuecomment-2663343672">full printout</a>):</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/goodbye-cumulus-community/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BalticNOG Meeting (September 2025)]]></title>
    <link href="https://blog.ipspace.net/2025/02/balticnog-september-2025/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/balticnog-september-2025/</id>
    <published>2025-02-18T07:49:00+01:00</published>
    <updated>2025-02-18T07:49:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/ton31337/">Donatas Abraitis</a> asked me to spread the word about the first ever <a href="https://events.balticnog.org/event/1/">Baltic NOG meeting in the second half of September 2025</a> (<a href="https://events.balticnog.org/event/1/attachments/2/2/BalticNOG%202025.pdf">more details</a>)</p>
<p>If you were looking for a nice excuse to visit that part of Europe (it&rsquo;s been on my wish list for a very long time), this might be a perfect opportunity to do it 😎.</p>
<p>On a tangential topic of fascinating destinations 😉, there&rsquo;s also ITNOG in Bologna (<a href="https://www.itnog.it/itnog9/">May 19th-20th</a>, 2025), Autocon in Prague (<a href="https://networkautomation.forum/autocon3">May 26th-30th</a>, 2025), and SWINOG in Bern (<a href="https://www.swinog.ch/meetings/swinog40/">late June 2025</a>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/balticnog-september-2025/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Limit the Scope of Git Diff]]></title>
    <link href="https://blog.ipspace.net/2025/02/limit-scope-git-diff/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/limit-scope-git-diff/</id>
    <published>2025-02-17T07:41:00+01:00</published>
    <updated>2025-02-17T07:41:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="https://tests.netlab.tools/">results</a> of <a href="https://github.com/ipspace/netlab/tree/dev/tests/integration"><em>netlab</em> integration tests</a> are stored in <a href="https://github.com/ipspace/netlab/tree/integration_tests">YAML files</a>, making it easy to track <del>changes</del> <a href="https://github.com/ipspace/netlab/commits/integration_tests/">improvements with Git</a>. However, once I added the <em>time of test</em> and <em>netlab version</em> to the test results, I could no longer use <strong>git diff</strong> to figure out which test results changed after a test run &ndash; everything changed.</p>
<p>For example, these are partial test results from the OSPFv2 tests:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/limit-scope-git-diff/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Projects to Work On – the AI Recommendations]]></title>
    <link href="https://blog.ipspace.net/2025/02/ai-recommendations-stay-relevant/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/ai-recommendations-stay-relevant/</id>
    <published>2025-02-13T07:49:00+01:00</published>
    <updated>2025-02-13T07:49:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Vini Motta decided to use AI on ipSpace.net content to find what it would recommend as the projects to work on in order to become employable in 2025. Here are the results he sent me; my comments are inline on a gray background.</p>
<dl>
<dt>Network Automation with Python</dt>
<dd>Project: Automate basic network tasks like device configuration, backup, or monitoring using Python scripts.</dd>
</dl><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/ai-recommendations-stay-relevant/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Point-to-Point Links in Virtual Labs]]></title>
    <link href="https://blog.ipspace.net/2025/02/virtual-labs-p2p-links/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/virtual-labs-p2p-links/</id>
    <published>2025-02-12T07:55:00+01:00</published>
    <updated>2025-02-12T07:55:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2025/02/virtual-lab-links/">previous blog post</a>, I described the usual mechanisms used to connect virtual machines or containers in a virtual lab, and the drawbacks of using Linux bridges to connect virtual network devices.</p>
<p>In this blog post, we&rsquo;ll see how KVM/QEMU/libvirt/Vagrant use UDP tunnels to connect virtual machines, and how containerlab creates point-to-point vEth links between Linux containers.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/virtual-labs-p2p-links/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Tagged VLAN 1 In a Trunk Is a Really Bad Idea]]></title>
    <link href="https://blog.ipspace.net/2025/02/tagged-vlan-1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/tagged-vlan-1/</id>
    <published>2025-02-11T08:05:00+01:00</published>
    <updated>2025-02-11T08:05:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>It all started with a <a href="https://github.com/ipspace/netlab">netlab</a> issue describing <a href="https://github.com/ipspace/netlab/issues/1876">different interpretations of VLAN 1 in a trunk</a>. While  Cumulus NVUE (the way the <a href="https://github.com/ipspace/netlab/blob/dev/netsim/ansible/templates/vlan/cumulus_nvue.j2"><em>netlab</em> configuration template</a> configures it) assumes that the VLAN 1 in a trunk is tagged, Arista EOS assumes it&rsquo;s the native VLAN.</p>
<p>At that point, I should have said, &ldquo;<em>that&rsquo;s crazy, we shouldn&rsquo;t allow that</em>&rdquo; and enforce the &ldquo;<em>VLAN 1 has to be used as a native VLAN</em>&rdquo; rule. Alas, 20/20 hindsight never helped anyone.</p>
<p><strong>TL&amp;DR:</strong> Do not use VLAN 1 in VLAN trunks; if you have to, use it as a native VLAN.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/tagged-vlan-1/'>Read more &hellip;</a></div>]]></content>
    <category term="bridging" />
    <category term="LAN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Passive IS-IS Interfaces]]></title>
    <link href="https://blog.ipspace.net/2025/02/isis-passive-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/isis-passive-interfaces/</id>
    <published>2025-02-10T07:33:00+01:00</published>
    <updated>2025-02-10T07:33:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="https://isis.bgplabs.net/">initial IS-IS labs</a> covered the IS-IS basics. It&rsquo;s time to move on to interesting IS-IS features (and why you might want to use them), starting with <a href="https://isis.bgplabs.net/feature/1-passive/">passive IS-IS interfaces</a>.</p>

<figure><img src="https://isis.bgplabs.net/feature/topology-passive.png"/>
</figure>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Group Similar Links in netlab Topologies]]></title>
    <link href="https://blog.ipspace.net/2025/02/netlab-link-dictionary/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/netlab-link-dictionary/</id>
    <published>2025-02-06T08:39:00+01:00</published>
    <updated>2025-02-06T08:39:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2025/01/netlab-link-definitions/">Concise Link Descriptions</a> blog post, I described various data formats that you could use to concisely list nodes attached to a link. Today, we&rsquo;ll focus on a mechanism that helps you spot errors in your topology: <em>a dictionary of links</em>.</p>
<p>Imagine you have a large topology with dozens of links, and you get an error saying, &ldquo;<em>there is this problem with <code>links[17]</code></em>&rdquo;.  It must be great fun counting the links to find which one triggered the error, right?</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/netlab-link-dictionary/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Please Wait While We're Preparing Your Interfaces]]></title>
    <link href="https://blog.ipspace.net/2025/02/wait-for-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/wait-for-interfaces/</id>
    <published>2025-02-05T07:59:00+01:00</published>
    <updated>2025-02-05T07:59:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Once a virtual machine running a network operating system boots, you&rsquo;d expect its data-plane interfaces to be operational, right? Some vendors disagree. It takes over a minute for some network operating systems to figure out they have this thing called <em>interfaces</em>.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<p>I would love to figure out what takes them so long (a minute is an eternity on modern CPUs), but I guess we&rsquo;ll never know.</p>
<h3 id="behind-the-scenes">Behind the Scenes</h3>
<p><em>netlab</em> uses two device provisioning mechanisms: it can start virtual machines with <em>Vagrant</em> or containers with <em>containerlab</em>. Some of those containers might use KVM/QEMU to run a hidden virtual machine (see also: RFC 1925 rule 6a).</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/wait-for-interfaces/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Arista cEOS Containers Run on Apple Silicon]]></title>
    <link href="https://blog.ipspace.net/2025/02/arista-ceos-arm-apple-silicon/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/arista-ceos-arm-apple-silicon/</id>
    <published>2025-02-04T08:41:00+02:00</published>
    <updated>2025-02-04T08:41:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A few days ago, someone mentioned Arista released a cEOS EFT image running on Arm. Of course, I had to test whether it would run on Apple Silicon.</p>
<p><strong>TL&amp;DR:</strong> YES 🎉 🎉</p>
<p>Here&rsquo;s what you have to do to make the Arista cEOS container work with <em>netlab</em> running on an Ubuntu VM on Apple silicon:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/arista-ceos-arm-apple-silicon/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Links in Virtual Labs]]></title>
    <link href="https://blog.ipspace.net/2025/02/virtual-lab-links/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/02/virtual-lab-links/</id>
    <published>2025-02-03T08:27:00+01:00</published>
    <updated>2025-02-03T08:27:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>There are three major ways to connect network devices in the physical world:</p>
<ul>
<li>Point-to-point links between devices (usually using some variant of Ethernet)</li>
<li>Multi-access layer-1 networks running some IEEE 802.x encapsulation on top of that (GPON, WiFi, Ethernet hubs)</li>
<li>Multi-access switched layer-2 network (dumb switches, hopefully running some STP variant)</li>
</ul>
<p>Implementing these connections in virtual labs is a bit harder than one might think, as all virtualization solutions assume you plan to run virtual servers connected to Ethernet segments.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/02/virtual-lab-links/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.9.4: Bug fixes, VRRPv3 on Junos]]></title>
    <link href="https://blog.ipspace.net/2025/01/netlab-1-9-4-bug-fixes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/netlab-1-9-4-bug-fixes/</id>
    <published>2025-01-31T08:33:00+01:00</published>
    <updated>2025-02-03T09:04:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>During the last three weeks, we were busy squashing bugs (<a href="https://netlab.tools/release/1.9/#release-1-9-4-device-fixes">device configuration fixes</a>, <a href="https://netlab.tools/release/1.9/#bug-fixes-1-9-4">other bug fixes</a>). Some were recent; others were ancient pests uncovered by better integration tests. The end result: <a href="https://netlab.tools/release/1.9/#release-1-9-4"><em>netlab</em> release 1.9.4</a>.</p>
<p><em>netlab</em> release 1.9.4 passed <a href="https://release.netlab.tools/">hundreds of integration tests</a> and should be a better choice than the previous 1.9 releases. To upgrade, execute <code>pip3 install --upgrade networklab</code>.</p>
<div  class="info">
New to <em>netlab</em>? Start with the <a href="https://netlab.tools/tutorials/">Getting Started document</a> and the <a href="https://netlab.tools/install/">installation guide</a>, or <a href="https://blog.ipspace.net/2024/06/bgp-labs-github-codespaces/">run it in a GitHub codespace</a>.
</div>
<h3 id="update-2025-02-03">Update: 2025-02-03</h3>
<p>We still missed a few quirks :( <a href="https://netlab.tools/release/1.9/#release-1-9-4-post1">Release 1.9.4-post1</a> addresses those (and, unfortunately, I&rsquo;m pretty sure there will be more).</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Curious Case of the BGP Connect State]]></title>
    <link href="https://blog.ipspace.net/2025/01/bgp-connect-state/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/bgp-connect-state/</id>
    <published>2025-01-30T07:55:00+01:00</published>
    <updated>2025-01-30T07:55:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I got this question from Paul:</p>
<blockquote>
<p>Have you ever seen a BGP peer in the &ldquo;Connect&rdquo; state? In 20 years, I have never been able to see or reproduce this state, nor any mention in a debug/log. I am starting to believe that all the documentation is BS, and this does not exist.</p>
</blockquote>
<p>The BGP Finite State Machine (FSM) (at least the one <a href="https://datatracker.ietf.org/doc/html/rfc4271#section-8">defined in RFC 4271</a> and <a href="https://datatracker.ietf.org/doc/html/rfc9687#name-changes-to-the-fsm">amended in RFC 9687</a>) is &ldquo;a bit&rdquo; hard to grasp but the basics haven&rsquo;t changed from the <a href="https://datatracker.ietf.org/doc/html/rfc1771#autoid-31">ancient days of RFC 1771</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/bgp-connect-state/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cisco Modeling Labs and Infrastructure-as-Code]]></title>
    <link href="https://blog.ipspace.net/2025/01/cml-infrastructure-as-code/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/cml-infrastructure-as-code/</id>
    <published>2025-01-29T07:18:00+01:00</published>
    <updated>2025-01-29T07:18:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>Dalton Ortega, Cisco Modeling Labs Product Manager, sent me the following email as a response to my <a href="https://blog.ipspace.net/2025/01/common-labbing-misconceptions/">Configuring IP Addresses Won't Make You an Expert</a> blog post:</em></p>
<p>First, your statement on Autonetkit is indeed correct. We had removed that from the product due to lack of popularity. That being said, in our roadmap we are looking at methods to reintroduce on-the-fly configuration as well as enhancing our sample labs library to make getting started with CML easier.</p>
<p>Secondly, CML can be run in full IaC mode because of the API-first build. In fact, many of our customers are using CML as an automated test/validation bed for their CI/CD pipelines. Tools like Ansible and Terraform are available to facilitate this inside CML too. For more details, read:</p>
<ul>
<li><a href="https://blogs.cisco.com/learning/get-started-with-terraform-and-cisco-modeling-labs">Get Started With Terraform and Cisco Modeling Labs</a></li>
<li><a href="https://blogs.cisco.com/learning/how-to-use-ansible-with-cml">How to Use Ansible with CML</a></li>
</ul>
<div class='long-quote'>
It seems it should be relatively easy to create a <em>cml</em> <a href="https://netlab.tools/providers/">provider</a> to generate a Terraform file from the <em>netlab</em> topology and use it to start a lab in CML. Any volunteers?
</div>


]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Drunken Plagiarists]]></title>
    <link href="https://blog.ipspace.net/2025/01/worth-reading-drunken-plagiarists/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/worth-reading-drunken-plagiarists/</id>
    <published>2025-01-28T08:47:00+01:00</published>
    <updated>2025-01-28T08:47:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>George V. Neville-Neil published a fantastic, must-read summary of the various code copilots&rsquo; usefulness on ACM Queue: <a href="https://queue.acm.org/detail.cfm?ref=rss&amp;id=3711675">The Drunken Plagiarists</a>.</p>
<p>It pretty much mirrors my experience (plus, I got annoyed when the semi-relevant suggestions kept kicking me out of the flow) and reminds me of the early days of OpenFlow, when nobody wanted to listen to old grunts like myself telling the world it was all hype and little substance.</p>
]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cisco VRRPv3 IPv6 Configuration Sucks]]></title>
    <link href="https://blog.ipspace.net/2025/01/cisco-vrrp3-ipv6-configuration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/cisco-vrrp3-ipv6-configuration/</id>
    <published>2025-01-27T08:20:00+01:00</published>
    <updated>2025-01-27T08:20:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>I spent way too much time ironing out the VRRPv3 quirks on the <a href="https://netlab.tools/module/gateway/">dozen (or so) platforms</a> supported by <a href="https://netlab.tools/">netlab</a>. This is the second blog post describing some of the ridiculous stuff I had to deal with.</em></p>
<p>This is how you configure the basic VRRPv3 parameters for IPv4 on a Cisco IOS/XE device:</p>
<div class="code-caption">VRRPv3 IPv4 configuration on Cisco IOS</div>
<pre tabindex="0"><code>interface GigabitEthernet0/1
  vrrp 217 address-family ipv4
    address 172.16.33.42
</code></pre><p>You would expect something similar for IPv6, right? You&rsquo;d be right if you were working with Arista EOS:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/cisco-vrrp3-ipv6-configuration/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Use BGP Outbound Route Filters (ORF) for IP Prefixes]]></title>
    <link href="https://blog.ipspace.net/2025/01/bgp-labs-orf/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/bgp-labs-orf/</id>
    <published>2025-01-24T08:11:00+01:00</published>
    <updated>2025-01-24T08:11:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When a BGP router cannot fit the whole BGP table into its forwarding table (FIB), we often use inbound filters to limit the amount of information the device keeps in its BGP table. That&rsquo;s usually a waste of resources:</p>
<ul>
<li>The BGP neighbor has to send information about all prefixes in its BGP table</li>
<li>The device with an inbound filter wastes additional CPU cycles to drop many incoming updates.</li>
</ul>
<p>Wouldn&rsquo;t it be better for the device with an inbound filter to push that filter to its BGP neighbors?</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/bgp-labs-orf/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Sturgeon's Law, VRRPv3 Edition]]></title>
    <link href="https://blog.ipspace.net/2025/01/sturgeon-law-vrrp-edition/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/sturgeon-law-vrrp-edition/</id>
    <published>2025-01-23T08:37:00+01:00</published>
    <updated>2025-01-23T08:37:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>I just wasted several days trying to figure out how to make the <a href="https://netlab.tools/module/gateway/">dozen (or so) platforms</a> for which we implemented VRRPv3 in <a href="https://netlab.tools/">netlab</a> work together. This is the first in a series of blog posts describing the <a href="https://en.wikipedia.org/wiki/Sturgeon%27s_law">ridiculous stuff</a> we discovered during that journey</em></p>
<p>The idea was pretty simple:</p>
<ul>
<li>Create a lab with the tested device and a well-known probe connected to the same subnet.</li>
<li>Disable VRRP (or interface) on the probe and check IPv4 and IPv6 connectivity through the tested device (verifying it takes over ownership of VRRP MAC and IP addresses).</li>
<li>Reenable VRRP on the probe and change its VRRP priority several times to check the state transitions through INIT/BACKUP(lower priority)/MASTER(change in priority)/BACKUP(preempting after a change in priority).</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/sturgeon-law-vrrp-edition/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="LAN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Ethernet/802.1 Protocol Stack]]></title>
    <link href="https://blog.ipspace.net/2025/01/ethernet-8021-protocol-stack/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/ethernet-8021-protocol-stack/</id>
    <published>2025-01-22T08:28:00+01:00</published>
    <updated>2025-01-22T08:28:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The believers in the <a href="https://blog.ipspace.net/2019/09/response-osi-model-is-lie/#2501">There Be Four Layers</a> religion think everything below IP is just a blob of stuff dealing with physical things:</p>

<figure><img src="/2025/01/eps-ip-view.png"/>
</figure>
<p>People steeped in a <a href="/2019/09/on-usability-of-osi-layered-networking/">slightly more nuanced view of the world</a> in which IP is not the centerpiece of the universe might tell you that the <em>blob of stuff we need</em> is two things:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/ethernet-8021-protocol-stack/'>Read more &hellip;</a></div>]]></content>
    <category term="LAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IBGP Is the Better EBGP]]></title>
    <link href="https://blog.ipspace.net/2025/01/ibgp-better-ebgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/ibgp-better-ebgp/</id>
    <published>2025-01-21T08:33:00+01:00</published>
    <updated>2025-01-21T08:33:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Whenever I was explaining how one could build EBGP-only data center fabrics, someone would inevitably ask, &ldquo;But could you do that with IBGP?&rdquo;</p>
<p><strong>TL&amp;DR:</strong> Of course, but that does not mean you should.</p>
<p>Anyway, leaving behind the land of sane designs, let&rsquo;s trot down the rabbit trail of IBGP-only networks.</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/ibgp-better-ebgp/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Concise Link Descriptions in netlab Topologies]]></title>
    <link href="https://blog.ipspace.net/2025/01/netlab-link-definitions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/netlab-link-definitions/</id>
    <published>2025-01-20T08:22:00+01:00</published>
    <updated>2025-01-20T08:22:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the goals we&rsquo;re always trying to achieve when developing <em>netlab</em> features is to make the lab topologies as concise as possible<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Among other things, <em>netlab</em> supports numerous ways of describing links between lab devices, allowing you to be as succinct as possible.</p>
<p>A bit of a background first:</p>
<ul>
<li>In the end, <em>netlab</em> collects all links in the <strong>links</strong> list before starting the data transformation process.</li>
<li>Every entry in the <strong>links</strong> list is a dictionary. That dictionary can contain link attributes and must contain a list of <strong>interfaces</strong> connected to the link.</li>
<li>Every <strong>interface</strong> must have a <strong>node</strong> (specifying the lab device it belongs to) and could contain additional interface attributes.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/netlab-link-definitions/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Level-1 and Level-2 IS-IS Routing]]></title>
    <link href="https://blog.ipspace.net/2025/01/isis-level-1-2/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/isis-level-1-2/</id>
    <published>2025-01-16T07:36:00+01:00</published>
    <updated>2025-01-16T07:36:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the recipes for <a href="https://isis.bgplabs.net/basic/1-simple-ipv4/#configuration-tasks">easy IS-IS deployments</a> claims that you should use only level-2 routing (although most vendors enable level-1 and level-2 routing by default).</p>
<p>What does that mean, and why does it matter? You&rsquo;ll find the answers in the <a href="https://isis.bgplabs.net/basic/6-level-2/">Optimize Simple IS-IS Deployments</a> lab exercise.</p>

<figure><img src="https://isis.bgplabs.net/basic/topology-triangle.png"/>
</figure>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Comparing IGP and BGP Data Center Convergence]]></title>
    <link href="https://blog.ipspace.net/2025/01/bgp-igp-convergence/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/bgp-igp-convergence/</id>
    <published>2025-01-15T07:01:00+01:00</published>
    <updated>2025-01-15T07:01:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A Thought Leader<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> recently published a LinkedIn article comparing IGP and BGP convergence in data center fabrics<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. In it, they<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> claimed that:</p>
<blockquote>
<p>iBGP designs would require route reflectors and additional processing, which could result in slightly slower convergence.</p>
</blockquote>
<p>Let&rsquo;s see whether that claim makes any sense.</p>
<p><strong>TL&amp;DR</strong>: No. If you&rsquo;re building a simple leaf-and-spine fabric, the choice of the routing protocol does not matter (but you already knew that if you read this blog).</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/bgp-igp-convergence/'>Read more &hellip;</a></div>]]></content>
    <category term="design" />
    <category term="data center" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Weird Junos IS-IS Metrics]]></title>
    <link href="https://blog.ipspace.net/2025/01/junos-isis-metrics/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/junos-isis-metrics/</id>
    <published>2025-01-14T08:13:00+01:00</published>
    <updated>2025-01-14T08:13:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>As part of the <a href="https://netlab.tools/">netlab</a> development process, I run almost <a href="https://tests.netlab.tools/">200 integration tests</a> on more than <a href="https://netlab.tools/platforms/">20 platforms</a> (over a dozen operating systems), and the amount of weirdness I discover is unbelievable.</em></p>
<p><strong>Today&rsquo;s special</strong>: Junos is failing the <a href="https://github.com/ipspace/netlab/blob/dev/tests/integration/isis/11-cost.yml">IS-IS metrics</a> test.</p>
<p>The test is trivial:</p>
<ul>
<li>The device under test is connected to two IS-IS routers (X1 and X2)</li>
<li>It has a low metric configured on the link with X1 and a high metric configured on the link with X2</li>
</ul>
<p>The validation process is equally trivial:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/junos-isis-metrics/'>Read more &hellip;</a></div>]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Multi-Site VLANs]]></title>
    <link href="https://blog.ipspace.net/2025/01/netlab-multisite-vlan/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/netlab-multisite-vlan/</id>
    <published>2025-01-13T08:12:00+01:00</published>
    <updated>2025-01-13T08:12:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Imagine you want to create a simple multi-site network with <em><a href="https://netlab.tools/">netlab</a></em>:</p>
<ul>
<li>The lab should have two sites (A and B).</li>
<li>Each site has a layer-3 switch, a single VLAN (VLAN 100), and two hosts connected to that VLAN.</li>
<li>As you don&rsquo;t believe in the magic powers of stretched VLANs, you have a layer-3 (IPv4) link between sites.</li>
</ul>

<figure><img src="/2025/01/multi-site-vlan.png"
   alt="Network diagram"/><figcaption>
    <p>Network diagram</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/netlab-multisite-vlan/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New IPv6 Documentation Prefix]]></title>
    <link href="https://blog.ipspace.net/2025/01/rfc9637-ipv6-documentation-prefix/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/rfc9637-ipv6-documentation-prefix/</id>
    <published>2025-01-11T07:51:00+01:00</published>
    <updated>2025-01-11T07:51:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After three and a half years of haggling (the IETF draft that became the RFC was written in May 2021; the original discussions go back to 2013), Nick Buraglio &amp; co managed to persuade pontificators bikeshedding in the v6ops working group that we might need an IPv6 documentation prefix larger than the existing <code>2001:db8::/32</code>.</p>
<p>With the new documentation prefix (<code>3fff::/20</code>) (defined in <a href="https://www.rfc-editor.org/rfc/rfc9637.html">RFC 9637</a>), there&rsquo;s absolutely no excuse to use public IPv6 address space in examples anymore.</p>
]]></content>
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.9.3: MLAG, Static Routes, Node Cloning]]></title>
    <link href="https://blog.ipspace.net/2025/01/netlab-1-9-3-mlag-static-routes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/netlab-1-9-3-mlag-static-routes/</id>
    <published>2025-01-10T08:15:00+01:00</published>
    <updated>2025-01-10T08:15:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/1.9/#release-1-9-3"><em>netlab</em> release 1.9.3</a> brings these new features:</p>
<ul>
<li><a href="https://netlab.tools/module/lag/">Multi-chassis Link Aggregation (MLAG)</a> on Arista EOS, Aruba CX, Cumulus NVUE, and Dell OS10</li>
<li><a href="https://netlab.tools/groups/">VRF and VLAN groups</a></li>
<li>Additional <a href="https://netlab.tools/module/ospf/#ospf-interface-support">OSPF interface parameters</a> (hello and dead timers, cleartext passwords, and DR priority) implemented on Arista EOS, Aruba CX, Cisco IOS/IOS-XE, Cisco Nexus OS, Cumulus Linux, Dell OS10, and FRRouting</li>
<li><a href="https://netlab.tools/module/routing/#generic-routing-static">Static routes</a> with direct or indirect next hops implemented on Arista EOS, Cisco IOS/IOS-XE, FRRouting, and Linux</li>
<li><a href="https://netlab.tools/plugins/node.clone/">Node cloning plugin</a> for users who want to build detailed digital twins of their networks.</li>
<li><a href="https://netlab.tools/links/#links-default-pools">Consistent selection of default address pools</a> based on the number of nodes attached to a link (this could <a href="https://netlab.tools/release/1.9/#release-1-9-3-breaking">change addressing in multi-provider topologies</a>)</li>
<li>Support for <a href="https://netlab.tools/platforms/#platform-devices">vjunos-router</a> and <a href="https://netlab.tools/extool/nso/">Cisco NSO tool</a>.</li>
</ul>
<p>Other new features include:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/netlab-1-9-3-mlag-static-routes/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Configuring IP Addresses Won't Make You an Expert]]></title>
    <link href="https://blog.ipspace.net/2025/01/common-labbing-misconceptions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/common-labbing-misconceptions/</id>
    <published>2025-01-09T06:39:00+01:00</published>
    <updated>2025-01-09T06:39:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine recently wrote a nice post explaining how <em>netlab</em> helped him set up a large network topology in a reasonably short timeframe. As expected, his post attracted a wide variety of comments, from &ldquo;<em>netlab</em> is a gamechanger&rdquo; (thank you 😎) to &ldquo;I prefer traditional labs.&rdquo; Instead of writing a bunch of replies into a walled-garden ecosystem, I decided to address some of those concerns in a public place.</p>
<p>Let&rsquo;s start with:</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/common-labbing-misconceptions/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPFv3 on Bird Needs IPv6 LLA on the Loopback Interface]]></title>
    <link href="https://blog.ipspace.net/2025/01/bird-ospfv3-ipv6-lla-loopback/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2025/01/bird-ospfv3-ipv6-lla-loopback/</id>
    <published>2025-01-07T07:58:00+01:00</published>
    <updated>2025-01-07T07:58:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>Wanted to share this &ldquo;too weird to believe&rdquo; SNAFU I found when running integration tests with the Bird routing daemon. It&rsquo;s irrelevant unless you want Bird to advertise the IPv6 prefix configured on the main loopback interface (<code>lo</code>) with OSPFv3.</em></p>
<p>Late last year, I decided to run <a href="https://tests.netlab.tools/"><em>netlab</em> integration tests</a> with the Bird routing daemon. It passed most <a href="https://tests.netlab.tools/_html/coverage.ospf.ospfv3">baseline <em>netlab</em> OSPFv3 integration tests</a> but failed those that checked the loopback IPv6 prefix advertised by the tested device (<a href="https://tests.netlab.tools/_html/bird-clab-ospf-ospfv3">test results</a>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2025/01/bird-ospfv3-ipv6-lla-loopback/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
    <category term="OSPF" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Happy Holidays and All the Best in 2025!]]></title>
    <link href="https://blog.ipspace.net/2024/12/wrapup-2024/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/wrapup-2024/</id>
    <published>2024-12-16T07:21:00+00:00</published>
    <updated>2024-12-16T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Another year is almost gone, and it&rsquo;s time for my traditional &ldquo;<em>I will disappear until mid-January</em>&rdquo; retreat (also, don&rsquo;t expect me to read my email until I&rsquo;m back).</p>
<p>I hope you&rsquo;ll also be able to disconnect from the crazy pace of the networking world, forget the &ldquo;<em>AI will make networking engineers obsolete</em>&rdquo; shenanigans (hint: SDN did not), and focus on your loved ones. I would also like to wish you all the best in 2025!</p>
<p>I will probably get bored sometime in late December, so expect a few new <em>netlab</em> features in early January.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Hard Truths about AI-assisted Coding]]></title>
    <link href="https://blog.ipspace.net/2024/12/worth-reading-ai-assisted-coding/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/worth-reading-ai-assisted-coding/</id>
    <published>2024-12-14T18:02:00+01:00</published>
    <updated>2024-12-14T18:02:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Addy Osmani published an excellent overview of the <a href="https://addyo.substack.com/p/the-70-problem-hard-truths-about">challenges of AI-assisted coding</a>. They apply equally well to the &ldquo;<em>AI will generate device configurations for me</em>&rdquo; or &ldquo;<em>AI will troubleshoot my network</em>&rdquo; ideas (ignoring for the moment the impact of the orders-of-magnitude smaller training set), so it&rsquo;s definitely worth reading.</p>
<p>I particularly liked the &ldquo;<em>‌AI is like having a very eager junior developer on your team</em>&rdquo; take, as well as the description of the &ldquo;<em>70% problem</em>&rdquo; (AI will get you 70% there, but the last 30% will be frustrating) &ndash; a phenomenon perfectly illustrated by the following diagram by <a href="https://newsletter.goodtechthings.com/p/what-hath-aws-wrought">Forrest Brazeal</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/12/worth-reading-ai-assisted-coding/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Use Disaggregated BGP Prefixes to Influence Inbound Internet Traffic]]></title>
    <link href="https://blog.ipspace.net/2024/12/bgp-labs-disaggregated-prefixes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/bgp-labs-disaggregated-prefixes/</id>
    <published>2024-12-13T08:14:00+01:00</published>
    <updated>2024-12-13T08:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>As much as I love explaining how to use BGP in an optimal way, sometimes we have to do what we know is bad to get the job done. For example, if you have to deal with clueless ISPs who cannot figure out how to use BGP communities, you might be forced to use the Big Hammer of disaggregated prefixes. You can practice how that works in the <a href="https://bgplabs.net/policy/b-disaggregate/">next BGP lab exercise</a>.</p>

<figure><img src="https://bgplabs.net/policy/topology-disaggregate.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/bgplab">Click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>policy/b-disaggregate</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Internet Routing Security (DEEP 2023)]]></title>
    <link href="https://blog.ipspace.net/2024/12/video-internet-routing-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/video-internet-routing-security/</id>
    <published>2024-12-12T14:59:00+01:00</published>
    <updated>2024-12-12T14:59:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>My Internet Routing Security talk from last year&rsquo;s <a href="https://deep-conference.com/">DEEP conference</a> (a shorter version of the <a href="https://my.ipspace.net/bin/list?id=BGPSec">Internet Routing Security</a> webinar) is now <a href="https://www.youtube.com/watch?v=MMsQVl-r-z4">available on YouTube</a>.</p>
<p>Hope you&rsquo;ll find it useful ;)</p>
<div class='jump-link'><a href="https://www.youtube.com/watch?v=MMsQVl-r-z4">Watch the video</a></div>
]]></content>
    <category term="BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IBGP Source Interface Selection Still Requires Configuration]]></title>
    <link href="https://blog.ipspace.net/2024/12/ibgp-source-interface-trivia/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/ibgp-source-interface-trivia/</id>
    <published>2024-12-10T08:32:00+01:00</published>
    <updated>2024-12-10T08:32:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A fellow networking engineer recently remarked, &ldquo;<em>FRRouting automatically selects the correct [IBGP] source interface even when not configured explicitly.</em>&rdquo;</p>
<p><strong>TL&amp;DR:</strong> No, it does not. You were just lucky.</p>
<p>Basics first<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. BGP runs over TCP sessions. One of the first things a router does when establishing a BGP session with a configured neighbor is to open a TCP session with the configured neighbor&rsquo;s IP address.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/12/ibgp-source-interface-trivia/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Netlab Is Four Years Old]]></title>
    <link href="https://blog.ipspace.net/2024/12/four-years-netlab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/four-years-netlab/</id>
    <published>2024-12-09T09:19:00+01:00</published>
    <updated>2024-12-09T09:19:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>On December 9th, 2020, I created a new GitHub repository and pushed the <a href="https://github.com/ipspace/netlab/commit/5e01d23307b3bdcd37fcbe5bed89b6d79d898c43">first commit</a> of my &ldquo;<em><a href="https://blog.ipspace.net/2020/12/build-labs-netsim-tools/">I hate creating Vagrantfiles by hand</a></em>&rdquo; tool. It could create Vagrantfile and Ansible inventory from a (very rudimentary) network topology and deploy handcrafted device configurations on Cisco IOS and Arista EOS.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/12/four-years-netlab/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Codespaces for Network Engineers]]></title>
    <link href="https://blog.ipspace.net/2024/12/worth-reading-codespaces-network-engineers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/worth-reading-codespaces-network-engineers/</id>
    <published>2024-12-05T09:48:00+01:00</published>
    <updated>2024-12-05T09:48:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I discovered GitHub Codespaces (thanks to a <a href="https://containerlab.dev/manual/codespaces/">pointer by Roman Dodin</a>), I did the absolute minimum of research to get <em>netlab</em> up and running in a container to enable Codespaces-based labs (<a href="https://bgplabs.net/4-codespaces/">BGP</a>, <a href="https://isis.bgplabs.net/4-codespaces/">IS-IS</a>) and <a href="https://blog.ipspace.net/2024/07/netlab-examples-codespaces/">netlab examples</a>.</p>
<p>However, if you want to know the behind-the-scenes details, you MUST read the <a href="https://juliopdx.com/2024/11/25/codespaces-for-network-engineers-and-educators/">Codespaces for Network Engineers and Educators</a> deep dive by Julio Perez.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is BGP PIC Edge an Oxymoron?]]></title>
    <link href="https://blog.ipspace.net/2024/12/pic-edge-oxymoron/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/pic-edge-oxymoron/</id>
    <published>2024-12-04T09:09:00+01:00</published>
    <updated>2025-01-10T11:57:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>This blog post discusses an old arcane question that has been nagging me from the bottom of my Inbox for almost exactly four years. Please skip it if it sounds like Latin to you, but if you happen to be one of those readers who know what I&rsquo;m talking about, I&rsquo;d appreciate your comments.</em></p>
<p>Terminology first:</p>
<ul>
<li><em>Prefix Independent Convergence</em> allows entries in the forwarding table to point to shared next hops (or next-hop groups), reducing the FIB update bottleneck when changing the next hop for a large number of prefixes (for example, when dealing with a core link failure). More details in the <a href="https://blog.ipspace.net/2012/01/prefix-independent-convergence-pic/">initial blog post</a> and <a href="/2020/11/fast-failover-implementation/">PIC applicability to fast reroute</a>.</li>
<li><em>PIC Edge</em> (as defined by vendor marketing) is the ability to switch to a backup CE route advertised to a backup PE router before the network convergence is complete.</li>
</ul>
<p>Here&rsquo;s (in a nutshell) how PIC Edge is supposed to work:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/12/pic-edge-oxymoron/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Sample Cisco ASAv Topology]]></title>
    <link href="https://blog.ipspace.net/2024/12/netlab-asav-topology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/netlab-asav-topology/</id>
    <published>2024-12-03T09:37:00+01:00</published>
    <updated>2024-12-16T18:13:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A happy netlab user <a href="https://github.com/ipspace/netlab/discussions/1600">asked for a sample Cisco ASAv topology</a> that would include an inside and an outside router.</p>
<p>We don&rsquo;t have anything similar in the <a href="https://github.com/ipspace/netlab-examples">netlab examples</a> yet, so let&rsquo;s build a <a href="https://github.com/ipspace/netlab-examples/tree/master/multi-platform/asav">simple topology</a> with two routers, a firewall, and a few hosts.</p>
<p>However, we have to start with a few caveats:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/12/netlab-asav-topology/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Example: Multi-AS netlab Topology]]></title>
    <link href="https://blog.ipspace.net/2024/12/multi-as-netlab-topology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/12/multi-as-netlab-topology/</id>
    <published>2024-12-02T07:12:00+01:00</published>
    <updated>2024-12-02T07:12:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, Urs Baumann <a href="https://www.linkedin.com/posts/ubaumannch_how-long-does-it-take-you-to-spin-up-a-new-activity-7260654329483735040-rmjF/">posted a nice example illustrating the power of netlab</a>: a 10-router topology running OSPF, IS-IS, and BGP:</p>

<figure><img src="/2024/12/netlab-multias.png"/>
</figure>
<p>He didn&rsquo;t post the underlying topology file, so let&rsquo;s create a simple topology to build something similar.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/12/multi-as-netlab-topology/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Dual-Stack IS-IS Routing]]></title>
    <link href="https://blog.ipspace.net/2024/11/isis-dual-stack/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/isis-dual-stack/</id>
    <published>2024-11-29T07:47:00+01:00</published>
    <updated>2024-11-29T07:47:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Contrary to the OSPF world, where we have to use two completely different routing protocols to route IPv4 and IPv6 (unless you believe in the IPv4 address family in OSPFv3), IS-IS provided multi-protocol support from the very early days of its embracement by IETF. Adding IPv6 support was only a matter of a few extra TLVs, but even there, IETF gave us two incompatible ways of making IPv6 work with IS-IS.</p>
<p>Want to know more? You&rsquo;ll find the details in the <a href="https://isis.bgplabs.net/basic/5-ipv6/">Dual-Stack (IPv4+IPv6) IS-IS Routing</a> lab exercise.</p>

<figure><img src="https://isis.bgplabs.net/basic/topology-ipv6.png"/>
</figure>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IPv6 Support for Multiple Routers and Multiple Interfaces]]></title>
    <link href="https://blog.ipspace.net/2024/11/ipv6-multihoming-draft/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/ipv6-multihoming-draft/</id>
    <published>2024-11-28T11:57:00+01:00</published>
    <updated>2024-11-28T11:57:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Fernando Gont published an <em>Individual Internet Draft</em> (meaning it hasn&rsquo;t been adopted by any IETF WG yet) describing the <a href="https://datatracker.ietf.org/doc/html/draft-gont-v6ops-multi-ipv6">Problem Statement about IPv6 Support for Multiple Routers and Multiple Interfaces</a>. It&rsquo;s so nice to see someone finally acknowledging the full scope of the problem and describing it succinctly. However, I cannot help but point out that:</p>
<ul>
<li>I was <a href="https://blog.ipspace.net/2009/05/lack-of-ipv6-multihoming-elephant-in/">ranting about that problem in 2009</a> (15 years ago) and did a <a href="https://blog.ipspace.net/2015/11/theres-problem-with-ipv6-multihoming/">summary of older rants in 2015</a>.</li>
<li>It was evident to everyone but the religious zealots that the only solution we have at the moment is either <a href="https://blog.ipspace.net/2011/12/we-just-might-need-nat66/">NAT</a> (because <a href="https://blog.ipspace.net/2011/12/ipv6-multihoming-without-nat-problem/">stuff simply does not work otherwise</a>) or host-based solutions that never got implemented (apart from a few rare cases of <a href="https://blog.ipspace.net/2019/03/multipath-tcp-on-software-gone-wild/">multipath TCP</a>).</li>
</ul>
<p>Anyway, Fernando wraps up his draft with:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/11/ipv6-multihoming-draft/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: EVPN IBGP over IPv4 EBGP]]></title>
    <link href="https://blog.ipspace.net/2024/11/evpn-designs-ibgp-ebgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/evpn-designs-ibgp-ebgp/</id>
    <published>2024-11-25T10:57:00+02:00</published>
    <updated>2024-11-25T10:57:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>We&rsquo;ll conclude the <a href="/tag/evpn/#designs">EVPN designs saga</a> with the <em>&ldquo;most creative&rdquo;</em> design promoted by some networking vendors: running an IBGP session (carrying EVPN address family) between loopbacks advertised with EBGP IPv4 address family.</p>

<figure><img src="/2024/11/evpn-design-ibgp-over-ebgp.png"
   alt="Oversimplified IBGP-over-EBGP design"/><figcaption>
    <p>Oversimplified IBGP-over-EBGP design</p>
  </figcaption>
</figure>
<p>There&rsquo;s just a tiny gotcha in the above <em>Works Best in PowerPoint</em> diagram. IBGP assumes the BGP neighbors are <em>in the same autonomous system</em> while EBGP assumes they are <em>in different autonomous systems</em>. The usual way out of that <em>OMG, I painted myself into a corner</em> situation is to use <em>BGP local AS</em> functionality on the underlay EBGP session:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/11/evpn-designs-ibgp-ebgp/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dynamic BGP Peers]]></title>
    <link href="https://blog.ipspace.net/2024/11/bgp-labs-dynamic-peers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/bgp-labs-dynamic-peers/</id>
    <published>2024-11-22T07:58:00+02:00</published>
    <updated>2024-11-22T07:58:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>You might have an environment where a <a href="https://bgplabs.net/ibgp/3-rr/">route reflector</a> (or a <a href="https://bgplabs.net/session/5-routeserver/">route server</a>) has dozens or hundreds of BGP peers. Configuring them by hand is a nightmare; you should either build a decent automation platform or use dynamic BGP neighbors &ndash; a feature you can practice in the <a href="https://bgplabs.net/session/9-dynamic/">next lab exercise</a>.</p>

<figure><img src="https://bgplabs.net/session/topology-dynamic-peers.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/bgplab">Click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>session/9-dynamic</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Using IS-IS Metrics]]></title>
    <link href="https://blog.ipspace.net/2024/11/isis-metrics/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/isis-metrics/</id>
    <published>2024-11-12T07:58:00+02:00</published>
    <updated>2024-11-12T07:58:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s time for another &ldquo;<em>the vendor IS-IS defaults are all wrong</em>&rdquo; blog post. Wide IS-IS metrics were standardized in <a href="https://www.rfc-editor.org/rfc/rfc3784">RFC 3784</a> in June 2004, yet most vendors still use the ancient <em>narrow</em> metrics as the default setting.</p>
<p>Want to know more? The <a href="https://isis.bgplabs.net/basic/3-p2p/">Using IS-IS Metrics</a> lab exercise provides all the gory details.</p>

<figure><img src="https://isis.bgplabs.net/basic/topology-triangle.png"/>
</figure>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Latency Numbers Every Programmer Should Know]]></title>
    <link href="https://blog.ipspace.net/2024/11/worth-reading-latency-numbers-programmers-should-know/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/worth-reading-latency-numbers-programmers-should-know/</id>
    <published>2024-11-08T08:10:00+01:00</published>
    <updated>2024-11-08T08:10:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the key arguments against stretched clusters (and similar stupidities) I used in my <a href="https://blog.ipspace.net/2024/10/disaster-recovery-videos/">Disaster Recovery Myths</a> presentation was the SSD read latency versus cross-site round-trip time.</p>
<p>Thanks to <a href="https://blog.computer-networking.info/">Networking Notes</a>, I found <a href="https://cheat.sh/latencies">a great infographic I can use in my next presentation</a> (bonus points: it also works great in a terminal when fetched with curl) and a <a href="https://geofetcher.appsinprogress.com/">site that checks the latency of your web site</a> from various vantage points.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using a BGP Route Server in an Internet Exchange Point]]></title>
    <link href="https://blog.ipspace.net/2024/11/bgp-labs-route-server/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/bgp-labs-route-server/</id>
    <published>2024-11-06T07:25:00+02:00</published>
    <updated>2024-11-06T07:25:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A BGP route server is like a BGP route reflector but for EBGP sessions. In its simplest implementation, it receives BGP updates over EBGP sessions and propagates them over other EBGP sessions <em>without inserting its own AS number in the AS path</em> (<a href="https://datatracker.ietf.org/doc/html/rfc7947">more details</a>).</p>
<p>BGP route servers are commonly used on Internet Exchange Points (IXPs), and that&rsquo;s what you can practice in the <a href="https://bgplabs.net/session/5-routeserver/">BGP Route Server in an Internet Exchange Point</a> lab exercise.</p>

<figure><img src="https://bgplabs.net/session/topology-routeserver.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/bgplab">Click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>session/5-routeserver</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running Routing Protocols over Tunnels]]></title>
    <link href="https://blog.ipspace.net/2024/11/running-routing-protocols-over-tunnels/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/running-routing-protocols-over-tunnels/</id>
    <published>2024-11-05T08:14:00+01:00</published>
    <updated>2024-11-05T08:14:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>James <a href="https://blog.ipspace.net/2024/08/layer-3-only-evpn-behind-scenes/#2428">got confused</a> by a statement made by Hannes Gredler in his IS-IS book:</p>
<blockquote>
<p>Things behave really badly if the total IGP cost over the tunnel undermines the total topologies’ cost. What happens next is that the tunnel “wraps” around itself, ultimately causing a meltdown of the entire network.</p>
</blockquote>
<p>Let&rsquo;s unpack that, starting with &ldquo;Why would you need a tunnel?&rdquo;</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/11/running-routing-protocols-over-tunnels/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.9.2: STP, LAG, Cisco IOL, Edgeshark]]></title>
    <link href="https://blog.ipspace.net/2024/11/netlab-1-9-2-stp-lag-iol-edgeshark/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/11/netlab-1-9-2-stp-lag-iol-edgeshark/</id>
    <published>2024-11-04T08:13:00+02:00</published>
    <updated>2024-11-04T08:13:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>While I was busy <a href="https://netlab.tools/release/1.9/#bug-fixes-in-release-1-9-2">fixing bugs</a> in the <a href="https://netlab.tools/release/1.9/"><em>netlab</em> release 1.9.2</a>, other contributors added exciting new features:</p>
<ul>
<li>Jeroen van Bemmel added the <a href="https://netlab.tools/module/stp/">spanning tree</a> and <a href="https://netlab.tools/module/lag/">link aggregation</a> configuration modules, initially implemented on Arista EOS, Cumulus Linux, and FRR.</li>
<li>Dan Partelly added the <strong><a href="https://netlab.tools/netlab/exec/">netlab exec</a></strong> command that can execute the same command on a set of network devices, <a href="https://netlab.tools/extool/edgeshark/">support</a> for <a href="https://github.com/siemens/edgeshark">Edgeshark</a>, and <a href="https://netlab.tools/platforms/">support for Cisco IOS on Linux (IOL) and Cisco IOS layer-2 image on Linux (IOLL2)</a>, the latter after a heroic uphill battle with ancient software (<a href="https://github.com/ipspace/netlab/issues/1381">part 1</a>, <a href="https://github.com/ipspace/netlab/discussions/1470">part 2</a>).</li>
</ul>
<p>Other new features include:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/11/netlab-1-9-2-stp-lag-iol-edgeshark/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Creating a Tech Blog]]></title>
    <link href="https://blog.ipspace.net/2024/10/worth-reading-creating-tech-blog/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/worth-reading-creating-tech-blog/</id>
    <published>2024-10-31T17:01:00+01:00</published>
    <updated>2024-10-31T17:01:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Would you like to start a tech blog but don&rsquo;t know how to do it? Ethan Banks put together a phenomenal how-to guide in his <a href="https://packetpushers.net/blog/developing-content-gathering-research-for-your-tech-blog/">Developing Content &amp; Gathering Research For Your Tech Blog</a> article.</p>
<p>Oh, and please <a href="https://blog.ipspace.net/2022/11/worth-reading-another-hugo-based-blog/">use Hugo</a> (or similar) and use walled gardens like LinkedIn solely to post summaries and links to your content. You want to be in control and <a href="https://blog.ipspace.net/2021/04/own-your-content/">retain ownership of your work</a>, right?</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DEEP: a Boutique Security Conference]]></title>
    <link href="https://blog.ipspace.net/2024/10/deep-conference/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/deep-conference/</id>
    <published>2024-10-30T11:54:00+01:00</published>
    <updated>2024-10-30T11:54:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, I had the privilege of discussing <a href="https://blog.ipspace.net/2024/10/disaster-recovery-videos/">Disaster Recovery Myths</a> at the <a href="https://deep-conference.com/">DEEP Conference</a>. I also took the opportunity to attend several other presentations covering topics such as eBPF, open-source supply pipelines, tips for bug bounty hunters, and SSE.</p>
<p><strong>TL&amp;DR:</strong> I loved the experience ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/deep-conference/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: EVPN EBGP over IPv4 EBGP]]></title>
    <link href="https://blog.ipspace.net/2024/10/evpn-designs-ebgp-ebgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/evpn-designs-ebgp-ebgp/</id>
    <published>2024-10-29T08:12:00+02:00</published>
    <updated>2024-10-29T08:12:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous blog posts, we explored three fundamental EVPN designs: <a href="/2024/04/evpn-designs-vxlan-leaf-spine-fabric/">we don&rsquo;t need EVPN</a>, <a href="/2024/09/evpn-designs-ibgp-rr/">IBGP EVPN AF over IGP-advertised loopbacks</a> (the way EVPN was designed to be used) and <a href="/2024/10/evpn-designs-ebgp/">EBGP-only EVPN</a> (running the EVPN AF in parallel with the IPv4 AF).</p>
<p>Now we&rsquo;re entering Wonderland: the somewhat unusual<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> things vendors do to make their existing stuff work while also pretending to look cool<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. We&rsquo;ll start with EBGP-over-EBGP, and to understand why someone would want to do something like that, we have to go back to the basics.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/evpn-designs-ebgp-ebgp/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: How do I Specify VLAN Interface Parameters]]></title>
    <link href="https://blog.ipspace.net/2024/10/netlab-vlan-interface-parameters/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/netlab-vlan-interface-parameters/</id>
    <published>2024-10-28T07:53:00+02:00</published>
    <updated>2024-10-28T07:53:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Similarly to how it <a href="/2024/05/netlab-vrf-instantiation/">handles VRFs</a>, <em>netlab</em> automatically creates VLANs on a lab device if the device uses them on any access- or trunk link or if the VLAN is mentioned in the node <strong>vlans</strong> dictionary.</p>
<p>If the VLAN is an IRB VLAN (which can be modified globally or per node with the <a href="https://netlab.tools/module/vlan/#vlan-forwarding-modes">VLAN <strong>mode</strong> parameter</a>), <em>netlab</em> also creates the VLAN (or SVI, or BVI) interface. But how do you specify the parameters of the VLAN interface?</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/netlab-vlan-interface-parameters/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How Does Netlab Deal with Server Reboots?]]></title>
    <link href="https://blog.ipspace.net/2024/10/netlab-system-reboots/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/netlab-system-reboots/</id>
    <published>2024-10-24T08:15:00+02:00</published>
    <updated>2024-10-24T08:15:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Now and then, someone asks how <em><a href="https://netlab.tools/">netlab</a></em> deals with reboots (or power failures or crashes) of the server it&rsquo;s running on.</p>
<p><strong>TL&amp;DR:</strong> It doesn&rsquo;t. However&hellip;</p>
<p><em>netlab</em> is a CLI command that acts as an umbrella orchestration layer for Vagrant and Containerlab. It does not run as a cron job, init script, or service and thus cannot be invoked when a server is booted.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/netlab-system-reboots/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Per-Prefix and Per-VRF MPLS/VPN and EVPN Labels/VNIs]]></title>
    <link href="https://blog.ipspace.net/2024/10/mpls-vpn-prefix-vrf-labels/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/mpls-vpn-prefix-vrf-labels/</id>
    <published>2024-10-23T08:38:00+02:00</published>
    <updated>2024-10-23T08:38:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Long, long time ago<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, in an ancient town far, far away<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, an old-school networking Jedi<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> was driving us toward a convent<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup> where we had an SDN workshop<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup>. While we were stuck in the morning traffic jam, an enthusiastic engineer sitting beside me wanted to know my opinion about per-prefix and per-VRF MPLS/VPN label allocation.</p>
<p>At that time, I had lived in a comfortable Cisco IOS bubble for way too long, so my answer was along the lines of &ldquo;Say what???&rdquo; Nicola Modena<sup id="fnref:6"><a href="#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup> quickly expanded my horizons, and I said, &ldquo;Gee, I have to write a blog post about that!&rdquo; As you can see, it took me over a decade.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/mpls-vpn-prefix-vrf-labels/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS VPN" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lab: Configure IS-IS on Point-to-Point Links]]></title>
    <link href="https://blog.ipspace.net/2024/10/isis-point-to-point-links/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/isis-point-to-point-links/</id>
    <published>2024-10-22T08:24:00+02:00</published>
    <updated>2024-10-22T08:24:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>From a very high-level perspective, OSPF and IS-IS are quite similar. Both were created in the Stone Age of networking, and both differentiate between multi-access LAN segments and point-to-point serial interfaces. Unfortunately, that approach no longer works in the Ethernet Everywhere world where most of the point-to-point links look like LAN segments, so we always have to change the default settings to make an IGP work better.</p>
<p>That&rsquo;s what you&rsquo;ll do in <a href="https://isis.bgplabs.net/basic/3-p2p/">today&rsquo;s lab exercise</a>, which also explains the behind-the-scenes differences between point-to-point and multi-access links and the intricate world of three-way handshake.</p>

<figure><img src="https://isis.bgplabs.net/basic/topology-frrouting.png"/>
</figure>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[NOG.HR: A NOG Meeting Worth Attending]]></title>
    <link href="https://blog.ipspace.net/2024/10/nog-hr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/nog-hr/</id>
    <published>2024-10-21T07:34:00+02:00</published>
    <updated>2024-10-21T07:34:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I never know what to expect when I&rsquo;m invited to speak at a regional (or in-country) Network Operator Group (NOG) meeting. Sometimes, it turns out to be a large conference (PLNOG and ITNOG come to mind); other times, it&rsquo;s just a few people gathered around free donuts and coffee<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Last week&rsquo;s <a href="https://nog.hr/en/meetups/meetup5/">Croatian NOG (NOG.HR) meeting</a> was in the Goldilocks zone between the extremes: plenty of interested networking engineers, but not large enough to be overpowering.</p>
<p>Also, it was such a nice experience ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/nog-hr/'>Read more &hellip;</a></div>]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Comparing IP and CLNP: Finding Adjacent Nodes]]></title>
    <link href="https://blog.ipspace.net/2024/10/comparing-ip-clnp-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/comparing-ip-clnp-addressing/</id>
    <published>2024-10-17T08:10:00+01:00</published>
    <updated>2024-10-17T08:10:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Now that we know a bit more about <a href="/2023/09/addresses-in-network-stack/">addresses in a networking stack</a> (read the whole series) and <a href="/2024/02/interface-node-addresses/">why CLNP uses node addresses while TCP/IP uses interface addresses</a>, let&rsquo;s see how they solve common addressing problems like finding adjacent nodes.</p>
<p>Let&rsquo;s start with the elephant in the room: how do you know whether you can reach a host you want to communicate with directly? In the following diagram, how does A know whether B is sitting next to it?</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/comparing-ip-clnp-addressing/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: Egress Peer Engineering]]></title>
    <link href="https://blog.ipspace.net/2024/10/worth-reading-egress-peer-engineering/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/worth-reading-egress-peer-engineering/</id>
    <published>2024-10-16T07:48:00+02:00</published>
    <updated>2024-10-16T07:48:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Dmytro Shypovalov wrote a great series of detailed posts on Egress Peer Engineering:</p>
<ul>
<li><a href="https://routingcraft.net/poor-mans-traffic-engineering/">Poor Man’s Traffic Engineering</a></li>
<li><a href="https://routingcraft.net/egress-peer-engineering-basics/">Egress Peer Engineering: Basics</a></li>
<li><a href="https://routingcraft.net/egress-peer-engineering-building-blocks/">Egress Peer Engineering: Building Blocks</a></li>
</ul>
<p>Have fun!</p>
]]></content>
    <category term="worth reading" />
    <category term="traffic engineering" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using BGP NO_EXPORT Community to Filter Transit Routes]]></title>
    <link href="https://blog.ipspace.net/2024/10/bgp-labs-no-export/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/bgp-labs-no-export/</id>
    <published>2024-10-14T07:25:00+02:00</published>
    <updated>2024-10-14T07:25:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In <a href="https://bgplabs.net/policy/">previous BGP policy lab exercises</a>, we covered several mechanisms you can use to ensure your autonomous system is not leaking transit routes (because <a href="https://blog.ipspace.net/2021/11/internet-keeps-breaking/">bad things happen when you do</a>, particularly when <a href="https://blog.ipspace.net/2019/07/rant-some-internet-service-providers/">your upstream ISP is clueless</a>).</p>
<p>As you probably know by now, there&rsquo;s always more than one way to get something done with BGP. Today, we&rsquo;ll explore how you can <a href="https://bgplabs.net/policy/d-no-export/">use the NO_EXPORT community to filter transit routes</a>.</p>

<figure><img src="https://bgplabs.net/policy/topology-no-export.png"
   style="max-width:300px;"/>
</figure>
<p><a href="https://github.com/codespaces/new/bgplab/bgplab">Click here</a> to start the lab in your browser <a href="https://bgplabs.net/4-codespaces/">using GitHub Codespaces</a> (or <a href="https://bgplabs.net/1-setup/">set up your own lab infrastructure</a>). After starting the lab environment, change the directory to <code>policy/d-no-export</code> and execute <strong>netlab up</strong>.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Packet Pushers: Chat with Eric Chou]]></title>
    <link href="https://blog.ipspace.net/2024/10/packet-pushers-chat-eric-chou/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/packet-pushers-chat-eric-chou/</id>
    <published>2024-10-11T08:09:00+02:00</published>
    <updated>2024-10-11T08:09:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, Eric Chou invited me to a friendly chat in his <a href="https://packetpushers.net/podcast/network-automation-nerds/">Network Automation Nerds podcast</a>.</p>
<p>The episode was <a href="https://packetpushers.net/podcasts/network-automation-nerds/nan075-mastering-networking-in-the-age-of-ai-advice-for-aspiring-engineers/">published a few days ago</a>; I hope you&rsquo;ll enjoy listening to it.</p>
]]></content>
    <category term="podcast" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IS-IS Labs: Explore IS-IS Data Structures]]></title>
    <link href="https://blog.ipspace.net/2024/10/isis-labs-explore-data-structures/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/isis-labs-explore-data-structures/</id>
    <published>2024-10-10T08:04:00+02:00</published>
    <updated>2024-10-10T08:04:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the first exercise in the <a href="https://isis.bgplabs.net/">IS-IS labs</a> series, you <a href="https://isis.bgplabs.net/basic/1-simple-ipv4/">configured IS-IS routing for IPv4</a>. Before moving on to more complex topics, let&rsquo;s <a href="https://isis.bgplabs.net/basic/2-explore/">explore the data structures IS-IS created</a> to represent your network.</p>

<figure><img src="https://isis.bgplabs.net/basic/topology-simple-ipv4.png"/>
</figure>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: EBGP Everywhere]]></title>
    <link href="https://blog.ipspace.net/2024/10/evpn-designs-ebgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/evpn-designs-ebgp/</id>
    <published>2024-10-08T08:12:00+02:00</published>
    <updated>2024-10-10T18:04:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous blog posts, we explored the <a href="/2024/05/evpn-designs-ibgp-full-mesh/">simplest possible IBGP-based EVPN design</a> and <a href="/2024/09/evpn-designs-ibgp-rr/">made it scalable with BGP route reflectors</a>.</p>
<p>Now, imagine someone persuaded you that EBGP is better than any IGP (OSPF or IS-IS) when building a data center fabric. You&rsquo;re running EBGP sessions between the leaf- and the spine switches and exchanging IPv4 and IPv6 prefixes over those EBGP sessions. Can you use the same EBGP sessions for EVPN?</p>
<p><strong>TL&amp;DR:</strong> It depends™.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/evpn-designs-ebgp/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.9.1: Packet Capture, Routing Improvements]]></title>
    <link href="https://blog.ipspace.net/2024/10/netlab-1-9-1-routing-instances/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/netlab-1-9-1-routing-instances/</id>
    <published>2024-10-07T07:42:00+02:00</published>
    <updated>2024-10-07T07:42:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/1.9/"><em>netlab</em> release 1.9.1</a> brings <a href="https://netlab.tools/netlab/capture/">packet capture capabilities</a> and numerous routing features:</p>
<ul>
<li>IS-IS <a href="https://netlab.tools/module/isis/#isis-node">route redistribution</a> and <a href="https://netlab.tools/module/isis/#isis-platform">IS-IS VRF instances</a></li>
<li>RIPv2/Ripng <a href="https://netlab.tools/module/ripv2/#rip-params">route redistribution</a> and <a href="https://netlab.tools/module/ripv2/#rip-vrf">VRF instances</a></li>
<li><a href="https://netlab.tools/module/ripv2/#rip-timers">Configurable RIPv2/RIPng protocol timers</a></li>
</ul>
<p>We also added support for <a href="https://developer.cisco.com/docs/modeling-labs/iosvl2/#iosvl2">Cisco IOSv layer-2 image</a>. You&rsquo;ll find more details in the <a href="https://netlab.tools/release/1.9/">release notes</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/netlab-1-9-1-routing-instances/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Improvements (September 2024)]]></title>
    <link href="https://blog.ipspace.net/2024/10/bgp-labs-improvements/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/10/bgp-labs-improvements/</id>
    <published>2024-10-04T07:59:00+02:00</published>
    <updated>2024-10-04T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I spent a few days in a beautiful place with suboptimal Internet connectivity. The only thing I could do whenever I got bored (without waiting for the Internet gnomes to hand-carry the packets across the mountain passes) was to fix the <a href="https://bgplabs.net/">BGP labs</a> on a <a href="https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/">Ubuntu VM running on my MacBook Air</a> (hint: it all works).</p>
<p>Big things first. I added validation to these labs:</p>
<ul>
<li><a href="https://bgplabs.net/basic/6-protect/">MD5 Passwords and GTSM</a></li>
<li><a href="https://bgplabs.net/basic/7-bfd/">Use BGP Timers and BFD to Speed Up BGP Convergence</a></li>
<li><a href="https://bgplabs.net/basic/8-aggregate/">BGP Route Aggregation</a></li>
<li><a href="https://bgplabs.net/basic/d-interface/">EBGP Sessions over IPv6 LLA Interfaces</a></li>
<li><a href="https://bgplabs.net/ibgp/1-edge/">Establish an IBGP Session</a></li>
<li><a href="https://bgplabs.net/ibgp/2-transit/">Build a Transit Network with IBGP</a></li>
<li><a href="https://bgplabs.net/ibgp/3-rr/">Use BGP Route Reflectors</a></li>
<li><a href="https://bgplabs.net/policy/d-no-export/">Using No-Export Community to Filter Transit Routes</a></li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2024/10/bgp-labs-improvements/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IS-IS Labs: Configure IS-IS Routing for IPv4]]></title>
    <link href="https://blog.ipspace.net/2024/09/isis-labs-basic/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/isis-labs-basic/</id>
    <published>2024-09-30T08:21:00+02:00</published>
    <updated>2024-09-30T08:21:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the first exercise in the <a href="https://isis.bgplabs.net/">IS-IS labs</a> series, you&rsquo;ll <a href="https://isis.bgplabs.net/basic/1-simple-ipv4/">configure IS-IS routing for IPv4</a>. The basic configuration is trivial, but you&rsquo;ll also have to tweak the defaults that most vendors got wrong (we&rsquo;ll discuss why those defaults are wrong in the next lab exercises).</p>

<figure><img src="https://isis.bgplabs.net/basic/topology-simple-ipv4.png"/>
</figure>
<p>I also tried to make the IS-IS labs more than just lab exercises. Each exercise includes a bit of background information or IS-IS theory; this one describes <a href="https://isis.bgplabs.net/basic/1-simple-ipv4/#bg">generic OSI addresses (NSAPs) and router addresses (NETs)</a>.</p>
]]></content>
    <category term="IS-IS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SR Linux Containers Run on Apple Silicon]]></title>
    <link href="https://blog.ipspace.net/2024/09/srlinux-arm-apple-silicon/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/srlinux-arm-apple-silicon/</id>
    <published>2024-09-25T08:38:00+02:00</published>
    <updated>2024-12-11T09:39:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When looking for the <a href="https://github.com/nokia/srlinux-container-image/pkgs/container/srlinux">latest SR Linux container image</a>, I noticed images with <strong>-arm-preview</strong> tags and wondered whether they would run on Apple Silicon.</p>
<p><strong>TL&amp;DR:</strong> YES, IT WORKS 🎉 🎉</p>
<div  class="update">
<strong>Update 2024-12-11:</strong> Starting with 24.10.1 and 23.10.6 images, the SR Linux container manifest contains AMD and ARM images, making running SR Linux on ARM trivial. This blog post has been updated accordingly.
</div>
<p>Here&rsquo;s what you have to do to make SR Linux work with <em>netlab</em> running on a Ubuntu VM on Apple silicon:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/srlinux-arm-apple-silicon/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[One-Arm Hub-and-Spoke VPN with MPLS/VPN]]></title>
    <link href="https://blog.ipspace.net/2024/09/hub-spoke-one-arm/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/hub-spoke-one-arm/</id>
    <published>2024-09-24T08:15:00+02:00</published>
    <updated>2024-09-24T08:15:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>All our previous designs of the <a href="/2024/09/hub-spoke-vpn-topology/">hub-and-spoke VPN</a> (<a href="/2024/09/hub-spoke-single-pe/">single PE</a>, <a href="/2024/09/hub-spoke-evpn/">EVPN</a>) used two VRFs for the hub device (ingress VRF and egress VRF). Is it possible to build a one-arm hub-and-spoke VPN where the hub device exchanges traffic with the PE router over a single link?</p>
<p><strong>TL&amp;DR:</strong> Yes, but only on some devices (for example, Cisco IOS or FRRouting) when using MPLS transport.</p>
<p>Here&rsquo;s a high-level diagram of what we&rsquo;d like to achieve:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/hub-spoke-one-arm/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IBGP Load Balancing with BGP Link Bandwidth]]></title>
    <link href="https://blog.ipspace.net/2024/09/bgp-labs-ibgp-link-bandwidth/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/bgp-labs-ibgp-link-bandwidth/</id>
    <published>2024-09-23T07:13:00+02:00</published>
    <updated>2024-09-23T07:13:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous <a href="https://bgplabs.net/basic/#lb">BGP load balancing lab exercise</a>, I <a href="https://bgplabs.net/lb/2-dmz-bw/">described the BGP Link Bandwidth attribute</a> and how you can use it on EBGP sessions. This lab moves the unequal-cost load balancing into your network; we&rsquo;ll <a href="https://bgplabs.net/lb/3-ibgp/">use the BGP Link Bandwidth attribute on IBGP sessions</a>.</p>

<figure><img src="https://bgplabs.net/lb/topology-lb-ibgp-dmz-bw.png"
   style="max-width:300px;"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IPv6: Instructions for Use]]></title>
    <link href="https://blog.ipspace.net/2024/09/worth-reading-ipv6-instructions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/worth-reading-ipv6-instructions/</id>
    <published>2024-09-21T07:09:00+02:00</published>
    <updated>2024-09-21T07:09:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Retirement obviously does not sit well with my friend <a href="https://www.linkedin.com/in/tiziano-tofoni-1361759">Tiziano Tofoni</a>; the English version of his <a href="https://www.amazon.com/IPv6-instructions-use-Tiziano-Tofoni/dp/B0DGL5TPP4/ref=sr_1_1">IPv6 book</a> just came out.</p>
<p>It is a bit sad, though, that we still need &ldquo;how to use IPv6&rdquo; books when the protocol is old enough to enjoy a nice glass of whiskey (in the US) trying to drown its sorrow at its slow adoption.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Custom netlab Reports]]></title>
    <link href="https://blog.ipspace.net/2024/09/custom-netlab-reports/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/custom-netlab-reports/</id>
    <published>2024-09-19T07:15:00+02:00</published>
    <updated>2024-09-19T07:15:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A <a href="/2024/07/using-netlab-reports/">previous blog post</a> described how you can use the <strong><a href="https://netlab.tools/netlab/report/">netlab report</a></strong>  functionality to generate addressing, wiring, BGP, and OSPF reports from a running lab. But what could you do if you need a report that doesn&rsquo;t exist yet? It&rsquo;s straightforward to define one (what else did you expect?).</p>
<p>Let&rsquo;s create the report I used in the <a href="/2024/09/hub-spoke-evpn/">EVPN Hub-and-Spoke Layer-3 VPN</a> blog post to create the VRF table.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/custom-netlab-reports/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Hub-and-Spoke Layer-3 VPN]]></title>
    <link href="https://blog.ipspace.net/2024/09/hub-spoke-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/hub-spoke-evpn/</id>
    <published>2024-09-18T07:59:00+02:00</published>
    <updated>2024-09-18T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Now that we figured out <a href="/2024/09/hub-spoke-single-pe/">how to implement a hub-and-spoke VPN design on a single PE-router</a>, let&rsquo;s do the same thing with EVPN. It turns out to be trivial:</p>
<ul>
<li>We&rsquo;ll split the single PE router into three PE devices (<strong>pe_a</strong>, <strong>pe_b</strong>, and <strong>pe_h</strong>)</li>
<li>We&rsquo;ll add a core router (<strong>p</strong>) and connect it with all three PE devices.</li>
</ul>
<p>As we want to use EVPN and have a larger core network, we&rsquo;ll also have to enable VLANs, VXLAN, BGP, and OSPF on the PE devices.</p>
<p>This is the topology of our expanded lab:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/hub-spoke-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="EVPN" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Hub-and-Spoke VPN on a Single PE-Router]]></title>
    <link href="https://blog.ipspace.net/2024/09/hub-spoke-single-pe/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/hub-spoke-single-pe/</id>
    <published>2024-09-17T07:59:00+02:00</published>
    <updated>2024-09-17T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/2024/09/hub-spoke-vpn-topology/">Yesterday&rsquo;s blog post</a> discussed the traffic flow and the routing information flow in a hub-and-spoke VPN design (a design in which all traffic between spokes flows through the hub site). It&rsquo;s time to implement and test it, starting with the simplest possible scenario: a single PE router using inter-VRF route leaking to connect the VRFs.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/hub-spoke-single-pe/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="VPN" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Hub-and-Spoke VPN Topology]]></title>
    <link href="https://blog.ipspace.net/2024/09/hub-spoke-vpn-topology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/hub-spoke-vpn-topology/</id>
    <published>2024-09-16T08:24:00+02:00</published>
    <updated>2024-09-16T08:24:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Hub-and-spoke topology is by far the most complex topology I&rsquo;ve ever encountered in the MPLS/VPN (and now EVPN) world. It&rsquo;s used when you want to push all the traffic between sites attached to a VPN (spokes) through a central site (hub), for example, when using a central firewall.</p>

<figure><img src="/2024/09/hub-spoke-firewall.png"/>
</figure>
<p>You get the following diagram when you model the traffic flow requirements with VRFs. The forward traffic uses light yellow arrows, and the return traffic uses dark orange ones.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/hub-spoke-vpn-topology/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS VPN" />
    <category term="EVPN" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New Project: IS-IS Hands-On Labs]]></title>
    <link href="https://blog.ipspace.net/2024/09/isis-hands-on-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/isis-hands-on-labs/</id>
    <published>2024-09-11T09:04:00+00:00</published>
    <updated>2024-09-11T09:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A year after I started the <a href="https://bgplabs.net/">open-source BGP configuration labs</a> project, I was persuaded to do <a href="https://isis.bgplabs.net/">something similar for IS-IS</a>. The <a href="https://isis.bgplabs.net/basic/">first labs</a> are already online (with <a href="https://isis.bgplabs.net/3-upcoming/">plenty of additional ideas</a> already in the queue), and you can <a href="https://isis.bgplabs.net/1-setup/">run them</a> on any device for which we <a href="https://netlab.tools/module/isis/#platform-support">implemented IS-IS support in netlab</a>.</p>
<p>Want an easy start? Use <a href="https://isis.bgplabs.net/4-codespaces/">GitHub Codespaces</a>. Have a laptop with Apple Silicon? <a href="https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/">We have you covered</a> ;)</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: Scaling IBGP with Route Reflectors]]></title>
    <link href="https://blog.ipspace.net/2024/09/evpn-designs-ibgp-rr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/evpn-designs-ibgp-rr/</id>
    <published>2024-09-05T11:47:00+02:00</published>
    <updated>2024-09-05T11:47:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous blog posts, we explored the <a href="/2024/05/evpn-designs-ibgp-full-mesh/">simplest possible IBGP-based EVPN design</a> and tried to figure out whether <a href="/2024/05/bgp-rr-considered-harmful/">BGP route reflectors do more harm than good</a>. Ignoring that tiny detail for the moment, let&rsquo;s see how we could add route reflectors to our leaf-and-spine fabric.</p>
<p>As before, this is the fabric we&rsquo;re working with:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/evpn-designs-ibgp-rr/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Routing Table and BGP RIB on SR Linux]]></title>
    <link href="https://blog.ipspace.net/2024/09/srlinux-bgp-rib/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/srlinux-bgp-rib/</id>
    <published>2024-09-04T07:24:00+02:00</published>
    <updated>2024-09-04T07:24:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Ages ago, I described how &ldquo;traditional&rdquo; network operating systems <a href="/2010/09/ribs-and-fibs/">used the BGP Routing Information Base (BGP RIB), the system routing table (RIB), and the forwarding table (FIB)</a>. Here&rsquo;s the TL&amp;DR:</p>
<ol>
<li>Routes received from BGP neighbors are stored in BGP RIB.</li>
<li>Routes redistributed into BGP from other protocols are (re)created in the BGP RIB.</li>
<li>BGP selects the best routes in BGP RIB using its convoluted set of rules.</li>
<li>Best routes from the BGP RIB are advertised to BGP neighbors</li>
<li>Best routes from the BGP RIB compete (based on their administrative distance) against routes from other routing protocols to enter the IP routing table (system RIB)</li>
<li>Routes from the system RIB are copied into FIB after their next hops are fully evaluated (a process that might involve multiple recursive lookups).</li>
</ol><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/srlinux-bgp-rib/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: Why Are Layer-2 VPNs So Popular?]]></title>
    <link href="https://blog.ipspace.net/2024/09/l2vpn-versus-l3vpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/l2vpn-versus-l3vpn/</id>
    <published>2024-09-03T08:35:00+02:00</published>
    <updated>2024-09-03T08:35:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/belavarkonyi/">Béla Várkonyi</a> wrote a <a href="https://blog.ipspace.net/2024/07/bgp-evpn-vxlan-srv6/#2341">succinct comment</a> explaining why so many customers prefer layer-2 VPNs over layer-3 VPNs:</p>
<hr>
<p>The reason of L2VPN is becoming more popular by service providers and customers is about provisioning complexity.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/09/l2vpn-versus-l3vpn/'>Read more &hellip;</a></div>]]></content>
    <category term="VPN" />
    <category term="bridging" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: Free, OpenSource IPv6 Textbook]]></title>
    <link href="https://blog.ipspace.net/2024/09/worth-reading-ipv6-textbook/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/09/worth-reading-ipv6-textbook/</id>
    <published>2024-09-02T08:08:00+02:00</published>
    <updated>2024-09-02T08:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Nick Buraglio and Brian E. Carpenter published a <a href="https://ipv6textbook.com/">free, open-source IPv6 textbook</a>.</p>
<p>The book seems to be in an early (ever-evolving) stage, but it&rsquo;s well worth exploring if you&rsquo;re new to the IPv6 world, and you might consider contributing if you&rsquo;re a seasoned old-timer.</p>
<p>It would also be nice to have a few online labs to go with it ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: Open-Source Network Automation Labs]]></title>
    <link href="https://blog.ipspace.net/2024/08/worth-reading-open-source-network-automation-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/worth-reading-open-source-network-automation-labs/</id>
    <published>2024-08-30T07:56:00+02:00</published>
    <updated>2024-08-30T07:56:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/ubaumannch/">Urs Baumann</a> loves hands-on teaching and created tons of lab exercises to support his <a href="https://www.youtube.com/@infrastructureascode">Infrastructure-as-Code automation course</a>.</p>
<p>During the summer, he <a href="https://netautlabs.net/">published some of them</a> in a <a href="https://github.com/NetAutLabs/">collection of GitHub repositories</a> and made them work in GitHub Codespaces. An amazing idea well worth exploring!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Common Services VRF with EVPN Control Plane]]></title>
    <link href="https://blog.ipspace.net/2024/08/evpn-common-services-vrf/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/evpn-common-services-vrf/</id>
    <published>2024-08-29T07:49:00+02:00</published>
    <updated>2024-08-29T07:49:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>After discovering that some EVPN implementations support multiple transit VNI values in a single VRF, I had to check whether I could implement a <em>common services</em> L3VPN with EVPN.</p>
<div  class="info">
A <em>common services</em> VPN is a VPN in which server sites can communicate with each other and the clients, but the clients cannot communicate between themselves.
</div>
<p><strong>TL&amp;DR:</strong> It works (on Arista cEOS)<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>Here are the relevant parts of a <em><a href="https://netlab.tools/">netlab</a></em> lab topology I used in my test (you can find the complete lab topology in <a href="https://github.com/ipspace/netlab-examples/tree/master/EVPN/l3vpn-cs"><em>netlab-examples</em> GitHub repository</a>):</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/evpn-common-services-vrf/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multivendor EVPN Just Works]]></title>
    <link href="https://blog.ipspace.net/2024/08/multivendor-evpn-reality/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/multivendor-evpn-reality/</id>
    <published>2024-08-27T08:07:00+02:00</published>
    <updated>2024-08-27T08:07:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Shipping <a href="/2024/08/netlab-1-9-0-routing-policies/"><em>netlab</em> release 1.9.0</a> included running 36 hours of <a href="https://github.com/ipspace/netlab/tree/dev/tests/integration">integration tests</a>, including <a href="https://github.com/ipspace/netlab/tree/dev/tests/integration/evpn">fifteen VXLAN/EVPN tests</a> covering:</p>
<ul>
<li>Bridging multiple VLANs</li>
<li>Asymmetric IRB, symmetric IRB, central routing, and running OSPF within an IRB VRF.</li>
<li>Layer-3 only VPN, including routing protocols (OSPF and BGP) between PE-router and CE-routers</li>
<li>All designs evangelized by the vendors: IBGP+OSPF, EBGP-only (including reusing BGP AS number on leaves), EBGP over the interface (unnumbered) BGP sessions, IBGP-over-EBGP, and EBGP-over-EBGP.</li>
</ul>
<p>All tests included one or two <em>devices under test</em> and one or more FRR containers<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> running EVPN/VXLAN with the devices under test. <a href="https://release.netlab.tools/_html/coverage.evpn">The results</a> were phenomenal; apart from a few exceptions, everything Just Worked™️.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/multivendor-evpn-reality/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: The Benefits of SRv6]]></title>
    <link href="https://blog.ipspace.net/2024/08/srv6-benefits/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/srv6-benefits/</id>
    <published>2024-08-26T07:44:00+02:00</published>
    <updated>2024-08-26T07:44:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><em>I love bashing SRv6, so it&rsquo;s only fair to post a (technical) counterview, this time coming as a <a href="https://blog.ipspace.net/2024/07/bgp-evpn-vxlan-srv6/#2343">comment from Henk Smit</a>.</em></p>
<hr>
<p>There are several benefits of SRv6 that I&rsquo;ve heard of.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/srv6-benefits/'>Read more &hellip;</a></div>]]></content>
    <category term="segment routing" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using No-Export Community to Filter Transit Routes]]></title>
    <link href="https://blog.ipspace.net/2024/08/bgp-labs-no-export-community/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/bgp-labs-no-export-community/</id>
    <published>2024-08-23T08:00:00+02:00</published>
    <updated>2024-08-23T08:00:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>The very first <a href="https://www.rfc-editor.org/rfc/rfc1997.html">BGP Communities RFC</a> included an interesting idea: let&rsquo;s tag paths we don&rsquo;t want to propagate to other autonomous systems. For example, the prefixes received from one upstream ISP should not be propagated to another upstream ISP (sadly, <a href="https://blog.ipspace.net/2019/07/rant-some-internet-service-providers/">things don&rsquo;t work that way in reality</a>).</p>
<p>Want to try out that concept? Start the <a href="https://bgplabs.net/policy/d-no-export/">Using No-Export Community to Filter Transit Routes</a> lab in <a href="https://bgplabs.net/4-codespaces/">GitHub Codespaces</a>.</p>

<figure><img src="https://bgplabs.net/policy/topology-no-export.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using Multiple Transit VNIs per EVPN VRF]]></title>
    <link href="https://blog.ipspace.net/2024/08/multiple-transit-vni-evpn-vrf/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/multiple-transit-vni-evpn-vrf/</id>
    <published>2024-08-22T08:48:00+02:00</published>
    <updated>2024-08-22T08:48:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>After reading the <a href="/2024/08/layer-3-only-evpn-behind-scenes/">Layer-3-Only EVPN: Behind the Scenes</a> blog post, one might come to an obvious conclusion: the per-VRF EVPN transit VNI must match across all PE devices forwarding traffic for that VRF.</p>
<p>Interestingly, at least some EVPN implementations handle multiple VNIs per VRF without a hitch; I ran my tests in a lab where three switches used unique per-switch VNI for a common VRF.</p>
<div  class="note">
The rest of this blog post describes Arista cEOS behavior; please feel free to use the same <a href="https://github.com/ipspace/netlab-examples/tree/master/EVPN/l3vpn-uvni"><em>netlab</em> topology</a> to <a href="/2024/08/netlab-layer-3-only-evpn/#old">run similar tests on other devices</a>.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/multiple-transit-vni-evpn-vrf/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Testing bgpipe with netlab]]></title>
    <link href="https://blog.ipspace.net/2024/08/netlab-bgpipe/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/netlab-bgpipe/</id>
    <published>2024-08-21T06:46:00+02:00</published>
    <updated>2024-08-21T06:46:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Ever since <a href="https://ripe88.ripe.net/speakers/pawel-foremski/">Pawel Foremski</a> talked about <a href="https://ripe88.ripe.net/archives/video/1365/">BGP Pipe @ RIPE88 meeting</a>, I wanted to kick its tires in <em><a href="https://netlab.tools/">netlab</a></em>. <a href="https://github.com/bgpfix/bgpipe/?tab=readme-ov-file">BGP Pipe</a> is a Go executable that runs under Linux (but also FreeBSD or MacOS), so I could add a Linux VM (or container) to a <em>netlab</em> topology and install the software after the lab has been started. However, I wanted to have the BGP neighbor configured on the other side of the link (on the device talking with the BGP Pipe daemon).</p>
<p>I could solve the problem in a few ways:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/netlab-bgpipe/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.9.0: Routing Policies, Default Routes, Route Redistribution]]></title>
    <link href="https://blog.ipspace.net/2024/08/netlab-1-9-0-routing-policies/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/netlab-1-9-0-routing-policies/</id>
    <published>2024-08-20T07:27:00+02:00</published>
    <updated>2024-08-20T07:27:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/1.9/"><em>netlab</em> release 1.9.0</a> brings tons of new routing features:</p>
<ul>
<li><a href="https://netlab.tools/module/routing/#generic-routing">Generic Routing Configuration Module</a> implements routing policies (route maps), prefix filters, AS-path filters, and BGP community filters.</li>
<li><a href="https://netlab.tools/module/ospf/#ospf-default">Default route origination</a> in OSPFv2 and OSPFv3</li>
<li><a href="https://netlab.tools/module/routing_protocols/#routing-import">Route import</a> (redistribution) into OSPFv2, OSPFv3, and BGP.</li>
<li><a href="https://netlab.tools/prefix/#named-prefixes">Named prefixes</a></li>
</ul>
<p>Other new goodies include:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/netlab-1-9-0-routing-policies/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Session and Address Family Parameters]]></title>
    <link href="https://blog.ipspace.net/2024/08/bgp-session-af-parameters/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/bgp-session-af-parameters/</id>
    <published>2024-08-19T06:45:00+02:00</published>
    <updated>2024-08-19T06:45:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>As I was doing the <a href="https://blog.ipspace.net/2024/05/netlab-integration-tests/">final integration tests</a> for <a href="https://netlab.tools/release/1.9/#release-1-9-0">netlab release 1.9.0</a>, I stumbled upon a fascinating BGP configuration quirk: where do you configure the <strong>allowas-in</strong> parameter and why?</p>
<h3 id="a-bit-of-theory">A Bit of Theory</h3>
<p>BGP runs over TCP, and all parameters related to the TCP session are configured for a BGP neighbor (IPv4 or IPv6 address). That includes the source interface, local AS number (it&rsquo;s advertised in the per-session OPEN message that negotiates the address families), MD5 password (it uses MD5 checksum of TCP packets), GTSM (it uses the IP TTL field), or EBGP multihop (it increases the IP TTL field).</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/bgp-session-af-parameters/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Arista cEOS Got Working MPLS Data Plane]]></title>
    <link href="https://blog.ipspace.net/2024/08/arista-ceos-mpls-data-plane/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/arista-ceos-mpls-data-plane/</id>
    <published>2024-08-14T07:35:00+02:00</published>
    <updated>2024-08-14T07:35:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/ubaumannch/">Urs Baumann</a> brought me a nice surprise last weekend. He <a href="https://github.com/ipspace/netlab/issues/1267">opened a GitHub issue</a> saying, &ldquo;<em>MPLS works on Arista cEOS containers in release 4.31.2F</em>&rdquo; and asking whether we could enable <em>netlab</em> to configure MPLS on cEOS containers.</p>
<div  class="note">
<em>netlab</em> already had <a href="https://netlab.tools/module/mpls/#platform-support">MPLS configuration templates for Arista EOS</a> but reported an error message if you tried to use MPLS with the cEOS containers because the containers did not have a working MPLS data plane.
</div>
<p>After <a href="https://github.com/ipspace/netlab/commit/3a1debf251da446a8758c8ae4f1b90bc8c938d2b">a few configuration tweaks</a> and a <a href="https://tests.netlab.tools/_html/eos-clab-mpls">batch of integration tests later</a>, I had the results: everything worked. You can use MPLS on Arista cEOS with <em>netlab</em> release 1.9.0 (right now @ <code>1.9.0-dev2</code>), and I&rsquo;ll be able to create MPLS labs running in GitHub Codespaces in the not-too-distant future.</p>
]]></content>
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Layer-3-Only EVPN: Behind the Scenes]]></title>
    <link href="https://blog.ipspace.net/2024/08/layer-3-only-evpn-behind-scenes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/layer-3-only-evpn-behind-scenes/</id>
    <published>2024-08-13T10:08:00+02:00</published>
    <updated>2024-08-13T10:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2024/08/netlab-layer-3-only-evpn/">previous blog post</a>, I described how to build a lab to explore the layer-3-only EVPN design and asked you to do that and figure out what&rsquo;s going on behind the scenes. If you didn&rsquo;t find time for that, let&rsquo;s do it together in this blog post. To keep it reasonably short, we&rsquo;ll focus on the EVPN control plane and leave the exploration of the data-plane data structures for another blog post.</p>
<p>The most important thing to understand when analyzing a layer-3-only EVPN/VXLAN network is that the data plane looks like a VRF-lite design: each VRF uses a hidden VLAN (implemented with VXLAN) as the transport VLAN between the PE devices.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/layer-3-only-evpn-behind-scenes/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: The Usability of VXLAN]]></title>
    <link href="https://blog.ipspace.net/2024/08/vxlan-usability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/vxlan-usability/</id>
    <published>2024-08-12T07:50:00+02:00</published>
    <updated>2024-08-12T07:50:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Wes made an <a href="https://blog.ipspace.net/2024/08/data-center-fabric-migration/#2360">interesting comment</a> to the <a href="https://blog.ipspace.net/2024/08/data-center-fabric-migration/">Migrating a Data Center Fabric to VXLAN</a> blog post:</p>
<blockquote>
<p>The benefit of VXLAN is mostly scalability, so if your enterprise network is not scaling&hellip; just don&rsquo;t. The migration path from VLANs is to just keep using VLANs. The (vendor-driven) networking industry has a huge blind spot about this.</p>
</blockquote>
<p>Paraphrasing the <a href="https://youtu.be/6mNLESvNuCs?si=C4rBX1r3XTA6WGTX&amp;t=1849">famous Dinesh Dutt&rsquo;s Autocon1 remark</a>: I couldn&rsquo;t disagree with you more.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/vxlan-usability/'>Read more &hellip;</a></div>]]></content>
    <category term="VXLAN" />
    <category term="data center" />
    <category term="fabric" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Building Layer-3-Only EVPN Lab]]></title>
    <link href="https://blog.ipspace.net/2024/08/netlab-layer-3-only-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/netlab-layer-3-only-evpn/</id>
    <published>2024-08-08T08:38:00+02:00</published>
    <updated>2024-08-08T08:38:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, <a href="https://www.linkedin.com/posts/rdodin_yesterday-i-threw-in-a-question-if-someone-activity-7221853963795472384-9TB9/">Roman Dodin mentioned layer-3-only EVPNs</a>: a layer-3 VPN design with no stretched VLANs in which EVPN is used to transport VRF IP prefixes.</p>

<figure><img src="/2024/08/evpn-l3vpn-topology.png"/>
</figure>
<p>The reality is a bit muddier (in the VXLAN world) as we still need transit VLANs and router MAC addresses; the best way to explore what&rsquo;s going on behind the scenes is to build a simple lab.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/netlab-layer-3-only-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Migrating a Data Center Fabric to VXLAN]]></title>
    <link href="https://blog.ipspace.net/2024/08/data-center-fabric-migration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/08/data-center-fabric-migration/</id>
    <published>2024-08-06T07:34:00+02:00</published>
    <updated>2024-08-06T07:34:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Darko Petrovic made an <a href="https://www.linkedin.com/feed/update/urn:li:activity:7222145210732949504?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7222145210732949504%2C7222261031140524036%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287222261031140524036%2Curn%3Ali%3Aactivity%3A7222145210732949504%29">excellent remark on one of my LinkedIn posts</a>:</p>
<blockquote>
<p>The majority of the networks running now in the Enterprise are on traditional VLANs, and the migration paths are limited. Really limited. How will a business transition from traditional to whatever is next?</p>
</blockquote>
<p>The only sane choice I found so far in the data center environment (and I know it has been embraced by many organizations facing that conundrum) is to build a parallel fabric (preferably when the organization is doing a server refresh) and connect the new fabric with the old one with a layer-3 link (in the ideal world) or an MLAG link bundle.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/08/data-center-fabric-migration/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
    <category term="VXLAN" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting: Crafting Endless AS Paths in BGP]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-bgp-endless-as-path/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-bgp-endless-as-path/</id>
    <published>2024-07-31T07:53:00+02:00</published>
    <updated>2024-07-31T07:53:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Vincent Bernat documented a quirk I hope you&rsquo;ll never see outside of a CCIE lab: <a href="https://vincent.bernat.ch/en/blog/2024-bgp-endless-aspath">combining BGP confederations with AS-override can generate endless AS paths</a>.</p>
<p>I agree entirely with his conclusions (avoid both features). However, I still think that replacing an AS within the confederation part of an AS path (which should belong to a single well-managed AS) is not exactly the most brilliant idea I&rsquo;ve seen.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fun Reading: AI and Google’s Quarterly Results]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-google-ai-results/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-google-ai-results/</id>
    <published>2024-07-30T07:05:00+02:00</published>
    <updated>2024-07-30T07:05:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I never mastered the fine art of polite diplomatic sarcasm. Brad Casemore is a virtuoso &ndash; you&rsquo;ll love his take on <a href="https://crepuscular-circus.ghost.io/googles-quarterly-results-investors-begin-questioning-efficacy-of-genai-investments/?ref=crepuscular-circus-newsletter">Google’s Quarterly Results: Investors Begin Questioning Efficacy of GenAI Investments</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using netlab Reports]]></title>
    <link href="https://blog.ipspace.net/2024/07/using-netlab-reports/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/using-netlab-reports/</id>
    <published>2024-07-26T09:14:00+02:00</published>
    <updated>2024-07-26T09:14:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Did you know you can use <em>netlab</em> to generate reports describing your lab topology, IP addressing, BGP details, or OSPF areas? The magic command (<code>netlab report</code>) was introduced in August 2023, followed by <code>netlab show reports</code> to display the available reports a few months later.</p>
<p>You can generate the reports in text, Markdown, or HTML format. The desired format is selected with the report name suffix. For example, the <code>bgp-asn.md</code> report will create Markdown text.</p>
<p>Let&rsquo;s see how that works.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/using-netlab-reports/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP, EVPN, VXLAN, or SRv6?]]></title>
    <link href="https://blog.ipspace.net/2024/07/bgp-evpn-vxlan-srv6/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/bgp-evpn-vxlan-srv6/</id>
    <published>2024-07-25T07:55:00+02:00</published>
    <updated>2024-07-25T07:55:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Dib <a href="https://www.linkedin.com/feed/update/urn:li:activity:7221449552220823552?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7221449552220823552%2C7221746944149180416%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287221746944149180416%2Curn%3Ali%3Aactivity%3A7221449552220823552%29">asked an interesting question</a> on LinkedIn when considering an RT5-only EVPN design:</p>
<blockquote>
<p>I’m curious what EVPN provides if all you need is L3. For example, you could run pure L3 BGP fabric if you don’t need VRFs or a limited amount of them. If many VRFs are needed, there is MPLS/VPN, SR-MPLS, and SRv6.</p>
</blockquote>
<p>I received a similar question numerous times in my previous life as a consultant. It&rsquo;s usually caused by vendor marketing polluting PowerPoint slide decks with acronyms without explaining the fundamentals<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Let&rsquo;s fix that.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/bgp-evpn-vxlan-srv6/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="EVPN" />
    <category term="VXLAN" />
    <category term="segment routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: Making Segment Routing User-Friendly]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-making-segment-routing-user-friendly/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-making-segment-routing-user-friendly/</id>
    <published>2024-07-23T09:51:00+02:00</published>
    <updated>2024-07-23T09:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/dmytro-shypovalov-573aab58/">Dmytro Shypovalov</a> wrote a fantastic article <a href="https://routingcraft.net/making-segment-routing-user-friendly">explaining the basics of MPLS-based Segment Routing</a>. It&rsquo;s pretty much equivalent to everything I ever wrote about SR-MPLS but in a much nicer package. Definitely a must-read.</p>
]]></content>
    <category term="segment routing" />
    <category term="MPLS" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[CCIE Preparation with netlab]]></title>
    <link href="https://blog.ipspace.net/2024/07/netlab-ccie-preparation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/netlab-ccie-preparation/</id>
    <published>2024-07-18T06:12:00+02:00</published>
    <updated>2024-07-18T06:12:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Ben asked an <a href="https://blog.ipspace.net/2024/07/bgp-labs-year-later/#2329">interesting question</a>:</p>
<blockquote>
<p>Do you think, realistically in 2024, netlab would suffice to prepare the CCIE lab exam? Particulary for the SP flavor, since netlab supports a lot of routing protocols. Thanks!</p>
</blockquote>
<p><strong>TL&amp;DR:</strong> No.</p>
<p><em><a href="https://netlab.tools/">netlab</a></em> would be a great tool to streamline your CCIE preparation studies. You could:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/netlab-ccie-preparation/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="certifications" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: AI Is Still a Delusion]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-ai-still-a-delusion/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-ai-still-a-delusion/</id>
    <published>2024-07-17T07:36:00+02:00</published>
    <updated>2024-07-17T07:36:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another AI rant to spice your summer: <a href="https://mindmatters.ai/2024/06/ai-is-still-a-delusion/">AI Is Still a Delusion</a>, including an excellent example of how the latest LLMs flunk simple logical reasoning. I particularly liked this one-line summary:</p>
<blockquote>
<p>The real danger today is not that computers are smarter than us but that we think computers are smarter than us and consequently trust them to make decisions they should not be trusted to make.</p>
</blockquote>
<p>It might be worth remembering that quote when an AI-powered management appliance messes up your network because of a false positive ;)</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EBGP Load Balancing with BGP Link Bandwidth]]></title>
    <link href="https://blog.ipspace.net/2024/07/bgp-labs-link-bandwidth/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/bgp-labs-link-bandwidth/</id>
    <published>2024-07-16T07:04:00+02:00</published>
    <updated>2024-07-16T07:04:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>The first <a href="https://bgplabs.net/basic/#lb">BGP load balancing lab exercise</a> described the <a href="https://bgplabs.net/lb/1-ebgp/">basics of EBGP equal-cost load balancing</a>. Now for the fun part: what if you want to spread traffic across multiple links in an unequal ratio? There&rsquo;s a nerd knob for that: the <a href="https://datatracker.ietf.org/doc/html/draft-ietf-idr-link-bandwidth-07">BGP Link Bandwidth extended community</a> that you can test-drive in <a href="https://bgplabs.net/lb/2-dmz-bw/">this lab exercise</a>.</p>

<figure><img src="https://bgplabs.net/lb/topology-lb-dmz-bw.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: GitHub Copilot Workspace Review]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-github-copilot-workspace/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-github-copilot-workspace/</id>
    <published>2024-07-15T07:26:00+02:00</published>
    <updated>2024-07-15T07:26:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In Matt Duggan&rsquo;s <a href="https://matduggan.com/reviewing-github-copilot-workspaces/">blog post</a>, you&rsquo;ll find a scathing review of another attempt to throw AI spaghetti at the wall to see if they stick: the GitHub Copilot Workspace.</p>
<p>He also succinctly summarized everything I ever wanted to say about the idea of using AI tools to generate networking configurations:</p>
<blockquote>
<p>Having a tool that makes stuff that looks right but ends up broken is worse than not having the tool at all.</p>
</blockquote>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Why Do We Have Native VLANs?]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-native-vlans-explained/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-native-vlans-explained/</id>
    <published>2024-07-12T07:31:00+02:00</published>
    <updated>2024-07-12T07:31:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Dib went on another deep dive: <a href="https://lostintransit.se/2024/07/08/why-do-we-have-native-vlans/">Why Do We Have Native VLANs?</a> What I loved most was that he went through the whole 802.1 standard (quite an undertaking) and explained the reasoning that VLAN-aware switches behave the way they do.</p>
<p>You should also read the follow-up post: <a href="https://lostintransit.se/2024/07/09/802-1q-tagged-frames-through-unmanaged-switch-forwarded-or-dropped/">what happens if a VLAN-unaware switch receives an 802.1Q-tagged frame</a>?</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Again: What Exactly Is MPLS?]]></title>
    <link href="https://blog.ipspace.net/2024/07/what-exactly-is-mpls/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/what-exactly-is-mpls/</id>
    <published>2024-07-11T07:26:00+02:00</published>
    <updated>2024-07-11T07:26:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Brad Casemore published an interesting analysis <a href="https://crepuscular-circus.ghost.io/cisco-cant-party-like-its-1999-but-the-end-is-not-near/">explaining why Cisco should accept being a mature company with mature products</a> (yeah, you have to subscribe to view it). I always loved reading his articles, but unfortunately, this time, he briefly ventured into the &ldquo;<em>I don&rsquo;t think this word means what you think it means</em>&rdquo; territory:</p>
<blockquote>
<p>MPLS worked – and it still works – but it provided optimal value in an earlier time when the center of gravity was not the cloud. The cloud challenged the efficacy of MPLS, and it wasn’t long before SD-WAN, cloud connects, and interconnects [&hellip;] represented an implacable threat to a status quo that had once seemed unassailable.</p>
</blockquote>
<p>The second part of the paragraph is (almost) true, but it had nothing to do with MPLS.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/what-exactly-is-mpls/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Terminal Line Editing]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-terminal-line-editing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-terminal-line-editing/</id>
    <published>2024-07-10T11:01:00+02:00</published>
    <updated>2024-07-10T11:01:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In another wonderful deep dive, Julia Evans explains <a href="https://jvns.ca/blog/2024/07/08/readline/">why you can&rsquo;t edit the command line in some Linux utilities</a> like the ancient <strong>sh</strong>.</p>
<p>You&rsquo;ll also figure out:</p>
<ul>
<li>Why does CTRL-A jump to the beginning of the line?</li>
<li>How can you enable command line editing in ancient utilities?</li>
</ul>
<p>Have fun!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: a Year Later]]></title>
    <link href="https://blog.ipspace.net/2024/07/bgp-labs-year-later/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/bgp-labs-year-later/</id>
    <published>2024-07-08T06:57:00+02:00</published>
    <updated>2024-07-08T06:57:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Last summer, I started a long-term project to <a href="https://bgplabs.net/99-about/">revive the BGP labs I created in the mid-1990s</a>.  I completed the original lab exercises (BGP sessions, IBGP, local preference, MED, communities) in late 2023 but then kept going. This is how far I got in a year:</p>
<ul>
<li>Twenty-six <em><a href="https://bgplabs.net/basic/">deploy BGP</a></em> exercises, including <a href="https://bgplabs.net/basic/#advanced">advanced settings</a> like <a href="https://bgplabs.net/basic/#aspath">AS path manipulations</a>, MD5 passwords and BFD, and new technologies like TCP/AO and interface EBGP sessions.</li>
<li>Fifteen <a href="https://bgplabs.net/policy/">BGP routing policies</a> exercises, covering the basic mechanisms as well as dirty tricks like route disaggregation</li>
<li>Four <a href="https://bgplabs.net/basic/#lb">load balancing</a> exercises, from EBGP ECMP to BGP Link Bandwidth and BGP Additional Paths.</li>
<li><a href="https://bgplabs.net/#challenge-labs">Five challenges</a> for everyone who got bored doing the simple stuff ;)</li>
</ul>
<p>That completes the BGP technologies I wanted to cover. I&rsquo;ll keep adding the challenge labs and advanced scenarios. <a href="https://bgplabs.net/3-upcoming/">Here are some ideas</a>; if you have others, please leave a comment.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/bgp-labs-year-later/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[blog.ipspace.net Is On Cloudflare Pages]]></title>
    <link href="https://blog.ipspace.net/2024/07/blog-cloudflare/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/blog-cloudflare/</id>
    <published>2024-07-07T14:51:00+02:00</published>
    <updated>2024-07-07T14:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><strong>Long story short:</strong> Years after <a href="/2020/03/ipspace-blog-runs-on-hugo/">migrating my blog to Hugo</a>, I found the willpower to deal with the &ldquo;interesting&rdquo; way Cloudflare Pages deal with static HTML files, changed the Hugo URL scheme, and spent two days fixing broken links.</p>
<p>Apart from having the satisfaction of ticking off a long-outstanding project, the blog pages should load faster, and I won&rsquo;t have to deal with GitLab hiccups anymore.</p>
<p>If you notice anything being broken, please let me know. Thank you!</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: ChatGPT Is Bullshit]]></title>
    <link href="https://blog.ipspace.net/2024/07/worth-reading-chatgpt-bullshit/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/worth-reading-chatgpt-bullshit/</id>
    <published>2024-07-04T09:56:00+02:00</published>
    <updated>2024-07-04T09:56:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/bogdan-golab-258558/">Bogdan Golab</a> sent me a link to an (open access) article in Ethics and Information Technology arguing why <a href="https://link.springer.com/article/10.1007/s10676-024-09775-5">ChatGPT is bullshit</a>. Straight from the introduction:</p>
<blockquote>
<p>Because these programs cannot themselves be concerned with truth, and because they are designed to produce text that looks truth-apt without any actual concern for truth, it seems appropriate to call their outputs bullshit.</p>
</blockquote>
<p>Have fun!</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Master New Platforms and Technologies with netlab]]></title>
    <link href="https://blog.ipspace.net/2024/07/netlab-master-new-platforms/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/netlab-master-new-platforms/</id>
    <published>2024-07-03T07:27:00+02:00</published>
    <updated>2024-07-03T07:27:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me this remark (probably while trying to work on the <a href="https://bgplabs.net/basic/d-interface/">EBGP Sessions over the IPv6 LLA Interfaces</a> lab):</p>
<blockquote>
<p>I did attempt some of your labs, like IPv6 link-local-only BGP with FRR hosts, but FRR seemed not to play ball, or I was just doing it wrong.</p>
</blockquote>
<p>As he was already using <em><a href="https://netlab.tools/">netlab</a></em>, I could send him a cheat code:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/netlab-master-new-platforms/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running Arista cEOS in GitHub Codespaces]]></title>
    <link href="https://blog.ipspace.net/2024/07/arista-eos-codespaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/arista-eos-codespaces/</id>
    <published>2024-07-02T07:30:00+02:00</published>
    <updated>2024-07-02T07:30:00+02:00</updated>
    
    <content type="html"><![CDATA[<p class="sideicon"><a href="/2024/07/container-download.jpg"><img src="/2024/07/container-download.jpg" alt=""></a></p>
<p>Yesterday, I explained how you can <a href="/2024/07/netlab-examples-codespaces/">run netlab examples in GitHub codespaces</a> and mentioned that they work best with vendors who understand the value of frictionless downloads. But what if you&rsquo;d like to use a device from <a href="/2024/02/netlab-vxlan-labs/">one of the good guys</a> who provide the container images but require a registration?</p>
<p>It turns out the solution is trivial:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/arista-eos-codespaces/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Netlab Examples in GitHub Codespaces]]></title>
    <link href="https://blog.ipspace.net/2024/07/netlab-examples-codespaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/07/netlab-examples-codespaces/</id>
    <published>2024-07-01T07:59:00+02:00</published>
    <updated>2024-07-01T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A few days ago, someone asked me about the IPv4 next-hop details of running interface EBGP sessions. I pointed him to a <a href="/2022/11/bgp-unnumbered-duct-tape/">blog post explaining them</a>, adding, &ldquo;And of course, you can test that in <em><a href="https://netlab.tools/">netlab</a></em>.&rdquo; A few minutes later, it hit me: instead of asking him to set up <em>netlab</em> locally, I could enable him to do that in a minute with GitHub Codespaces.</p>
<p>Setting that up was easy: copy the <code>.devcontainer</code> directory from the <a href="https://github.com/bgplab/bgplab">BGP labs repository</a> into the <a href="https://github.com/ipspace/netlab-examples">netlab examples repository</a> and commit the change. After a brief yak-shaving exercise (writing README files and rearranging a few folders), I successfully <a href="https://github.com/codespaces/new/ipspace/netlab-examples">started the codespace</a> and was ready for this blog post. There was just one gotcha&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/07/netlab-examples-codespaces/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Evolution of Network Security]]></title>
    <link href="https://blog.ipspace.net/2024/06/worth-reading-evolution-network-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/worth-reading-evolution-network-security/</id>
    <published>2024-06-29T08:38:00+02:00</published>
    <updated>2024-06-29T08:38:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://blog.apnic.net/author/sharada-yeluri/">Sharada Yeluri</a> published an interesting overview of the <a href="https://blog.apnic.net/2024/06/24/the-evolution-of-network-security/">evolution of network security</a>, from packet filtering firewalls to GenAI and Quantum Computing (yeah, she works for a networking vendor ;). Definitely worth reading if you&rsquo;re looking for an intro-level overview.</p>
]]></content>
    <category term="worth reading" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Don't Use Excel as a Source of Truth]]></title>
    <link href="https://blog.ipspace.net/2024/06/worth-reading-excel-source-of-truth/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/worth-reading-excel-source-of-truth/</id>
    <published>2024-06-28T07:51:00+02:00</published>
    <updated>2024-06-28T07:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Some people insist on using Excel as the ultimate source of user-supplied data (including network automation source of truth).</p>
<p>If you agree with me that that&rsquo;s not necessarily the best idea out there, you might enjoy <a href="https://ludic.mataroa.blog/blog/i-will-fucking-dropkick-you-if-you-use-that-spreadsheet/">this rant</a> by <a href="https://www.linkedin.com/in/nik-suresh/">Nikhil Suresh</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Explore and Fix BGP Wedgies]]></title>
    <link href="https://blog.ipspace.net/2024/06/bgp-labs-wedgies/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/bgp-labs-wedgies/</id>
    <published>2024-06-27T08:32:00+02:00</published>
    <updated>2024-06-27T08:32:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://datatracker.ietf.org/doc/html/rfc4264">RFC 4264</a> defines BGP wedgies as &ldquo;<em>a class of BGP configurations for which there is more than one potential outcome, and where forwarding states other than the intended state are equally stable.</em>&rdquo; Even worse, &ldquo;<em>the stable state where BGP converges may be selected by BGP in a non-deterministic manner.</em>&rdquo;</p>
<p>Want to know more? You can <a href="https://bgplabs.net/policy/e-wedgies/">explore a real-life BGP wedgie and fix it</a> in the latest BGP lab exercise.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Looking for a Simple Multihop EBGP Use Case]]></title>
    <link href="https://blog.ipspace.net/2024/06/ebgp-multihop-use-cases/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/ebgp-multihop-use-cases/</id>
    <published>2024-06-26T08:23:00+02:00</published>
    <updated>2024-06-26T08:23:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I plan to add several challenge labs using multihop EBGP sessions to the <a href="https://bgplabs.net/">BGP labs project</a>, including:</p>
<ol>
<li>Running BGP between VMs and central BGP route servers</li>
<li>Using multihop EBGP session to send full Internet routing table to a customer without overloading the PE-router</li>
<li>Running EBGP EVPN session between loopbacks advertised with EBGP IPv4 session (🤢)</li>
</ol>
<p>However, I would love to start with a simple use case to help engineers unfamiliar with BGP realize when they might have to use multihop EBGP sessions. Unfortunately, I can&rsquo;t find one, and the scenarios where I used multihop EBGP in the past (EBGP load balancing and using a low-end router in the EBGP path, where I was effectively using the reverse application of #2 as a customer) are mostly irrelevant.</p>
<p>Would you have an easy-to-understand use case that is best solved with a multihop EBGP session? Please share it in the comments. Thanks a million!</p>
]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running BGP Labs in GitHub Codespaces]]></title>
    <link href="https://blog.ipspace.net/2024/06/bgp-labs-github-codespaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/bgp-labs-github-codespaces/</id>
    <published>2024-06-25T07:45:00+02:00</published>
    <updated>2024-06-25T07:45:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I love open-source tools (and their GitHub repositories). Someone launches a cool idea, and you can dig through their source code to figure out how it works. It beats reading documentation or fixing AI hallucinations every day of the week ;)</p>
<p>Not too long ago, the containerlab team <a href="https://containerlab.dev/manual/codespaces/">launched the ability</a> to run containerlab within a free<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> container<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> running on GitHub, and that seemed like a perfect solution to run the BGP labs (Jeroen van Bemmel pointing me in the right direction was another significant step forward).</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/06/bgp-labs-github-codespaces/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.8.4: vrnetlab Containers, Catalyst 8000v]]></title>
    <link href="https://blog.ipspace.net/2024/06/netlab-1-8-4-vrnetlab-cat8000/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/netlab-1-8-4-vrnetlab-cat8000/</id>
    <published>2024-06-24T07:43:00+02:00</published>
    <updated>2024-06-24T07:43:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I don&rsquo;t think I ever created two <em>netlab</em> releases in a week, but last week, I stumbled upon a motherlode of goodies, and it would be a shame not to make them available.</p>
<p>Someone tried to use <em>netlab</em> with <em><a href="https://containerlab.dev/manual/vrnetlab/">vrnetlab</a></em> containers for CSR 1000v and Nexus 9300v. We got it to work, but when I started integrating his changes into the development branch, I wanted to test them, so I installed <em><a href="https://github.com/hellt/vrnetlab">vrnetlab</a></em> to create my own container images. <em>vrnetlab</em> is an excellent tool, and building containers is a breeze (<a href="https://netlab.tools/labs/clab/#using-vrnetlab-containers">running them is a different story</a>), so I added <a href="https://netlab.tools/labs/clab/#container-images">support for <em>vrnetlab</em> containers</a> for every device supported by that tool and <em>netlab</em> for which I happened to have a disk image.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/06/netlab-1-8-4-vrnetlab-cat8000/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: You Probably Don't Need AI]]></title>
    <link href="https://blog.ipspace.net/2024/06/worth-reading-dont-need-ai/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/worth-reading-dont-need-ai/</id>
    <published>2024-06-21T07:25:00+02:00</published>
    <updated>2024-06-21T07:25:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another rant to spice up your weekend: <a href="https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/">focus on fixing your company&rsquo;s problems instead of chanting the AI mantra</a>. Have fun ;)</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Automated Validation of BGP Labs]]></title>
    <link href="https://blog.ipspace.net/2024/06/bgp-labs-validation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/bgp-labs-validation/</id>
    <published>2024-06-18T08:22:00+02:00</published>
    <updated>2024-06-18T08:22:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In late 2023, I started playing with the idea of having automated validation in <em>netlab</em>. The early implementation was used in BGP labs, and a user liked it so much that he opened an issue saying:</p>
<blockquote>
<p>I would suggest providing <strong>netlab validate</strong> for each lab.</p>
</blockquote>
<p>Numerous rounds of yak-shaving later, I merged a humongous commit that adds automated validation to these lab exercises:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/06/bgp-labs-validation/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.8.3: RIPv2, BGP Route Servers]]></title>
    <link href="https://blog.ipspace.net/2024/06/netlab-1-8-3-rip-bgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/netlab-1-8-3-rip-bgp/</id>
    <published>2024-06-17T08:01:00+02:00</published>
    <updated>2024-06-17T08:01:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>During the <a href="https://www.itnog.it/itnog8/">ITNOG8</a> <em>netlab</em> presentation, I jokingly said something along the lines &ldquo;<em>all that&rsquo;s missing is RIPv2 and Babel</em>.&rdquo;  That&rsquo;s no longer true; someone asked me how hard it would be to add RIPv2 to <em>netlab</em>, and I said, &ldquo;<em>give me a few days</em> 😎&rdquo;</p>
<p>Other new features in <a href="https://netlab.tools/release/1.8/#release-1-8-3"><em>netlab</em> release 1.8.3</a> include support for BGP route servers (and route server clients), BGP Link Bandwidth community, and OSPF/BGP validation plugins for Arista EOS, Cumulus Linux and FRR. We also fixed the installation scripts to work with Ubuntu 24.04 and Debian Bookworm.</p>
<p>For more details, <a href="https://netlab.tools/release/1.8/#release-1-8-3">read the release notes</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/06/netlab-1-8-3-rip-bgp/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Cisco SD-Access and IoT Devices]]></title>
    <link href="https://blog.ipspace.net/2024/06/worth-reading-cisco-sd-access-iot/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/worth-reading-cisco-sd-access-iot/</id>
    <published>2024-06-13T11:47:00+02:00</published>
    <updated>2024-06-13T11:47:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Dan Massameno wrote a <a href="https://packetpushers.net/blog/cisco-sd-access-internet-of-things-iot/">series of blog posts</a> describing the challenges you might encounter when connecting Internet-of-Things<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> devices to a Cisco SD-Access network. It is an absolute must-read if you have to deal with IoT devices.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Reading some of his caveats, you&rsquo;ll quickly confirm the alternate meaning of the IoT acronym: Internet-of-Trash.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Mythical Use Cases: Traffic Engineering for Data Center Backups]]></title>
    <link href="https://blog.ipspace.net/2024/06/mythical-use-cases/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/mythical-use-cases/</id>
    <published>2024-06-11T12:41:00+02:00</published>
    <updated>2024-06-13T11:02:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Vendor product managers love discussing mythical use cases to warrant complex functionality in their gear. <a href="/2015/02/before-talking-about-vmotion-across/">Long-distance VM mobility</a> was one of those (using it for disaster avoidance was <a href="/2011/09/long-distance-vmotion-for-disaster/">Mission Impossible under any real-world assumptions</a>), and <em>high-volume network-based backups</em> seems to be another. Here&rsquo;s what someone had to say about that particular unicorn in a LinkedIn comment when discussing whether we need traffic engineering in a data center fabric.</p>
<blockquote>
<p>When you&rsquo;re dealing with a large cluster on a fabric, you will see things like inband backup. The most common one I&rsquo;ve seen is VEEAM. Those inband backups can flood a single link, and no amount of link scheduling really solves that; depending on the source, they can saturate 100G. There are a couple of solutions; IPv6 or eBGP SID has been used to avoid these links or schedule avoidance for other traffic.</p>
</blockquote>
<p>It is true that (A) in-band backups can be bandwidth intensive and that (B) well-written applications can saturate 100G server links. However:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/06/mythical-use-cases/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
    <category term="fabric" />
    <category term="traffic engineering" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Not Just Scale]]></title>
    <link href="https://blog.ipspace.net/2024/06/worth-reading-not-just-scale/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/worth-reading-not-just-scale/</id>
    <published>2024-06-09T10:36:00+02:00</published>
    <updated>2024-06-09T10:36:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Marc Brooker published an interesting blog post arguing that
<a href="https://brooker.co.za/blog/2024/06/04/scale.html">we need distributed systems for more than just scale</a>.</p>
<p>Keep that in mind the next time someone tries to sell you the beauties of a centralized control plane &ndash; an idea that should be dead by now regardless of what <a href="https://opennetworking.org/sdn-definition/">ONF keeps preaching</a> but will inevitably reappear in some form or other due to <a href="https://www.rfc-editor.org/rfc/rfc1925">RFC 1925</a> Rule 11.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: Infrahub by Opsmill]]></title>
    <link href="https://blog.ipspace.net/2024/06/worth-reading-infrahub/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/06/worth-reading-infrahub/</id>
    <published>2024-06-07T07:30:00+02:00</published>
    <updated>2024-06-07T07:30:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A year or two after <a href="https://www.linkedin.com/in/damiengarros/">Damien Garros</a> told me that &ldquo;<em>he moved to France and is working on something new</em>&rdquo; we can admire the results: Infrahub, a version-control-based system that includes a data store and a repository of all source code you use in your network automation environment. Or, <a href="https://github.com/opsmill/infrahub">straight from the GitHub repository</a>,</p>
<blockquote>
<p>A central hub to manage the data, templates and playbooks that powers your infrastructure by combining the version control and branch management capabilities of Git with the flexible data model and UI of a graph database.</p>
</blockquote>
<p>I&rsquo;ve seen an early demo, and it looks highly promising and absolutely worth exploring. Have fun ;)</p>
<div  class="note">
Fun fact: the OpsMill team includes <a href="https://www.ipspace.net/Building_Network_Automation_Solutions#Guest_speakers">two guest speakers</a> in the ipSpace.net automation course and a <a href="https://github.com/ipspace/netlab/graphs/contributors">netlab contributor</a>.
</div>
]]></content>
    <category term="worth reading" />
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: ChatGPT Does Not Summarize]]></title>
    <link href="https://blog.ipspace.net/2024/05/worth-reading-chatgpt-summarization/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/worth-reading-chatgpt-summarization/</id>
    <published>2024-05-31T07:37:00+02:00</published>
    <updated>2024-05-31T07:37:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I mostly gave up on LLMs being any help (apart from generating copious amounts of bullshit), but I still thought that <em>generating summaries</em> might be an interesting use case. I was wrong.</p>
<p>As Gerben Wierda explains in his recent &ldquo;<em><a href="https://ea.rna.nl/2024/05/27/when-chatgpt-summarises-it-actually-does-nothing-of-the-kind/">When ChatGPT summarises, it actually does nothing of the kind</a></em>&rdquo; blog post, you have to <em>understand</em> a text if you want to generate a useful <em>summary</em>, and that&rsquo;s not what LLMs do. They can generate <em>a shorter version of the text</em>, which might not focus on <em>the significant bits</em>.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Graceful Shutdown]]></title>
    <link href="https://blog.ipspace.net/2024/05/bgp-labs-graceful-shutdown/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/bgp-labs-graceful-shutdown/</id>
    <published>2024-05-30T08:22:00+02:00</published>
    <updated>2024-05-30T08:22:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Using the typical default router configurations, it can take minutes between a failure of an inter-AS link and the convergence of BGP routes. You can <a href="https://bgplabs.net/basic/7-bfd/">fine-tune that behavior with BGP timers and BFD</a> (and still get <a href="/2021/10/graceful-restart-convergence/">pwned by Graceful Restart</a>). While you can&rsquo;t influence link failures, you could drain the traffic from a link before starting maintenance operations on it, and it would be a shame not to do that considering there&rsquo;s a standard way to do that &ndash; the GRACEFUL_SHUTDOWN BGP community defined in <a href="https://www.rfc-editor.org/rfc/rfc8326.html">RFC 8326</a>. That&rsquo;s what you&rsquo;ll <a href="https://bgplabs.net/challenge/03-graceful-shutdown/">practice in the next BGP lab exercise</a>.</p>

<figure><img src="https://bgplabs.net/challenge/topology-graceful-shutdown.png"
   style="max-width:400px;"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Must Read: Make Two Trips]]></title>
    <link href="https://blog.ipspace.net/2024/05/worth-reading-make-two-trips/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/worth-reading-make-two-trips/</id>
    <published>2024-05-29T08:33:00+02:00</published>
    <updated>2024-05-29T08:33:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/yesthattom/">Tom Limoncelli</a> wrote another must-read masterpiece: <a href="https://queue.acm.org/detail.cfm?ref=rss&amp;id=3664275">sometimes you&rsquo;ll save time if you make two trips instead of one</a>.</p>
<p>The same lesson applies to network design: cramming too many features into a single device will inevitably result in complex, hard-to-understand configurations and weird bugs. Sometimes, it&rsquo;s cheaper to split the required functionality across multiple devices.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Route Reflectors Considered Harmful]]></title>
    <link href="https://blog.ipspace.net/2024/05/bgp-rr-considered-harmful/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/bgp-rr-considered-harmful/</id>
    <published>2024-05-28T08:23:00+02:00</published>
    <updated>2024-05-28T08:23:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>The recent <a href="/2024/05/evpn-designs-ibgp-full-mesh/">IBGP Full Mesh Between EVPN Leaf Switches</a> blog post generated an <a href="https://www.linkedin.com/feed/update/urn:li:activity:7199351613428236288/">interesting discussion on LinkedIn</a> focused on whether we need route reflectors (in small fabrics) and whether they do more harm than good. Here are some of the highlights of that discussion, together with a running commentary.</p>
<div  class="smallprint">
Please note that we&rsquo;re talking about BGP route reflectors in reasonably small data center fabrics. Large service provider networks with millions of customer VPN routes are a completely different story. As always, what you read in a random blog post might not apply to your network design. YMMV.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/bgp-rr-considered-harmful/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Testing Device Configuration Templates]]></title>
    <link href="https://blog.ipspace.net/2024/05/netlab-integration-tests/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/netlab-integration-tests/</id>
    <published>2024-05-27T08:08:00+02:00</published>
    <updated>2024-05-27T08:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Many network automation solutions generate device configurations from a data model and deploy those configurations. Last week, we focused on &ldquo;<em><a href="/2024/05/network-automation-testing/">how do we know the device data model is correct?</a></em>&rdquo; This time, we&rsquo;ll take a step further and ask ourselves, &ldquo;<em>how do we know the device configurations work as expected?</em>&rdquo;</p>
<p>There are four (increasingly complex) questions our tests should answer:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/netlab-integration-tests/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Using AWS Services via IPv6]]></title>
    <link href="https://blog.ipspace.net/2024/05/worth-reading-aws-egress-traffic-ipv6/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/worth-reading-aws-egress-traffic-ipv6/</id>
    <published>2024-05-24T08:23:00+02:00</published>
    <updated>2024-05-24T08:23:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>AWS started charging for public IPv4 addresses a few months ago, supposedly to encourage users to move to IPv6. As it turns out, you need public IPv4 addresses (or a private link) to access many AWS services, clearly demonstrating that it&rsquo;s just another <del>way of fleecing the sheep</del> Hotel California tax. I&rsquo;m so glad I <a href="/2023/08/videos-free-subscription/">moved my videos to Cloudflare</a> ;)</p>
<p>For more details, read <a href="https://tty.neveragain.de/2024/05/20/aws-ipv6-egress.html">AWS: Egress Traffic and Using AWS Services via IPv6</a> (rendered in beautiful, easy-to-read teletype font).</p>
]]></content>
    <category term="worth reading" />
    <category term="AWS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: IBGP Full Mesh Between Leaf Switches]]></title>
    <link href="https://blog.ipspace.net/2024/05/evpn-designs-ibgp-full-mesh/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/evpn-designs-ibgp-full-mesh/</id>
    <published>2024-05-23T07:52:00+01:00</published>
    <updated>2024-05-23T07:52:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2024/04/evpn-designs-vxlan-leaf-spine-fabric/">previous blog post</a> in the EVPN Designs series, we explored the simplest possible VXLAN-based fabric design: static ingress replication without any L2VPN control plane. This time, we&rsquo;ll add the simplest possible EVPN control plane: a full mesh of IBGP sessions between the leaf switches.</p>
<div  class="smallprint">
This blog post describes an initial BGP design that we&rsquo;ll <a href="/2024/09/evpn-designs-ibgp-rr/">refine in subsequent blog posts</a>. Having a full mesh of IBGP sessions between leaf switches might be a bad idea unless you have a tiny fabric or you&rsquo;re deploying a small-scale EVPN pilot.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/evpn-designs-ibgp-full-mesh/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Rerouting After LAG Member Failures]]></title>
    <link href="https://blog.ipspace.net/2024/05/mlag-evpn-rerouting/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/mlag-evpn-rerouting/</id>
    <published>2024-05-22T08:51:00+02:00</published>
    <updated>2024-05-22T08:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous two blog posts (<a href="/2024/05/mlag-lag-member-rerouting/">Dealing with LAG Member Failures</a>, <a href="/2024/05/mlag-vxlan-rerouting/">LAG Member Failures in VXLAN Fabrics</a>)  we discovered that it&rsquo;s almost trivial to deal with a LAG member failure in an MLAG cluster <em>if we have a peer link between MLAG members</em>. What about the holy grail of EVPN pundits: ESI-based MLAG with no peer link between MLAG members?</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/mlag-evpn-rerouting/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Load Balancing across EBGP Paths]]></title>
    <link href="https://blog.ipspace.net/2024/05/bgp-labs-ebgp-ucmp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/bgp-labs-ebgp-ucmp/</id>
    <published>2024-05-21T08:27:00+02:00</published>
    <updated>2024-05-21T08:27:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Let&rsquo;s open another juicy can of BGP worms: <a href="https://bgplabs.net/basic/#lb">load balancing</a>. In the <a href="https://bgplabs.net/lb/1-ebgp/">first lab exercise</a>, you&rsquo;ll configure equal-cost load balancing across EBGP paths and tweak the &ldquo;What is equal cost?&rdquo; algorithm to consider just the AS path length, not the contents of the AS path.</p>

<figure><img src="https://bgplabs.net/lb/topology-lb-ebgp.png"
   style="max-width:400px;"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Testing Network Automation Data Transformation]]></title>
    <link href="https://blog.ipspace.net/2024/05/network-automation-testing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/network-automation-testing/</id>
    <published>2024-05-20T08:08:00+02:00</published>
    <updated>2024-05-20T08:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Every complex enough network automation solution has to introduce a high-level (user-manageable) data model that is <a href="/kb/DataModels/65-Data-Transformation/">eventually transformed</a> into a low-level (device) data model.</p>

<figure><img src="/2021/02/dm-magic.png"
   alt="High-level overview of the process"
   style="max-width:400px;"/><figcaption>
    <p>High-level overview of the process</p>
  </figcaption>
</figure>
<p>The <a href="/2021/02/data-model-transformation/">transformation code</a> (business logic) is one of the most complex pieces of a network automation solution, and there&rsquo;s only one way to ensure it works properly: you test the heck out of it ;) Let me show you how we solved that challenge in <em><a href="https://netlab.tools/">netlab</a></em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/network-automation-testing/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Must Read: OSPF Protocol Analysis (RFC 1245)]]></title>
    <link href="https://blog.ipspace.net/2024/05/worth-reading-ospf-protocol-analysis/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/worth-reading-ospf-protocol-analysis/</id>
    <published>2024-05-16T08:40:00+02:00</published>
    <updated>2024-05-16T08:40:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Dib <a href="https://twitter.com/danieldibswe/status/1789894892769931265">found</a> the ancient <a href="https://www.rfc-editor.org/rfc/rfc1245">OSPF Protocol Analysis (RFC 1245)</a> that includes the <em>Router CPU</em> section. Please keep in mind the RFC was published in 1991 (35 years ago):</p>
<blockquote>
<p>Steve Deering presented results for the Dijkstra calculation in the &ldquo;MOSPF meeting report&rdquo; in [3]. Steve&rsquo;s calculation was done on a DEC 5000 (10 mips processor), using the Stanford internet as a model. His graphs are based on numbers of networks, not number of routers. However, if we extrapolate that the ratio of routers to networks remains the same, the time to run Dijkstra for 200 routers in Steve&rsquo;s implementation was around 15 milliseconds.</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/worth-reading-ospf-protocol-analysis/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MLAG Deep Dive: LAG Member Failures in VXLAN Fabrics]]></title>
    <link href="https://blog.ipspace.net/2024/05/mlag-vxlan-rerouting/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/mlag-vxlan-rerouting/</id>
    <published>2024-05-15T08:51:00+02:00</published>
    <updated>2024-05-15T08:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2024/05/mlag-lag-member-rerouting/">Dealing with LAG Member Failures</a> blog post, we figured out how easy it is to deal with a LAG member failure in a traditional MLAG cluster. The failover could happen in hardware, and even if it&rsquo;s software-driven, it does not depend on the control plane.</p>
<p>Let&rsquo;s add a bit of complexity and <a href="/2022/09/mlag-deep-dive-vxlan-fabric/">replace a traditional layer-2 fabric with a VXLAN fabric</a>. The MLAG cluster members still use an MLAG peer link and an anycast VTEP IP address (<a href="/2022/09/mlag-deep-dive-vxlan-fabric/">more details</a>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/mlag-vxlan-rerouting/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.8.2: Bug Fixes, Usability Improvements]]></title>
    <link href="https://blog.ipspace.net/2024/05/netlab-1-8-2-fixes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/netlab-1-8-2-fixes/</id>
    <published>2024-05-14T08:01:00+02:00</published>
    <updated>2024-05-14T08:01:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/1.8/#release-1-8-2"><em>netlab</em> release 1.8.2</a> contains dozens of bug fixes and minor tweaks to device configuration templates. We also added a few safeguards including:</p>
<ul>
<li>Check for Vagrant boxes or Docker containers before starting the lab and display pointers to build recipes.</li>
<li>Check installed Ansible collections before trying to configure the lab devices.</li>
<li>Display a warning if the lab topology was modified after the lab was created</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/netlab-1-8-2-fixes/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: VRF Instantiation on Lab Devices]]></title>
    <link href="https://blog.ipspace.net/2024/05/netlab-vrf-instantiation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/netlab-vrf-instantiation/</id>
    <published>2024-05-13T08:37:00+02:00</published>
    <updated>2024-05-13T08:37:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2024/04/netlab-global-node-vrf/">previous blog post on this topic</a>, I described how <em>node</em> and <em>global</em> VRFs work in <em><a href="https://netlab.tools/">netlab</a></em>.</p>
<p><strong>TL&amp;DR:</strong> If you use the same VRF on multiple devices, it&rsquo;s better to define it globally.</p>
<p>However, you might not need every VRF on every lab device in a more complex lab topology. Considering that, <em>netlab</em> tries to minimize the number of VRFs configured on lab devices using a simple rule: a VRF is configured on a lab device only if the device has at least one interface in that VRF.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/netlab-vrf-instantiation/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Reduce FIB Size on Access Routers]]></title>
    <link href="https://blog.ipspace.net/2024/05/bgp-labs-reduce-fib/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/bgp-labs-reduce-fib/</id>
    <published>2024-05-10T08:22:00+02:00</published>
    <updated>2024-05-10T08:22:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another BGP lab challenge to start your weekend: use RIB-to-FIB filters to reduce the forwarding table size on access routers in a large Service Provider network.</p>

<figure><img src="https://bgplabs.net/challenge/topology-reduce-fib.png"
   style="max-width:400px;"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MLAG Deep Dive: Dealing with LAG Member Failures]]></title>
    <link href="https://blog.ipspace.net/2024/05/mlag-lag-member-rerouting/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/mlag-lag-member-rerouting/</id>
    <published>2024-05-09T08:12:00+02:00</published>
    <updated>2024-05-09T08:12:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/craig-weinhold-0230236/">Craig Weinhold</a> pointed me to a complex topic I managed to ignore in my <a href="/series/mlag/">MLAG Deep Dive series</a>: how does an MLAG cluster reroute around a failure of a LAG member link?</p>
<p>In this blog post, we&rsquo;ll focus on <a href="/2022/06/mlag-deep-dive-overview/">traditional MLAG cluster implementations using a peer link</a>; another blog post will explore the implications of using VXLAN and EVPN to implement MLAG clusters.</p>
<p>We&rsquo;ll also ignore the interesting question of &ldquo;<em>how is the LAG member link failure detected?</em>&rdquo;<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and focus on &ldquo;<em>what happens next?</em>&rdquo; using the sample MLAG topology:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/mlag-lag-member-rerouting/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: LibreQoS]]></title>
    <link href="https://blog.ipspace.net/2024/05/worth-reading-libreqos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/worth-reading-libreqos/</id>
    <published>2024-05-08T08:46:00+02:00</published>
    <updated>2024-05-08T08:46:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Erik Auerswald pointed me to an interesting open-source project.
<a href="https://libreqos.io/">LibreQoS</a> implements decent QoS using software switching on many-core x86 platforms. It&rsquo;s implemented as a bump-in-the-wire software solution, so you should be able to plug it into your network just before a major congestion point and let it handle the packet dropping and prioritization.</p>
<p>Obviously, the concept is nothing new. I wrote about a <a href="/2009/06/adsl-qos-basics/">similar problem in xDSL networks</a> in 2009.</p>
]]></content>
    <category term="worth reading" />
    <category term="QoS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: State of Lisp Implementations (2024)]]></title>
    <link href="https://blog.ipspace.net/2024/05/repost-state-of-lisp-implementations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/repost-state-of-lisp-implementations/</id>
    <published>2024-05-07T08:21:00+02:00</published>
    <updated>2024-05-07T08:21:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>You might remember <a href="https://www.linkedin.com/in/belavarkonyi/">Béla Várkonyi&rsquo;s</a> use of LISP to build resilient ground-to-airplane networks from <a href="/2024/04/repost-lisp-mobility/">last week&rsquo;s repost</a>. It seems he&rsquo;s not exactly happy with the current level of LISP support, at least based on what he wrote as a response to <a href="https://www.linkedin.com/in/ccie14023/">Jeff McLaughlin&rsquo;s</a> <a href="/2024/04/mobility-campus-networks-lisp-evpn/#2211">claim</a> that &ldquo;<em>I can tell you that our support for EVPN does not, in any way, indicate the retirement of LISP for SD-Access.</em>&rdquo;:</p>
<hr>
<p>Nice to hear the Cisco intends to support LISP. However, it is removed from IOS XR already. So it is not that clear&hellip;</p>
<p>If Cisco will stop supporting LISP, then we will be forced to create our own LISP routers, since we need it for extreme mobility environments.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/repost-state-of-lisp-implementations/'>Read more &hellip;</a></div>]]></content>
    <category term="LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Famous Last Words: I'm Too Stupid for That]]></title>
    <link href="https://blog.ipspace.net/2024/05/too-stupid-to-make-it-work/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/too-stupid-to-make-it-work/</id>
    <published>2024-05-06T08:25:00+02:00</published>
    <updated>2025-02-20T09:52:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Some networking vendors realized that one way to gain mindshare is to make their network operating systems available as free-to-download containers or virtual machines. That&rsquo;s the right way to go; I love their efforts and point out who went down that path whenever possible<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> (as well as others like Cisco who try to make our lives miserable).</p>
<p>However, those virtual machines better work out of the box, or you&rsquo;ll get frustrated engineers who will give up and never touch your warez again, or as someone said in a LinkedIn comment to my blog post describing how <a href="/2023/10/vjunos-declines-dhcp-address/">Junos vPTX consistently rejects its DHCP-assigned IP address</a>: &ldquo;<em>If I had encountered an issue like this before seeing Ivan’s post, I would have definitely concluded that I am doing it wrong.</em>&rdquo;<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup></p><div class='jump-link'><a href='https://blog.ipspace.net/2024/05/too-stupid-to-make-it-work/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Cisco vPC in VXLAN/EVPN Networks]]></title>
    <link href="https://blog.ipspace.net/2024/05/worth-reading-cisco-vpc-vxlan-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/worth-reading-cisco-vpc-vxlan-evpn/</id>
    <published>2024-05-04T08:06:00+02:00</published>
    <updated>2024-05-04T08:06:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Dib started writing a series of blog posts describing <a href="https://lostintransit.se/2024/04/29/cisco-vpc-in-vxlan-evpn-network-part-1-anycast-vtep/">Cisco vPC in VXLAN/EVPN Networks</a>. The first one covers <a href="https://lostintransit.se/2024/04/29/cisco-vpc-in-vxlan-evpn-network-part-1-anycast-vtep/">the anycast VTEP</a>, the second one <a href="https://lostintransit.se/2024/05/01/cisco-vpc-in-vxlan-evpn-network-part-2-configuring-vpc/">the vPC configuration</a>.</p>
<p>Let&rsquo;s hope he will keep them coming and link them together so it will be easy to find the whole series after stumbling on one of the posts ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: EBGP Sessions over IPv6 LLA Interfaces]]></title>
    <link href="https://blog.ipspace.net/2024/05/bgp-labs-ebgp-lla/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/05/bgp-labs-ebgp-lla/</id>
    <published>2024-05-02T08:22:00+02:00</published>
    <updated>2024-05-02T08:22:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>If you insist on building your network with EBGP as a better IGP, make sure your implementation supports running IPv4 and IPv6 address families over EBGP sessions established between IPv6 link-local addresses (the functionality lovingly called <em><a href="/2022/11/bgp-unnumbered-duct-tape/">unnumbered EBGP sessions</a></em>).</p>
<p>Want to practice that neat trick? Check out the <a href="https://bgplabs.net/basic/d-interface/">EBGP Sessions over IPv6 LLA Interfaces</a> lab exercise.</p>

<figure><img src="https://bgplabs.net/basic/topology-interface-ebgp.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: The Real LISP Mobility Use Case]]></title>
    <link href="https://blog.ipspace.net/2024/04/repost-lisp-mobility/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/repost-lisp-mobility/</id>
    <published>2024-04-30T07:59:00+02:00</published>
    <updated>2024-04-30T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/belavarkonyi/">Béla Várkonyi</a> is working on an interesting challenge: building ground-to-airplane(s) networks providing multilink mobility. Due to its relative simplicity, he claims <a href="/2024/04/mobility-campus-networks-lisp-evpn/#2218">LISP works much better than BGP in that environment</a>.</p>
<hr>
<p>In some newer routers BGP would not be such a big bottleneck, but you need a lot of knob turning in BGP to get it right, while in LISP it is quite simple.</p>
<p>If you have many thousands concurrent airplanes with multi-link and max. 16 subnets with different routing policies on each, and the radio links are going up and down, then you have a large number of mobility events.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/repost-lisp-mobility/'>Read more &hellip;</a></div>]]></content>
    <category term="LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Global and Node VRFs]]></title>
    <link href="https://blog.ipspace.net/2024/04/netlab-global-node-vrf/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/netlab-global-node-vrf/</id>
    <published>2024-04-29T08:37:00+02:00</published>
    <updated>2024-04-29T08:37:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>When designing the <em>netlab</em> VRF configuration module, I tried to make it as flexible as possible while using the minimum number of awkward nerd knobs. As is often the case<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, the results could be hard to grasp, so let&rsquo;s walk through the various scenarios of using <em>global</em> and <em>node</em> VRFs.</p>
<p><em>netlab</em> allows you to define a VRF in the lab topology <strong>vrfs</strong>  dictionary (global VRF) or in a node <strong>vrfs</strong> dictionary (node VRF). In most cases, you&rsquo;d define a few global VRFs and move on.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/netlab-global-node-vrf/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Comparing GNS3, containerlab, and netlab]]></title>
    <link href="https://blog.ipspace.net/2024/04/worth-reading-gns3-containerlab-netlab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/worth-reading-gns3-containerlab-netlab/</id>
    <published>2024-04-27T10:07:00+02:00</published>
    <updated>2024-04-27T10:07:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>You probably know I hate posting links to walled gardens or sites that try really hard to make you sign up. Sometimes, I have to make an exception: <a href="https://www.linkedin.com/in/roman-pomazanov/">Roman Pomazanov</a> wrote a great (and humorous) article comparing <a href="https://www.linkedin.com/pulse/lets-iac-some-network-labs-roman-pomazanov-tu1pe/">how easy it is to set up simple labs with GNS3, containerlab, and netlab</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: Think About the 99% of the Users]]></title>
    <link href="https://blog.ipspace.net/2024/04/repost-focus-99-percent/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/repost-focus-99-percent/</id>
    <published>2024-04-25T08:37:00+01:00</published>
    <updated>2024-04-25T08:37:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel left a <a href="/2024/03/fabric-designs-size-matters/#2132">very relevant comment</a> on my <a href="/2024/03/fabric-designs-size-matters/">Data Center Fabric Designs: Size Matters</a> blog post, describing how everyone rushes to sell the newest gizmos and technologies to the unsuspecting (and sometimes too-awed) users<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>
<hr>
<p>Absolutely right. I&rsquo;m working at an MSP, and we do a lot of project work for enterprises with between 500 and 2000 people. That means the IT department is not that big; it&rsquo;s usually just a cost center for them.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/repost-focus-99-percent/'>Read more &hellip;</a></div>]]></content>
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Stop the Network-Based Application Recognition Nonsense]]></title>
    <link href="https://blog.ipspace.net/2024/04/quic-nbar-ai-nonsense/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/quic-nbar-ai-nonsense/</id>
    <published>2024-04-24T08:35:00+02:00</published>
    <updated>2024-04-24T08:35:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me an interesting update on the post-QUIC round of NBAR whack-a-mole (<strong>TL&amp;DR:</strong> everything is better with <del>Bluetooth</del> AI):</p>
<div class='long-quote'>
Cloudflare (and the other hyperscalers) are full into QUIC, as it gives them lots of E2E control, taking a lot of choice away from the service providers on how they handle traffic and congestion. It is quite well <a href="https://blog.apnic.net/2024/02/08/podcast-dns-is-the-new-bgp-how-we-really-route-things-in-the-modern-internet/">outlined by Geoff Huston in an APNIC podcast</a>.
</div>


<p>So far, so good. However, whenever there&rsquo;s a change, there&rsquo;s an opportunity for marketing FUD, coming from the usual direction.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/quic-nbar-ai-nonsense/'>Read more &hellip;</a></div>]]></content>
    <category term="QoS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Presentation: Introduction to netlab]]></title>
    <link href="https://blog.ipspace.net/2024/04/netlab-state-april-2024/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/netlab-state-april-2024/</id>
    <published>2024-04-23T08:14:00+02:00</published>
    <updated>2024-05-02T12:12:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>On April 22nd, I had an Intro to <em>netlab</em> presentation at the wonderful <a href="https://www.ripe.net/membership/meetings/regional-meetings/see/see-12/">RIPE SEE meeting in Athens</a>.</p>
<p>You can <a href="https://www.ripe.net/participate/forms/uploads/fobi_plugins/file/see-12-presentations/netlab%20-%202024_a6829f1b-d348-4079-887e-76f2847d3b88.pptx">download the presentation</a> or <a href="https://youtu.be/wa9uT-f6TXQ?si=icpiCI7X6-mGcOgW&amp;t=16307">watch it on YouTube</a>. Enjoy ;)</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: Campus-Wide Wireless Roaming with EVPN]]></title>
    <link href="https://blog.ipspace.net/2024/04/repost-wireless-campus-mobility/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/repost-wireless-campus-mobility/</id>
    <published>2024-04-22T08:05:00+02:00</published>
    <updated>2024-04-22T08:05:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>As a response to my <a href="/2024/04/mobility-campus-networks-lisp-evpn/">LISP vs EVPN: Mobility in Campus Networks</a> blog post, Route Abel <a href="/2024/04/mobility-campus-networks-lisp-evpn/#2220">provided interesting real-life details</a> of a large-scale campus wireless testing using EVPN and VXLAN tunnels to a central aggregation point (slightly edited):</p>
<hr>
<p>I was arguing for VxLAN EVPN with some of my peers, but I had no direct hands-on knowledge of how it would actually perform and very limited ability to lab it on hardware. My client was considering deploying Campus VxLAN, and they have one of the largest campuses in North America.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/repost-wireless-campus-mobility/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Data Protection for Dummies]]></title>
    <link href="https://blog.ipspace.net/2024/04/worth-reading-data-protection-dummies/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/worth-reading-data-protection-dummies/</id>
    <published>2024-04-20T06:35:00+02:00</published>
    <updated>2024-04-20T06:35:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Another <a href="https://crankysec.com/blog/hn/">lovely must-read rant</a> from the <a href="https://crankysec.com/">cranky security professional</a>.</p>
<p><strong>TL&amp;DR</strong>: Data protection requirements like PCI-DSS aren&rsquo;t there to make companies more secure but to make it too expensive for them to hoard excessive customer data (see also: GDPR).</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[FRRouting Loopback Interfaces and OSPF Costs]]></title>
    <link href="https://blog.ipspace.net/2024/04/frr-loopback-ospf-cost/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/frr-loopback-ospf-cost/</id>
    <published>2024-04-17T08:56:00+01:00</published>
    <updated>2024-04-17T08:56:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR:</strong> FRRouting advertises the IP prefix on the <strong>lo</strong> loopback interface with zero cost.</p>
<p>Let&rsquo;s start with the background story. When we added FRRouting containers support to <em>netlab</em>, someone decided to use <strong>lo0</strong> as the loopback interface name. That device doesn&rsquo;t exist in a typical Linux container, but it&rsquo;s not hard to add it:</p>
<pre tabindex="0"><code>$ ip link add lo0 type dummy
$ ip link set dev lo0 up
</code></pre><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/frr-loopback-ospf-cost/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Unintended Consequences of IPv6 SLAAC]]></title>
    <link href="https://blog.ipspace.net/2024/04/ipv6-slaac-unintended-consequences/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/ipv6-slaac-unintended-consequences/</id>
    <published>2024-04-16T08:45:00+02:00</published>
    <updated>2024-04-16T08:45:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>One of my friends is running a large IPv6 network and has already experienced a shortage of IPv6 neighbor cache on some of his switches. Digging deeper into the root causes, he discovered:</p>
<blockquote>
<p>In my larger environments, I see significant neighbor table cache entries, especially on network segments with hosts that make many long-term connections. These hosts have 10 to 20 addresses that maintain state over days or weeks to accomplish their processes.</p>
</blockquote>
<p>What&rsquo;s going on? A perfect storm of numerous unrelated annoyances:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/ipv6-slaac-unintended-consequences/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Explore: Why No IPv6? (IPv6 SaaS)]]></title>
    <link href="https://blog.ipspace.net/2024/04/worth-reading-why-no-ipv6-sass/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/worth-reading-why-no-ipv6-sass/</id>
    <published>2024-04-13T09:02:00+02:00</published>
    <updated>2024-04-13T09:02:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Lasse Haugen had enough of the never-ending &ldquo;we can&rsquo;t possibly deploy IPv6&rdquo; excuses and decided to start the <a href="https://whynoipv6.com/">IPv6 Shame-as-a-Service website</a>, documenting top websites that still don&rsquo;t offer IPv6 connectivity.</p>
<p>His list includes well-known entries like <em>twitter.com</em>, <em>azure.com</em>, and <em>github.com</em> plus a few unexpected ones. I find <em>cloudflare.net</em> not having an AAAA DNS record truly hilarious. Someone within the company that flawlessly provided my website with IPv6 connectivity for years obviously still has some reservations about their own dogfood ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[LISP vs EVPN: Mobility in Campus Networks]]></title>
    <link href="https://blog.ipspace.net/2024/04/mobility-campus-networks-lisp-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/mobility-campus-networks-lisp-evpn/</id>
    <published>2024-04-11T08:29:00+02:00</published>
    <updated>2024-04-11T08:29:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I decided not to get involved in the EVPN-versus-LISP debates anymore; I&rsquo;d <a href="/tag/lisp/">written everything I had to say about LISP</a>. However, I still get annoyed when experienced networking engineers fall for marketing gimmicks disguised as technical arguments. Here&rsquo;s a recent one:</p>

<figure><img src="/2024/04/juniper-campus-lisp-tweet.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/mobility-campus-networks-lisp-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Stateful Firewall Cluster High Availability Theater]]></title>
    <link href="https://blog.ipspace.net/2024/04/firewall-ha-theater/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/firewall-ha-theater/</id>
    <published>2024-04-10T07:59:00+02:00</published>
    <updated>2024-04-10T07:59:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Dmitry Perets wrote an <a href="/2024/01/bgp-graceful-restart-harmful/#2069">excellent description of how typical firewall cluster solutions implement control-plane high availability</a>, in particular, the routing protocol Graceful Restart feature (slightly edited):</p>
<hr>
<p>Most of the HA clustering solutions for stateful firewalls that I know implement a single-brain model, where the entire cluster is seen by the outside network as a single node. The node that is currently primary runs the control plane (hence, I call it single-brain). Sessions and the forwarding plane are synchronized between the nodes.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/firewall-ha-theater/'>Read more &hellip;</a></div>]]></content>
    <category term="firewall" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SR/MPLS Security Framework]]></title>
    <link href="https://blog.ipspace.net/2024/04/sr-mpls-security-framework/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/sr-mpls-security-framework/</id>
    <published>2024-04-09T09:10:00+02:00</published>
    <updated>2024-04-09T09:10:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>A long-time friend sent me this question:</p>
<blockquote>
<p>I would like your advice or a reference to a security framework I must consider when building a green field backbone in SR/MPLS.</p>
</blockquote>
<p>Before going into the details, keep in mind that the core SR/MPLS functionality is not much different than the traditional MPLS:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/sr-mpls-security-framework/'>Read more &hellip;</a></div>]]></content>
    <category term="segment routing" />
    <category term="MPLS" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.8.1: VRF OSPFv3, Integration Tests]]></title>
    <link href="https://blog.ipspace.net/2024/04/netlab-1-8-1-integration-tests/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/netlab-1-8-1-integration-tests/</id>
    <published>2024-04-08T11:25:00+02:00</published>
    <updated>2024-04-08T11:25:00+02:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/1.8/#release-1-8-1"><em>netlab</em> release 1.8.1</a> added a interesting few features, including:</p>
<ul>
<li><a href="https://netlab.tools/module/vrf/#module-vrf-platform-routing-support">OSPFv3 in VRFs</a>, implemented on Arista EOS, Cisco IOS, Cisco IOS-XE, FRR, and Junos (vMX, vPTX, vSRX).</li>
<li><a href="https://netlab.tools/module/bgp/#bgp-platform">EBGP sessions over IPv4 unnumbered and IPv6 LLA interfaces</a> on Arista EOS</li>
<li>Cisco IOS XRd container support</li>
<li><a href="https://netlab.tools/topology/validate/#validate-retry">Retry tests until the timeout</a> functionality in <strong><a href="https://netlab.tools/netlab/validate/#netlab-validate">netlab validate</a></strong>.</li>
</ul>
<p>This time, most of the work was done behind the scenes<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/netlab-1-8-1-integration-tests/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Cybersecurity Is Broken]]></title>
    <link href="https://blog.ipspace.net/2024/04/worth-reading-cybersecurity-broken/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/worth-reading-cybersecurity-broken/</id>
    <published>2024-04-06T09:30:00+01:00</published>
    <updated>2024-04-06T09:30:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Another cybersecurity rant worth reading: <a href="https://crankysec.com/blog/broken/">cybersecurity is broken due to lack of consequences</a>.</p>
<p>Bonus point: pointer to <a href="https://www.rfc-editor.org/rfc/rfc602.html">RFC 602</a> written in December 1973.</p>
]]></content>
    <category term="worth reading" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Are We Using EVPN Instead of SPB or TRILL?]]></title>
    <link href="https://blog.ipspace.net/2024/04/spb-trill-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/spb-trill-evpn/</id>
    <published>2024-04-05T08:17:00+02:00</published>
    <updated>2024-04-05T08:17:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Dan left an <a href="/2024/03/arista-interface-ebgp/#2153">interesting comment</a> on one of my <a href="/2024/03/arista-interface-ebgp/">previous blog posts</a>:</p>
<blockquote>
<p>It strikes me that the entire industry lost out when we didn&rsquo;t do SPB or TRILL. Specifically, I like how Avaya did SPB.</p>
</blockquote>
<p>Oh, we did TRILL. <a href="/2022/05/cisco-fabric-path-and-friends/">Three vendors</a> did it in different <a href="/2011/03/dont-lie-about-proprietary-protocols/">proprietary ways</a>, but I&rsquo;m digressing.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/spb-trill-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="bridging" />
    <category term="fabric" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Challenge: Build BGP-Free MPLS Core Network]]></title>
    <link href="https://blog.ipspace.net/2024/04/bgp-labs-mpls-core/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/bgp-labs-mpls-core/</id>
    <published>2024-04-04T08:22:00+02:00</published>
    <updated>2024-04-04T08:22:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another challenge for BGP aficionados: <a href="https://bgplabs.net/challenge/40-mpls-core/">build an MPLS-based transit network without BGP running on core routers</a>.</p>

<figure><img src="https://bgplabs.net/challenge/topology-mpls-core.png"/>
</figure>
<p>That should be an easy task if you configured MPLS in the past, so try to spice it up a bit:</p>
<ul>
<li>Use SR/MPLS instead of LDP</li>
<li>Do it on a platform you&rsquo;re not familiar with (hint: Arista vEOS is a bit different from Cisco IOS)</li>
<li>Try to get it running on FRR containers.</li>
</ul>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN Designs: VXLAN Leaf-and-Spine Fabric]]></title>
    <link href="https://blog.ipspace.net/2024/04/evpn-designs-vxlan-leaf-spine-fabric/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/evpn-designs-vxlan-leaf-spine-fabric/</id>
    <published>2024-04-03T07:45:00+01:00</published>
    <updated>2024-04-03T07:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In this series of blog posts, we&rsquo;ll explore numerous routing protocol designs that can be used to implement EVPN-with-VXLAN L2VPNs in a leaf-and-spine data center fabric. Every design will come with a companion <em>netlab</em> topology you can use to create a lab and explore the behavior of leaf- and spine switches.</p>
<p>Our leaf-and-spine fabric will have four leaves and two spines (but feel free to adjust the lab topology <strong>fabric</strong> parameters to build larger fabrics). The fabric will provide layer-2 connectivity to <strong>orange</strong> and <strong>blue</strong> VLANs. Two hosts will be connected to each VLAN to check end-to-end connectivity.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/evpn-designs-vxlan-leaf-spine-fabric/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="design" />
    <category term="netlab" />
    <category term="vxlan" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using wemulate with netlab]]></title>
    <link href="https://blog.ipspace.net/2024/04/netlab-wemulate/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/netlab-wemulate/</id>
    <published>2024-04-02T07:49:00+02:00</published>
    <updated>2024-04-02T07:49:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>An RSS hiccup brought an <a href="https://infrastructureascode.ch/wemulate-container.html">old blog post from Urs Baumann</a> into my RSS reader. I&rsquo;m always telling networking engineers that it&rsquo;s essential to set up realistic WAN environments when testing distributed software, and <a href="https://wemulate.github.io/wemulate/">wemulate</a> (a nice tc front-end) seemed like a perfect match. Even better, it runs in a container &ndash; an ideal component for a netlab-generated virtual WAN network.</p>
<p>wemulate acts as a bump in the wire; it uses Linux bridges to connect two container interfaces. We&rsquo;ll use it to introduce jitter into an IP subnet:</p>
<pre class="ascii">
┌──┐   ┌────────┐   ┌──┐
│h1├───┤wemulate├───┤h2│
└──┘   └────────┘   └──┘                       
◄──────────────────────►
     192.168.33.0/24    
</pre><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/netlab-wemulate/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: EBGP-Mostly Service Provider Network]]></title>
    <link href="https://blog.ipspace.net/2024/04/repost-ebgp-only-sp-network/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/04/repost-ebgp-only-sp-network/</id>
    <published>2024-04-01T08:08:00+02:00</published>
    <updated>2024-04-01T08:08:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Daryll Swer <a href="/2024/03/arista-interface-ebgp/#2157">left a long comment</a> describing how he designed a Service Provider network running in numerous private autonomous systems. While I might not agree with everything he wrote, it&rsquo;s an interesting idea and conceptually pretty similar to what we did 25 years ago (IBGP without IGP, running across physical interfaces, with every router being a route-reflector client of every other router), or how some very large networks were using BGP confederations.</p>
<p>Just remember (as someone from Cisco TAC told me in those days) that &ldquo;<em>you might be the only one in the world doing it and might hit bugs no one has seen before</em>.&rdquo;</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/04/repost-ebgp-only-sp-network/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Advertise the Default Route]]></title>
    <link href="https://blog.ipspace.net/2024/03/bgp-labs-default-route/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/bgp-labs-default-route/</id>
    <published>2024-03-28T08:44:00+01:00</published>
    <updated>2024-03-28T08:44:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>If you&rsquo;re an Internet Service Provider running BGP with your customers, you might not want to send them the whole Internet routing table. Sending the regional prefixes <em>and the default route</em> is usually good enough.</p>

<figure><img src="https://bgplabs.net/basic/topology-default-route.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/bgp-labs-default-route/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[FRRouting Claims IBGP Loopbacks Are Inaccessible]]></title>
    <link href="https://blog.ipspace.net/2024/03/frr-ibgp-loopbacks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/frr-ibgp-loopbacks/</id>
    <published>2024-03-27T08:10:00+01:00</published>
    <updated>2024-03-27T08:10:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, I explained the differences between FRRouting and more traditional networking operating systems in scenarios where <a href="/2024/03/frr-rib-fib/">OSPF and IBGP advertise the same prefix</a>:</p>
<ul>
<li>Traditional networking operating systems enter only the OSPF route into the IP routing table.</li>
<li>FRRouting enters OSPF and IBGP routes into the IP routing table.</li>
<li>On all platforms I&rsquo;ve tested, only the OSPF route gets into the forwarding table<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</li>
</ul>
<p>One could conclude that it&rsquo;s perfectly safe to advertise the same prefixes in OSPF and IBGP. The OSPF routes will be used within the autonomous system, and the IBGP routes will be propagated over EBGP to adjacent networks. Well, one would be surprised 🤦‍♂️</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/frr-ibgp-loopbacks/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSI Layers in Routing Protocols]]></title>
    <link href="https://blog.ipspace.net/2024/03/routing-protocols-osi-layers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/routing-protocols-osi-layers/</id>
    <published>2024-03-26T06:53:00+01:00</published>
    <updated>2024-03-26T06:53:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Now and then, someone <a href="/2009/06/is-is-is-not-running-over-clnp/">rediscovers that IS-IS does not run on top of CLNP or IP</a> and claims that, therefore, it must be a layer-2 protocol. Even <a href="https://www.juniper.net/documentation/us/en/software/junos/is-is/topics/concept/isis-layer2-mapping.html">vendors&rsquo; documentation</a> is not immune.</p>
<p>Interestingly, most routing protocols span the whole seven layers of the OSI stack, with some layers implemented internally and others offloaded to other standardized protocols.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/routing-protocols-osi-layers/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Building Leaf-and-Spine Fabrics with the Fabric Plugin]]></title>
    <link href="https://blog.ipspace.net/2024/03/netlab-fabric-plugin/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/netlab-fabric-plugin/</id>
    <published>2024-03-25T09:43:00+01:00</published>
    <updated>2024-03-25T09:43:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> <a href="https://netlab.tools/release/1.7/#release-1-7-0">release 1.7.0</a> added the <a href="https://netlab.tools/plugins/fabric/">fabric plugin</a> that simplifies building lab topologies with leaf-and-spine fabrics. All you have to do to build a full-blown leaf-and-spine fabric is:</p>
<ul>
<li>Specify the default device type</li>
<li>Enable the <strong>fabric</strong> plugin</li>
<li>Specify the number of leaves and spines in the fabric.</li>
</ul>
<p>For example, the following lab topology builds a fabric with Arista cEOS containers having two spines and four leaves:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/netlab-fabric-plugin/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Things We Know about Network Queues]]></title>
    <link href="https://blog.ipspace.net/2024/03/worth-reading-what-we-know-about-queues/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/worth-reading-what-we-know-about-queues/</id>
    <published>2024-03-23T09:41:00+01:00</published>
    <updated>2024-03-23T09:41:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Every time someone tries to persuade you to buy (expensive) big-buffer data center switches, take an antidote: the <a href="https://apenwarr.ca/log/20170814">Things we (finally) know about network queues</a> article by <a href="https://www.linkedin.com/in/apenwarr/">Avery Pennarun</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="QoS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Stop the Fat-Finger Incidents]]></title>
    <link href="https://blog.ipspace.net/2024/03/bgp-labs-stop-configuration-errors/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/bgp-labs-stop-configuration-errors/</id>
    <published>2024-03-21T09:04:00+01:00</published>
    <updated>2024-03-21T09:04:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Last time, we discussed the first line of defense against fat finger incidents: <a href="https://bgplabs.net/basic/b-max-prefix/">limiting the number of BGP prefixes your router accepts from a BGP neighbor</a>. However, you can do much more without deploying customer-specific filters (which might require a customer database) or ROV/RPKI.</p>
<p>You can practice the default filters you should always deploy on EBGP sessions with your customers in the <a href="https://bgplabs.net/challenge/04-block-fat-fingers/">Stop the Propagation of Configuration Errors</a> lab exercise.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[FRRouting RIB and FIB]]></title>
    <link href="https://blog.ipspace.net/2024/03/frr-rib-fib/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/frr-rib-fib/</id>
    <published>2024-03-20T07:39:00+01:00</published>
    <updated>2024-03-20T07:39:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>This is how we <a href="/2010/09/ribs-and-fibs/">described the interactions</a> between routing protocol tables, RIB, and FIB in the ancient times:</p>
<ul>
<li>Routing protocols compute the best paths to all known prefixes.</li>
<li>These paths compete for entry in the routing table. The path(s) with the lowest administrative distance win.</li>
<li>The entries from the routing table are fully evaluated (in particular, their next hops) and entered in the forwarding table.</li>
</ul>
<p>Let&rsquo;s use a simple BGP+OSPF network to illustrate what I&rsquo;m talking about:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/frr-rib-fib/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interface EBGP Sessions on Arista EOS]]></title>
    <link href="https://blog.ipspace.net/2024/03/arista-interface-ebgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/arista-interface-ebgp/</id>
    <published>2024-03-19T07:48:00+01:00</published>
    <updated>2024-03-19T07:48:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Arista EOS and Cisco Nexus OS got <em>interface EBGP sessions</em> years after <a href="/2015/02/bgp-configuration-made-simple-with/">Cumulus Linux</a>. While they&rsquo;re trivially easy to configure on FRRouting (the routing daemon used by Cumulus Linux), getting them to work on Arista EOS is a bit tricky.</p>
<p>To make matters worse, my Google-Fu failed me when I tried to find a decent step-by-step configuration guide; all I got was a 12-minute video full of YouTube ads. Let&rsquo;s fix that.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/arista-interface-ebgp/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running netlab and BGP Labs on Apple Silicon]]></title>
    <link href="https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/</id>
    <published>2024-03-18T08:01:00+01:00</published>
    <updated>2025-12-05T19:33:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I usually say that you cannot run netlab on Apple Silicon because the vendors don&rsquo;t provide ARM images. However, when I saw an ARM version of the FRRouting container, I wondered whether I could run the BGP labs (admittedly only on FRR containers) on my M2 MacBook Pro.</p>
<p><strong>TL&amp;DR:</strong> Yes, you can do that.</p>
<p>Now for the recipe:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: History of Ethernet]]></title>
    <link href="https://blog.ipspace.net/2024/03/worth-reading-history-of-ethernet/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/worth-reading-history-of-ethernet/</id>
    <published>2024-03-16T08:16:00+01:00</published>
    <updated>2024-03-16T08:16:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="https://ipj.dreamhosters.com/wp-content/uploads/2024/03/271-ipj.pdf">March 2024 Internet Protocol Journal</a> has a lengthy article on the history and &ldquo;future&rdquo; of Ethernet that might be worth reading (although it&rsquo;s short on details) if you weren&rsquo;t around when it all started.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Intro to Real Life Network Automation]]></title>
    <link href="https://blog.ipspace.net/2024/03/video-intro-netops/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/video-intro-netops/</id>
    <published>2024-03-15T07:48:00+01:00</published>
    <updated>2024-03-15T07:48:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/ubaumannch/">Urs Baumann</a> invited me to have a guest lecture in his network automation course, and so I had the privilege of being in lovely Rapperswil last week, talking about the basics of real-life network automation.</p>
<p>Urs published <a href="https://youtu.be/T4gPoSqaCHU">the video recording of the presentation</a> on YouTube; hope you&rsquo;ll like it, and if you don&rsquo;t get too annoyed by the overly pushy ads, watch the <a href="https://www.youtube.com/@infrastructureascode">other videos from his infrastructure-as-code course</a>.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Data Center Fabric Designs: Size Matters]]></title>
    <link href="https://blog.ipspace.net/2024/03/fabric-designs-size-matters/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/fabric-designs-size-matters/</id>
    <published>2024-03-14T08:55:00+01:00</published>
    <updated>2024-03-14T08:55:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The &ldquo;<em>should we use the same vendor for fabric spines and leaves?</em>&rdquo; discussion triggered the expected counterexamples. Here&rsquo;s one:</p>
<blockquote>
<p>I actually have worked with a few orgs that mix vendors at both spine and leaf layer. Can’t take names but they run fairly large streaming services. To me it seems like a play to avoid vendor lock-in, drive price points down and be in front of supply chain issues.</p>
</blockquote>
<p>As always, one has to keep two things in mind:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/fabric-designs-size-matters/'>Read more &hellip;</a></div>]]></content>
    <category term="fabric" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP AS Numbers for a Private MPLS/VPN Backbone]]></title>
    <link href="https://blog.ipspace.net/2024/03/asn-private-mpls-backbone/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/asn-private-mpls-backbone/</id>
    <published>2024-03-13T08:30:00+01:00</published>
    <updated>2024-03-13T08:30:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers was building a private MPLS/VPN backbone and wondered whether they should use their public AS number or a private AS number for the backbone. Usually, it doesn&rsquo;t matter; the deciding point was the way they want to connect to the public Internet:</p>
<blockquote>
<p>We also plan to peer with multiple external ISPs to advertise our public IP space not directly from our PE routers but from dedicated Internet Routers, adding a firewall between our PEs and external Internet routers.</p>
</blockquote>
<p>They could either run BGP between the PE routers, firewall, and WAN routers (see <a href="/kb/BGPHighAvailability/">BGP as High-Availability Protocol</a> for more details) or run BGP <em>across</em> a bump-in-the-wire firewall:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/asn-private-mpls-backbone/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS VPN" />
    <category term="BGP" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPF Summarization and Split Areas]]></title>
    <link href="https://blog.ipspace.net/2024/03/ospf-split-areas-summarization/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/ospf-split-areas-summarization/</id>
    <published>2024-03-12T07:39:00+01:00</published>
    <updated>2024-03-12T07:39:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2016/09/do-we-still-need-ospf-areas-and/">Do We Still Need OSPF Areas and Summarization?</a> I wrote this somewhat cryptic remark:</p>
<blockquote>
<p>The routers advertising a summarized prefix should be connected by a path going exclusively through the part of the network with more specific prefixes. GRE tunnel also satisfies that criteria; the proof is left as an exercise for the reader.</p>
</blockquote>
<p>One of my readers asked for a lengthier explanation, so here we go. Imagine a network with two areas doing inter-area summarization on /24 boundary:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/ospf-split-areas-summarization/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cyber Crane Mesh Topology Built with netlab]]></title>
    <link href="https://blog.ipspace.net/2024/03/netlab-cyber-crane-mesh-lab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/netlab-cyber-crane-mesh-lab/</id>
    <published>2024-03-11T08:57:00+01:00</published>
    <updated>2024-03-11T08:57:00+01:00</updated>
    
    <content type="html"><![CDATA[<p class="sideicon"><a href="https://github.com/ipspace/netlab-examples/blob/master/multi-platform/cyber-crane-mesh/img/cyber-crane-mesh.png"><img src="https://raw.githubusercontent.com/ipspace/netlab-examples/master/multi-platform/cyber-crane-mesh/img/cyber-crane-mesh.png" alt=""></a></p>
<p><a href="https://www.linkedin.com/in/milanzapletal/">Milan Zapletal</a> submitted the <a href="https://github.com/ipspace/netlab-examples/tree/master/multi-platform/cyber-crane-mesh">source code</a> for a huge lab topology they built with <em><a href="https://github.com/ipspace/netlab-examples/discussions">netlab</a></em>. It has almost 50 routers and over 50 Linux nodes to emulate end-users and servers.</p>
<p>They used <em>netlab</em> to configure VLANs, VRFs, IS-IS, OSPF, EIGRP, BGP, MPLS, VXLAN, and EVPN. Imagine how long it would take to configure all that by hand using a more traditional labbing tool.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/netlab-cyber-crane-mesh-lab/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Talent Gap in IT]]></title>
    <link href="https://blog.ipspace.net/2024/03/worth-reading-talent-gap/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/worth-reading-talent-gap/</id>
    <published>2024-03-10T08:03:00+01:00</published>
    <updated>2024-03-10T08:03:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>If you need a good rant about Thought Leaders, Talent Gap, and Certification-Based-Hiring, look no further than <a href="https://crankysec.com/blog/gap/">I see a different gap from here!</a>. Here&rsquo;s a choice tidbit:</p>
<blockquote>
<p>Every single job description that requires some sort of certification must be treated with suspicion. Demanding a certification usually means that you don&rsquo;t know what you want, and you&rsquo;re just outsourcing your thinking to someone else.</p>
</blockquote>
<p>Have fun!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: PCAP Analysis with Generative AI]]></title>
    <link href="https://blog.ipspace.net/2024/03/worth-reading-chatgpt-packet-buddy/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/worth-reading-chatgpt-packet-buddy/</id>
    <published>2024-03-09T08:16:00+01:00</published>
    <updated>2024-03-09T08:16:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/john-capobianco-644a1515/">John Capobianco</a> published the source code of his
<a href="https://github.com/automateyournetwork/packet_buddy">Packet Buddy</a> application on GitHub. It&rsquo;s a Python UI that takes a PCAP file, converts it to JSON, and includes that JSON as part of the ChatGPT chat, allowing you to discuss the captured packets with ChatGPT.</p>
<p>His idea is one of the best uses of generative AI in networking I&rsquo;ve seen so far, as long as you remember that you&rsquo;re dealing with an overconfident intern who has no problem making up an answer just to sound smart. Have fun!</p>
<p>Finally, if you don&rsquo;t want to use ChatGPT (I wouldn&rsquo;t blame you) or send captured data into The Cloud, someone already <a href="https://github.com/kspviswa/local-packet-whisperer">adapted his idea to use local LLMs</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Limit the Number of Accepted BGP Prefixes]]></title>
    <link href="https://blog.ipspace.net/2024/03/bgp-labs-max-prefix/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/bgp-labs-max-prefix/</id>
    <published>2024-03-07T09:27:00+01:00</published>
    <updated>2024-03-07T09:27:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s an easy way to stop fat-finger incidents in which an end-user autonomous system redistributes IGP into BGP or advertises the whole DFZ routing table from affecting the entire Internet: limit the number of BGP prefixes your routers accept from your customers. You can practice this nifty feature in the <a href="https://bgplabs.net/basic/b-max-prefix/">next BGP lab exercise</a>.</p>

<figure><img src="https://bgplabs.net/basic/topology-max-prefix.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multiline Expressions in Ansible Playbooks]]></title>
    <link href="https://blog.ipspace.net/2024/03/ansible-multiline-expressions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/ansible-multiline-expressions/</id>
    <published>2024-03-06T07:33:00+01:00</published>
    <updated>2024-03-07T16:05:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Another week, another Ansible quirk 🤷‍♂️ Imagine you have a long Jinja2 expression, and you want to wrap it into multiple lines to improve readability. Using multiline YAML format seems to be the ideal choice:</p>
<pre tabindex="0"><code>---
- name: Test playbook
  hosts: localhost
  tasks:
  - set_fact:
      a: &gt;
        {{ 123 == 345 or
           123 &gt; 345 }}
</code></pre><p>It works every time 50% of the time (this time depending on your Ansible version).</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/ansible-multiline-expressions/'>Read more &hellip;</a></div>]]></content>
    <category term="Ansible" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Rant: Multi-Vendor EVPN Fabrics]]></title>
    <link href="https://blog.ipspace.net/2024/03/multivendor-evpn-revisited/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/multivendor-evpn-revisited/</id>
    <published>2024-03-05T08:36:00+01:00</published>
    <updated>2024-03-05T08:36:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://twitter.com/danieldibswe">Daniel Dib</a> tweeted about an <a href="/2022/09/mlag-bridging-evpn/#1420">old comment of mine</a> a few days ago, adding<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>

<figure><img src="/2024/03/tweet-ddib-evpn.jpg"/>
</figure>
<p>Not surprisingly, that was bound to upset a few people, and <a href="https://twitter.com/ntdvps">Roman Dodin</a> quickly pointed out the EVPN interoperability tests:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/multivendor-evpn-revisited/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.8.0: Control-Plane Daemons, BIRD, dnsmasq]]></title>
    <link href="https://blog.ipspace.net/2024/03/netlab-1-8-0-daemons-bird/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/netlab-1-8-0-daemons-bird/</id>
    <published>2024-03-04T08:25:00+01:00</published>
    <updated>2024-03-04T08:25:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I wanted to include open-source networking-related software into <em>netlab</em> topologies since (at least) the days I was writing the <a href="/series/dhcp-relay/">DHCP relaying saga</a>. It turned out to be a bit more complex than I anticipated (more about that in another blog post), but I hope you&rsquo;ll find it useful. <a href="https://netlab.tools/release/1.8/"><em>netlab</em> release 1.8.0</a> includes <a href="https://netlab.tools/platforms/#platform-daemons"><em>dnsmasq</em> running as a DHCP server</a> and BIRD <a href="https://netlab.tools/caveats/#bird-internet-routing-daemon">running OSPF and BGP</a>. ExaBGP and GoBGP are already on the wish list; if you have any other ideas, please start a GitHub discussion.</p>
<p>I had a hard time finding reasonable container images for BIRD;  the BIRD team does not publish them, and everything else I found looked either abandoned or a hobby project. The solution turned out to be exceedingly simple: you cannot run the containers without Docker anyway, which means the <strong>docker build</strong> command is just a few keystrokes away. I added <em>Dockerfiles</em> needed to build those containers to the <em>netlab</em> source code and implemented the <strong>netlab clab build</strong> command as a thin wrapper around <strong>docker build</strong>. It takes just a few seconds (plus the time it takes to download the Ubuntu container image) to build the containers you need.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/03/netlab-1-8-0-daemons-bird/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Unbloating the Buffers]]></title>
    <link href="https://blog.ipspace.net/2024/03/worth-reading-unbloating-buffers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/worth-reading-unbloating-buffers/</id>
    <published>2024-03-03T07:25:00+01:00</published>
    <updated>2024-03-03T07:25:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In case you&rsquo;ve heard about <em>bufferbloat</em> but don&rsquo;t know what it is: Dan Groshev wrote a nice <a href="https://blog.apnic.net/2024/02/12/unbloating-the-buffers/">bufferbloat for dummies</a> blog post on the APNIC blog.</p>
]]></content>
    <category term="QoS" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab on Packet Pushers]]></title>
    <link href="https://blog.ipspace.net/2024/03/netlab-packet-pushers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/03/netlab-packet-pushers/</id>
    <published>2024-03-01T07:09:00+01:00</published>
    <updated>2024-03-01T07:09:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, Ethan Banks invited me to chat about <em><a href="https://netlab.tools/">netlab</a></em>, and we had great fun discussing its intricacies for almost an hour. I also managed to win the Buzzword Bingo describing <em>netlab</em> as</p>
<blockquote>
<p>Intent-based infrastructure-as-code digital twins lifecycle management system</p>
</blockquote>
<p>The podcast was published a few days ago; listen to it on the <a href="https://packetpushers.net/podcasts/heavy-networking/hn722-ivan-pepelnjaks-netlab-eliminates-the-tedious-bits-of-labbing/">PacketPushers website</a> or YouTube.</p>
<div class='jump-link'><a href="https://packetpushers.net/podcasts/heavy-networking/hn722-ivan-pepelnjaks-netlab-eliminates-the-tedious-bits-of-labbing/">Listen to the podcast</a></div>
]]></content>
    <category term="podcast" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Policy Templates]]></title>
    <link href="https://blog.ipspace.net/2024/02/bgp-labs-policy-templates/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/bgp-labs-policy-templates/</id>
    <published>2024-02-29T08:00:00+01:00</published>
    <updated>2024-02-29T08:00:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the previous BGP labs explained how you can use <em>session templates</em> to configure common TCP or BGP session parameters. Some BGP implementations have another templating mechanism: <em>policy templates</em> that you can use to apply consistent routing policy parameters to an EBGP neighbor. You can practice them in the <a href="https://bgplabs.net/session/7-policy/">next BGP lab exercise</a>.</p>

<figure><img src="https://bgplabs.net/session/topology-policy-template.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DHCP Relaying on a Linux Host]]></title>
    <link href="https://blog.ipspace.net/2024/02/dhcp-relaying-linux-host/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/dhcp-relaying-linux-host/</id>
    <published>2024-02-28T07:02:00+00:00</published>
    <updated>2024-03-02T20:33:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Markku Leiniö sent me an interesting observation after writing a series of <a href="https://majornetwork.net/2023/06/dhcp-relay-part-3-two-relays-two-servers/">DHCP-relaying-related blog posts</a>:</p>
<blockquote>
<p>I was first using VyOS, but it uses the ISC DHCP relay, and that software relays unicast packets. The DHCP procedures eventually worked fine, but getting sensible outputs and explanations was a nightmare.</p>
</blockquote>
<p>I quickly reproduced the behavior, but it took me almost half a year to turn it into a blog post. Engaging in a round of yak shaving (I wanted to <a href="https://netlab.tools/module/dhcp/">implement DHCP in netlab first</a>) didn&rsquo;t exactly help, either.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/dhcp-relaying-linux-host/'>Read more &hellip;</a></div>]]></content>
    <category term="DHCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[VXLAN Virtual Labs Have Never Been Easier]]></title>
    <link href="https://blog.ipspace.net/2024/02/netlab-vxlan-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/netlab-vxlan-labs/</id>
    <published>2024-02-27T13:00:00+01:00</published>
    <updated>2024-06-30T10:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I stumbled upon an &ldquo;<em>I want to dive deep into VXLAN and plan to build a virtual lab</em>&rdquo; discussion on LinkedIn<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Of course, I suggested using <em>netlab</em>. After all, you have to build an IP core and VLAN access networks and connect a few clients to those access networks before you can start playing with VXLAN, and those things tend to be excruciatingly dull.</p>
<p>Now imagine you decide to use <em><a href="https://netlab.tools/">netlab</a></em>. Out of the box, you get <a href="https://netlab.tools/topology-overview/">topology management</a>, lab orchestration, <a href="https://netlab.tools/example/addressing-tutorial/">IPAM</a>, routing protocol design (<a href="https://netlab.tools/module/ospf/">OSPF</a>, <a href="https://netlab.tools/module/bgp/">BGP</a>, and <a href="https://netlab.tools/module/isis/">IS-IS</a>), and device configurations, including IP routing and VLANs.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/netlab-vxlan-labs/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Ansible Set Operations Do Not Preserve List Order]]></title>
    <link href="https://blog.ipspace.net/2024/02/ansible-set-operations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/ansible-set-operations/</id>
    <published>2024-02-26T07:08:00+01:00</published>
    <updated>2024-02-26T07:08:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another Ansible quirk, this time caused by Python set behavior.</p>
<p>When I created the <a href="https://netlab.tools/netlab/initial/">initial device configuration deployment</a> playbook in <em><a href="https://netlab.tools/">netlab</a></em>, I wanted to:</p>
<ul>
<li>Be able to specify a list of modules to provision.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></li>
<li>Provision just the modules used in the topology <em>and</em> specified in the list of modules.</li>
</ul>
<p>This allows you to use <code>netlab initial</code> to deploy all configuration modules used in a lab topology or <code>netlab initial -m ospf</code> to deploy just OSPF while surviving <code>netlab initial -m foo</code> (which would do nothing).</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/ansible-set-operations/'>Read more &hellip;</a></div>]]></content>
    <category term="Ansible" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Popular git config options]]></title>
    <link href="https://blog.ipspace.net/2024/02/worth-reading-popular-git-config-options/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/worth-reading-popular-git-config-options/</id>
    <published>2024-02-23T07:07:00+01:00</published>
    <updated>2024-02-23T07:07:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Another must-explore gem by Julia Evans: <a href="https://jvns.ca/blog/2024/02/16/popular-git-config-options/">Popular git config options</a>.</p>
<p>Side note: I keep collecting links to insightful Git articles in the <a href="https://my.ipspace.net/bin/list?id=NetTools#GIT">Git and GitHub section</a> of the <a href="https://www.ipspace.net/Network_Automation_Tools">Network Automation Tools</a> webinar.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Remove Private AS from AS-Path]]></title>
    <link href="https://blog.ipspace.net/2024/02/bgp-labs-remove-private-as/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/bgp-labs-remove-private-as/</id>
    <published>2024-02-22T07:49:00+01:00</published>
    <updated>2024-02-22T07:49:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In a <a href="https://bgplabs.net/session/3-localas/">previous BGP lab exercise</a>, I described how an Internet Service Provider could run BGP with a customer without the customer having a public BGP AS number. The only drawback of that approach: the private BGP AS number gets into the AS path, and everyone else on the Internet starts giving you dirty looks (or drops your prefixes).</p>

<figure><img src="https://bgplabs.net/session/topology-removeprivate.png"/>
</figure>
<p>Let&rsquo;s fix that. Most BGP implementations have some <strong>remove private AS</strong> functionality that scrubs AS paths during outgoing update processing. You can practice it in the <a href="https://bgplabs.net/session/4-removeprivate/">Remove Private BGP AS Numbers from the AS Path</a> lab exercise.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Implementing 'Undo' Functionality in Network Automation]]></title>
    <link href="https://blog.ipspace.net/2024/02/undo-network-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/undo-network-automation/</id>
    <published>2024-02-21T07:06:00+00:00</published>
    <updated>2024-02-21T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Kurt_Wauters">Kurt Wauters</a> sent me an interesting challenge: <em>how do we do rollbacks based on customer requests?</em> Here&rsquo;s a typical scenario:</p>
<blockquote>
<p>You might have deployed a change that works perfectly fine from a network perspective but broke a customer application (for example, due to undocumented usage), so you must be able to return to the previous state even if everything works. Everybody says you need to “roll forward” (improve your change so it works), but you don’t always have that luxury and might need to take a step back. So, change tracking is essential.</p>
</blockquote>
<p>He&rsquo;s right: the <em>undo</em> functionality we take for granted in consumer software (for example, Microsoft Word) has totally spoiled us.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/undo-network-automation/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Applying BGP Policy Templates]]></title>
    <link href="https://blog.ipspace.net/2024/02/applying-bgp-policy-templates/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/applying-bgp-policy-templates/</id>
    <published>2024-02-20T07:25:00+01:00</published>
    <updated>2024-02-20T07:25:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I got this question after publishing the <a href="/2024/02/bgp-labs-session-templates/">BGP Session Templates</a> lab exercise:</p>
<blockquote>
<p>Would you apply BGP route maps with a peer/policy template or directly to a BGP neighbor? Of course, it depends; however, I believe in using a template for neighbors with the same general parameters and being more specific per neighbor when it comes to route manipulation.</p>
</blockquote>
<p>As my reader already pointed out, the correct answer is <em>It Depends</em>, now let&rsquo;s dig into the details ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/applying-bgp-policy-templates/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Layer: Interface or Node Addresses]]></title>
    <link href="https://blog.ipspace.net/2024/02/interface-node-addresses/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/interface-node-addresses/</id>
    <published>2024-02-19T11:22:00+01:00</published>
    <updated>2024-02-19T11:22:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>The fun question about network layer addresses is: are we addressing nodes or individual node interfaces? On the data link layer, we never had this issue because it was obvious that a data link layer endpoint is an interface, so each interface should have a unique data link layer address.</p>
<p>Interestingly, that&rsquo;s not the case on transparent bridges. Even though they have multiple interfaces, the whole bridge has a single MAC address, so one could claim we&rsquo;re addressing nodes connected to a single data link layer. The IEEE standard is unambiguous: in every relevant diagram, the MAC address sits on top of multiple interfaces because the MAC address belongs to the control plane.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/interface-node-addresses/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Session Templates]]></title>
    <link href="https://blog.ipspace.net/2024/02/bgp-labs-session-templates/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/bgp-labs-session-templates/</id>
    <published>2024-02-14T07:35:00+01:00</published>
    <updated>2024-02-14T07:35:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Configuring an IBGP session on a route reflector takes a half-dozen parameters, starting with the remote BGP AS number (equal to the local one), remote IP address, and the source IP address or interface. You might have to specify the propagation of BGP communities and an MD5 password, and you will definitely have to specify that the BGP neighbor is a route reflector client.</p>
<p>Wouldn&rsquo;t it be nice if you could group those parameters into a template and apply the template to a neighbor? Most BGP implementations have something along those lines. That feature could be called a <em>session template</em> or a <em>peer group</em>, and you can practice it in the <a href="https://bgplabs.net/session/6-templates/">next BGP lab exercise</a>.</p>

<figure><img src="https://bgplabs.net/session/topology-session-templates.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Can We Skip the Network Layer?]]></title>
    <link href="https://blog.ipspace.net/2024/02/skip-network-layer/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/skip-network-layer/</id>
    <published>2024-02-12T10:52:00+01:00</published>
    <updated>2024-02-12T10:52:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I mentioned that <a href="/2023/09/addresses-in-network-stack/">you don&rsquo;t need node addresses when dealing with only two entities</a>. Now and then, someone tries to extend this concept and suggests that the network layer addressing isn’t needed if the solution is local. For instance, if we have a solution that is supposed to run only on a single Ethernet segment, we don’t need network layer addressing because we already have data link layer addresses required for Ethernet to work (see also: <a href="/2010/09/ataoe-for-converged-data-center/">ATAoE</a>).</p>
<p>Too often in the past, an overly ingenious engineer or programmer got the idea to simplify everyone&rsquo;s life and use the data link layer addresses as the ultimate addresses of individual nodes. They would then put the transport layer on top of that to get reliable packet transport. Finally, put whatever application on top of the transport layer. Problem solved.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/skip-network-layer/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Removing FRRouting Configuration Is Not Idempotent]]></title>
    <link href="https://blog.ipspace.net/2024/02/frr-bgp-prefix-origination/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/frr-bgp-prefix-origination/</id>
    <published>2024-02-07T08:22:00+01:00</published>
    <updated>2024-02-09T19:07:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the few beauties of most &ldquo;industry standard CLI&rdquo; implementations<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> is that they&rsquo;re idempotent: nothing changes (apart from ACLs) if you configure the same stuff a dozen times. Most of these implementations allow you to deconfigure the same stuff multiple times; FRRouting is one of the unfortunate exceptions.</p>
<div  class="note">
I&rsquo;m not saying what FRRouting does is wrong. It&rsquo;s just different and a bit unexpected once you get into the mindset of &ldquo;Wow, it looks almost like Cisco IOS.&rdquo;
</div>
<h3 id="what-am-i-talking-about">What Am I Talking About?</h3>
<p>Imagine you have a bunch of IP prefixes you want to advertise with BGP. You could use <strong>network</strong> statements within the <strong>router bgp</strong> configuration to get that done:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/02/frr-bgp-prefix-origination/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Use Multiple AS Numbers on the Same Router]]></title>
    <link href="https://blog.ipspace.net/2024/02/bgp-labs-local-as/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/02/bgp-labs-local-as/</id>
    <published>2024-02-06T07:43:00+01:00</published>
    <updated>2024-02-06T07:43:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Can you use BGP to connect to the global Internet without having a public BGP AS number? Of course, assuming your Internet Service Provider is willing to run BGP with a network using a private AS number. But what happens if you want to connect to two ISPs? It&rsquo;s ridiculous to expect you&rsquo;ll be able to persuade them to use the same private AS number.</p>

<figure><img src="https://bgplabs.net/session/topology-localas.png"/>
</figure>
<p>That&rsquo;s one of the many use cases for the <strong>local-as</strong> functionality available in most BGP implementations. You can practice it in the <a href="https://bgplabs.net/session/3-localas/">Use Multiple AS Numbers on the Same Router</a> lab exercise.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Precedence of Ansible Extra Variables]]></title>
    <link href="https://blog.ipspace.net/2024/01/ansible-extra-variable-precedence/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/ansible-extra-variable-precedence/</id>
    <published>2024-01-31T08:35:00+01:00</published>
    <updated>2024-01-31T08:35:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I stay as far away from Ansible as possible these days and use it only as a workflow engine to generate device configurations from Jinja2 templates and push them to lab devices. Still, I manage to trigger unexpected behavior even in these simple scenarios.</p>
<p>Ansible has a <a href="https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#ansible-variable-precedence">complex system of variable (fact) precedence</a>, which mostly makes sense considering the dozen places where a variable value might be specified (or overwritten). Ansible documentation also clearly states that the <em>extra variables</em> (specified on the command line with the <code>-e</code> keyword) have the highest precedence.</p>
<p>Now consider these simple playbooks. In the first one, we&rsquo;ll set a fact (variable) and then print it out:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/01/ansible-extra-variable-precedence/'>Read more &hellip;</a></div>]]></content>
    <category term="ansible" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Override Neighbor AS Number in AS Path]]></title>
    <link href="https://blog.ipspace.net/2024/01/bgp-labs-as-override/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/bgp-labs-as-override/</id>
    <published>2024-01-30T09:47:00+01:00</published>
    <updated>2024-01-30T09:47:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I described the <a href="/2024/01/bgp-labs-reuse-as-number/">need to turn off the BGP AS-path loop prevention logic</a> in scenarios where a Service Provider expects a customer to reuse the same AS number across multiple sites, someone quipped, &ldquo;<em>but that should be fixed by the Service Provider, not offloaded to the customer.</em>&rdquo;</p>
<p>Not surprisingly, there&rsquo;s a nerd knob for that (AS override), and you can practice it in the next BGP lab exercise: <a href="https://bgplabs.net/session/2-asoverride/">Fix AS-Path in Environments Reusing BGP AS Numbers</a>.</p>

<figure><img src="https://bgplabs.net/session/topology-asoverride.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Availability Zones in VMware NSX-Based Cloud]]></title>
    <link href="https://blog.ipspace.net/2024/01/vmware-nsx-availability-zones/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/vmware-nsx-availability-zones/</id>
    <published>2024-01-25T09:48:00+01:00</published>
    <updated>2024-01-25T09:48:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>One of the ipSpace.net subscribers sent me this question:</p>
<blockquote>
<p>How could I use NSX to create a cloud-like software network layer enabling a VMware enterprise to create a public cloud-like availability zone concept within a data center (something like Oracle Cloud does)?</p>
</blockquote>
<p>That&rsquo;s easy: stop believing in <a href="/2020/09/disaster-recovery-vendor-marketing/">VMware marketing shenanigans</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/01/vmware-nsx-availability-zones/'>Read more &hellip;</a></div>]]></content>
    <category term="NSX" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Podcast: Network Automation Source(s) of Truth]]></title>
    <link href="https://blog.ipspace.net/2024/01/podcast-source-truth/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/podcast-source-truth/</id>
    <published>2024-01-23T09:22:00+01:00</published>
    <updated>2024-01-23T09:22:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Figuring out how to describe your network (also known as &ldquo;<em>create a source of truth</em>&rdquo;) is one of the most challenging tasks you&rsquo;ll face when building a network automation solution (<a href="/series/ssot/">more</a>). As always, the devil is in the details, starting with &ldquo;<em>and what exactly is The Truth?</em>&rdquo;.</p>
<p>We discussed those details in a lively <a href="https://packetpushers.net/podcasts/heavy-networking/hn717-network-sources-of-truth-a-roundtable-discussion/">Packet Pushers podcast</a> with Claudia de Luna,  David Sinn, Dinesh Dutt, Drew Conry-Murray and Ethan Banks. Have fun!</p>
<div class='jump-link'><a href="https://packetpushers.net/podcasts/heavy-networking/hn717-network-sources-of-truth-a-roundtable-discussion/">Listen to the podcast</a></div>
]]></content>
    <category term="network automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Work with FRR and Cumulus Linux]]></title>
    <link href="https://blog.ipspace.net/2024/01/bgp-labs-use-cumulus-frr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/bgp-labs-use-cumulus-frr/</id>
    <published>2024-01-19T09:45:00+01:00</published>
    <updated>2024-01-19T09:45:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>FRR or (pre-NVUE) Cumulus Linux are the <a href="/2023/06/learn-routing-protocols-frr/">best bets</a> if you want to run BGP labs in a resource-constrained environment like your laptop or a small public cloud instance. However, they both behave a bit differently from what one might expect from a networking device, including:</p>
<ul>
<li>Interfaces are created through standard Linux tools;</li>
<li>You have to start the FRR management CLI from the Linux shell;</li>
<li>If you need a routing daemon (for example, the BGP daemon), you must enable it in the FRR configuration file and restart FRR.</li>
</ul>
<p>A <a href="https://bgplabs.net/basic/0-frrouting/">new lab exercise</a> covers these intricate details and will help you get fluent in configuring BGP on FRR or Cumulus Linux virtual machines or containers.</p>
<div class='jump-link'><a href="https://bgplabs.net/basic/0-frrouting/">Explore the lab exercise</a></div>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Graceful Restart Considered Harmful]]></title>
    <link href="https://blog.ipspace.net/2024/01/bgp-graceful-restart-harmful/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/bgp-graceful-restart-harmful/</id>
    <published>2024-01-16T08:37:00+01:00</published>
    <updated>2024-01-16T08:37:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A networking engineer with a picture-perfect implementation of a dual-homed enterprise site using BGP communities according to <a href="https://www.rfc-editor.org/rfc/rfc1998.html">RFC 1998</a> to select primary- and backup uplinks contacted me because they experienced unacceptably long failover times.</p>
<p>They measured the failover times caused by the primary uplink loss and figured out it takes more than five minutes to reestablish Internet connectivity to their site.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/01/bgp-graceful-restart-harmful/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is It The End, Or Can You Do Something in 2024?]]></title>
    <link href="https://blog.ipspace.net/2024/01/networking-2024/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/networking-2024/</id>
    <published>2024-01-12T07:47:00+01:00</published>
    <updated>2024-01-12T07:47:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.youtube.com/@davidbombal">David Bombal</a> invited me for another annual chat last December, focusing on (what else) networking careers in 2024. The results <a href="https://www.youtube.com/watch?v=0f19JuhhQvM">were published</a> a few days ago, and I was amazed at how good it turned out. I always love chatting with David; this time, his editing team did a masterful job.</p>
<div class='jump-link'><a href="https://www.youtube.com/watch?v=0f19JuhhQvM">Watch the video</a></div>
]]></content>
    <category term="video" />
    <category term="certifications" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.7.1: Eye Candy]]></title>
    <link href="https://blog.ipspace.net/2024/01/netlab-1-7-1-eye-candy/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/netlab-1-7-1-eye-candy/</id>
    <published>2024-01-11T08:20:00+01:00</published>
    <updated>2024-01-11T08:20:00+01:00</updated>
    
    <content type="html"><![CDATA[<p class="sideicon"><img src="/2024/01/xmas.jpg" alt=""></p>
<p>What do you get when you write code next to a Christmas tree? You can expect to get tons of eye candy, and that&rsquo;s what <a href="https://netlab.tools/release/1.7/#release-1-7-1"><em>netlab</em> release 1.7.1</a> is all about.</p>
<p>It all started with a cleanup idea: I could <a href="https://github.com/ipspace/netlab/issues/969">replace the internal ASCII table-drawing code with the <code>prettytable</code> library</a>. Stefan was quick to point out that I should be looking at the <code>rich</code> library, and the rest is history:</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/01/netlab-1-7-1-eye-candy/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Registration No Longer Needed to Download Free PDFs]]></title>
    <link href="https://blog.ipspace.net/2024/01/cleanup-pdf-download/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/cleanup-pdf-download/</id>
    <published>2024-01-10T07:41:00+01:00</published>
    <updated>2024-01-10T07:41:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I published dozens of free-to-download slide decks on ipSpace.net. Downloading them required the <em>free ipSpace.net subscription</em> which is no longer available because I refuse to play a whack-a-mole game with spammers.</p>
<p>You might like the workaround I had to implement to keep those PDFs accessible: they are no longer behind a regwall.</p>
<p>You can find the list of all the free content ipSpace.net content <a href="https://www.ipspace.net/Subscription/Free">here</a>. The <a href="https://www.ipspace.net/Presentations/">Conferences and Presentations</a> page is another source of links to public presentations.</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Reuse BGP AS Number Across Sites]]></title>
    <link href="https://blog.ipspace.net/2024/01/bgp-labs-reuse-as-number/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/bgp-labs-reuse-as-number/</id>
    <published>2024-01-09T08:28:00+01:00</published>
    <updated>2024-01-09T08:28:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I published the <a href="https://bgplabs.net/basic/5-redistribute/">Bidirectional Route Redistribution</a> lab exercise, some readers were <a href="/2023/09/bgp-labs-redistribute/#1920">quick to point out</a> that you&rsquo;ll probably have to reuse the same AS number across multiple sites in a real-life MPLS/VPN deployment. That&rsquo;s what you can practice in <a href="https://bgplabs.net/session/1-allowas_in/">today&rsquo;s lab exercise</a> &ndash; an MPLS/VPN service provider allocated the same BGP AS number to all your sites and expects you to deal with the aftermath.</p>

<figure><img src="https://bgplabs.net/session/topology-allowas.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[On Routing Protocol Metrics]]></title>
    <link href="https://blog.ipspace.net/2024/01/routing-protocol-metrics/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/routing-protocol-metrics/</id>
    <published>2024-01-08T07:38:00+01:00</published>
    <updated>2024-01-08T07:38:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>This LinkedIn snippet just came in from the <em>someone is not exactly right on the Internet</em> department:</p>
<blockquote>
<p>Unlike IGP protocols, BGP is not dependent on a single type of metric to choose the best path.</p>
</blockquote>
<p>EIGRP is an immediate counterexample that brought the above quote to my attention, but it&rsquo;s worth exploring the topic in more detail.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/01/routing-protocol-metrics/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Upcoming BGP Labs, 2024 Edition]]></title>
    <link href="https://blog.ipspace.net/2024/01/upcoming-bgp-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/upcoming-bgp-labs/</id>
    <published>2024-01-04T10:29:00+01:00</published>
    <updated>2024-01-04T10:29:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s that time of the year when we create unreachable goals and make empty promises to ourselves (or others) that we subconsciously know we&rsquo;ll fail.</p>
<p>I tried to make that process a bit more structured and create external storage for my lab ideas &ndash; I started publishing more details on future BGP lab scenarios. The lab descriptions contain a high-level overview of the challenge and the lab topology; the details will be filled in later.</p>
<p>Want to know what&rsquo;s coming in 2024? Check out the <a href="https://bgplabs.net/3-upcoming/">Upcoming Labs</a> page of the <a href="https://bgplabs.net/">BGP Labs</a> project.</p>
]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Public Cloud Networking Hands-On Exercises]]></title>
    <link href="https://blog.ipspace.net/2024/01/public-cloud-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/public-cloud-labs/</id>
    <published>2024-01-03T09:37:00+01:00</published>
    <updated>2024-01-03T09:37:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I got this request from someone who just <a href="/2024/01/goodbye-ipspace-subscription/">missed the opportunity to buy the ipSpace.net subscription</a> (or so he claims) earlier today</p>
<blockquote>
<p>I am inspired to learn AWS advanced networking concepts and came across your website and webinar resources. But I cannot access it.</p>
</blockquote>
<p>That is not exactly true. I wrote more than <a href="/">4000 blog posts in the past</a>, and some of them dealt with <a href="/tag/cloud/">public cloud networking</a>. There are also <a href="https://www.ipspace.net/Subscription/Free">the free videos</a>, some of them addressing <a href="https://my.ipspace.net/bin/list?id=Cloud101#NET">public cloud networking</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/01/public-cloud-labs/'>Read more &hellip;</a></div>]]></content>
    <category term="cloud" />
    <category term="AWS" />
    <category term="Azure" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Goodbye, ipSpace.net Subscription]]></title>
    <link href="https://blog.ipspace.net/2024/01/goodbye-ipspace-subscription/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2024/01/goodbye-ipspace-subscription/</id>
    <published>2024-01-01T13:34:00+01:00</published>
    <updated>2024-01-01T13:34:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I ran the first webinar as an independent author almost exactly fourteen years ago<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, with the first ticket sold just before New Year&rsquo;s Eve. I kept focusing on individual webinars until someone asked me, &ldquo;<em>Would it be possible to buy access to everything you did?</em>&rdquo; His question effectively created the ipSpace.net subscription, with the first one sold in late 2010 (I still have the email that triggered the whole process).</p><div class='jump-link'><a href='https://blog.ipspace.net/2024/01/goodbye-ipspace-subscription/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[End-of-Year Cleanup: OSPF Blog Posts]]></title>
    <link href="https://blog.ipspace.net/2023/12/cleanup-ospf/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/cleanup-ospf/</id>
    <published>2023-12-21T08:20:00+01:00</published>
    <updated>2023-12-21T08:20:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After procrastinating for months, I finally spent a few days cleaning up and organizing OSPF blog posts (it turns out I wrote almost 100 blog posts on the topic in the 18 years of blogging).</p>
<div class='jump-link'><a href="/tag/ospf/">Explore the results</a></div>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Setting Source IP Address on Traffic Started by a Multihomed Host]]></title>
    <link href="https://blog.ipspace.net/2023/12/source-ip-address-outgoing-multihomed-traffic/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/source-ip-address-outgoing-multihomed-traffic/</id>
    <published>2023-12-20T08:39:00+01:00</published>
    <updated>2023-12-20T08:39:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2023/05/failure-detection-server-dual-homing/">Path Failure Detection on Multi-Homed Servers</a> blog post, I mentioned <a href="/2016/02/running-bgp-on-servers/">running BGP on servers</a> as one of the best ways to detect server-to-network failures. As always, things aren&rsquo;t as simple as they look, as <a href="/2023/05/failure-detection-server-dual-homing/#1855">Cathal Mooney quickly pointed out</a>:</p>
<blockquote>
<p>One annoyance is what IP address gets used by default by the system for outbound traffic. It would be nice to have a generic OS-level way to say, &ldquo;This IP on lo0 should be default for outbound IP traffic unless to the connected link subnet itself.&rdquo;</p>
</blockquote>
<p>That&rsquo;s definitely a tough nut to crack, and Cathal described a few solutions he used in the past:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/source-ip-address-outgoing-multihomed-traffic/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="TCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Challenge: Merge Autonomous Systems]]></title>
    <link href="https://blog.ipspace.net/2023/12/bgp-challenge-merge-networks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/bgp-challenge-merge-networks/</id>
    <published>2023-12-19T08:24:00+01:00</published>
    <updated>2023-12-19T08:24:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s a challenge in case you get bored during the Christmas break: <a href="https://bgplabs.net/challenge/20-merge-as/">merge two networks running BGP</a> (two autonomous systems) without changing anything but the configurations of the routers connecting them (the red BGP session in the diagram). I won&rsquo;t give you any hints; you can discuss it in the comments or a <a href="https://github.com/bgplab/bgplab/discussions/2">GitHub discussion</a>.</p>

<figure><img src="https://bgplabs.net/challenge/topology-merge-as.png"/>
</figure>
<p>Hopefully, you won&rsquo;t have to deal with something similar in real life, but then we know that crazy requirements trump good designs any day of the week.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Review: Unnumbered Interfaces in netlab]]></title>
    <link href="https://blog.ipspace.net/2023/12/netlab-unnumbered-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/netlab-unnumbered-interfaces/</id>
    <published>2023-12-18T08:23:00+01:00</published>
    <updated>2023-12-18T08:23:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, <a href="https://www.networkfuntimes.com/about/">Chris Parker</a> published a nice blog post explaining how to <a href="https://www.networkfuntimes.com/is-is-and-unnumbered-ethernet-interfaces-in-junos/">configure unnumbered interfaces with IS-IS in Junos</a>. It&rsquo;s well worth reading, but like my <a href="/2021/06/unnumbered-ethernet-interfaces/">Unnumbered Ethernet Interfaces</a> blog post, it only covers one network operating system. What if you want to do something similar on another platform?</p>
<p>How about using the collective efforts of the team developing device configuration templates for <em><a href="https://github.com/ipspace/netlab">netlab</a></em>? As of December 2023 <em>netlab</em> supports:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/netlab-unnumbered-interfaces/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The AI Supply Paradox]]></title>
    <link href="https://blog.ipspace.net/2023/12/worth-reading-ai-supply-paradox/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/worth-reading-ai-supply-paradox/</id>
    <published>2023-12-17T06:57:00+00:00</published>
    <updated>2023-12-17T06:57:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Eric Hoel published a <a href="https://www.theintrinsicperspective.com/p/excuse-me-but-the-industries-ai-is">spot-on analysis of AI disruptiveness</a>, including this gem:</p>
<blockquote>
<p>The easier it is to train an AI to do something, the less economically valuable that thing is. After all, the huge supply of the thing is how the AI got so good in the first place.</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: AI can easily disrupt things that are easy to generate and thus have little value. Seeing investors trying to recoup the billions pouring into the latest fad will be fun.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: State-of-the-Art AI]]></title>
    <link href="https://blog.ipspace.net/2023/12/worth-reading-state-of-the-art-ai/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/worth-reading-state-of-the-art-ai/</id>
    <published>2023-12-16T08:46:00+01:00</published>
    <updated>2023-12-16T08:46:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/gerbenwierda/">Gerben Wierda</a> published another AI-buster article describing <a href="https://ea.rna.nl/2023/12/08/state-of-the-art-gemini-gpt-and-friends-take-a-shot-at-learning/">what exactly &ldquo;state-of-the-art&rdquo; means in AI benchmarks</a>.</p>
<p><strong>Hint</strong>: you give an AI model 32 step-by-step examples before asking a question, and it still gets it wrong 10% of the time.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Language Model Basics]]></title>
    <link href="https://blog.ipspace.net/2023/12/video-llm-basics/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/video-llm-basics/</id>
    <published>2023-12-15T07:57:00+01:00</published>
    <updated>2023-12-15T07:57:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After a brief introduction of how the <a href="https://my.ipspace.net/bin/get/AI/L1%20-%20Language%20Models%20in%20AI%20Landscape.mp4?doccode=AI">language models fit into the AI/ML landscape</a>, <a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> explained the <a href="https://my.ipspace.net/bin/get/AI/L2%20-%20Language%20Model%20Basics.mp4?doccode=AI">language model basics</a>, including auto-regression, types of language models, the specifics of <em>large</em> language models, and potential use cases,</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/L2%20-%20Language%20Model%20Basics.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Version-Specific Topology Files]]></title>
    <link href="https://blog.ipspace.net/2023/12/netlab-version-specific-topology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/netlab-version-specific-topology/</id>
    <published>2023-12-14T08:18:00+01:00</published>
    <updated>2023-12-14T08:18:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR</strong>: If you&rsquo;re using <em><a href="https://netlab.tools/">netlab</a></em> to build labs for your personal use, you can skip this one, but if you plan to use it to create training labs (like my <a href="https://bgplabs.net/">BGP labs</a> project), you might want to keep reading.</p>
<p>Like any complex enough tool, <em>netlab</em> eventually had to deal with inconsistent version-specific functionality and configuration syntax (OK, topology attributes). I stumbled upon this challenge when I wanted to make labs that use two types of configurable devices.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/netlab-version-specific-topology/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Use BGP Communities in a Routing Policy]]></title>
    <link href="https://blog.ipspace.net/2023/12/bgp-labs-use-bgp-community/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/bgp-labs-use-bgp-community/</id>
    <published>2023-12-13T07:50:00+01:00</published>
    <updated>2023-12-13T07:50:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>A <a href="https://bgplabs.net/policy/8-community-attach/">previous BGP lab</a> focused on the customer side of BGP communities: adding them to BGP updates to influence upstream ISP behavior. <a href="https://bgplabs.net/policy/9-community-use/">Today&rsquo;s lab</a> focuses on the ISP side of the equation: using BGP communities in a routing policy to implement <a href="https://www.rfc-editor.org/rfc/rfc1998.html">RFC 1998-style behavior</a>.</p>

<figure><img src="https://bgplabs.net/policy/topology-community-use.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interviewing a Network Engineer Using a Single Scenario]]></title>
    <link href="https://blog.ipspace.net/2023/12/worth-reading-interview-single-scenario/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/worth-reading-interview-single-scenario/</id>
    <published>2023-12-12T11:07:00+01:00</published>
    <updated>2023-12-12T11:07:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>I <a href="/tag/certifications/">always said</a> that the <a href="/2020/09/worth-reading-iron-chef-certification-edition/">Trivia Pursuit certification tests </a>(or job interviews) are nonsense and that one <a href="/2015/03/you-must-understand-fundamentals-to-be/">should focus on fundamentals</a>.</p>
<p>In a recent blog post, Daniel Dib <a href="https://lostintransit.se/2023/12/06/how-to-interview-a-network-engineer-using-a-single-scenario/">described a fantastic scenario</a>: using a simple &ldquo;<em>why can&rsquo;t I connect to a web site</em>&rdquo; question, explore everything from ARP/ND to DNS and TLS.</p>
<p>Obviously, you&rsquo;ll never see anything that sane in a certification test. An interactive interview doesn&rsquo;t scale (beyond CCDE), and using humans (and common sense judgment) creates potential legal liabilities (there were rumors that had been one of the reasons a talk with a proctor who could flunk you was dropped from the CCIE test).</p>
]]></content>
    <category term="worth reading" />
    <category term="certifications" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: Vendor Network Automation Tools]]></title>
    <link href="https://blog.ipspace.net/2023/12/vendor-automation-tools/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/vendor-automation-tools/</id>
    <published>2023-12-11T08:03:00+01:00</published>
    <updated>2023-12-11T08:03:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Drew Conry-Murray published a <a href="https://packetpushers.net/3-takeaways-from-autocon0/">excellent summary of his takeaways from the AutoCon0 event</a>, including this one:</p>
<blockquote>
<p>Most companies want vendor-supported tools that will actually help them be more efficient, reduce human error, and increase the velocity at which the network team can support new apps and services.</p>
</blockquote>
<p>Yeah, that&rsquo;s nothing new. Most Service Providers wanted vendors to add tons of nerd knobs to their products to adapt them to existing network designs. Obviously, it must be done for free because a vast purchase order<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> is dangling in the air. We&rsquo;ve seen how well that worked, yet learned nothing from that experience.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/vendor-automation-tools/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Network CI and Open Source]]></title>
    <link href="https://blog.ipspace.net/2023/12/worth-reading-network-ci-github-runners/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/worth-reading-network-ci-github-runners/</id>
    <published>2023-12-10T08:12:00+01:00</published>
    <updated>2023-12-10T08:12:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Did you find the <a href="/2023/11/worth-reading-automation-github-actions/">Network Automation with GitHub Actions</a> blog post interesting? Here are some more GitHub Self-Hosted Runner goodies from Julio Perez: <a href="https://juliopdx.com/2023/11/25/network-ci-and-open-source/">Network CI and Open Source &ndash; Welcome to the World of Tomorrow</a>. Enjoy!</p>
]]></content>
    <category term="automation" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: SRv6 Test Topologies]]></title>
    <link href="https://blog.ipspace.net/2023/12/worth-reading-srv6-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/worth-reading-srv6-labs/</id>
    <published>2023-12-09T08:05:00+01:00</published>
    <updated>2023-12-09T08:05:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Want to explore SRv6? Cisco engineers put together a
<a href="https://github.com/segmentrouting/srv6-labs">repository containing scripts and configs for building SRv6 test topologies</a>. It works with Containerlab and FRR (unless you want to beg a Cisco account team for a Cisco 8000 image or make a sandwich while the IOS XRd image is booting).</p>
<p>Want to use <em>netlab</em>? <a href="https://www.linkedin.com/in/jeroenvbemmel/">Jeroen van Bemmel</a> implemented <a href="https://netlab.tools/module/srv6/">baseline SRv6 support</a> for Nokia SR OS.</p>
]]></content>
    <category term="segment routing" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: netlab IP Address Management (IPAM)]]></title>
    <link href="https://blog.ipspace.net/2023/12/video-netlab-ipam/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/video-netlab-ipam/</id>
    <published>2023-12-08T08:19:00+01:00</published>
    <updated>2023-12-08T08:19:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Did you know that <a href="https://netlab.tools/">netlab</a> includes full-blown IP address management? You can <a href="https://netlab.tools/example/addressing-tutorial/#customize-address-pools">define address pools</a> (or use predefined ones) and get IPv4 and IPv6 prefixes from those pools <a href="https://netlab.tools/example/addressing-tutorial/#using-built-in-address-pools">assigned to links, interfaces, and loopbacks</a>. You can also assign <a href="https://netlab.tools/example/addressing-tutorial/#static-link-prefixes">static prefixes to links</a>, use <a href="https://netlab.tools/example/addressing-tutorial/#static-node-addressing">static IP addresses</a>, interface addresses as an offset within the link subnet, or use <a href="https://netlab.tools/example/addressing-tutorial/#unnumbered-links">unnumbered interfaces</a>.</p>
<p>For an overview of <em>netlab</em> IPAM, watch the <a href="https://my.ipspace.net/bin/get/NetTools/N5%20-%20netlab%20Address%20Management.mp4?doccode=NetTools">netlab address management</a> video (part of the <a href="https://www.ipspace.net/Network_Automation_Tools">Network Automation Tools</a> webinar), for more details read the <a href="https://netlab.tools/example/addressing-tutorial/">netlab addressing tutorial</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetTools/N5%20-%20netlab%20Address%20Management.mp4?doccode=NetTools">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video and <a href="https://www.ipspace.net/Subscription">Standard ipSpace.net Subscription</a> to watch the rest of the webinar.
</div>
]]></content>
    <category term="video" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[AMS-IX Outage: Layer-2 Strikes Again]]></title>
    <link href="https://blog.ipspace.net/2023/12/ams-ix-layer-2-strikes-again/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/ams-ix-layer-2-strikes-again/</id>
    <published>2023-12-07T08:18:00+00:00</published>
    <updated>2023-12-07T08:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>On November 22nd, 2023, AMS-IX, one of the largest Internet exchanges in Europe, experienced a significant performance drop lasting more than four hours. While its peak performance is around 10 Tbps, it dropped to about 2.1 Tbps during the outage.</p>
<p>AMS-IX published a <a href="https://www.ams-ix.net/ams/outage-on-amsterdam-peering-platform">very sanitized and diplomatic post-mortem incident summary</a> in which they explained the outage was caused by <em>LACP leakage</em>. That phrase should be a red flag, but let&rsquo;s dig deeper into the details.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/ams-ix-layer-2-strikes-again/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Use BGP Route Reflectors]]></title>
    <link href="https://blog.ipspace.net/2023/12/bgp-labs-route-reflectors/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/bgp-labs-route-reflectors/</id>
    <published>2023-12-06T07:36:00+00:00</published>
    <updated>2023-12-06T07:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous BGP labs, we <a href="https://bgplabs.net/ibgp/1-edge/">built a network with two adjacent BGP routers</a> and a <a href="https://bgplabs.net/ibgp/2-transit/">larger transit network using IBGP</a>. Now let&rsquo;s make our transit network scalable with <a href="https://bgplabs.net/ibgp/3-rr/">BGP route reflectors</a>, this time using a slightly larger network:</p>

<figure><img src="https://bgplabs.net/ibgp/topology-leaf-spine.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.7.0: Lab Validation, Fabrics, BGP Nerd Knobs]]></title>
    <link href="https://blog.ipspace.net/2023/12/netlab-1-7-0-validation-plugins/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/netlab-1-7-0-validation-plugins/</id>
    <published>2023-12-05T05:50:00+00:00</published>
    <updated>2023-12-05T05:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s been a while since the <a href="/2023/10/netlab-1-6-4-more-bgp-nerd-knobs/">last netlab release</a>. Most of that time was spent refactoring stuff that you don&rsquo;t care about, but you might like these features:</p>
<ul>
<li>You can run automated <a href="https://netlab.tools/topology/validate/">lab validation tests</a> with the  <strong><a href="https://netlab.tools/netlab/validate/">netlab validate</a></strong> command. I will explain how I use that in <a href="https://bgplabs.net/">BGP labs</a> in a few days.</li>
<li>If you want to build large leaf-and-spine topologies, you&rsquo;ll love the <a href="https://netlab.tools/plugins/fabric/"><strong>fabric</strong> plugin</a>.</li>
<li>The <a href="https://netlab.tools/plugins/bgp.domain/"><strong>bgp.domain</strong> plugin</a> allows you to create topologies with multiple sites using the same BGP AS number.</li>
<li>The <a href="https://netlab.tools/plugins/bgp.policy/"><strong>bgp.policy</strong> plugin</a> got AS-path prepending.</li>
<li><a href="https://netlab.tools/plugins/bgp.originate/"><strong>bgp.originate</strong> plugin</a> can be used to originate BGP IPv4 and IPv6 prefixes.</li>
</ul>
<p>As always, we also improved the platform support:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/netlab-1-7-0-validation-plugins/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The BGP Origin Attribute]]></title>
    <link href="https://blog.ipspace.net/2023/12/bgp-origin-attribute/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/bgp-origin-attribute/</id>
    <published>2023-12-04T07:02:00+00:00</published>
    <updated>2023-12-04T07:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/kristijan-taskovski/">Kristijan Taskovski</a> asked an interesting question related to my <a href="https://bgplabs.net/policy/7-prepend/">BGP AS-prepending lab</a>:</p>
<blockquote>
<p>I&rsquo;ve never personally done this on the net but&hellip;.wouldn&rsquo;t the BGP origin code also work with moving one&rsquo;s ingress traffic similarly to AS PATH?</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: Sort of, but not exactly. Also, just because you can climb up ropes using shoelaces instead of <a href="https://en.wikipedia.org/wiki/Ascender_(climbing)">jumars</a> doesn&rsquo;t mean you should.</p>
<p>Let&rsquo;s deal with the <em>moving traffic</em> bit first.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/bgp-origin-attribute/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: DNS over IPv6]]></title>
    <link href="https://blog.ipspace.net/2023/12/worth-reading-dns-ipv6/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/worth-reading-dns-ipv6/</id>
    <published>2023-12-03T07:44:00+00:00</published>
    <updated>2023-12-03T07:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>What happens when you let a bunch of people work on different aspects of a solution without them ever talking to each other? You get DNS over IPv6. As <a href="https://www.potaroo.net/ispcol/2023-11/dns-ipv6.html">nicely explained by Geoff Huston</a>, this is just one of the bad things that could happen:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/12/worth-reading-dns-ipv6/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Use of HTTPS DNS Resource Records]]></title>
    <link href="https://blog.ipspace.net/2023/12/worth-reading-dns-https-resource-records/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/12/worth-reading-dns-https-resource-records/</id>
    <published>2023-12-02T09:16:00+01:00</published>
    <updated>2023-12-02T09:16:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Around 30 years after we got the first website, the powers that be realized it might make sense to put <em>this is how you access a web server</em> information (including its IPv4 and IPv6 address, and HTTP(S) support information) directly into DNS, using <a href="https://www.netmeister.org/blog/https-rrs.html">HTTPS Resource Records</a>. It took us long enough 🤷‍♂️</p>
]]></content>
    <category term="DNS" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The BGP Multi-Exit Discriminator (MED) Saga]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-med-saga/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-med-saga/</id>
    <published>2023-11-30T07:54:00+00:00</published>
    <updated>2023-11-30T07:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/martijnvanoverbeek-ccie38666/">Martijn Van Overbeek</a> left this comment on my <a href="https://www.linkedin.com/posts/ivanpepelnjak_bgp-labs-using-multi-exit-discriminator-activity-7130543496884555776-uqIQ">LinkedIn post</a> announcing the <a href="/2023/11/bgp-labs-multi-exit-discriminator/">BGP MED lab</a>:</p>
<blockquote>
<p>It might be fixed, but I can recall in the past that there was a lot of quirkiness in multi-vendor environments, especially in how different vendors use it and deal with the setting when the attribute does exist or does not have to exist.</p>
</blockquote>
<p><strong>TL&amp;DR:</strong> He&rsquo;s right. It has been fixed (mostly), but the nerd knobs never went away.</p>
<p>In case you&rsquo;re wondering about the root cause, it was the vagueness of RFC 1771. Now for the full story ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/bgp-med-saga/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Set BGP Communities on Outgoing Updates]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-labs-set-bgp-community/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-labs-set-bgp-community/</id>
    <published>2023-11-29T07:21:00+00:00</published>
    <updated>2023-11-29T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s hard to influence the behavior of someone with strong opinions (just ask any parent with a screaming toddler), and trying to persuade an upstream ISP not to send the traffic over a backup link is no exception &ndash; sometimes even AS path prepending is not a strong enough argument.</p>
<p>An easy solution to this problem was proposed in 1990s &ndash; what if we could attach <a href="https://www.rfc-editor.org/rfc/rfc1997.html">some extra attributes</a> (called <em>communities</em> just to confuse everyone) to BGP updates and use them to <a href="https://www.rfc-editor.org/rfc/rfc1998.html">tell adjacent autonomous systems to lower their BGP local preference</a>? You can practice doing that in the <em><a href="https://bgplabs.net/policy/8-community-attach/">Attach BGP Communities to Outgoing BGP Updates</a></em> lab exercise.</p>

<figure><img src="https://bgplabs.net/policy/topology-community-attach.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Can a Router Use the Default Route to Reach BGP Next Hops?]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-next-hop-via-default-route/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-next-hop-via-default-route/</id>
    <published>2023-11-27T07:22:00+00:00</published>
    <updated>2023-11-27T07:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR</strong>: Yes.</p>
<p>Starting with RFC 4271, <a href="https://datatracker.ietf.org/doc/html/rfc4271#section-9.1.2.1">Route Resolvability Condition</a>:</p>
<ul>
<li>A route without an outgoing interface is resolvable if its next hop is resolvable without recursively using the same route.</li>
<li>A route with an outgoing interface is always considered resolvable.</li>
<li>BGP routes can be resolved through routes with just a next hop or an outgoing interface.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/bgp-next-hop-via-default-route/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Network Automation with GitHub Actions]]></title>
    <link href="https://blog.ipspace.net/2023/11/worth-reading-automation-github-actions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/worth-reading-automation-github-actions/</id>
    <published>2023-11-26T07:27:00+01:00</published>
    <updated>2023-11-26T07:27:00+01:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/davitiani/">George Davitiani</a> put together a lovely proof-of-concept <a href="https://github.com/gdmoney/network-automation-github-actions">using GitHub actions to deploy modified configurations</a> to network devices. Even better, he documented the whole setup, and the way to reproduce it. I&rsquo;m positive you&rsquo;ll find a few ideas browsing through what he did.</p>
<div class='jump-link'><a href="https://github.com/gdmoney/network-automation-github-actions">Start exploring</a></div>
]]></content>
    <category term="automation" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Going CCNP Emeritus]]></title>
    <link href="https://blog.ipspace.net/2023/11/worth-reading-going-ccnp-emeritus/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/worth-reading-going-ccnp-emeritus/</id>
    <published>2023-11-25T07:44:00+00:00</published>
    <updated>2023-11-25T07:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Teycheney decided not to renew his CCNP status and used this opportunity to publish <a href="https://blog.danielteycheney.com/posts/im-going-ccnp-emeritus/">his thoughts on IT certifications</a>. Not surprisingly, I agree with most of the things he said, but I never put it in writing so succinctly.</p>
<p><strong>Red Pill Warning:</strong> Reading his blog post might damage your rosy view of the networking industry. You&rsquo;ve been warned ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Language Models in AI/ML Landscape]]></title>
    <link href="https://blog.ipspace.net/2023/11/video-llm-ai-landscape/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/video-llm-ai-landscape/</id>
    <published>2023-11-24T08:06:00+01:00</published>
    <updated>2023-11-24T08:06:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>In September 2023, <a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> extended the <em><a href="https://www.ipspace.net/AI_and_ML_in_Networking">AI/ML in Networking</a></em> webinar with a new section <a href="https://my.ipspace.net/bin/list?id=AI#LLM">describing large language models (LLMs)</a>, starting with <a href="https://my.ipspace.net/bin/get/AI/L1%20-%20Language%20Models%20in%20AI%20Landscape.mp4?doccode=AI">how do the LLMs fit into the AI/ML landscape?</a></p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/L1%20-%20Language%20Models%20in%20AI%20Landscape.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: AS-Path Prepending]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-labs-as-path-prepending/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-labs-as-path-prepending/</id>
    <published>2023-11-23T07:43:00+00:00</published>
    <updated>2023-11-23T07:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous lab, you learned how to use <a href="https://bgplabs.net/policy/6-med/">BGP Multi-Exit Discriminator (MED)</a> to influence incoming traffic flow. Unfortunately, MED works only with parallel links to the same network. In a typical <em>Redundant Internet Connectivity</em> scenario, you want to have links to two ISPs, so you need a bigger hammer: <a href="https://bgplabs.net/policy/7-prepend/">AS Path Prepending</a>.</p>

<figure><img src="https://bgplabs.net/policy/topology-prepend.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Do We Need BGP Identifiers?]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-router-id/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-router-id/</id>
    <published>2023-11-22T07:29:00+00:00</published>
    <updated>2023-11-22T07:29:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine sent me an interesting question along these lines:</p>
<blockquote>
<p>We all know that in OSPF, the router ID is any 32-bit number, not necessarily an IP address of an interface. The only requirement is that it must be unique throughout the OSPF domain. However, I&rsquo;ve always wondered what the role of BGP router ID is. RFC 4271 says it should be set to an IP address assigned to that BGP speaker, but where do we use it?</p>
</blockquote>
<p>Also, he observed somewhat confusing behavior in the wild:</p>
<blockquote>
<p>Take two routers and configure the same BGP identifier on both. Cisco IOS will not establish a session, while IOS XR and Junos will.</p>
</blockquote>
<p>I decided to take the challenge and dug deep into the bowels of <a href="https://datatracker.ietf.org/doc/html/rfc4271">RFC 4271</a> and <a href="https://datatracker.ietf.org/doc/html/rfc6286">RFC 6286</a>. Here&rsquo;s what I brought back from that rabbit hole:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/bgp-router-id/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is BGP TTL Security Any Good?]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-ttl-security-shortcomings/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-ttl-security-shortcomings/</id>
    <published>2023-11-21T07:38:00+00:00</published>
    <updated>2023-11-21T07:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After checking what routers do when they <a href="/2023/10/reject-unknown-bgp-session/">receive a TCP SYN packet from an unknown source</a>, I couldn&rsquo;t resist checking how they cope with TCP SYN packets with too-low TTL when using TTL security, formally known as The Generalized TTL Security Mechanism (GTSM) defined in <a href="https://datatracker.ietf.org/doc/html/rfc5082">RFC 5082</a>.</p>
<p><strong>TL&amp;DR:</strong> Not bad: most devices I managed to test did a decent job.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/bgp-ttl-security-shortcomings/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[VXLAN/EVPN Layer-3 Handoff (L3Out) on Arista EOS]]></title>
    <link href="https://blog.ipspace.net/2023/11/arista-evpn-l3out-handoff/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/arista-evpn-l3out-handoff/</id>
    <published>2023-11-20T07:11:00+00:00</published>
    <updated>2023-11-20T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, I published a blog post describing how to <a href="/2023/09/evpn-wan-handoff-l3out/">establish a LAN/WAN L3 boundary in VXLAN/EVPN networks using Cisco NX-OS</a>. At that time, I promised similar information for Arista EOS. Here it is, coming straight from <a href="https://www.linkedin.com/in/massimo-magnani-8b3a59/">Massimo Magnani</a>. The useful part of what follows is his; all errors were introduced during my editing process.</p>
<hr>
<p>In the cases I have dealt with so far, implementing the LAN-WAN boundary has the main benefit of limiting the churn blast radius to the local domain, trying to impact the remote ones as little as possible. To achieve that, we decided to go for a hierarchical solution where you create two domains, local (default) and remote, and maintain them as separate as possible.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/arista-evpn-l3out-handoff/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Outages Caused by Bugs in BGP Implementations]]></title>
    <link href="https://blog.ipspace.net/2023/11/video-bgp-bugs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/video-bgp-bugs/</id>
    <published>2023-11-17T07:11:00+00:00</published>
    <updated>2023-11-17T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The previous BGP-related videos described how <a href="/2023/10/video-history-bgp-route-leaks/">fat fingers</a> and <a href="/2023/11/video-bgp-hijacks-fun-profit/">malicious actors</a> cause Internet outages.</p>
<p>Today, we&rsquo;ll focus on the <a href="https://my.ipspace.net/bin/get/Net101/NS5.3%20-%20Disruptions%20Caused%20by%20BGP%20Bugs.mp4?doccode=Net101">impact of bugs in BGP implementations</a>, from <a href="/2009/02/root-cause-analysis-oversized-as-paths/">malformed AS paths</a> to <a href="https://labs.ripe.net/author/erik/ripe-ncc-and-duke-university-bgp-experiment/">mishandled transitive attributes</a>. The examples in the video are a few years old, but you can <a href="https://blog.benjojo.co.uk/post/bgp-path-attributes-grave-error-handling">see similar things in the wild in 2023</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NS5.3%20-%20Disruptions%20Caused%20by%20BGP%20Bugs.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need at least <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a> to watch videos in this webinar.
</div>
]]></content>
    <category term="BGP" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Cloudflare Control Plane Outage]]></title>
    <link href="https://blog.ipspace.net/2023/11/worth-reading-comments-cloudflare-outage/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/worth-reading-comments-cloudflare-outage/</id>
    <published>2023-11-16T09:04:00+00:00</published>
    <updated>2023-11-16T09:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Cloudflare experienced a significant outage in early November 2023 and published a detailed <a href="https://blog.cloudflare.com/post-mortem-on-cloudflare-control-plane-and-analytics-outage/">post-mortem report</a>. You should read the whole report; here are my CliffsNotes:</p>
<ul>
<li>Regardless of how much redundancy you have, <a href="/2012/10/if-something-can-fail-it-will/">sometimes all systems will fail at once</a>. Having redundant systems <a href="/2017/09/redundancy-does-not-result-in-resiliency/">decreases the probability of total failure</a> but does not reduce it to zero.</li>
<li>As your systems grow, they gather <a href="/2021/10/circular-dependencies-considered-harmful/">hidden- and circular dependencies</a>.</li>
<li>You won&rsquo;t uncover those dependencies unless you run a full-blown disaster recovery test (not a <a href="/2019/09/disaster-recovery-test-faking-another/">fake one</a>)</li>
<li>If you <a href="/2019/10/disaster-recovery-faking-take-two/">don&rsquo;t test your disaster recovery plan</a>, it probably won&rsquo;t work when needed.</li>
</ul>
<p>Also (unrelated to Cloudflare outage):</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/worth-reading-comments-cloudflare-outage/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Using Multi-Exit Discriminator (MED)]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-labs-multi-exit-discriminator/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-labs-multi-exit-discriminator/</id>
    <published>2023-11-15T06:42:00+00:00</published>
    <updated>2023-11-15T06:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous labs, we used <a href="https://bgplabs.net/policy/1-weights/">BGP weights</a> and <a href="https://bgplabs.net/policy/5-local-preference/">Local Preference</a> to select the best link out of an autonomous system and thus change the outgoing traffic flow.</p>
<p>Most edge (end-customer) networks face a different problem &ndash; they want to influence the incoming traffic flow, and one of the tools they can use is <a href="https://bgplabs.net/policy/6-med/">BGP Multi-Exit Discriminator (MED)</a>.</p>

<figure><img src="https://bgplabs.net/policy/topology-med.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is Anyone Using netlab on Windows?]]></title>
    <link href="https://blog.ipspace.net/2023/11/netlab-windows/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/netlab-windows/</id>
    <published>2023-11-14T07:05:00+00:00</published>
    <updated>2023-11-14T07:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Tomas <a href="https://github.com/ipspace/netlab/issues/957">wants to start <em>netlab</em> with PowerShell</a>, but it doesn&rsquo;t work for him, and I don&rsquo;t know anyone running <em>netlab</em> directly on Windows (I know people running it in a Ubuntu VM on Windows, but that&rsquo;s a different story).</p>
<p>In theory, <em>netlab</em> (and Ansible) should work fine with Windows Subsystem for Linux. In practice, there&rsquo;s often a gap between theory and practice &ndash; if you run <em>netlab</em> on Windows (probably using VirtualBox with Vagrant), I&rsquo;d love to hear from you. Please leave a comment, email me, add a comment to <a href="https://github.com/ipspace/netlab/issues/957">Tomas&rsquo; GitHub issue</a>, or <a href="https://github.com/ipspace/netlab/blob/dev/docs/labs/virtualbox.md">fix the documentation</a> and <a href="https://netlab.tools/dev/guidelines/">submit a PR</a>. Thank you!</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[LAN Data Link Layer Addressing]]></title>
    <link href="https://blog.ipspace.net/2023/11/lan-data-link-layer-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/lan-data-link-layer-addressing/</id>
    <published>2023-11-13T07:06:00+00:00</published>
    <updated>2023-11-13T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week, we discussed <a href="/2023/11/fibre-channel-addressing/">Fibre Channel addressing</a>.  This time, we&rsquo;ll focus on data link layer technologies used in multi-access networks: Ethernet, Token Ring, FDDI, and other local area- or Wi-Fi technologies.</p>
<p>The first local area networks (LANs) ran on a physical multi-access medium. The first one (original Ethernet) started as a thick coaxial cable<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> that you had to drill into to connect a transceiver to the cable core.</p>
<p>Later versions of Ethernet used thinner cables with connectors that you put together to build whole network segments out of pieces of cable. However, even in that case, we were dealing with a single multi-access physical network &ndash; disconnecting a cable would bring down the whole network.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/lan-data-link-layer-addressing/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Git Rebase: What Can Go Wrong?]]></title>
    <link href="https://blog.ipspace.net/2023/11/worth-reading-git-rebase-what-can-go-wrong/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/worth-reading-git-rebase-what-can-go-wrong/</id>
    <published>2023-11-11T09:03:00+00:00</published>
    <updated>2023-11-11T09:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Julia Evans wrote another must-read article (if you&rsquo;re using Git): <a href="https://jvns.ca/blog/2023/11/06/rebasing-what-can-go-wrong-/">git rebase: what can go wrong?</a></p>
<p>I often use <strong>git rebase</strong> to clean up the commit history of a branch I want to merge into a main branch or to prepare a feature branch for a pull request. I don&rsquo;t want to run it unattended &ndash; I&rsquo;m always using the interactive option &ndash; but even then, I might get into tight spots where I can only hope the results will turn out to be what I expect them to be. Always have a backup &ndash; be it another branch or a copy of the branch you&rsquo;re working on in a remote repository.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Kubernetes Calico Plugin]]></title>
    <link href="https://blog.ipspace.net/2023/11/video-kubernetes-calico/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/video-kubernetes-calico/</id>
    <published>2023-11-10T08:49:00+00:00</published>
    <updated>2023-11-10T08:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>November is turning out to be the <em>Month of BGP</em> on my blog. Keeping in line with that theme, let&rsquo;s watch <a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> explain the <a href="https://my.ipspace.net/bin/get/Kubernetes/2.4%20-%20Calico%20Deep%20Dive.mp4?doccode=Kubernetes">Calico plugin</a> (which can use BGP to advertise the container networking prefixes to the outside world) in the <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/2.4%20-%20Calico%20Deep%20Dive.mp4?doccode=Kubernetes">Watch the video</a></div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Using BGP Local Preference]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-labs-local-preference/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-labs-local-preference/</id>
    <published>2023-11-09T06:42:00+00:00</published>
    <updated>2023-11-09T06:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, we <a href="https://bgplabs.net/policy/1-weights/">used BGP weights to select the best link out of an autonomous system</a>. In this lab, we&rsquo;ll <a href="https://bgplabs.net/policy/5-local-preference/">use BGP local preference to implement a consistent network-wide routing policy</a>:</p>

<figure><img src="https://bgplabs.net/policy/topology-locpref.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Open BGP Daemons: There's So Many of Them]]></title>
    <link href="https://blog.ipspace.net/2023/11/open-bgp-daemons/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/open-bgp-daemons/</id>
    <published>2023-11-08T08:02:00+00:00</published>
    <updated>2023-11-08T08:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, the <em><a href="https://blog.computer-networking.info/">Networking Notes</a></em> blog published a link to my &ldquo;<em><a href="/2023/10/reject-unknown-bgp-session/">Will Network Devices Reject BGP Sessions from Unknown Sources?</a></em>&rdquo; blog post with a <a href="https://blog.computer-networking.info/bgp-h3/">hint</a>: <a href="https://www.shodan.io/search?query=port%3A179+product%3A%22BGP%22">use Shodan</a> to find how many BGP routers accept a TCP session from anyone on the Internet.</p>
<p>The results are appalling: you can open a TCP session on port 179 with over 3 million IP addresses.</p>

<figure><img src="/2023/11/shodan-179.png"
   alt="A report on Shodan opening TCP session to port 179"/><figcaption>
    <p>A report on Shodan opening TCP session to port 179</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/open-bgp-daemons/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Rapid Progress in BGP Route Origin Validation]]></title>
    <link href="https://blog.ipspace.net/2023/11/rapid-progress-rpki-route-origin-validation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/rapid-progress-rpki-route-origin-validation/</id>
    <published>2023-11-07T06:27:00+00:00</published>
    <updated>2023-11-15T19:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In 2022, I was invited to speak about Internet routing security at the <a href="https://deep-conference.com/">DEEP conference</a> in Zadar, Croatia. One of the main messages of the presentation was how slow the progress had been even though we had had all the tools available for at least a decade (<a href="https://datatracker.ietf.org/doc/html/rfc7454">RFC 7454</a> was <a href="/2015/02/rfc-7454-bgp-operations-and-security/">finally published in 2015</a>, and we <a href="/2012/03/my-first-internet-draft-has-just-been/">started writing it in early 2012</a>).</p>
<p>At about that same time, a <a href="https://www.manrs.org/about/history/">small group of network operators started cooperating on improving the security and resilience of global routing</a>, eventually resulting in the <a href="https://www.manrs.org/">MANRS initiative</a> &ndash; a great place to get an overview of <a href="https://www.manrs.org/netops/participants/">how many Internet Service Providers care about adopting Internet routing security mechanisms</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/rapid-progress-rpki-route-origin-validation/'>Read more &hellip;</a></div>]]></content>
    <category term=" BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fibre Channel Addressing]]></title>
    <link href="https://blog.ipspace.net/2023/11/fibre-channel-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/fibre-channel-addressing/</id>
    <published>2023-11-06T07:06:00+00:00</published>
    <updated>2023-11-06T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Whenever we talk about LAN data-link-layer addressing, most engineers automatically switch to the &ldquo;<em>must be like Ethernet</em>&rdquo; mentality, assuming all data-link-layer LAN framing must somehow resemble Ethernet frames.</p>
<p>That makes no sense on point-to-point links. As explained in <em><a href="/2023/10/data-link-addressing/">Early Data-Link Layer Addressing</a></em> article, you don&rsquo;t need layer-2 addresses on a point-to-point link between two layer-3 devices. Interestingly, there is one LAN technology (that I&rsquo;m aware of) that got data link addressing right: <a href="https://en.wikipedia.org/wiki/Fibre_Channel">Fibre Channel</a> (FC).</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/fibre-channel-addressing/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Confusing Git Terminology]]></title>
    <link href="https://blog.ipspace.net/2023/11/worth-reading-confusing-git-terminology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/worth-reading-confusing-git-terminology/</id>
    <published>2023-11-04T07:15:00+00:00</published>
    <updated>2023-11-04T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Julia Evans wrote another great article <a href="https://jvns.ca/blog/2023/11/01/confusing-git-terminology/">explaining confusing git terminology</a>. Definitely worth reading if you want to move past <a href="https://xkcd.com/1597/">simple recipes</a> or <a href="https://xkcd.com/2324/">reminiscing about old days</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Hacking BGP for Fun and Profit]]></title>
    <link href="https://blog.ipspace.net/2023/11/video-bgp-hijacks-fun-profit/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/video-bgp-hijacks-fun-profit/</id>
    <published>2023-11-03T07:16:00+00:00</published>
    <updated>2023-11-03T07:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>At least some people learn from others&rsquo; mistakes: using the concepts proven by some <a href="/2023/10/video-history-bgp-route-leaks/">well-publicized BGP leaks</a>, malicious actors quickly figured out how to <a href="https://my.ipspace.net/bin/get/Net101/NS5.2%20-%20Hacking%20BGP%20for%20Fun%20and%20Profit.mp4?doccode=Net101">hijack BGP prefixes for fun and profit</a>.</p>
<p>Fortunately, those shenanigans wouldn&rsquo;t spread as far today as they did in the past &ndash; according to <a href="https://rovista.netsecurelab.org/">RoVista</a>, most of the largest networks block the prefixes Route Origin Validation (ROV) marks as invalid.</p>
<p><strong>Notes:</strong></p>
<ul>
<li>ROV cannot stop all the hijacks, but it can identify more-specific-prefixes hijacks (assuming the <a href="https://datatracker.ietf.org/doc/html/rfc9319">origin AS did their job right</a>).</li>
<li>You&rsquo;ll find more <a href="https://my.ipspace.net/bin/list?id=Net101#NETSEC">Network Security Fallacies videos</a> in the <a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a> webinar.</li>
</ul>
<p><div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NS5.2%20-%20Hacking%20BGP%20for%20Fun%20and%20Profit.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need at least <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a> to watch videos in this webinar.
</div></p>
]]></content>
    <category term="BGP" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Build a Transit Network with IBGP]]></title>
    <link href="https://blog.ipspace.net/2023/11/bgp-labs-transit-as/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/bgp-labs-transit-as/</id>
    <published>2023-11-02T07:06:00+00:00</published>
    <updated>2023-11-02T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last time we <a href="https://bgplabs.net/ibgp/1-edge/">built a network with two adjacent BGP routers</a>. Now let&rsquo;s see what happens when we add a core router between them:</p>

<figure><img src="https://bgplabs.net/ibgp/topology-ibgp-transit.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2023/11/bgp-labs-transit-as/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Taming the BGP Reconfiguration Transients]]></title>
    <link href="https://blog.ipspace.net/2023/11/worth-reading-taming-bgp-reconfiguration-transients/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/11/worth-reading-taming-bgp-reconfiguration-transients/</id>
    <published>2023-11-01T07:41:00+00:00</published>
    <updated>2023-11-01T07:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Almost exactly a decade ago I <a href="/2013/10/ibgp-migrations-can-generate-forwarding/">wrote about a paper</a> describing how IBGP migrations can cause forwarding loops and how one could <a href="https://inl.info.ucl.ac.be/system/files/bgpmig_final.pdf">reorder BGP reconfiguration steps to avoid them</a>.</p>
<p>One of the paper&rsquo;s authors was <a href="https://vanbever.eu/">Laurent Vanbever</a> who moved to ETH Zurich in the meantime where his group keeps producing great work, including the <a href="https://nsg.ee.ethz.ch/publications/2023-01-01-taming-the-transient-while-reconfiguring-bgp-20-500-11850-612650/">Chameleon tool</a> (<a href="https://github.com/nsg-ethz/Chameleon">code on GitHub</a>) that can <a href="https://www.manrs.org/2023/10/taming-the-transient-while-reconfiguring-bgp/">tame transient loops while reconfiguring BGP</a>. Definitely something worth looking at if you&rsquo;re running a large BGP network.</p>
]]></content>
    <category term="BGP" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Weird: vJunos Evolved 23.2R1.5 Declines DHCP Address]]></title>
    <link href="https://blog.ipspace.net/2023/10/vjunos-declines-dhcp-address/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/vjunos-declines-dhcp-address/</id>
    <published>2023-10-30T06:44:00+00:00</published>
    <updated>2023-10-30T06:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s time for a Halloween story: imagine the scary scenario in which a DHCP client asks for an address, gets it, and then immediately declines it. That&rsquo;s what I&rsquo;ve been experiencing with vJunos Evolved release 23.2R1.15.</p>
<div class='long-quote'>
<p>Before someone gets the wrong message: I&rsquo;m not criticizing Juniper or vJunos.</p>
<ul>
<li>Juniper did a great job releasing a no-hassles-to-download virtual appliance.</li>
<li>DHCP assignment of management IPv4 address worked with vJunos Evolved release 23.1R1.8</li>
<li>There were reports that the DHCP assignment process in vJunos Evolved 23.1R1.8 was not reliable, but it worked for me so far, so I&rsquo;m good to go as long as I can run the older release.</li>
<li>I might get to love vJunos Evolved. Boot- and configuration times are very reasonable.</li>
</ul>
<p>However, it looks like something broke in vJunos release 23.2, and it would be nice to figure out what the workaround might be.</p>

</div><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/vjunos-declines-dhcp-address/'>Read more &hellip;</a></div>]]></content>
    <category term="DHCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: BGP from Theory to Practice]]></title>
    <link href="https://blog.ipspace.net/2023/10/worth-reading-bgp-theory-practice/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/worth-reading-bgp-theory-practice/</id>
    <published>2023-10-29T09:06:00+00:00</published>
    <updated>2023-10-29T09:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>My good friend <a href="https://www.linkedin.com/in/tiziano-tofoni-1361759">Tiziano Tofoni</a> finally created an English version of his evergreen classic <a href="https://book.reissromoli.com/product/bgp-from-theory-to-practice/">BGP from theory to practice</a> with co-authors Antonio Prado and Flavio Luciani.</p>
<p>I had the Italian version of the book since the days I was running SDN workshops with Tiziano in Rome, and it&rsquo;s really nice to see they finally decided to address a wider market.</p>
<p>Also, you know what would go well with that book? <a href="https://bgplabs.net/">Free open-source BGP configuration labs</a> of course 😉</p>
]]></content>
    <category term="worth reading" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Early Data-Link Layer Addressing]]></title>
    <link href="https://blog.ipspace.net/2023/10/data-link-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/data-link-addressing/</id>
    <published>2023-10-27T08:57:00+00:00</published>
    <updated>2023-10-27T08:57:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After covering the <a href="/2023/09/names-addresses-routes/">theoretical part of network addressing</a> (<a href="/2023/09/addresses-in-network-stack/">part 2</a>, <a href="/2023/09/need-source-ip-address-in-packet-header/">part 3</a>), let&rsquo;s go into some practical examples. I&rsquo;ll start with data link layer and then move on to networking and higher layers.</p>
<p>The earliest data link implementations that were not point-to-point links were multi-drop links and I mentioned them in the <a href="https://my.ipspace.net/bin/list?id=Net101#CHALLENGES">networking challenges</a> part of the webinar. Initially, we implemented multi-drop links with modems, but even today you can see multi-drop in satellite communications, Wi-Fi, or in cable modems.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/data-link-addressing/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Multivendor External Routers]]></title>
    <link href="https://blog.ipspace.net/2023/10/bgp-labs-multivendor-feed/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/bgp-labs-multivendor-feed/</id>
    <published>2023-10-25T05:50:00+00:00</published>
    <updated>2023-10-25T05:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s a quick update on the <a href="https://bgplabs.net/">BGP Labs project</a> status: now that <a href="/2023/10/netlab-1-6-4-more-bgp-nerd-knobs/">netlab release 1.6.4</a> is out, I could remove the dependency on using Cumulus Linux as the external BGP router.</p>
<p>You can use any device that is supported by <strong><a href="https://netlab.tools/plugins/bgp.session/">bgp.session</a></strong> and <strong><a href="https://netlab.tools/plugins/bgp.policy/">bgp.policy</a></strong> plugins as the external BGP router. You could use Arista EOS, Aruba AOS-CX, Cisco IOSv, Cisco IOS-XE, Cumulus Linux or FRR as external BGP routers with netlab release 1.6.4, and I&rsquo;m positive Jeroen van Bemmel will add Nokia SR Linux to that list.</p>
<p>If you&rsquo;re not ready for a <em>netlab</em> upgrade, you can keep using Cumulus Linux as external BGP routers (I&rsquo;ll explain the behind-the-scenes magic in another blog post, I&rsquo;m at the <a href="https://deep-conference.com/">Deep Conference</a> this week).</p>
<p>For more details, read the updated <a href="https://bgplabs.net/1-setup/">BGP Labs Software Installation and Lab Setup</a> guide.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.6.4: Support for Multi-Lab Projects; More BGP Goodies]]></title>
    <link href="https://blog.ipspace.net/2023/10/netlab-1-6-4-more-bgp-nerd-knobs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/netlab-1-6-4-more-bgp-nerd-knobs/</id>
    <published>2023-10-24T05:52:00+00:00</published>
    <updated>2023-10-24T05:52:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Features in <em>netlab</em> <a href="https://netlab.tools/release/1.6/#release-1-6-4">release 1.6.4</a> were driven primarily by the needs of my <a href="https://bgplabs.net/">BGP labs</a> project:</p>
<ul>
<li><a href="https://netlab.tools/plugins/bgp.session/"><strong>bgp.session</strong> plugin</a> (formerly known as <strong>ebgp.utils</strong> plugin) got support for BFD, passive BGP peers and <strong>remove-private-as</strong> option.</li>
<li><a href="https://netlab.tools/plugins/bgp.policy/"><strong>bgp.policy</strong> plugin</a> implements basic BGP routing policy tools, including per-neighbor weights, local preference and MED.</li>
<li>You can <a href="https://netlab.tools/extools/#tools-enable-default">enable external tools</a> in user defaults and use <a href="https://netlab.tools/groups/#default-groups">default groups</a> to create  user- or project-wide groups in the defaults files.</li>
<li><a href="https://netlab.tools/dev/versioning/">Version-specific lab topology files</a> allow <em>netlab</em> to select a lab topology that is a best fit for the <em>netlab</em> release you&rsquo;re running.</li>
</ul>
<p>Numerous platforms already support the new BGP nerd knobs:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/netlab-1-6-4-more-bgp-nerd-knobs/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: History of BGP Route Leaks]]></title>
    <link href="https://blog.ipspace.net/2023/10/video-history-bgp-route-leaks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/video-history-bgp-route-leaks/</id>
    <published>2023-10-23T09:38:00+00:00</published>
    <updated>2023-10-23T09:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;ll be talking about Internet routing security at the <a href="https://deep-conference.com/">Deep conference</a> in a few days, and just in case you won&rsquo;t be able to make it<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> ;) here&rsquo;s the first bit of my talk: <a href="https://my.ipspace.net/bin/get/Net101/NS5.1%20-%20History%20of%20BGP%20Route%20Leaks.mp4?doccode=Net101">a very brief history of BGP route leaks</a><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NS5.1%20-%20History%20of%20BGP%20Route%20Leaks.mp4?doccode=Net101">Watch the video</a></div>
<p><strong>Note:</strong> you&rsquo;ll find more <a href="https://my.ipspace.net/bin/list?id=Net101#NETSEC">Network Security Fallacies videos</a> in the <a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a> webinar.</p>
<div  class="free">
You need at least <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a> to watch videos in this webinar.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/video-history-bgp-route-leaks/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Build Larger Networks with IBGP]]></title>
    <link href="https://blog.ipspace.net/2023/10/bgp-labs-ibgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/bgp-labs-ibgp/</id>
    <published>2023-10-18T06:14:00+00:00</published>
    <updated>2023-10-18T06:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="https://bgplabs.net/#setting-up-bgp">going through the BGP basics</a>, it&rsquo;s time to <a href="https://bgplabs.net/ibgp/1-edge/">build a network that has more than one BGP router in it</a>, starting with the simplest possible topology: a site with two WAN edge routers.</p>

<figure><img src="https://bgplabs.net/ibgp/topology-ibgp.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/bgp-labs-ibgp/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Will Network Devices Reject BGP Sessions from Unknown Sources?]]></title>
    <link href="https://blog.ipspace.net/2023/10/reject-unknown-bgp-session/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/reject-unknown-bgp-session/</id>
    <published>2023-10-17T05:48:00+00:00</published>
    <updated>2023-11-02T10:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>TL&amp;DR: Violating the <a href="https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines">Betteridge&rsquo;s Law of Headlines</a>, the answer is &ldquo;<em>Yes, but the devil is in the details.</em>&rdquo;</p>
<p>It all started with the following observation by Minh Ha left as a comment to my previous <a href="/2023/10/bgp-session-security-snafu/">BGP session security blog post</a>:</p>
<blockquote>
<p>I&rsquo;d think it&rsquo;d be obvious for BGP routers to only accept incoming sessions from configured BGP neighbors, right? Because BGP is the most critical infrastructure, the backbone of the Internet, why would you want your router to accept incoming session from anyone but KNOWN sources?</p>
</blockquote>
<p>Following my &ldquo;<em>opinions are good, facts are better</em>&rdquo; mantra, I decided to run a few tests before opinionating<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/reject-unknown-bgp-session/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: AI Risks]]></title>
    <link href="https://blog.ipspace.net/2023/10/worth-reading-ai-risks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/worth-reading-ai-risks/</id>
    <published>2023-10-16T15:09:00+00:00</published>
    <updated>2023-10-16T15:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bruce Schneier wrote a thoughtful article on the <a href="https://www.schneier.com/blog/archives/2023/10/ai-risks.html">various perceptions of AI Risks</a> including this gem:</p>
<blockquote>
<p>As the science-fiction author Ted Chiang has said, fears about the existential risks of AI are really fears about the threat of uncontrolled capitalism, and dystopias like the paper clip maximizer are just caricatures of every start-up’s business plan.</p>
</blockquote>
<p>Enjoy!</p>
]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: TCP-AO Protection of BGP Sessions]]></title>
    <link href="https://blog.ipspace.net/2023/10/bgp-labs-tcp-ao/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/bgp-labs-tcp-ao/</id>
    <published>2023-10-12T06:05:00+00:00</published>
    <updated>2023-10-12T06:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few days after I published the <a href="https://bgplabs.net/basic/6-protect/">EBGP session protection</a> lab, <a href="https://www.linkedin.com/in/jeroenvbemmel/">Jeroen van Bemmel</a> submitted a pull request that <a href="https://netlab.tools/plugins/ebgp.utils/">added TCP-AO support to <em>netlab</em></a>. Now that the <a href="https://netlab.tools/release/1.6/#release-1-6-3">release 1.6.3 is out</a>, I could use it to build the <a href="https://bgplabs.net/basic/9-ao/">Protect BGP Sessions with TCP Authentication Option (TCP-AO)</a> lab exercise.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/bgp-labs-tcp-ao/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.6.3: BGP Nerd Knobs]]></title>
    <link href="https://blog.ipspace.net/2023/10/netlab-1-6-3-bgp-goodies/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/netlab-1-6-3-bgp-goodies/</id>
    <published>2023-10-11T05:52:00+00:00</published>
    <updated>2023-10-11T05:52:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> <a href="https://netlab.tools/release/1.6/#release-1-6-3">release 1.6.3</a> added numerous BGP nerd knobs:</p>
<ul>
<li>You can create <a href="https://netlab.tools/plugins/ebgp.multihop/">EBGP multihop sessions</a> in the global routing table when using Arista EOS, Cisco IOSv, Cisco IOS-XE, FRR and Cumulus Linux 4.x.</li>
<li><a href="https://netlab.tools/plugins/ebgp.utils/">ebgp.utils plugin</a> supports TCP-AO, configurable BGP timers, and Generic TTL Security Mechanism (TTL session protection)</li>
<li><a href="https://netlab.tools/module/bgp/">BGP</a> neighbor reports hide irrelevant columns.</li>
</ul>
<p>We also:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/netlab-1-6-3-bgp-goodies/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Some Thoughts on Digital Twins]]></title>
    <link href="https://blog.ipspace.net/2023/10/worth-reading-digital-twins/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/worth-reading-digital-twins/</id>
    <published>2023-10-08T06:24:00+00:00</published>
    <updated>2023-10-08T06:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I encountered several articles explaining the challenges of simulating your network in a virtual lab in the last few months, including:</p>
<ul>
<li><a href="https://subnetzero.info/2023/08/07/some-thoughts-on-digital-twins/">Some thoughts on digital twins</a> by Jeff McLaughlin</li>
<li>Network Simulation is hard &ndash; <a href="https://blog.petecrocker.com/post/simulation_is_hard_pt1/">Part 1</a>, <a href="https://blog.petecrocker.com/post/simulation_is_hard_pt2/">Part 2</a> &ndash; by Pete Crocker</li>
<li><a href="https://www.brianlinkletter.com/2023/02/network-emulators-and-network-simulators-2023/">Twenty-five open-source network emulators and simulators you can use in 2023</a> by Brian Linkletter</li>
</ul>
<p>Enjoy!</p>
]]></content>
    <category term="network automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Introduction of EVPN at DE-CIX]]></title>
    <link href="https://blog.ipspace.net/2023/10/worth-reading-evpn-de-cix/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/worth-reading-evpn-de-cix/</id>
    <published>2023-10-07T06:18:00+00:00</published>
    <updated>2023-10-07T06:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Numerous Internet Exchange Points (IXP) started using VXLAN years ago to replace tradition layer-2 fabrics with routed networks. Many of them tried to avoid the complexities of EVPN and used VXLAN with statically-configured (and hopefully automated) ingress replication.</p>
<p>A few went a step further and decided to deploy EVPN, primarily to deploy Proxy ARP functionality on EVPN switches and reduce the ARP/ND traffic. Thomas King from DE-CIX <a href="https://blog.apnic.net/2023/08/16/peering-lan-2-0-introduction-of-evpn-at-de-cix/">described their experience</a> on APNIC blog &ndash; well worth reading if you&rsquo;re interested in layer-2 fabrics.</p>
]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: What Is Software-Defined Data Center]]></title>
    <link href="https://blog.ipspace.net/2023/10/video-what-is-sddc/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/video-what-is-sddc/</id>
    <published>2023-10-06T06:47:00+00:00</published>
    <updated>2023-10-06T06:47:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few years ago, I was asked to deliver a <em>What Is SDDC</em> presentation that later became a webinar. I forgot about that webinar until I received feedback from one of the viewers a week ago:</p>
<blockquote>
<p>If you like to learn from the teachers with the &ldquo;straight to the point&rdquo; approach and complement the theory with many &ldquo;real-life&rdquo; scenarios, then <a href="http://ipspace.net/">ipSpace.net</a> is the right place for you.</p>
</blockquote>
<p>I haven&rsquo;t realized people still find that webinar useful, so let&rsquo;s <a href="/2023/08/videos-free-subscription/">make it viewable without registration</a>, starting with <em><a href="https://my.ipspace.net/bin/get/SDDC101/1%20-%20What%20Problem%20Are%20We%20Trying%20to%20Solve.mp4?doccode=SDDC101">What Problem Are We Trying to Solve</a></em> and <em><a href="https://my.ipspace.net/bin/get/SDDC101/2%20-%20What%20Is%20SDDC.mp4?doccode=SDDC101">What Is SDDC</a></em>.</p>
<div  class="free">
You need at least <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a> to watch videos in this webinar.
</div>
]]></content>
    <category term="data center" />
    <category term="SDN" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.6.2: More Reporting Goodies]]></title>
    <link href="https://blog.ipspace.net/2023/10/netlab-1-6-2-more-reports/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/netlab-1-6-2-more-reports/</id>
    <published>2023-10-05T06:19:00+00:00</published>
    <updated>2023-10-05T06:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> <a href="https://netlab.tools/release/1.6/#release-1-6-2">release 1.6.2</a> improved reporting capabilities:</p>
<ul>
<li>BGP reports and IP addressing reports are fully IPv6-aware</li>
<li>Some columns in BGP reports are optional to reduce the width of text reports</li>
<li>You can filter the reports you&rsquo;re interested in when using <strong><a href="https://netlab.tools/netlab/show/#netlab-show-reports">netlab show reports</a></strong> command</li>
<li>Reports relying on <strong>ipaddr</strong> Ansible filter display warnings (instead of crashing) if you don&rsquo;t have Ansible installed.</li>
</ul>
<p>In other news:</p>
<ul>
<li>Stefano Sasso added <a href="https://netlab.tools/platforms/#supported-virtual-network-devices">support for ArubaOS-CX running within containerlab</a></li>
<li>You can use <a href="https://netlab.tools/module/vrf/#platform-support">inter-VRF route leaking</a> with Cumulus Linux or FRR</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/netlab-1-6-2-more-reports/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Route Aggregation]]></title>
    <link href="https://blog.ipspace.net/2023/10/bgp-labs-route-aggregation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/bgp-labs-route-aggregation/</id>
    <published>2023-10-04T09:32:00+00:00</published>
    <updated>2023-10-04T09:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="https://bgplabs.net/basic/8-aggregate/">BGP Route Aggregation lab</a> you can practice:</p>
<ul>
<li>OSPF-to-BGP route redistribution</li>
<li>BGP route aggregation</li>
<li>Suppression of more-specific prefixes in the BGP table</li>
<li>Prefix-based filtering of outbound BGP updates</li>
</ul>

<figure><img src="https://bgplabs.net/basic/topology-aggregate.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[What Is Ultra Ethernet All About?]]></title>
    <link href="https://blog.ipspace.net/2023/10/ultra-ethernet/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/ultra-ethernet/</id>
    <published>2023-10-03T05:47:00+00:00</published>
    <updated>2023-10-03T05:47:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>If you&rsquo;re monitoring the industry press (or other usual hype factories), you might have heard about Ultra Ethernet, a dazzling new technology that will be developed by the Ultra Ethernet Consortium<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. What is it, and does it matter to you (TL&amp;DR: probably not<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>)?</p>
<p>As always, let&rsquo;s start with <em>What Problem Are We Solving?</em></p><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/ultra-ethernet/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Session Security: Be Very Skeptical]]></title>
    <link href="https://blog.ipspace.net/2023/10/bgp-session-security-snafu/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/bgp-session-security-snafu/</id>
    <published>2023-10-02T07:09:00+00:00</published>
    <updated>2023-10-02T07:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago I explained how <a href="/2023/03/advantages-bgp-gtsm/">Generalized TTL Security Mechanism</a> could be used to prevent denial-of-service attacks on routers running EBGP. Considering the results published in <em><a href="https://media.defcon.org/DEF%20CON%2031/DEF%20CON%2031%20presentations/Daniel%20dos%20Santos%20Simon%20Guiot%20-%20Route%20to%20bugs%20Analyzing%20the%20security%20of%20BGP%20message%20parsing.pdf">Analyzing the Security of BGP Message Parsing</a></em> presentation from DEFCON 31 I started wondering how well GTSM implementations work.</p>
<p><strong>TL&amp;DR summary:</strong></p><div class='jump-link'><a href='https://blog.ipspace.net/2023/10/bgp-session-security-snafu/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Flow Distribution Across ECMP Paths]]></title>
    <link href="https://blog.ipspace.net/2023/10/worth-reading-flow-distribution-ecmp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/10/worth-reading-flow-distribution-ecmp/</id>
    <published>2023-10-01T06:13:00+00:00</published>
    <updated>2023-10-01T06:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Dip Singh wrote another interesting article describing how
<a href="https://dipsingh.github.io/Flow-Distribution-Across-ECMP/">ECMP load balancing implementations work behind the scenes</a>. Absolutely worth reading.</p>
]]></content>
    <category term="load balancing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Single-Port LAGs]]></title>
    <link href="https://blog.ipspace.net/2023/09/worth-reading-single-port-lag/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/worth-reading-single-port-lag/</id>
    <published>2023-09-30T06:01:00+00:00</published>
    <updated>2023-09-30T06:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Lindsay Hill described an excellent idea: <a href="https://lkhill.com//why-single-port-lag/">all ports on your <del>switches</del> routers should be in link aggregation groups</a> even when you have a single port in a group. That approach allows you to:</p>
<ul>
<li>Upgrade the link speed without changing any layer-3 configuration</li>
<li>Do link maintenance without causing a routing protocol flap</li>
</ul>
<p>It also proves RFC 1925 rule 6a, but then I guess we&rsquo;re already used to that ;)</p>
]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How GitHub Saved My Day]]></title>
    <link href="https://blog.ipspace.net/2023/09/github-saves-the-day/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/github-saves-the-day/</id>
    <published>2023-09-28T06:53:00+00:00</published>
    <updated>2023-09-28T06:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I always tell networking engineers who aspire to be more than VLAN-munging CLI jockeys to get fluent with Git. I should also be telling them that while doing local version control is the right thing to do, you should always have backups (in this case, a remote repository).</p>
<p>I&rsquo;m eating my own dog food<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> &ndash; I&rsquo;m using a half dozen Git repositories in ipSpace.net production<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. If they break, my blog stops working, and I cannot publish new documents<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>.</p>
<p>Now for a fun fact: Git is not transactionally consistent.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/github-saves-the-day/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Use BFD to Speed Up Convergence]]></title>
    <link href="https://blog.ipspace.net/2023/09/bgp-labs-bfd/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/bgp-labs-bfd/</id>
    <published>2023-09-27T06:32:00+00:00</published>
    <updated>2023-09-27T06:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the next <a href="https://bgplabs.net/">BGP labs</a> exercise, you can practice <a href="https://bgplabs.net/basic/7-bfd/">tweaking BGP timers and using BFD to speed up BGP convergence</a>.</p>

<figure><img src="https://bgplabs.net/basic/topology-bfd.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Do We Need Source IP Addresses in IP Headers?]]></title>
    <link href="https://blog.ipspace.net/2023/09/need-source-ip-address-in-packet-header/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/need-source-ip-address-in-packet-header/</id>
    <published>2023-09-26T06:40:00+00:00</published>
    <updated>2023-09-26T06:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After discussing <a href="/2023/09/names-addresses-routes/">names, addresses and routes</a>, and the <a href="/2023/09/addresses-in-network-stack/">various addresses we might need in a networking stack</a>, we&rsquo;re ready to tackle an interesting comment <a href="https://twitter.com/odecentralize/status/1659947153999970305">made by a Twitter user</a> as a reply to my <em><a href="/2023/05/worth-reading-source-address-validation-still-a-problem/">Why Is Source Address Validation Still a Problem?</a></em> blog post:</p>
<blockquote>
<p>Maybe the question we should be asking is why there is a source address in the packet header at all.</p>
</blockquote>
<p>Most consumers of network services expect a two-way communication &ndash; you send some stuff to another node providing an interesting service, and you usually expect to get some stuff back. So far so good. Now for the fun part: how does the server know where to send the stuff back to? There are two possible answers<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/need-source-ip-address-in-packet-header/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Does EVPN/VXLAN over SD-WAN Make Sense?]]></title>
    <link href="https://blog.ipspace.net/2023/09/evpn-vxlan-over-sdwan/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/evpn-vxlan-over-sdwan/</id>
    <published>2023-09-25T11:43:00+00:00</published>
    <updated>2023-09-25T11:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It looks like we might be seeing VXLAN-over-SDWAN deployments in the wild. Here&rsquo;s the &ldquo;why that makes sense&rdquo; argument I received from a participant of the <a href="https://designclinic.ipspace.net/posts/2022/06/">ipSpace.net Design Clinic</a> in which I wasn&rsquo;t exactly enthusiastic about the idea.</p>
<blockquote>
<p>Also, the EVPN-over-WAN idea is not hypothetical since EVPN+VXLAN is now the easiest way to build L3VPN with data center switches that don’t support MPLS LDP. Folks with no interest in EVPN’s L2 features are still using it for L3VPN.</p>
</blockquote>
<p>Let&rsquo;s unravel this scenario a bit:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/evpn-vxlan-over-sdwan/'>Read more &hellip;</a></div>]]></content>
    <category term="VXLAN" />
    <category term="EVPN" />
    <category term="SD-WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: L2 Is Bad]]></title>
    <link href="https://blog.ipspace.net/2023/09/l2-bad/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/l2-bad/</id>
    <published>2023-09-22T06:19:00+00:00</published>
    <updated>2023-09-22T06:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Roman Pomazanov documented his thoughts on the beauties of large layer-2 domains in a LinkedIn article and allowed me to repost it on ipSpace.net blog to ensure it doesn&rsquo;t disappear</p>
<hr>
<p>First of all: <strong>&ldquo;L2 is a single failure domain&rdquo;</strong>, a problem at one point can easily spread to the entire datacenter.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/l2-bad/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="data center" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Protect EBGP Sessions]]></title>
    <link href="https://blog.ipspace.net/2023/09/bgp-labs-protect-sessions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/bgp-labs-protect-sessions/</id>
    <published>2023-09-21T06:32:00+00:00</published>
    <updated>2023-09-21T06:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I published another <a href="https://bgplabs.net/">BGP labs</a> exercise a few days ago. You can use it to <a href="https://bgplabs.net/basic/6-protect/">practice EBGP session protection</a>, including <a href="/2023/03/advantages-bgp-gtsm/">Generalized TTL Security Mechanism (GTSM)</a> and TCP MD5 checksums<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>

<figure><img src="https://bgplabs.net/basic/topology-protect.png"/>
</figure>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I would love to add TCP-AO to the mix, but it&rsquo;s not yet supported by the Linux kernel, and so cannot be used in Cumulus Linux or FRR containers.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Addresses in a Networking Stack]]></title>
    <link href="https://blog.ipspace.net/2023/09/addresses-in-network-stack/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/addresses-in-network-stack/</id>
    <published>2023-09-20T05:56:00+00:00</published>
    <updated>2023-09-20T05:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After discussing <a href="/2023/09/names-addresses-routes/">names, addresses and routes</a>, it&rsquo;s time for the next question: what kinds of addresses do we need to make things work?</p>
<p>End-users (clients) are usually interested in a single thing: they want to reach the service they want to use. They don&rsquo;t care about nodes, links, or anything else.</p>
<p>End-users might want to use friendly service <em>names</em>, but we <a href="/2023/09/names-addresses-routes/">already know</a> we need <em>addresses</em> to make things work. We need application level service identifiers &ndash; something that identifies the services that the clients want to reach.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/addresses-in-network-stack/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Names, Addresses, and Routes]]></title>
    <link href="https://blog.ipspace.net/2023/09/names-addresses-routes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/names-addresses-routes/</id>
    <published>2023-09-19T05:56:00+00:00</published>
    <updated>2023-09-19T05:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It always helps to figure out the challenges of a problem you&rsquo;re planning to solve, and to have a well-defined terminology. This blog post will mention a few challenges we might encounter while addressing various layers of the <a href="/2019/09/on-usability-of-osi-layered-networking/">networking stack</a>, from data-link layer and all the way up to the application layer, and introduce the concepts of <em>names</em>, <em>addresses</em> and <em>routes</em>.</p>
<p><a href="https://martinfowler.com/bliki/TwoHardThings.html">According to Martin Fowler</a>, one of the best quotes I found on the topic originally came from Phil Karlton:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/names-addresses-routes/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dataplane MAC Learning with EVPN]]></title>
    <link href="https://blog.ipspace.net/2023/09/dynamic-mac-learning-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/dynamic-mac-learning-evpn/</id>
    <published>2023-09-18T06:34:00+00:00</published>
    <updated>2023-09-18T06:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Johannes Resch submitted the following comment to the <em><a href="/2023/04/evpn-dynamic-mac-learning/">Is Dynamic MAC Learning Better Than EVPN?</a></em> blog post:</p>
<blockquote>
<p>I&rsquo;ve also recently noticed some vendors claiming that dataplane MAC learning is so much better because it reduces the number of BGP updates in large scale SP EVPN deployments. Apparently, some of them are working on IETF drafts to bring dataplane MAC learning &ldquo;back&rdquo; to EVPN. Not sure if this is really a relevant point - we know that BGP scales nicely, and its relatively easy to deploy virtualized RR with sufficient VPU resources.</p>
</blockquote>
<p>While he&rsquo;s absolutely correct that BGP scales nicely, the questions to ask is &ldquo;<em>what is the optimal way to deliver a Carrier Ethernet service?</em>&rdquo;</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/dynamic-mac-learning-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="bridging" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Where Are the Self-Driving Cars?]]></title>
    <link href="https://blog.ipspace.net/2023/09/worth-reading-self-driving-cars/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/worth-reading-self-driving-cars/</id>
    <published>2023-09-14T06:48:00+00:00</published>
    <updated>2023-09-14T06:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Gary Marcus wrote an interesting essay describing the
<a href="https://cacm.acm.org/blogs/blog-cacm/275660-face-it-self-driving-cars-still-havent-earned-their-stripes/fulltext">failure of self-driving cars to face the unknown unknowns</a>. The following gem from his conclusions applies to AI in general:</p>
<blockquote>
<p>In a different world, less driven by money, and more by a desire to build AI that we could trust, we might pause and ask a very specific question: have we discovered the right technology to address edge cases that pervade our messy really world? And if we haven&rsquo;t, shouldn&rsquo;t we stop hammering a square peg into a round hole, and shift our focus towards developing new methodologies for coping with the endless array of edge cases?</p>
</blockquote>
<p>Obviously that&rsquo;s not going to happen, we&rsquo;ll keep throwing more GPU power at the problem trying to solve it by brute force.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Bidirectional Route Redistribution]]></title>
    <link href="https://blog.ipspace.net/2023/09/bgp-labs-redistribute/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/bgp-labs-redistribute/</id>
    <published>2023-09-13T06:32:00+00:00</published>
    <updated>2023-09-13T06:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the next <a href="https://bgplabs.net/">BGP labs</a> exercise, you&rsquo;ll build the <a href="https://bgplabs.net/basic/5-redistribute/">customer part of an MPLS/VPN solution</a>. You&rsquo;ll use bidirectional OSPF-to-BGP route redistribution to connect two sites running OSPF over a Service Provider MPLS backbone.</p>

<figure><img src="https://bgplabs.net/basic/topology-2-sites.png"/>
</figure>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DHCP Relaying Across a Firewall]]></title>
    <link href="https://blog.ipspace.net/2023/09/dhcp-relaying-across-firewall/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/dhcp-relaying-across-firewall/</id>
    <published>2023-09-12T06:36:00+00:00</published>
    <updated>2023-09-12T06:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Chinar Trivedi wanted to know what happens when you insert a firewall in the DHCP data path (<a href="/2023/05/dhcp-redundant-vrf-relay/#1833">original question</a>.</p>
<p><strong>TL&amp;DR:</strong> Nothing much, but that does not mean you should.</p>
<p>Now for the details:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/dhcp-relaying-across-firewall/'>Read more &hellip;</a></div>]]></content>
    <category term="DHCP" />
    <category term="firewalls" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPF ECMP with Unnumbered IPv4 Interfaces]]></title>
    <link href="https://blog.ipspace.net/2023/09/ecmp-ospf-unnumbered/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/ecmp-ospf-unnumbered/</id>
    <published>2023-09-11T06:13:00+00:00</published>
    <updated>2023-09-11T06:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="/2023/08/unnumbered-ospf-arp/">OSPF and ARP on Unnumbered IPv4 Interfaces</a> triggered an <a href="/2023/08/unnumbered-ospf-arp/#1903">interesting consideration</a>: does ECMP work across parallel unnumbered links?</p>
<p><strong>TL&amp;DR</strong>: Yes, it works flawlessly on Arista EOS and Cisco IOS/XE. Feel free to test it out on any other device on which <em>netlab</em> supports <a href="https://netlab.tools/module/ospf/#platform-support">unnumbered interfaces with OSPF</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/ecmp-ospf-unnumbered/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
    <category term="load balancing" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Reliable ECMP with Static Routing]]></title>
    <link href="https://blog.ipspace.net/2023/09/ecmp-static-routing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/ecmp-static-routing/</id>
    <published>2023-09-08T07:00:00+00:00</published>
    <updated>2023-09-08T07:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers wanted to use <a href="/2013/06/eibgp-load-balancing/">EIBGP</a> to load balance outgoing traffic from a pair of WAN edge routers (hint: wrong tool for this particular job<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>). He&rsquo;s using a design very similar to <a href="/2022/02/nexus-icmp-redirects/">this one</a> with VRRP running between WAN edge routers, and the adjacent firewall cluster using a default route to the VRRP IP address.</p>
<p>The problem: all output traffic goes to the VRRP IP address which is active on one of the switches, and only a single uplink is used for the outgoing traffic.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/ecmp-static-routing/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Case Study: BGP Routing Policy]]></title>
    <link href="https://blog.ipspace.net/2023/09/worth-reading-case-study-bgp-routing-policy/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/worth-reading-case-study-bgp-routing-policy/</id>
    <published>2023-09-07T06:31:00+00:00</published>
    <updated>2023-09-07T06:31:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Talking about BGP routing policy mechanisms is nice, but it&rsquo;s even better to see how real Internet Service Providers use those tools to implement real-life BGP routing policy.</p>
<p>Getting that information is incredibly hard as everyone considers their setup a secret sauce. Fortunately, there are a few exceptions; <a href="https://www.linkedin.com/in/pim-van-pelt-474466263/">Pim van Pelt</a> described the <a href="https://ipng.ch/s/articles/2021/11/14/routing-policy.html">BGP Routing Policy of IPng Networks</a> in great details. The article is even more interesting as he&rsquo;s using Bird2 configuration language that looks almost like a programming language (as compared to the ancient <strong>route-maps</strong> used by vendors focused on &ldquo;industry-standard&rdquo; CLI).</p>
<p>Have fun!</p>
]]></content>
    <category term="BGP" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Layer-3 WAN Handoff (L3Out) in VXLAN/EVPN Fabrics]]></title>
    <link href="https://blog.ipspace.net/2023/09/evpn-wan-handoff-l3out/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/evpn-wan-handoff-l3out/</id>
    <published>2023-09-06T15:02:00+00:00</published>
    <updated>2023-09-06T15:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I got a question from a few of my students regarding the best way to implement end-to-end EVPN across multiple locations. Obviously there’s the multi-pod and multi-site architecture for people believing in the magic powers of stretching VLANs across the globe, but I was looking for something that I could recommend to people who understand that you have to have a L3 boundary if you want to have multiple <a href="/2012/05/layer-2-network-is-single-failure/">independent failure domains</a> (or availability zones).</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/evpn-wan-handoff-l3out/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Random Thoughts on Zero-Trust Architecture]]></title>
    <link href="https://blog.ipspace.net/2023/09/ztna-random-thoughts/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/ztna-random-thoughts/</id>
    <published>2023-09-05T06:05:00+00:00</published>
    <updated>2023-09-05T06:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When preparing the materials for the <a href="https://www.ipspace.net/IpSpace.net_Design_Clinic">Design Clinic</a> section describing <a href="https://my.ipspace.net/bin/list?id=Design#2023_02">Zero-Trust Network Architecture</a>, I wondered whether I was missing something crucial. After all, I couldn&rsquo;t find anything new when reading the <a href="https://www.nist.gov/publications/zero-trust-architecture">NIST documents</a> &ndash; we&rsquo;ve seen all they&rsquo;re describing 30 years ago (remember Kerberos?).</p>
<p>In late August I dropped by the fantastic <a href="https://www.eventcreate.com/e/sigs-roundtable-august">Roundtable and Barbecue</a> event organized by Gabi Gerber (running <a href="https://www.sig-switzerland.ch/">Security Interest Group Switzerland</a>) and used the opportunity to join the Zero Trust Architecture roundtable. Most other participants were seasoned IT security professionals with a level of skepticism approaching mine. When I mentioned I failed to see anything new in the now-overhyped topic, they quickly expressed similar doubts.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/ztna-random-thoughts/'>Read more &hellip;</a></div>]]></content>
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: Simple Routing Policy Tools]]></title>
    <link href="https://blog.ipspace.net/2023/09/bgp-labs-simple-policy-tools/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/bgp-labs-simple-policy-tools/</id>
    <published>2023-09-04T06:26:00+00:00</published>
    <updated>2023-09-04T06:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The first set of <a href="https://bgplabs.net/">BGP labs</a> covered <a href="/2023/08/bgp-labs-basic-setup/">the basics</a>; the next four will help you master simple routing policy tools (BGP weights, AS-path filters, prefix filters) using real-life examples:</p>
<ul>
<li><a href="https://bgplabs.net/policy/1-weights/">Use BGP weights</a> to prefer one of the upstream providers</li>
<li><a href="https://bgplabs.net/policy/2-stop-transit/">Prevent route leaking between upstream providers</a> with an AS-path filter</li>
<li><a href="https://bgplabs.net/policy/3-prefix/">Filter prefixes advertised by your autonomous system</a> with a prefix list</li>
<li><a href="https://bgplabs.net/policy/4-reduce/">Minimize the size of your BGP table</a> with inbound filters</li>
</ul>
<p>The labs are best used with <em><a href="https://netlab.tools/">netlab</a></em> (it <a href="https://netlab.tools/platforms/#platform-routing-support">supports BGP on almost 20 different devices</a>), but you could use any system you like (including GNS3 and CML/VIRL). For more details, read the <a href="https://bgplabs.net/1-setup/">Installation and Setup</a> documentation.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lifetime ipSpace.net Subscription]]></title>
    <link href="https://blog.ipspace.net/2023/09/lifetime-ipspace-subscription/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/09/lifetime-ipspace-subscription/</id>
    <published>2023-09-01T05:56:00+00:00</published>
    <updated>2023-09-01T05:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>More than thirteen years after I started creating vendor-neutral webinars, it&rsquo;s time for another change<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>: the ipSpace.net subscriptions became perpetual. If you have an active ipSpace.net subscription, it will stay valid indefinitely<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> (and I&rsquo;ll stop nagging you with renewal notices).</p>
<h3 id="wow-free-lunch">Wow, Free Lunch?</h3>
<p>Sadly, that&rsquo;s not the case.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/09/lifetime-ipspace-subscription/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPF and ARP on Unnumbered IPv4 Interfaces]]></title>
    <link href="https://blog.ipspace.net/2023/08/unnumbered-ospf-arp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/unnumbered-ospf-arp/</id>
    <published>2023-08-31T06:20:00+00:00</published>
    <updated>2023-08-31T06:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After figuring out <a href="/2023/08/arp-details/">ARP details</a>, describing how <a href="/2023/08/arp-static-routes/">routers use ARP to resolve entries in the IP routing table</a>, and considering what we already know about <a href="/2022/01/ospf-unnumbered/">OSPF on unnumbered IPv4 interfaces</a>, we&rsquo;re finally ready to answer Daniel&rsquo;s question:</p>

<figure><img src="/2023/08/ARP-Q.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2023/08/unnumbered-ospf-arp/'>Read more &hellip;</a></div>]]></content>
    <category term="ARP" />
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ARP and Static Routes]]></title>
    <link href="https://blog.ipspace.net/2023/08/arp-static-routes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/arp-static-routes/</id>
    <published>2023-08-30T06:30:00+00:00</published>
    <updated>2023-08-30T06:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few days ago, I <a href="/2023/08/arp-details/">described how ARP behaves when the source- and destination IP addresses are not on the same subnet</a> (TL&amp;DR: it doesn&rsquo;t care). Now, let&rsquo;s see how routers use ARP to get the destination MAC address for various entries in the IP routing table. To keep things simple, we&rsquo;ll use static routes to insert entries in the IP routing table.</p>
<p>We&rsquo;ll run our tests in a small virtual lab with two Linux hosts and an Arista vEOS switch. The link between H1 and RTR is a regular subnet. H2 has an IP address on the Ethernet interface, but RTR uses an unnumbered interface.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/08/arp-static-routes/'>Read more &hellip;</a></div>]]></content>
    <category term="ARP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Looking Inside Large Language Models]]></title>
    <link href="https://blog.ipspace.net/2023/08/worth-reading-large-language-models/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/worth-reading-large-language-models/</id>
    <published>2023-08-29T07:07:00+00:00</published>
    <updated>2023-08-29T07:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bruce Davie published an <a href="https://systemsapproach.substack.com/p/looking-inside-large-language-models">interesting overview article about
Large Language Models</a>. It would be worth reading just for the copious links to in-depth article; I particularly like his conclusions:</p>
<blockquote>
<p>We mistake performance (producing realistic text) for competence (understanding the world).</p>
</blockquote>
<blockquote>
<p>Having a model for language is different from having a model of the world.</p>
</blockquote>
<p>And that&rsquo;s a perfect explanation why it makes no sense to expect ChatGPT and friends to produce <a href="/2023/04/chatgpt-small-network-design/">picture-perfect device configurations</a> or <a href="/2023/04/kicking-tires-github-copilot/">always-working code</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ARP Details Behind the Scenes]]></title>
    <link href="https://blog.ipspace.net/2023/08/arp-details/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/arp-details/</id>
    <published>2023-08-28T06:25:00+00:00</published>
    <updated>2023-08-28T06:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When figuring out how <a href="/series/unnumbered-interfaces/">unnumbered IPv4 interfaces</a> work, Daniel Dib asked an interesting question: How does ARP work when the source and destination IPv4 address are not in the same segment (as is usually the case when using unnumbered interfaces)?</p>

<figure><img src="/2023/08/ARP-Q.png"/>
</figure>
<p><strong>TL&amp;DR:</strong> ARP doesn&rsquo;t care about subnets. If the TCP/IP stack needs to find a MAC address of a node it thinks is adjacent, ARP does its best, no matter what.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/08/arp-details/'>Read more &hellip;</a></div>]]></content>
    <category term="ARP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labs: The Basics]]></title>
    <link href="https://blog.ipspace.net/2023/08/bgp-labs-basic-setup/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/bgp-labs-basic-setup/</id>
    <published>2023-08-24T06:40:00+00:00</published>
    <updated>2023-08-24T06:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The first <a href="/2023/08/bgp-hands-on-labs/">BGP labs</a> are online. They cover the basic stuff (one has to <a href="/2015/03/you-must-understand-fundamentals-to-be/">start with the basics</a>, right?):</p>
<ul>
<li><a href="https://bgplabs.net/basic/1-session/">Configuring an EBGP session</a></li>
<li><a href="https://bgplabs.net/basic/2-multihomed/">Connecting to multiple upstream ISPs</a></li>
<li><a href="https://bgplabs.net/basic/3-originate/">Advertise your prefixes</a></li>
<li><a href="https://bgplabs.net/basic/4-ipv6/">Configure BGP for IPv6</a></li>
</ul>
<p>The labs are supposed to be run on virtual devices, but if you&rsquo;re stubborn enough it&rsquo;s possible to make them <a href="https://bgplabs.net/external/">work with the physical gear</a>. In theory, you could use any system you like to set up the virtual lab (including GNS3 and CML/VIRL), but your life will be way easier if you use <a href="https://netlab.tools/">netlab</a> &ndash; it <a href="https://netlab.tools/platforms/#platform-routing-support">supports BGP on almost 20 different devices</a>. For more details, read the <a href="https://bgplabs.net/1-setup/">Installation and Setup</a> documentation.</p>
]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How GitHub Learned How Hard Distributed Systems Are]]></title>
    <link href="https://blog.ipspace.net/2023/08/distributed-systems-are-hard/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/distributed-systems-are-hard/</id>
    <published>2023-08-23T05:55:00+00:00</published>
    <updated>2023-08-23T05:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/abaretta/">Anne Baretta</a> found a <a href="https://www.youtube.com/watch?v=dsHyUgGMht0">great video describing the October 2018 GitHub failure</a>. Here&rsquo;s the TL&amp;DW:</p>
<ul>
<li>The failure was caused by a short (~ 1 minute) disconnect of the primary data center</li>
<li>The database replicas failed over to the secondary data center, but that failover was never tested and of course some stuff didn&rsquo;t work.</li>
<li>In the meantime, batch jobs modified data in the primary data center, making the two replicas out-of-sync.</li>
<li>It took them over 24 hours to clean up the mess.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/08/distributed-systems-are-hard/'>Read more &hellip;</a></div>]]></content>
    <category term="high availability" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Engagement Farming]]></title>
    <link href="https://blog.ipspace.net/2023/08/engagement-farming/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/engagement-farming/</id>
    <published>2023-08-22T07:17:00+00:00</published>
    <updated>2023-08-22T07:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers asked for my opinion about the following masterpiece posted on (where else) LinkedIn<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>

<figure><img src="/2023/08/AI-NetOps-Bullshit-Bingo.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2023/08/engagement-farming/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.6.1: BGP Reports, Markdown Support]]></title>
    <link href="https://blog.ipspace.net/2023/08/netlab-1-6-1-bgp-markdown-reports/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/netlab-1-6-1-bgp-markdown-reports/</id>
    <published>2023-08-21T06:08:00+00:00</published>
    <updated>2023-08-21T06:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>We added just a few small features in <em>netlab</em> release 1.6.1<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>
<ul>
<li><strong>Markdown reports</strong>: <strong><a href="https://netlab.tools/netlab/report/">netlab report</a></strong> command can produce Markdown-formatted reports, making it extremely easy to include them in your documentation (assuming you&rsquo;re using Markdown to write it)</li>
<li>If you&rsquo;re using BGP in your labs, you can generate reports on BGP autonomous systems and BGP neighbors.</li>
<li>I made <a href="https://netlab.tools/defaults/#defaults-locations">locations of default files configurable</a>. I&rsquo;m using this feature in large projects where I want to have a shared set of project-wide defaults for topologies stored in different directories.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/08/netlab-1-6-1-bgp-markdown-reports/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Getting Comfortable with the Command Line]]></title>
    <link href="https://blog.ipspace.net/2023/08/comfortable-with-cli/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/comfortable-with-cli/</id>
    <published>2023-08-18T07:45:00+00:00</published>
    <updated>2023-08-18T07:45:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>More than a dozen years after the <a href="/2011/03/open-networking-foundation-fabric/">SDN brouhaha erupted</a>, some people still haven&rsquo;t got the memo on the obsolescence of CLI. For example, Julia Evans <a href="https://jvns.ca/blog/2023/08/08/what-helps-people-get-comfortable-on-the-command-line-/">tries to make people comfortable with the command line</a>. Has nobody told her it&rsquo;s like teaching COBOL?</p>
<p>On a more serious note: you <a href="https://datatracker.ietf.org/doc/html/rfc6919#section-4">OUGHT TO</a> master Linux CLI and be comfortable using CLI commands on network devices <em>and</em> servers. Her article has tons of useful tips and is definitely worth reading.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Free Subscription No Longer Needed to Watch the ipSpace.net Videos]]></title>
    <link href="https://blog.ipspace.net/2023/08/videos-free-subscription/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/videos-free-subscription/</id>
    <published>2023-08-16T05:41:00+00:00</published>
    <updated>2023-08-16T05:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;m publishing a <a href="/tag/video/">link to a free ipSpace.net video</a> several times each month, usually with a notice saying <em>you need <a href="https://www.ipspace.net/Subscription/Free">free subscription</a> to watch the video</em>. I had to put that limitation in place when I was hosting videos on AWS S3 &ndash; unlimited streaming could explode my AWS bill.</p>
<p>Recently I moved the video storage to Cloudflare R2. Cloudflare claims they will never charge egress fees, and as long as that&rsquo;s true (and they don&rsquo;t start chasing me for generating too much traffic) I see no reason to bother you with registration and login procedures &ndash; starting immediately, you can watch the free ipSpace.net videos without an ipSpace.net account.</p>
]]></content>
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Networking for AI Workloads]]></title>
    <link href="https://blog.ipspace.net/2023/08/worth-reading-networking-for-ai-workloads/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/worth-reading-networking-for-ai-workloads/</id>
    <published>2023-08-14T07:10:00+00:00</published>
    <updated>2023-08-14T07:10:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Sharada Yeluri (Senior Director of Engineering at Juniper Networks) wrote a long article describing
<a href="https://blog.apnic.net/2023/08/10/large-language-models-the-hardware-connection/">the connectivity requirements of AI workloads and new approaches to Ethernet fabrics</a>. Definitely worth reading if you&rsquo;re interested in these topics.</p>
]]></content>
    <category term="AI" />
    <category term="fabric" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New Project: BGP Hands-On Labs]]></title>
    <link href="https://blog.ipspace.net/2023/08/bgp-hands-on-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/bgp-hands-on-labs/</id>
    <published>2023-08-03T09:04:00+00:00</published>
    <updated>2023-08-03T09:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Long story short: I decided to create open-source BGP configuration labs, and (so far) created a superset of labs we used in an ancient Advanced BGP Configuration and Troubleshooting (ABCT) course</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab 1.6.0: New Commands, Reports, and External Connectivity]]></title>
    <link href="https://blog.ipspace.net/2023/08/netlab-1-6-commands-reports-connectivity/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/08/netlab-1-6-commands-reports-connectivity/</id>
    <published>2023-08-01T15:08:00+00:00</published>
    <updated>2023-08-01T15:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> release 1.6.0 has (probably) <a href="https://netlab.tools/release/1.6/#release-1-6-0">the longest release notes so far</a> as it contains so many user-visible new features including:</p>
<h3 id="new-commands">New Commands</h3>
<p>Some users were complaining how complex it was to use <strong>netlab create</strong> command to create graphs, inspect data structures, or create custom reports. They might find the new commands easier to use:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/08/netlab-1-6-commands-reports-connectivity/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: MP-TCP in Hybrid Access Networks]]></title>
    <link href="https://blog.ipspace.net/2023/07/worth-reading-mptcp-hybrid-access-networks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/worth-reading-mptcp-hybrid-access-networks/</id>
    <published>2023-07-24T09:02:00+00:00</published>
    <updated>2023-07-24T09:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Wouldn&rsquo;t it be nice if your home router (CPE) could use DSL (or slow-speed fibre) and LTE connection <em>at the same time</em>? Even better: run a <em>single TCP session</em> over both links? The answer to both questions is YES, of course it could do that, if only your service provider would be interested in giving you that option.</p>
<p>We solved similar problems with multilink PPP in the networking antiquity, today you could use a CPE with an MP-TCP proxy combined with a Hybrid Access Gateway in the service provider network. For more details, read the excellent <a href="https://arxiv.org/abs/1907.04570">Increasing broadband reach with Hybrid Access Networks</a> article by prof. Olivier Bonaventure and his team.</p>
]]></content>
    <category term="TCP" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Eyes Like Saucers]]></title>
    <link href="https://blog.ipspace.net/2023/07/worth-reading-eyes-like-saucers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/worth-reading-eyes-like-saucers/</id>
    <published>2023-07-20T07:36:00+00:00</published>
    <updated>2023-07-20T07:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/gerbenwierda/">Gerben Wierda</a> published a <a href="https://ea.rna.nl/2023/07/16/eyes-that-glaze-over-eyes-like-saucers-eyes-that-narrow/">nice description of common reactions to new unicorn-dust-based technologies</a>:</p>
<ul>
<li>Eyes that glaze over</li>
<li>Eyes like saucers</li>
<li>Eyes that narrow</li>
</ul>
<p>He uses generative <a href="/tag/ai/">AI</a> as an example to explain why it might be a bad idea that people in the first two categories make strategic decisions, but of course nothing ever stops people desperately believing in <a href="/2020/09/business-needs-excuses/">vendor fairy tales</a>, including <a href="/2015/02/before-talking-about-vmotion-across/">long-distance vMotion</a>, <a href="/tag/sdn/">SDN</a> or <a href="/tag/intent-based-networking/">intent-based networking</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multipath TCP (MPTCP) Resources]]></title>
    <link href="https://blog.ipspace.net/2023/07/mptcp-resources/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/mptcp-resources/</id>
    <published>2023-07-18T07:27:00+00:00</published>
    <updated>2023-07-18T07:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Brian Carpenter published a list of <a href="https://en.wikipedia.org/wiki/Multipath_TCP">Multipath TCP</a> resources to one of the IETF mailing lists<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>
<ul>
<li><a href="https://obonaventure.github.io/mmtp-book/">Modern Multipath Transport Protocols</a> &ndash; an ebook by prof. Olivier Bonaventure describing QUIC, multipath TCP and multipath QUIC.</li>
<li><a href="https://github.com/multipath-tcp/mptcp_net-next/wiki">Multipath TCP Wiki</a></li>
<li><a href="https://www.mptcp.dev/">Multipath TCP for Linux</a></li>
<li><a href="https://pypi.org/project/mptcplib/0.1.2/">Multipath TCP Python extension module</a></li>
</ul>
<p>You might also want to listen to the <a href="/2019/03/multipath-tcp-on-software-gone-wild/">Multipath TCP</a> podcast we recorded with Apple engineers in 2019.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>&hellip; along with a nice reminder that &ldquo;<em>it might be wise to look at actual implementations of MPTCP before jumping to conclusions</em>&rdquo;. Yeah, that&rsquo;s never a bad advice, but rarely followed.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="TCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Configuring Linux Traffic Control in a Sane Way]]></title>
    <link href="https://blog.ipspace.net/2023/07/worth-reading-linux-wan-link-impairment/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/worth-reading-linux-wan-link-impairment/</id>
    <published>2023-07-11T09:42:00+00:00</published>
    <updated>2023-07-11T09:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Smart engineers were forever using Linux (in particular, its <a href="https://man7.org/linux/man-pages/man8/tc.8.html">traffic control/queue discipline</a> functionality) to simulate WAN link impairment. Unfortunately, there&rsquo;s a tiny hurdle you have to jump across: the <strong>tc</strong> CLI is even worse than <strong>iptables</strong>.</p>
<p>A long while ago someone <a href="https://github.com/tylertreat/comcast">published a <strong>tc</strong> wrapper</a> that <em>simulates shitty network connections</em> and (for whatever reason) decided to call it Comcast. It probably does the job, but I would prefer to have something in Python. Daniel Dib found just that &ndash; <a href="https://github.com/thombashi/tcconfig">tcconfig</a> &ndash; and used it to
<a href="https://lostintransit.se/2023/07/05/building-a-wan-impairment-device-in-linux-on-vmware-vsphere/">simulate WAN link behavior on VMware vSphere</a>.</p>
]]></content>
    <category term=" WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fun Reading: History of the Early Internet]]></title>
    <link href="https://blog.ipspace.net/2023/07/worth-reading-history-early-internet/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/worth-reading-history-early-internet/</id>
    <published>2023-07-09T06:46:00+00:00</published>
    <updated>2023-07-09T06:46:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bruce Davie collected <a href="https://systemsapproach.substack.com/p/60-years-of-networking">numerous articles</a> describing various aspects of early Internet history and pre-Internet days, including <a href="https://groups.csail.mit.edu/ana/A%20brief%20history%20of%20the%20internet%20-%20p22-leiner.pdf">A Brief History of the Internet</a> and <a href="http://ccr.sigcomm.org/archive/1995/jan95/ccr-9501-clark.pdf">The Design Philosophy of the DARPA Internet Protocols</a>.</p>
<p>Have fun ;)</p>
]]></content>
    <category term="worth reading" />
    <category term="Internet" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Watching: Ethernet Thick Yellow Cable]]></title>
    <link href="https://blog.ipspace.net/2023/07/worth-reading-ethernet-yellow-cable/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/worth-reading-ethernet-yellow-cable/</id>
    <published>2023-07-08T07:18:00+00:00</published>
    <updated>2023-07-08T07:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Justus sent me an email with an interesting link:</p>
<hr>
<p>Since you love to <a href="/2023/04/wifi-shared-medium/">make comparisons to the good ol&rsquo; thick yellow cable</a> while I as a mid-30 year old adult have no idea what you are talking about: Computerphile <a href="http://www.youtube.com/watch?v=TkOVgkcrvbg">made a video about Ethernet on the occasion of its 50th birthday</a>. The university of Nottingham got the chance to show their museum pieces :-) (about 8:45 min).</p>
<hr>
<p>Thanks a million!</p>
]]></content>
    <category term="bridging" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Another BGP Session Reset Bug]]></title>
    <link href="https://blog.ipspace.net/2023/07/worth-reading-another-bgp-session-reset-bug/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/worth-reading-another-bgp-session-reset-bug/</id>
    <published>2023-07-02T06:24:00+00:00</published>
    <updated>2023-07-02T06:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://labs.ripe.net/author/emileaben/">Emile Aben</a> is <a href="https://labs.ripe.net/author/emileaben/unknown-attribute-28-a-source-of-entropy-in-interdomain-routing/">describing an interesting behavior</a> observed in the Wild West of the global Internet: someone started announcing BGP paths with an unknown attribute, which (regardless of <a href="https://www.rfc-editor.org/rfc/rfc7606">RFC 7606</a>) triggered some BGP session resets.</p>
<p>One would have hoped we learned something from the <a href="https://labs.ripe.net/author/erik/ripe-ncc-and-duke-university-bgp-experiment/">August 2010 incident</a> (<a href="/2023/03/chatgpt-bgp-routing-security/">supposedly caused by a friend of mine</a> 😜), but it looks like some things never change. For more details, watch the <a href="https://my.ipspace.net/bin/list?id=Net101#NETSEC">Network Security Fallacies</a> and <a href="https://www.ipspace.net/Internet_Routing_Security">Internet Routing Security</a> webinar.</p>
]]></content>
    <category term="worth reading" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: AI Does Not Help Programmers]]></title>
    <link href="https://blog.ipspace.net/2023/07/worth-reading-ai-not-helping-programmers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/07/worth-reading-ai-not-helping-programmers/</id>
    <published>2023-07-01T06:16:00+00:00</published>
    <updated>2023-07-01T06:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>On the Communications of the ACM web site, Bertrand Meyer argues that (contrary to the exploding hype) <a href="https://cacm.acm.org/blogs/blog-cacm/273577-ai-does-not-help-programmers/fulltext">AI Does Not Help Programmers</a>:</p>
<blockquote>
<p>As a programmer, I know where to go to solve a problem. But I am fallible; I would love to have an assistant who keeps me in check, alerting me to pitfalls and correcting me when I err. A effective pair-programmer. But that is not what I get. Instead, I have the equivalent of a cocky graduate student, smart and widely read, also polite and quick to apologize, but thoroughly, invariably, sloppy and unreliable. I have little use for such supposed help.</p>
</blockquote>
<p>Not surprisingly, my experience is pretty close to what he&rsquo;s describing. AI is the way to go if you want something that looks reasonable (at a first glance), but not if you want to get something <em>right</em>. Unfortunately, there&rsquo;s a bit of a difference between marketing and engineering: networks that are configured 90% correctly sometimes fail to do what you expect them to do.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: What Is Going on With BGP?]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-bgp-news/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-bgp-news/</id>
    <published>2023-06-25T06:08:00+00:00</published>
    <updated>2023-06-25T06:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Ignas Bagdonas sent a <a href="https://www.ripe.net/ripe/mail/archives/routing-wg/2023-June/004748.html">phenomenal summary of recent BGP developments</a> to the RIPE Routing WG mailing list. Enjoy!</p>
]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Always the Same Warning Signs]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-always-same-warning-signs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-always-same-warning-signs/</id>
    <published>2023-06-24T06:03:00+00:00</published>
    <updated>2023-06-24T06:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Found an <a href="https://www.science.org/content/blog-post/always-same-warning-signs">interesting article</a> describing the shenanigans of a biotech startup. Admittedly, it has nothing to do with networking apart from the closing paragraph&hellip;</p>
<blockquote>
<p>But people will find all sorts of ways to believe what they want to believe, to avoid hearing things that they don’t want to hear, and to avoid thinking about things that are too worrisome to contemplate.</p>
</blockquote>
<p>&hellip; which is a perfect description of why people believe in centralized control planes, flow-based forwarding, or long-distance vMotion.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Summer Break 2023]]></title>
    <link href="https://blog.ipspace.net/2023/06/summer-break/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/summer-break/</id>
    <published>2023-06-22T06:08:00+00:00</published>
    <updated>2023-06-22T06:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Long story short: it&rsquo;s time for another summer break, as people reporting my bloopers &ndash; THANK YOU!!! &ndash; know only too well. I plan to be back in early autumn rolling out <a href="https://www.ipspace.net/Webinars/Sessions">tons of new content</a>.</p>
<p>I&rsquo;ll do my best to reply to support requests (it will take longer than usual), and probably won&rsquo;t be able to resist publishing a few lightweight <em>netlab</em>-related blog posts. If you get bored there&rsquo;s still <a href="https://www.ipspace.net/Subscription/Individual">over 400 hours of existing content</a>, <a href="https://www.ipspace.net/Podcast/Software_Gone_Wild/">over 100 podcast episodes</a>, and <a href="/">thousands of blog posts</a>.</p>
<p>In the meantime, get away from work, turn off the Internet, and enjoy a few days in your favorite spot with your loved ones!</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Use FRR Containers to Learn Routing Protocol Fundamentals]]></title>
    <link href="https://blog.ipspace.net/2023/06/learn-routing-protocols-frr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/learn-routing-protocols-frr/</id>
    <published>2023-06-21T06:42:00+00:00</published>
    <updated>2024-07-08T07:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>An anonymous commenter <a href="/2023/06/bgp-leak-lab/#1859">asked this highly relevant question</a> about my <a href="/2023/06/bgp-leak-lab/">Internet routing security lab</a>:</p>
<blockquote>
<p>What are the smallest hardware requirements to run the lab?</p>
</blockquote>
<p><strong>TL&amp;DR:</strong> 2 GB RAM, 2 vCPU</p>
<p>Now for the more precise answer (aka &ldquo;<em>it depends</em>&rdquo;).</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/learn-routing-protocols-frr/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[When a Device Without an IP Address Wants to Play the IP Game]]></title>
    <link href="https://blog.ipspace.net/2023/06/missing-ip-source-address/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/missing-ip-source-address/</id>
    <published>2023-06-20T06:41:00+00:00</published>
    <updated>2023-06-20T06:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After I published the <a href="/2023/06/multicast-source-address/">Source IP Address in Multicast Packets</a> blog post, <a href="https://www.linkedin.com/in/erik-auerswald-2b8b73171">Erik Auerswald</a> sent me several examples of network devices sending IP packets with source IP address set to 0.0.0.0:</p>
<ul>
<li>Cisco wireless access points <a href="https://extremeportal.force.com/ExtrArticleDetail?an=000111647">using 0.0.0.0 as the source IP address in VRRP packets</a>.</li>
<li>Extreme (formerly Avaya) switches sending IGMP queries with source IP address 0.0.0.0 on VLANs on which they have no IP address.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/missing-ip-source-address/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Exercise: Fix BGP Route Leaks]]></title>
    <link href="https://blog.ipspace.net/2023/06/bgp-leak-lab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/bgp-leak-lab/</id>
    <published>2023-06-19T06:33:00+00:00</published>
    <updated>2023-06-19T06:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I created a <a href="https://github.com/ipspace/netlab-examples/tree/master/BGP/Route-Leaks"><em>netlab</em> topology</a> you can use to practice BGP security tools I described in the <a href="https://www.ipspace.net/Internet_Routing_Security">Internet Routing Security</a> webinar:</p>
<ul>
<li>The lab topology mirrors the sample topology I described in the <a href="/2023/06/bgp-route-leak-classification/">Classification of BGP Route Leaks (RFC 7908)</a> blog post with one router per autonomous system</li>
<li>BGP is configured on all devices, and EBGP sessions are set up between all directly-connected devices.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/bgp-leak-lab/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Some Blogging Myths]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-blogging-myths/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-blogging-myths/</id>
    <published>2023-06-18T06:14:00+00:00</published>
    <updated>2023-06-18T06:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Julia Evans published another phenomenal blog post, this time focused on <a href="https://jvns.ca/blog/2023/06/05/some-blogging-myths/">blogging myths</a> including:</p>
<ul>
<li>You need to be original</li>
<li>You need to be an expert</li>
<li>Posts need to be 100% correct</li>
<li>Writing boring posts is bad</li>
<li>You need to explain every concept</li>
<li>Page views matter</li>
<li>More material is always better</li>
</ul>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: A Primer on Communication Fundamentals]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-primer-communication-fundamentals/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-primer-communication-fundamentals/</id>
    <published>2023-06-17T06:08:00+00:00</published>
    <updated>2023-06-17T06:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Dip Singh published an excellent <a href="https://dipsingh.github.io/Back-to-basics-communication/">primer on communication fundamentals</a>, including:</p>
<ul>
<li>Waves: frequency, amplitude, wavelength, phase</li>
<li>Composite signals, frequency domain and Fourier transform</li>
<li>Bandwidth, fundamental and harmonic frequency</li>
<li>Decibels in a nutshell</li>
<li>Transmission impairments: attenuation, distortion, noise</li>
<li>Principles of modern communications: Nyquist theorem, Shannon&rsquo;s law, bit and baud rate</li>
<li>Line encoding techniques, quadrature methods (including QPSK and QAM)</li>
</ul>
<p>Even if you don&rsquo;t care about layer-1 technologies, you MUST read it to get at least a basic appreciation of why stuff you&rsquo;re using to read this blog post works.</p>
]]></content>
    <category term="worth reading" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Please Respond: MANRS Customer Survey]]></title>
    <link href="https://blog.ipspace.net/2023/06/manrs-survey/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/manrs-survey/</id>
    <published>2023-06-15T05:49:00+00:00</published>
    <updated>2023-06-15T05:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Andrei Robachevsky asked me to spread the word about the new MANRS+ customer survey:</p>
<blockquote>
<p>MANRS is conducting a survey for organizations that contract connectivity providers to learn more about if and how routing security fits into their broader supply chain security strategy. If this is your organization, or if it is your customers, we welcome you to take or share the survey at <a href="https://www.surveymonkey.com/r/BDCWKNS">https://www.surveymonkey.com/r/BDCWKNS</a></p>
</blockquote>
<p>I hope you immediately clicked on the link and completed the survey. If you&rsquo;re still here wondering what&rsquo;s going on, here&rsquo;s some more information from Andrei:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/manrs-survey/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EIGRP Stub Routers]]></title>
    <link href="https://blog.ipspace.net/2023/06/eigrp-stub-routers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/eigrp-stub-routers/</id>
    <published>2023-06-14T06:05:00+00:00</published>
    <updated>2023-06-14T06:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Years ago I wrote an article describing how EIGRP stub routers work and how you should use them in redundant remote sites to make sure link- or node failures don&rsquo;t result in partial connectivity. That article is now <a href="/kb/Internet/EIGRP_stub">available on ipSpace.net</a>; I hope at least someone will find it useful. I know it&rsquo;s about ancient technology, but then people are still running COBOL on mainframes.</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[Classification of BGP Route Leaks (RFC 7908)]]></title>
    <link href="https://blog.ipspace.net/2023/06/bgp-route-leak-classification/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/bgp-route-leak-classification/</id>
    <published>2023-06-13T06:13:00+00:00</published>
    <updated>2023-06-14T17:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>While preparing the <em><a href="https://www.ipspace.net/Internet_Routing_Security">Internet Routing Security</a></em> webinar, I stumbled upon <a href="https://www.rfc-editor.org/rfc/rfc7908.html">RFC 7908</a>, containing an excellent taxonomy of BGP route leaks. I never checked whether it covers every possible scenario<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, but I found it a handy resource when organizing my thoughts.</p>
<p>Let&rsquo;s walk through the various leak types the authors identified using the following sample topology:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/bgp-route-leak-classification/'>Read more &hellip;</a></div>]]></content>
    <category term=" BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.5.4: New Junos Platforms]]></title>
    <link href="https://blog.ipspace.net/2023/06/netlab-release-1.5.4-vjunos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/netlab-release-1.5.4-vjunos/</id>
    <published>2023-06-12T06:14:00+00:00</published>
    <updated>2023-06-12T06:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Stefano Sasso added two new Junos platforms in <em>netlab</em> <a href="https://netlab.tools/release/1.5/#release-1-5-4">release 1.5.4</a>:</p>
<ul>
<li>vJunos Evolved (vPTX) &ndash; a new <a href="https://www.juniper.net/documentation/us/en/software/vJunosEvolved/vJunosEvolved-kvm-deployment-guide/vJunosEvolved-KVM/topics/vJunos-Evolved-architecture.html">VM-based product</a> Juniper released a few weeks ago</li>
<li>vSRX running as a <em>vrnetlab</em>-packaged container.</li>
</ul>
<p>There are also the <a href="https://netlab.tools/release/1.5/#bug-fixes-in-release-1-5-4">usual bug fixes</a>, and we moved the documentation to <a href="https://netlab.tools/">netlab.tools</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/netlab-release-1.5.4-vjunos/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Building Stuff with Large Language Models Is Hard]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-building-with-llm-is-hard/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-building-with-llm-is-hard/</id>
    <published>2023-06-11T06:21:00+00:00</published>
    <updated>2023-06-11T06:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Large language models (LLM) &ndash; ChatGPT and friends &ndash; are one of those technologies with a crazy learning curve. They look simple and friendly (resulting in plenty of useless <em>demoware</em>) but become devilishly hard to work with once you try to squeeze consistent value out of them.</p>
<p>Most people don&rsquo;t want to talk about the hard stuff (sexy demoware results in more page views), but there&rsquo;s an occasional exception, for example <a href="https://www.honeycomb.io/blog/hard-stuff-nobody-talks-about-llm">All the Hard Stuff Nobody Talks About when Building Products with LLMs</a> describing all the gotchas Honeycomb engineers discovered when creating a LLM-based user interface.</p>
<div class='jump-link'><a href="https://www.honeycomb.io/blog/hard-stuff-nobody-talks-about-llm">Keep reading</a></div>
]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Spoofing ICMP Redirects for Fun and Profit]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-spoofing-icmp-redirects/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-spoofing-icmp-redirects/</id>
    <published>2023-06-10T06:18:00+00:00</published>
    <updated>2023-06-10T06:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Security researches found another ICMP redirect SNAFU:
<a href="https://blog.apnic.net/2023/05/29/mitm-attacks-in-public-wi-fi-networks-without-rogue-access-points/">a malicious wireless client can send redirects on behalf of the access point</a> redirecting another client&rsquo;s traffic to itself.</p>
<p>I&rsquo;m pretty sure the same trick works on any layer-2 technology; the sad part of this particular story is that the spoofed ICMP packet traverses the access point, which could figure out what&rsquo;s going on and drop the packet. Unfortunately, most of the access points the researchers tested were unable to do that due to limitations in the NPUs (a fancier word for SmartNIC) they were using.</p>
<div class='jump-link'><a href="https://blog.apnic.net/2023/05/29/mitm-attacks-in-public-wi-fi-networks-without-rogue-access-points/">Keep reading</a></div>
]]></content>
    <category term="security" />
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: SD-WAN Security]]></title>
    <link href="https://blog.ipspace.net/2023/06/video-sdwan-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/video-sdwan-security/</id>
    <published>2023-06-09T06:32:00+00:00</published>
    <updated>2023-06-09T06:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After discussing the <a href="/2023/03/video-sdwan-backend-architecture/">backend</a> and <a href="/2023/04/video-sdwan-cpe-architecture/">CPE</a> architecture in a typical SD-WAN solution in the <a href="https://www.ipspace.net/SD-WAN_Overview">SD-WAN Overview</a> webinar, <a href="https://www.ipspace.net/Author:Pradosh_Mohapatra">Pradosh Mohapatra</a> <a href="https://my.ipspace.net/bin/get/SDWAN/5%20-%20Security.mp4?doccode=SDWAN">mentioned a few SD-WAN security aspects</a>, focusing on typical attack vectors and the usual mitigations.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/SDWAN/5%20-%20Security.mp4?doccode=SDWAN">Watch the video</a></div>
<div  class="free">
You need at least <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a> to watch videos in this webinar.
</div>
]]></content>
    <category term="SD-WAN" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Are LACP Fast Timers Any Good?]]></title>
    <link href="https://blog.ipspace.net/2023/06/lacp-fast-timers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/lacp-fast-timers/</id>
    <published>2023-06-08T06:19:00+00:00</published>
    <updated>2023-06-08T06:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Got this question from a networking engineer attending the <a href="https://www.ipspace.net/Building_Next-Generation_Data_Center">Building Next-Generation Data Center</a> online course:</p>
<blockquote>
<p>Has anyone an advice on LACP fast rate? When and why should you use it instead of normal LACP?</p>
</blockquote>
<p>Apart from forming link aggregation groups, you can use LACP to detect link- and node failures (<a href="/2023/05/failure-detection-server-dual-homing/">more details</a>). However:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/lacp-fast-timers/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Distributed Systems Resources]]></title>
    <link href="https://blog.ipspace.net/2023/06/distributed-systems-resources/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/distributed-systems-resources/</id>
    <published>2023-06-07T06:19:00+00:00</published>
    <updated>2023-06-07T06:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Distributed systems are complicated. Add networking to the mix, and you get traumatic challenges like the CAP theorem and Byzantine fault tolerance. Most of those challenges are unknown to engineers who have to suffer through the vendor marketing presentations, making it hard to determine whether the latest shiny gizmo works outside of PowerPoint.</p>
<p>I started collecting articles describing distributed-system gotchas years ago, wrote numerous blog posts on the topic in the heydays of the SDN Will Save the World lemming run, and organized them into the <a href="/series/distributed-systems/">Distributed Systems Resources page</a>.</p>
]]></content>
  </entry>
  <entry>
    <title type="html"><![CDATA[EIGRP Third-Party Next Hops]]></title>
    <link href="https://blog.ipspace.net/2023/06/eigrp-third-party-next-hop/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/eigrp-third-party-next-hop/</id>
    <published>2023-06-06T06:39:00+00:00</published>
    <updated>2023-06-06T06:39:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>EIGRP routing updates have always contained the <em>next hop</em> field (similar to BGP updates), which was unused until Cisco IOS release 12.3 when the <strong>no ip next-hop-self eigrp <em>AS-number</em></strong> interface configuration command was implemented.</p>
<p>EIGRP does not set the <em>next hop</em> field by default. An EIGRP router receiving a routing update thus assumes that the next hop of the received routes is the sending router. This behavior usually works well, but prevents site-to-site shortcuts to be established in DMVPN networks, and results in suboptimal routing in some route redistribution scenarios.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/eigrp-third-party-next-hop/'>Read more &hellip;</a></div>]]></content>
    <category term="EIGRP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Default EBGP Policy (RFC 8212)]]></title>
    <link href="https://blog.ipspace.net/2023/06/default-ebgp-policy-rfc-8212/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/default-ebgp-policy-rfc-8212/</id>
    <published>2023-06-05T07:09:00+00:00</published>
    <updated>2023-06-07T05:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the most common causes of Internet routing leaks is an undereducated end-customer configuring EBGP sessions with two (or more) upstream ISPs.</p>
<p>Without basic-level BGP knowledge or further guidance from the service providers, the customer network engineer<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> might start a BGP routing process and configure two EBGP sessions, similar to the following <em>industry-standard CLI</em><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> configuration:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/default-ebgp-policy-rfc-8212/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Internet WAN Edge Design]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-network-edge-dmz-design/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-network-edge-dmz-design/</id>
    <published>2023-06-04T07:34:00+00:00</published>
    <updated>2023-06-04T07:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/brandonhitzel/">Brandon Hitzel</a> published a <a href="https://www.networkdefenseblog.com/post/network-design-network-edge">detailed document describing various Internet WAN edge designs</a>. Definitely worth reading and bookmarking.</p>
]]></content>
    <category term="worth reading" />
    <category term="Internet" />
    <category term="Design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Unbounded TCP Memory Usage]]></title>
    <link href="https://blog.ipspace.net/2023/06/worth-reading-unbounded-tcp-memory-usage/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/worth-reading-unbounded-tcp-memory-usage/</id>
    <published>2023-06-03T06:23:00+00:00</published>
    <updated>2023-06-03T06:23:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Another phenomenal detective story published on Cloudflare blog:
<a href="https://blog.cloudflare.com/unbounded-memory-usage-by-tcp-for-receive-buffers-and-how-we-fixed-it/">Unbounded memory usage by TCP for receive buffers, and how we fixed it</a>.</p>
<p><strong>TL&amp;DR:</strong> Moving TCP window every time you acknowledge a segment doesn&rsquo;t work well with scaled window sizes.</p>
<p>The interesting takeaways:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/worth-reading-unbounded-tcp-memory-usage/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="TCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Link State Routing Protocol Implementations]]></title>
    <link href="https://blog.ipspace.net/2023/06/video-link-state-routing-implementation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/video-link-state-routing-implementation/</id>
    <published>2023-06-02T06:19:00+00:00</published>
    <updated>2023-06-02T06:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="/2022/11/video-routing-protocols-overview/">introducing the routing protocols</a> and explaining the <a href="/2023/02/video-link-state-routing-basics/">basics of link-state routing</a> it was time for <a href="https://my.ipspace.net/bin/get/Net101/RP2.2%20-%20Link%20State%20Routing%20Protocol%20Implementation%20Considerations.mp4?doccode=Net101">implementation considerations</a> including:</p>
<ul>
<li>Collecting local endpoint reachability information</li>
<li>Finding neighbors and exchanging the collected information (hint: a link-state topology database is just a distributed key-value store)</li>
<li>Running the SPF algorithm (including partial SPF details) and installing the results</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/RP2.2%20-%20Link%20State%20Routing%20Protocol%20Implementation%20Considerations.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="IP routing" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Source IP Address in Multicast Packets]]></title>
    <link href="https://blog.ipspace.net/2023/06/multicast-source-address/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/06/multicast-source-address/</id>
    <published>2023-06-01T07:22:00+00:00</published>
    <updated>2023-06-01T16:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me this (paraphrased) question:</p>
<blockquote>
<p>What I have seen in my network are multicast packets with the IP source address set to 0.0.0.0 and source port set to 0. Is that considered acceptable? Could I use a multicast IP address as a source address?</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: **** NO!!!</p>
<p>It also seemed like a good question to test ChatGPT, and this time it did a pretty good job.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/06/multicast-source-address/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[NTP in a Nutshell]]></title>
    <link href="https://blog.ipspace.net/2023/05/ntp-in-a-nutshell/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/ntp-in-a-nutshell/</id>
    <published>2023-05-31T05:53:00+00:00</published>
    <updated>2023-05-31T05:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Years ago I&rsquo;ve been involved in an interesting discussion focusing on NTP authentication and whether you can actually implement it reliably on Cisco IOS. What I got out of it (apart from a working example) was the feeling that NTP and it&rsquo;s implementation in Cisco IOS was under-understood and under-documented, so I wrote an article about it. Of course the web version got lost in the mists of time but I keep my archives handy.</p>
<p>Last weekend I <a href="/kb/Internet/NTP/">migrated that article to blog.ipSpace.net</a>. I hope you&rsquo;ll still find it useful; while it&rsquo;s pretty old, the fundamentals haven&rsquo;t changed in the meantime.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Path Failure Detection on Multi-Homed Servers]]></title>
    <link href="https://blog.ipspace.net/2023/05/failure-detection-server-dual-homing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/failure-detection-server-dual-homing/</id>
    <published>2023-05-30T06:32:00+00:00</published>
    <updated>2023-05-30T06:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR:</strong> Installing an Ethernet NIC with two uplinks in a server is easy<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Connecting those uplinks to two edge switches is common sense<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. Detecting physical link failure is trivial in Gigabit Ethernet world. Deciding between two independent uplinks or a link aggregation group is interesting. Detecting path failure and disabling the useless uplink that causes traffic blackholing is a living hell (more details in this <a href="https://designclinic.ipspace.net/topic/dual-homing-hosts/">Design Clinic question</a>).</p>
<p>Want to know more? Let&rsquo;s dive into the gory details.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/failure-detection-server-dual-homing/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Goodbye Twitter. It Was Fun While It Lasted]]></title>
    <link href="https://blog.ipspace.net/2023/05/goodbye-twitter/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/goodbye-twitter/</id>
    <published>2023-05-29T06:34:00+00:00</published>
    <updated>2023-05-29T06:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I joined Twitter in October 2008 (after noticing everyone else was using it during a Networking Field Day event), and eventually figured out how to automate posting the links to my blog posts in case someone uses Twitter as their primary source of news &ndash; an IFTTT applet that read my RSS feed and posted links to new entries to Twitter.</p>
<p>This week, I got a nice email from IFTTT telling me they had to disable the post-to-Twitter applet. Twitter started charging for the API, and I was using their free service &ndash; obviously the math didn&rsquo;t work out.</p>
<p>That left me with three options:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/goodbye-twitter/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Cargo Cult AI]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-cargo-cult-ai/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-cargo-cult-ai/</id>
    <published>2023-05-28T06:45:00+00:00</published>
    <updated>2023-05-28T06:45:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Before we managed to recover from the <a href="/2023/01/network-automation-expert-beginners/">automation cargo cults</a>, a tsunami wave of <a href="https://queue.acm.org/detail.cfm?ref=rss&amp;id=3595860">cargo cult AI</a> washed over us as Edlyn V. Levine explained in an ACM Queue article. Enjoy ;)</p>
<p>Also, a bit of a historical perspective is never a bad thing:</p>
<blockquote>
<p>Impressive progress in AI, including the recent sensation of ChatGPT, has been dominated by the success of a single, decades-old machine-learning approach called a multilayer (or deep) neural network. This approach was invented in the 1940s, and essentially all of the foundational concepts of neural networks  and associated methods—including convolutional neural networks and backpropagation—were in place by the 1980s.</p>
</blockquote>
]]></content>
    <category term="AI" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Building Trustworthy AI]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-trustworthy-ai/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-trustworthy-ai/</id>
    <published>2023-05-27T07:52:00+00:00</published>
    <updated>2023-05-27T07:52:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bruce Schneier wrote an excellent essay explaining <a href="https://www.schneier.com/blog/archives/2023/05/building-trustworthy-ai.html">why we need trustworthy AI</a> and why we won&rsquo;t get it as long the AI solutions are created by large tech companies with <em>you are a product</em> business model.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Security Vulnerabilities: the Root Causes]]></title>
    <link href="https://blog.ipspace.net/2023/05/network-insecurity-root-causes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/network-insecurity-root-causes/</id>
    <published>2023-05-26T06:31:00+00:00</published>
    <updated>2023-05-26T06:31:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Sometime last autumn, I was asked to create a short &ldquo;network security challenges&rdquo; presentation. Eventually, I turned it into a webinar, resulting in almost four hours of content describing the interesting gotchas I encountered in the past (plus a few recent vulnerabilities like <a href="/2023/04/wifi-shared-medium/">turning WiFi into a thick yellow cable</a>).</p>
<p>Each webinar section started with a short &ldquo;This is why we have to deal with these stupidities&rdquo; introduction. You&rsquo;ll find all of them collected in the <a href="https://my.ipspace.net/bin/get/Net101/NS1%20-%20Root%20Causes.mp4?doccode=Net101">Root Causes</a> video starting the <a href="https://my.ipspace.net/bin/list?id=Net101#NETSEC">Network Security Fallacies</a> part of the <a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a> webinar.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NS1%20-%20Root%20Causes.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="security" />
    <category term="switching" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Inter-VRF DHCP Relaying with Redundant DHCP Servers]]></title>
    <link href="https://blog.ipspace.net/2023/05/dhcp-redundant-vrf-relay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/dhcp-redundant-vrf-relay/</id>
    <published>2023-05-25T06:43:00+00:00</published>
    <updated>2023-05-25T06:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Previous posts in this series covered numerous intricacies of DHCP relaying:</p>
<ul>
<li><a href="/2023/03/dhcp-relay-process/">DHCP relaying principles</a> described the basics</li>
<li>In <a href="/2023/03/netlab-vrf-dhcp-relay/">Inter-VRFs relaying</a> we figured out how a DHCP client reaches a DHCP server in another VRF without inter-VRF route leaking</li>
<li><a href="/2023/03/netlab-vxlan-dhcp-relay/">Relaying in VXLAN segments</a> and <a href="/2023/04/netlab-evpn-dhcp-relay/">relaying from EVPN VRF</a> applied those lessons to VXLAN/EVPN environment.</li>
<li><a href="/2023/04/dhcp-redundant-relay/">DHCP Relaying with Redundant DHCP Servers</a> added relay- and server redundancy.</li>
</ul>
<p>Now for the final bit of the puzzle: what if we want to do inter-VRF DHCP relaying with redundant DHCP servers?</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/dhcp-redundant-vrf-relay/'>Read more &hellip;</a></div>]]></content>
    <category term="DHCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dealing with Cisco ACI Quirks]]></title>
    <link href="https://blog.ipspace.net/2023/05/cisco-aci-quirks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/cisco-aci-quirks/</id>
    <published>2023-05-23T06:36:00+00:00</published>
    <updated>2023-05-23T06:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Sebastian described an <a href="/2023/04/evpn-dynamic-mac-learning/#1790">interesting Cisco ACI quirk</a> they had the privilege of chasing around:</p>
<blockquote>
<p>We&rsquo;ve encountered VM connectivity issues after VM movements from one vPC leaf pair to a different vPC leaf pair with ACI. The issue did not occur immediately (due to ACI&rsquo;s bounce entries) and only sometimes, which made it very difficult to reproduce synthetically, but due to DRS and a large number of VMs it occurred frequently enough, that it was a serious problem for us.</p>
</blockquote>
<p>Here&rsquo;s what they figured out:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/cisco-aci-quirks/'>Read more &hellip;</a></div>]]></content>
    <category term="fabric" />
    <category term="ACI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Simplify netlab Topologies with Link Groups]]></title>
    <link href="https://blog.ipspace.net/2023/05/netlab-link-groups/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/netlab-link-groups/</id>
    <published>2023-05-22T06:45:00+00:00</published>
    <updated>2023-05-22T06:45:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last month I described how you can simplify your VLAN- or VRF lab topologies with <a href="/2023/04/netlab-vrf-vlan-links/">VRF- and VLAN links</a>, automatically setting <strong>vlan.access</strong> or <strong>vrf</strong> attribute on a set of links. <a href="https://netlab.tools/links/#link-groups">Link groups</a> allow you to do the same for any set of link attributes.</p>
<h3 id="sample-topology">Sample Topology</h3>
<p>Imagine you have a small network with three PE-routers connected to a central P-router:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/netlab-link-groups/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Trapped by Technology Fallacies]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-trapped-technology-fallacies/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-trapped-technology-fallacies/</id>
    <published>2023-05-21T07:35:00+00:00</published>
    <updated>2023-05-21T07:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Michele Chubirka published a must-read article on <a href="https://postmodernsecurity.com/2023/05/11/trapped-by-technology-fallacies/">technology fallacies</a> including this gem:</p>
<blockquote>
<p>Technologists often assume that all problems can be beaten into submission with a technology hammer.</p>
</blockquote>
<p>As <a href="/2014/09/youve-been-doing-same-thing-for-last-20/">I&rsquo;ve been saying for ages</a> (not that anyone would listen): all the technology in the world won’t save you unless you change the mentality and rearchitect broken processes.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Is Source Address Validation Still a Problem?]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-source-address-validation-still-a-problem/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-source-address-validation-still-a-problem/</id>
    <published>2023-05-20T07:13:00+00:00</published>
    <updated>2023-05-20T07:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I mentioned IP source address validation (SAV) as one of the <a href="https://www.manrs.org/netops/network-operator-actions/">MANRS-recommended actions</a> in the <a href="https://www.ipspace.net/Internet_Routing_Security">Internet Routing Security</a> webinar but did not go into any details (as the webinar deals with <em>routing</em> security, not <em>data-plane</em> security)&hellip; but I stumbled upon a wonderful companion article published by RIPE Labs: <a href="https://labs.ripe.net/author/qasim-lone/sav-why-is-source-address-validation-still-a-problem/">Why Is Source Address Validation Still a Problem?</a>.</p>
<p>The article goes through the basics of SAV, best practices, and (most interesting) using free testing tools to detect non-compliant networks. Definitely worth reading!</p>
]]></content>
    <category term="worth reading" />
    <category term="IP routing" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Types of Switching ASICs]]></title>
    <link href="https://blog.ipspace.net/2023/05/video-types-asics/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/video-types-asics/</id>
    <published>2023-05-19T07:21:00+00:00</published>
    <updated>2023-05-19T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Pete_Lumbis">Pete Lumbis</a> concluded his <a href="https://my.ipspace.net/bin/list?id=DCFabric#TECHNOLOGY">ASICs for Networking Engineers</a> presentation with a <a href="https://my.ipspace.net/bin/get/DCFabric/AS5%20-%20Types%20of%20ASICs.mp4?doccode=DCFabric">brief overview of types of switching ASICs</a> and a <a href="https://my.ipspace.net/bin/get/DCFabric/AS6%20-%20Wrap-Up.mp4?doccode=DCFabric">wrap-up</a>.</p>
<p>You can watch his entire 90-minute presentation (<a href="https://my.ipspace.net/bin/list?id=DCFabric#TECHNOLOGY">sliced into shorter videos</a>) with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/DCFabric/AS5%20-%20Types%20of%20ASICs.mp4?doccode=DCFabric">Watch the video</a></div>
]]></content>
    <category term="data center" />
    <category term="switching" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Find the Optimal Level of Automation Abstraction]]></title>
    <link href="https://blog.ipspace.net/2023/05/automation-abstraction-level/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/automation-abstraction-level/</id>
    <published>2023-05-18T07:03:00+00:00</published>
    <updated>2023-05-18T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://www.linkedin.com/in/tomammon/">Tom Ammon</a> sent me his thoughts on choosing the right level of abstraction in your network automation solution as a response to my <a href="/2018/06/what-is-intent-based-networking/">What Is Intent-Based Networking</a> blog post, and allowed me to publish them on ipspace.net.</em></p>
<hr>
<p>I totally agree with your <em>what</em> vs <em>how</em> example with OSPF. I work on a NOS team where if we wanted, we could say, instead of &ldquo;run OSPF on these links&rdquo;, do this:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/automation-abstraction-level/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New: Disaster Recovery Resources]]></title>
    <link href="https://blog.ipspace.net/2023/05/dr-resources/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/dr-resources/</id>
    <published>2023-05-17T06:10:00+00:00</published>
    <updated>2023-05-17T06:10:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I wrote dozens of blog posts debunking disaster recovery fairy tales (mostly of the <em>long-distance vMotion</em> and <em>stretched clusters</em> variety) over the years. They are collected and sorted (and polished a bit) in the new <em><a href="/series/dr/">Disaster Recovery Resources</a></em> page. Hope you&rsquo;ll find them useful.</p>
<div class='jump-link'><a href="/series/dr/">Explore</a></div>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ITNOG 7 Wrap-up]]></title>
    <link href="https://blog.ipspace.net/2023/05/itnog-wrapup/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/itnog-wrapup/</id>
    <published>2023-05-16T06:25:00+00:00</published>
    <updated>2023-05-16T06:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I attended <a href="https://www.itnog.it/itnog7/">ITNOG 7 last week</a>, and thoroughly enjoyed a <a href="https://www.itnog.it/itnog7/">full day of interesting presentations</a>, including <em><a href="https://www.itnog.it/itnog7/files/13-RETN%20Presentation_Olena%20Lutsenko%20and%20Milko%20Ilari_for%20ITNOG_final.pdf">how do you run Internet services in a war zone</a></em> by Elena Lutsenko and Milko Ilari.</p>
<p>The morning was focused primarily on BGP:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/itnog-wrapup/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.5.3: libvirt Public Networks]]></title>
    <link href="https://blog.ipspace.net/2023/05/netlab-release-1.5.3-libvirt-public-networks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/netlab-release-1.5.3-libvirt-public-networks/</id>
    <published>2023-05-15T07:56:00+00:00</published>
    <updated>2023-05-15T07:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>containerlab</em> <a href="https://containerlab.dev/rn/0.41/">release 0.41.0</a> that came out a few days ago changed a few topology attributes with no backward compatibility, breaking <em>netlab</em> for anyone doing a new installation. The only way out of that conundrum was to push out a new <em>netlab</em> release that uses the new attributes and requires <em>containerlab</em> release 0.41.0 (more about that in a minute).</p>
<p>On a more positive note, <em>netlab</em> <a href="https://netlab.tools/release/1.5/#release-1-5-3">release 1.5.3</a> brings a few interesting features, including:</p>
<ul>
<li>Support for <a href="https://netlab.tools/labs/libvirt/#libvirt-network-external">public <em>libvirt</em> networks</a> that can be used to <a href="https://netlab.tools/example/external/">connect your labs to the outside world</a>, and <a href="https://netlab.tools/labs/libvirt/#libvirt-network">reuse of existing libvirt networks</a></li>
<li><a href="https://netlab.tools/platforms/#platform-unknown">‘unknown’ device type</a> that can be used to deploy devices not yet supported by <em>netlab</em></li>
<li>MPLS/VPN support on Nokia SR-OS</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/netlab-release-1.5.3-libvirt-public-networks/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Official Ansible Collection for SR Linux]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-sr-linux-ansible-collection/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-sr-linux-ansible-collection/</id>
    <published>2023-05-14T07:22:00+00:00</published>
    <updated>2023-05-14T07:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Roman Dodin wrote an article <a href="https://learn.srlinux.dev/blog/2023/official-ansible-collection-for-sr-linux/">describing Nokia&rsquo;s Ansible collection for SR Linux</a>. Although I don&rsquo;t use SR Linux (even though it was the first container supported by <a href="https://netlab.tools/">netlab</a> ;), it was still very interesting to read about the design tradeoffs they had to make:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/worth-reading-sr-linux-ansible-collection/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Service Insertion with BGP FlowSpec]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-bgp-flowspec-service-insertion/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-bgp-flowspec-service-insertion/</id>
    <published>2023-05-13T07:23:00+00:00</published>
    <updated>2023-05-13T07:23:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Expert:Nicola_Modena">Nicola Modena</a> had an interesting presentation describing <a href="http://blog.modena.to/2023/05/bgp-is-answer-what-is-question.html">how you can use BGP FlowSpec for traffic steering and service insertion</a> during the recent <a href="https://www.itnog.it/itnog7/">ITNOG 7</a> event (more about the event in a few days).</p>
<p>One of the slides explained how to use three different aspects of BGP (FlowSpec, MPLS/VPN and multipathing), prompting me to claim the presentation title should be &ldquo;<em>BGP is the answer, what was the question?</em>&rdquo; 😉 Hope you&rsquo;ll enjoy the PDF version of the presentation as much as we did the live one.</p>
<div class='jump-link'><a href="http://blog.modena.to/2023/05/bgp-is-answer-what-is-question.html">More</a></div>
]]></content>
    <category term="worth reading" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Kubernetes Container Networking Interface (CNI)]]></title>
    <link href="https://blog.ipspace.net/2023/05/video-kubernetes-cni/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/video-kubernetes-cni/</id>
    <published>2023-05-12T06:30:00+00:00</published>
    <updated>2023-05-12T06:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Ready for more Kubernetes details? How about <a href="https://my.ipspace.net/bin/get/Kubernetes/2.3%20-%20Container%20Networking%20interface.mp4?doccode=Kubernetes">Container Networking Interface (CNI)</a> described by <a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> as part of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar?</p>
<p><strong>Notes:</strong></p>
<ul>
<li>You REALLY SHOULD watch <a href="/2023/02/video-kubernetes-sdn-architecture/">Kubernetes SDN architecture</a> and <a href="/2023/03/video-kubernetes-sdn-configurations/">Sample Kubernetes SDN Implementations</a> videos first</li>
<li>The video (and a large portion of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar) is available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/2.3%20-%20Container%20Networking%20interface.mp4?doccode=Kubernetes">Watch the video</a></div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MLAG Clusters without a Physical Peer Link]]></title>
    <link href="https://blog.ipspace.net/2023/05/mlag-without-peer-link/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/mlag-without-peer-link/</id>
    <published>2023-05-11T07:54:00+00:00</published>
    <updated>2023-05-11T07:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>With the widespread deployment of Ethernet-over-something technologies, it became possible to build MLAG clusters without a physical peer link, replacing it with a virtual link across the core fabric. Avaya was one of the first vendors to implement virtual peer links with Provider Backbone Bridging (PBB) transport, and some data center switching vendors (example: Cisco) offer similar functionality with VXLAN transport.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/mlag-without-peer-link/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is ChatGPT an Efficiency Multiplier?]]></title>
    <link href="https://blog.ipspace.net/2023/05/chat-gpt-efficiency-multiplier/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/chat-gpt-efficiency-multiplier/</id>
    <published>2023-05-10T06:29:00+00:00</published>
    <updated>2023-05-10T06:29:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I got this comment on one of my ChatGPT-related posts:</p>
<blockquote>
<p>It does save time for things like converting output to YAML (I do not feed it proprietary information), or have it write scripts in various languages, converting configs from one vendor to another, although often they are not complete or correct they save time so regardless of what we think of it, it is an efficiency multiplier.</p>
</blockquote>
<p>I received similar feedback several times, but found that the real answer (as is too often the case) is <em>It Depends</em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/chat-gpt-efficiency-multiplier/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Modifying BGP Behavior with xBGP API]]></title>
    <link href="https://blog.ipspace.net/2023/05/xbgp-modify-bgp-behavior/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/xbgp-modify-bgp-behavior/</id>
    <published>2023-05-09T06:49:00+00:00</published>
    <updated>2023-05-09T06:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When I reposted a link to <em><a href="https://nsg.ee.ethz.ch/fileadmin/user_upload/publications/xbgp_nsdi23spring-final.pdf">xBGP: Faster Innovation in Routing Protocols</a></em> paper, someone immediately replied</p>
<blockquote>
<p>Quite interesting, but it feels like this could become the proverbial 15th standard.</p>
</blockquote>
<p>xBGP is an API that allows BGP users to implement routing policies (route selection, filtering, or propagation) that use attributes or mechanisms defined in newer IETF RFCs or drafts, so the <a href="https://xkcd.com/927/">proverbial 15th standard</a> is not that far off the mark. However, we must remember that what we call BGP is more than just a set of competing standards.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/xbgp-modify-bgp-behavior/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Building a DMVPN Test Lab with netlab]]></title>
    <link href="https://blog.ipspace.net/2023/05/netlab-dmvpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/netlab-dmvpn/</id>
    <published>2023-05-08T06:40:00+00:00</published>
    <updated>2023-05-08T06:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I always love to hear about real-life <a href="https://netlab.tools/">netlab</a> use cases, and try to make them even easier to implement with new netlab features &ndash; that&rsquo;s how netlab got <a href="/2022/06/netsim-custom-vagrant-boxes/">custom Vagrant configuration templates</a> and <a href="/2023/04/netlab-merge-config/">per-node configuration templates</a>.</p>
<p>When <a href="/kb/NetAutJourney/">Anne Baretta</a> sent me his initial DMVPN solution, we quickly figured out we could make it even cleaner if netlab supported <a href="https://netlab.tools/links/#links-tunnel">tunnel interfaces</a>; you can enjoy the results in <a href="https://netlab.tools/release/1.5/#release-1-5-2">release 1.5.2</a>, and <a href="https://github.com/ipspace/netlab-examples/tree/master/DMVPN">explore Anne&rsquo;s solution on GitHub</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/netlab-dmvpn/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="DMVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: End-to-End Arguments in System Design]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-end-to-end-system-design/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-end-to-end-system-design/</id>
    <published>2023-05-07T07:46:00+00:00</published>
    <updated>2023-05-07T07:46:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In case you ever wondered how old the &ldquo;<em>keep network simple and do complex stuff at the endpoints</em>&rdquo; approach is, read the
<a href="https://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf">End-to-End Arguments in System Design</a> article from 1981.</p>
<p>For whatever reason (hint: profits), networking vendors <a href="/2013/06/network-virtualization-and-spaghetti/">keep ignoring those arguments</a>, turning the network into a kitchen sink of complexity.</p>
<p><strong>Fun tidbit</strong>: the article describes a variant of <a href="/2013/03/does-dedicated-iscsi-infrastructure/">relying on layer-2 checksums will corrupt your data</a>. Some things never change.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: IPv6 Deployment Status]]></title>
    <link href="https://blog.ipspace.net/2023/05/worth-reading-ipv6-deployment-status/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/worth-reading-ipv6-deployment-status/</id>
    <published>2023-05-06T08:34:00+00:00</published>
    <updated>2023-05-06T08:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.rfc-editor.org/rfc/rfc9386.html">RFC 9386</a> documenting IPv6 deployment status in late 2022 has been published a few weeks ago<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. It claims over a billion IPv6-capable users, and IPv6 deployment close to 50% in major countries.</p>
<p>Web content is a different story: while 40% of top-500 sites are IPv6-enabled, you can reach only ~20% of web sites over IPv6. Considering Cloudflare&rsquo;s free proxying includes IPv6 that is enabled by default, that proves (once again) how slowly things change in IT.</p>
<div  class="info">
Want to get IPv6 deployed but don&rsquo;t know where to start? Check out <a href="https://www.ipspace.net/IPv6">ipSpace.net IPv6 webinars</a> ;)
</div><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/worth-reading-ipv6-deployment-status/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: 400GbE Optics]]></title>
    <link href="https://blog.ipspace.net/2023/05/video-400ge-optics/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/video-400ge-optics/</id>
    <published>2023-05-05T06:17:00+00:00</published>
    <updated>2023-05-05T06:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When 400GbE was still an emerging technology, <a href="https://www.linkedin.com/in/marknowell/">Mark Nowell</a> explained its basics in an update session of the <em><a href="https://www.ipspace.net/Data_Center_Fabrics">Data Center Fabric Architectures</a></em> webinar, starting with <a href="https://my.ipspace.net/bin/get/DCFabric/GE1%20-%20400%20GbE%20Optics.mp4?doccode=DCFabric">400GbE optics</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/DCFabric/GE1%20-%20400%20GbE%20Optics.mp4?doccode=DCFabric">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video. To watch the whole webinar, buy <a href="https://www.ipspace.net/Subscription/">Standard or Expert ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="video" />
    <category term="data center" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Silent Hosts in EVPN Fabrics]]></title>
    <link href="https://blog.ipspace.net/2023/05/silent-hosts-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/silent-hosts-evpn/</id>
    <published>2023-05-04T06:46:00+00:00</published>
    <updated>2023-05-05T05:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="/2023/04/evpn-dynamic-mac-learning/">Dynamic MAC Learning versus EVPN</a> blog post triggered tons of interesting responses describing edge cases and vendor <del>bugs</del> implementation details, including an age-old case of silent hosts <a href="/2023/04/evpn-dynamic-mac-learning/#1792">described by Nitzan</a>:</p>
<blockquote>
<p>Few years ago in EVPN network, I saw drops on the multicast queue (ingress replication goes to that queue). After analyzing it we found that the root cause is vMotion (the hosts in that VLAN are silent) which starts at a very high rate before the source leaf learns the destination MAC.</p>
</blockquote>
<p>It turns out that the behavior they experienced was <a href="/2023/05/silent-hosts-evpn/#1814">caused by a particularly slow EVPN implementation</a>, so it&rsquo;s not exactly the case of <em>silent hosts</em>, but let&rsquo;s dig deeper into what could happen when you do have silent hosts attached to an EVPN fabric.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/silent-hosts-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="bridging" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Small Site EBGP-Only Design]]></title>
    <link href="https://blog.ipspace.net/2023/05/small-site-ebgp-only-design/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/small-site-ebgp-only-design/</id>
    <published>2023-05-03T07:03:00+00:00</published>
    <updated>2023-05-03T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my subscribers found an unusual BGP specimen in the wild:</p>
<ul>
<li>It was a small site with two core switches and a WAN edge router</li>
<li>The site had VPN concentrators running in virtual machines</li>
<li>The WAN edge router was running BGP across WAN IPsec tunnels</li>
<li>The VPN concentrators were running BGP with core switches.</li>
</ul>
<p>So far so good, and kudos to whoever realized BGP is <a href="/2016/03/dont-run-ospf-with-your-customers/">the only sane protocol to run between virtual machines and network core</a>. However, the routing in the network core was implemented with EBGP sessions between the three core devices, and my subscriber thought the correct way to do it would be to use IBGP and OSPF.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/small-site-ebgp-only-design/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.5.2: Aruba CX, External Tools, Tunnel Interfaces]]></title>
    <link href="https://blog.ipspace.net/2023/05/netlab-release-1.5.2-aruba-tools-components/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/05/netlab-release-1.5.2-aruba-tools-components/</id>
    <published>2023-05-02T06:43:00+00:00</published>
    <updated>2023-05-02T06:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> <a href="https://netlab.tools/release/1.5/#release-1-5-2">release 1.5.2</a> brings another bunch of cool features, including:</p>
<ul>
<li><a href="https://netlab.tools/platforms/">Aruba AOS-CX Support</a> by Stefano Sasso</li>
<li><a href="https://netlab.tools/extools/">External network management tools</a> that you can start together with your lab</li>
<li><a href="https://netlab.tools/links/#links-tunnel">Tunnel interfaces</a></li>
<li><a href="https://netlab.tools/components/">Reusable topology components</a></li>
</ul>
<p>I&rsquo;ll cover these features in separate blog posts; today I wanted to highlight a few minor additions:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/05/netlab-release-1.5.2-aruba-tools-components/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting: BGP Zombie Outbreak on Juniper Routers]]></title>
    <link href="https://blog.ipspace.net/2023/04/worth-reading-zombie-outbreak-juniper-routers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/worth-reading-zombie-outbreak-juniper-routers/</id>
    <published>2023-04-30T06:54:00+00:00</published>
    <updated>2023-04-30T06:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>BGP zombies are routes in the BGP table that refuse to disappear even though they should have been long gone. <a href="https://storage.googleapis.com/site-media-prod/meetings/NANOG87/4692/20230215_Manassakis_Bgp_Zombies_-_v1.pdf">Recent measurements</a> estimate between 0.5% and 1.5% of all routes in the global BGP table are zombies, which sounds crazy &ndash; after all, BGP is supposed to be pretty reliable.</p>
<p>Daryll Swer identified one potential source &ndash; Juniper routers do not revoke suppressed aggregated prefixes &ndash; and documented it in <em><a href="https://blog.apnic.net/2023/04/13/navigating-a-bgp-zombie-outbreak-on-juniper-routers/">Navigating a BGP zombie outbreak on Juniper routers</a></em>.</p>
]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[CloudFlare: From IP packets to HTTP]]></title>
    <link href="https://blog.ipspace.net/2023/04/worth-reading-cloudflare-ip-packets-http/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/worth-reading-cloudflare-ip-packets-http/</id>
    <published>2023-04-29T09:02:00+00:00</published>
    <updated>2023-04-29T09:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Want to know some details behind the CloudFlare SD-WAN implementation? You might find them in <em><a href="https://blog.cloudflare.com/from-ip-packets-to-http-the-many-faces-of-our-oxy-framework/">From IP packets to HTTP: the many faces of our Oxy framework</a></em>.</p>
<p>I don&rsquo;t know enough about Linux networking to figure out whether one could use those details to build something similar, but CloudFlare blog posts keep begin much better than Google&rsquo;s <a href="/2020/11/worth-reading-ai-replication-self-promotion/">Look How Awesome We Are</a> recruitment drives.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Advantages and Drawbacks of EVPN-based Multihoming]]></title>
    <link href="https://blog.ipspace.net/2023/04/video-evpn-mlag-comparison/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/video-evpn-mlag-comparison/</id>
    <published>2023-04-28T06:16:00+00:00</published>
    <updated>2023-04-28T06:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Lukas_Krattiger">Lukas Krattiger</a> wrapped up his <a href="https://my.ipspace.net/bin/list?id=EVPN#MH">EVPN-versus-MLAG presentation</a> (part of <a href="https://www.ipspace.net/EVPN_Technical_Deep_Dive">EVPN Deep Dive</a> webinar) with an <a href="https://my.ipspace.net/bin/get/EVPN/M5%20-%20Compare%20and%20Contrast.mp4?doccode=EVPN">overview of the advantages and drawbacks of EVPN-based multihoming solutions</a>:</p>
<ul>
<li>N-way multihoming</li>
<li>Flexible connectivity (no need for a peer link)</li>
<li>Fabric-wide scope (MAC multipathing required on ingress node)</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/EVPN/M5%20-%20Compare%20and%20Contrast.mp4?doccode=EVPN">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video. To watch the whole webinar, buy <a href="https://www.ipspace.net/Subscription/">Standard or Expert ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="video" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Is OSPF (and BGP) More Complex than STP?]]></title>
    <link href="https://blog.ipspace.net/2023/04/stp-ospf-bgp-complexity/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/stp-ospf-bgp-complexity/</id>
    <published>2023-04-27T06:26:00+00:00</published>
    <updated>2023-04-27T06:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I got this question from one of my readers:</p>
<blockquote>
<p>Why are OSPF and BGP are more complex than STP from a designer or administrator point of view? I tried everything to come to a conclusion but I couldn&rsquo;t find a concluded answer, ChatGPT gave a circular loop answer.</p>
</blockquote>
<p>There are numerous reasons why a protocol, a technology or a solution might be more complex than another seemingly similar one (or as Russ White would have said, &ldquo;<em>if you haven&rsquo;t found the tradeoffs, you haven&rsquo;t looked hard enough</em>&rdquo;):</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/stp-ospf-bgp-complexity/'>Read more &hellip;</a></div>]]></content>
    <category term="bridging" />
    <category term="OSPF" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is Dynamic MAC Learning Better Than EVPN?]]></title>
    <link href="https://blog.ipspace.net/2023/04/evpn-dynamic-mac-learning/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/evpn-dynamic-mac-learning/</id>
    <published>2023-04-26T06:51:00+00:00</published>
    <updated>2023-04-26T06:51:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers worried about the control-plane-induced MAC learning lag in EVPN-based networks:</p>
<blockquote>
<p>In all discussions about the advantages/disadvantages of VXLAN/EVPN, I can&rsquo;t find any regarding the lag in learning new macs when you use the control plane for mac learning.</p>
</blockquote>
<p>EVPN is definitely slower than data plane-based dynamic MAC learning (regardless of <a href="/2023/03/dynamic-mac-learning-hw-cpu/">whether it&rsquo;s done in hardware or software</a>), but so is <a href="/series/mlag/">MLAG</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/evpn-dynamic-mac-learning/'>Read more &hellip;</a></div>]]></content>
    <category term="bridging" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IPv6 Security in Layer-2 Firewalls]]></title>
    <link href="https://blog.ipspace.net/2023/04/palo-alto-ipv6-firewalling/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/palo-alto-ipv6-firewalling/</id>
    <published>2023-04-25T07:06:00+00:00</published>
    <updated>2023-04-25T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>You can configure many firewalls to act as a router (layer-3 firewall) or as a <del>switch</del> bridge (layer-2 firewall). The oft-ignored detail: how does a layer-2 firewall handle ARP (or any layer-2 protocol)?</p>
<p>Unless you want to use static ARP tables it&rsquo;s pretty obvious that a layer-2 firewall MUST propagate ARP. It would be ideal if the firewall would also enforce layer-2 security (ARP/DHCP inspection and IPv6 RA guard), but it looks like at least PAN-OS version 11.0 disagrees with that sentiment.</p>
<p>Straight from <a href="https://docs.paloaltonetworks.com/pan-os/11-0/pan-os-networking-admin/configure-interfaces/virtual-wire-interfaces/layer-2-and-layer-3-packets-over-a-virtual-wire">Layer 2 and Layer 3 Packets over a Virtual Wire</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/palo-alto-ipv6-firewalling/'>Read more &hellip;</a></div>]]></content>
    <category term="firewall" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Use Existing (DMVPN) Device Configurations in netlab]]></title>
    <link href="https://blog.ipspace.net/2023/04/netlab-merge-config/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/netlab-merge-config/</id>
    <published>2023-04-24T07:39:00+00:00</published>
    <updated>2023-04-24T07:39:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/kb/NetAutJourney/">Anne Baretta</a> decided to use <em><a href="https://netlab.tools/">netlab</a></em> to test a proposed DMVPN topology. As <em>netlab</em> doesn&rsquo;t support DMVPN (and probably never will), he decided to use <em>netlab</em> capabilities to start the lab topology and perform initial configuration, adding DMVPN configuration commands as <em>custom configurations</em>. Here&rsquo;s how he described the process:</p>
<hr>
<p>In this case I used <em>netlab</em> as a quick way to get a topology up and running, and then add the DMVPN configuration by hand.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/netlab-merge-config/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="DMVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Systems Design: What We Hope We Know]]></title>
    <link href="https://blog.ipspace.net/2023/04/worth-reading-apenwarr-magic-science-engineering/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/worth-reading-apenwarr-magic-science-engineering/</id>
    <published>2023-04-23T07:58:00+00:00</published>
    <updated>2023-04-23T07:58:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Avery Pennarun published a lovely rambling on <a href="https://apenwarr.ca/log/20230415">magic, science, engineering and a pinch of AI</a>. You might enjoy reading it<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> with your Sunday morning coffee 😎.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/worth-reading-apenwarr-magic-science-engineering/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[180 Gbps Software-Only Linux Router]]></title>
    <link href="https://blog.ipspace.net/2023/04/worth-reading-linux-router-180gbps/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/worth-reading-linux-router-180gbps/</id>
    <published>2023-04-22T06:43:00+00:00</published>
    <updated>2023-04-22T06:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Pim van Pelt built an x86/Linux-based using Vector Packet Processor that can forwarding IP traffic at 150 Mpps/180 Gbps forwarding rates on a 2-CPU Dell server with E5-2660 (8 core) CPU.</p>
<p>He described the whole thing in a <a href="https://ipng.ch/s/articles/2023/04/09/vpp-stats.html">8-part series of blog posts</a> and <a href="https://video.ipng.ch/w/erc9sAofrSZ22qjPwmv6H4">a conference talk</a>. Enjoy!</p>
]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: SD-WAN CPE Architecture]]></title>
    <link href="https://blog.ipspace.net/2023/04/video-sdwan-cpe-architecture/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/video-sdwan-cpe-architecture/</id>
    <published>2023-04-21T06:27:00+00:00</published>
    <updated>2023-04-21T06:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Pradosh_Mohapatra">Pradosh Mohapatra</a> started the <a href="https://my.ipspace.net/bin/list?id=SDWAN#ARCHITECTURE">Typical SD-WAN Solution Architecture</a> section of <a href="https://www.ipspace.net/SD-WAN_Overview">Software-Defined WAN (SD-WAN) Overview</a> webinar with the <a href="/2023/03/video-sdwan-backend-architecture/">backend architecture</a>.</p>
<p>Next step: CPE architecture, the topic of <a href="https://my.ipspace.net/bin/get/SDWAN/4%20-%20CPE%20Architecture.mp4?doccode=SDWAN">today&rsquo;s video</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/SDWAN/4%20-%20CPE%20Architecture.mp4?doccode=SDWAN">Watch the video</a></div>
<div  class="free">
You need at least <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a> to watch videos in this webinar.
</div>
]]></content>
    <category term="SD-WAN" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multi-Vendor EVPN Fabrics]]></title>
    <link href="https://blog.ipspace.net/2023/04/multi-vendor-evpn-fabric/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/multi-vendor-evpn-fabric/</id>
    <published>2023-04-20T06:11:00+00:00</published>
    <updated>2023-04-20T06:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel left an interesting comment on my <em><a href="/2023/03/evpn-job-interview/">Studying EVPN to Prepare for a Job Interview</a></em> blog post:</p>
<blockquote>
<p>I also never build a VXLAN fabric with two vendors. So, is it possible now to build one large fabric consisting of multiple vendors?</p>
</blockquote>
<p>TL&amp;DR: Yes, but just because you could doesn&rsquo;t mean that you should.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/multi-vendor-evpn-fabric/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New: Network Infrastructure as Code Resources]]></title>
    <link href="https://blog.ipspace.net/2023/04/niac-resources/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/niac-resources/</id>
    <published>2023-04-19T06:15:00+00:00</published>
    <updated>2023-04-19T06:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>While I was developing <a href="https://www.ipspace.net/Network_Automation_Concepts">Network Automation Concepts</a> webinar and the <a href="https://www.ipspace.net/Building_Network_Automation_Solutions">network automation online course</a>, I wrote numerous blog posts on the Network Infrastructure as Code (NIaC) concepts, challenges, implementation details, tools, and sample solutions.</p>
<p>In March 2023 I <a href="/series/niac/">collected these blog posts into a dedicated <em>NIaC resources</em> page</a> that also includes links to webinars,  sample network automation solutions, and relevant GitHub repositories.</p>
<div class='jump-link'><a href="/series/niac/">Explore</a></div>
]]></content>
    <category term=" worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IPv6 Addressing on Point-to-Point Links]]></title>
    <link href="https://blog.ipspace.net/2023/04/ipv6-p2p-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/ipv6-p2p-addressing/</id>
    <published>2023-04-18T06:15:00+00:00</published>
    <updated>2023-04-18T06:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me this question:</p>
<blockquote>
<p>In your observations on IPv6 assignments, what are common point-to-point IPv6 interfaces on routers?  I know it always depends, but I&rsquo;m hearing /64, /112, /126 and these opinions are causing some passionate debate.</p>
</blockquote>
<p>(Checks the calendar) It&rsquo;s 2023, <a href="https://www.rfc-editor.org/rfc/rfc2460">IPv6 RFC</a> has been published almost 25 years ago, and there are still people debating this stuff and confusing those who want to deploy IPv6? No wonder we&rsquo;re not getting it deployed in enterprise networks ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/ipv6-p2p-addressing/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using VLAN and VRF Links in netlab Topologies]]></title>
    <link href="https://blog.ipspace.net/2023/04/netlab-vrf-vlan-links/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/netlab-vrf-vlan-links/</id>
    <published>2023-04-17T06:55:00+00:00</published>
    <updated>2023-04-17T06:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I already mentioned the introduction of <a href="https://netlab.tools/module/vrf/#module-vrf-links">VRF-</a> and <a href="https://netlab.tools/module/vlan/#module-vlan-creating-access-links">VLAN access</a> links in
<em>netlab</em> <a href="https://netlab.tools/release/1.5/#release-1-5-1">release 1.5.1</a>. Let&rsquo;s see how they can simplify your lab topologies.</p>
<p>I always tried to make lab topologies as concise as I could,  sometimes cheating using JSON-in-YAML syntax. For example, the topology describing three routers running OSPF could be as simple as this:</p>
<pre tabindex="0"><code>module: [ ospf ]
nodes: [ r1, r2, r3 ]
links: [ r1-r2, r2-r3, r3-r1 ]
</code></pre><p>Let&rsquo;s unravel that:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/netlab-vrf-vlan-links/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ChatGPT Explaining the Need for iSCSI CRC]]></title>
    <link href="https://blog.ipspace.net/2023/04/chatgpt-explaining-iscsi-crc/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/chatgpt-explaining-iscsi-crc/</id>
    <published>2023-04-16T07:19:00+00:00</published>
    <updated>2023-04-16T15:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>People keep telling me how well large language models like ChatGPT work for them, so now and then, I give it another try, most often resulting in another disappointment<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. It might be that I suck at writing prompts<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, or it could be that I have a knack for looking in the wrong places<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>.</p>
<p>This time<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup> I tried to &ldquo;figure out<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup>&rdquo; why we need iSCSI checksums if we have iSCSI running over Ethernet which already has checksums. Enjoy the (ChatGPT) circular arguments and hallucinations with plenty of platitudes and no clear answer.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/chatgpt-explaining-iscsi-crc/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="SAN" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Was MPLS TE Worth the Effort?]]></title>
    <link href="https://blog.ipspace.net/2023/04/worth-reading-mpls-te-worthwhile/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/worth-reading-mpls-te-worthwhile/</id>
    <published>2023-04-15T08:35:00+00:00</published>
    <updated>2023-04-15T08:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bruce Davie continues documenting the tradeoffs we had to make in networking, this time with <em><a href="https://systemsapproach.substack.com/p/was-mpls-traffic-engineering-worthwhile">Was MPLS Traffic Engineering Worthwhile?</a></em> I found this bit particularly familiar:</p>
<blockquote>
<p>It wasn’t hard to make a theoretical argument that MPLS-TE could improve network performance and average link utilization, by moving traffic from congested links to uncongested ones. The hard part was proving that it would actually do a better job in practice than the more traditional methods such as using link weights and multipath routing to achieve the same ends.</p>
</blockquote>
]]></content>
    <category term=" worth reading" />
    <category term="MPLS" />
    <category term="traffic engineering" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: netlab Topology File]]></title>
    <link href="https://blog.ipspace.net/2023/04/video-netlab-topology-file/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/video-netlab-topology-file/</id>
    <published>2023-04-14T06:51:00+00:00</published>
    <updated>2023-04-14T06:51:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="https://my.ipspace.net/bin/list?id=NetTools#NETLAB">introducing netlab</a> in the <a href="https://www.ipspace.net/Network_Automation_Tools">Network Automation Tools</a> webinar, I spent a few minutes <a href="https://my.ipspace.net/bin/get/NetTools/N4%20-%20netlab%20Topology%20File.mp4?doccode=NetTools">describing the structure of the <em>netlab</em> lab topology file</a>.</p>
<p>As always, use the video only as a starting point. For more details, read the <a href="https://netlab.tools/"><em>netlab</em> documentation</a> (<a href="https://netlab.tools/topology-overview/">overview</a>, <a href="https://netlab.tools/topology-reference/">reference guide</a>).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetTools/N4%20-%20netlab%20Topology%20File.mp4?doccode=NetTools">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video and <a href="https://www.ipspace.net/Subscription">Standard ipSpace.net Subscription</a> to watch the rest of the webinar.
</div>
]]></content>
    <category term="video" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Building a Small Network with ChatGPT]]></title>
    <link href="https://blog.ipspace.net/2023/04/chatgpt-small-network-design/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/chatgpt-small-network-design/</id>
    <published>2023-04-13T07:25:00+00:00</published>
    <updated>2023-04-13T07:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I must be a good <em>prompt engineer</em> &ndash; every time I ask ChatGPT something really simple it spews out nonsense. This time I asked it to build a small network with four routers:</p>
<blockquote>
<p>I have a network with four Cisco routers (A,B,C,D). They are connected as follow: A-B, B-C, A-D, D-C. Each router has a loopback interface. Create router configurations that will result in A being able to reach loopback interfaces of all other routers.</p>
</blockquote>
<p>Here&rsquo;s what I got back<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>
<blockquote>
<p>Here&rsquo;s an example configuration for the four routers that should allow Router A to reach the loopback interfaces of all other routers:</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/chatgpt-small-network-design/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
    <category term="design" />
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Should I Care About RPKI and Internet Routing Security?]]></title>
    <link href="https://blog.ipspace.net/2023/04/rpki-routing-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/rpki-routing-security/</id>
    <published>2023-04-12T06:46:00+00:00</published>
    <updated>2023-04-12T06:46:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my subscribers sent me this question:</p>
<blockquote>
<p>I&rsquo;m being asked to enter a working group on RPKI and route origination. I&rsquo;m doing research, listening to Jeff Tantsura, who seems optimistic about taking steps to improve BGP security vs Geoff Huston, <a href="https://www.potaroo.net/ispcol/2022-12/securedrouting.html">who isn&rsquo;t as optimistic</a>. Should I recommend to the group that the application security is the better investment?</p>
</blockquote>
<p>You need both. RPKI is slowly becoming the baseline of global routing hygiene (like washing hands, only virtual, and done once every blue moon when you get new IP address space or when the certificates expire). More and more Internet Service Providers (including many tier-1 providers) <a href="https://www.manrs.org/netops/participants/">filter RPKI invalids</a> thus preventing the worst cases of unintentional route leaks.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/rpki-routing-security/'>Read more &hellip;</a></div>]]></content>
    <category term=" BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DHCP Relaying with Redundant DHCP Servers]]></title>
    <link href="https://blog.ipspace.net/2023/04/dhcp-redundant-relay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/dhcp-redundant-relay/</id>
    <published>2023-04-11T06:17:00+00:00</published>
    <updated>2023-04-11T06:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Previous posts in this series (<a href="/2023/03/dhcp-relay-process/">DHCP relaying principles</a>, <a href="/2023/03/netlab-vrf-dhcp-relay/">inter-VRFs relaying</a>, <a href="/2023/03/netlab-vxlan-dhcp-relay/">relaying in VXLAN segments</a> and <a href="/2023/04/netlab-evpn-dhcp-relay/">relaying from EVPN VRF</a>) used a single DHCP server. It&rsquo;s time to add another layer of complexity: redundant DHCP servers.</p>
<h3 id="lab-topology">Lab Topology</h3>
<p>We&rsquo;ll use a lab topology similar to the <a href="/2023/03/netlab-vxlan-dhcp-relay/">VXLAN DHCP relaying</a> lab, add a second DHCP server, and a third switch connecting the two DHCP servers to the rest of the network.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/dhcp-redundant-relay/'>Read more &hellip;</a></div>]]></content>
    <category term="DHCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Turning WiFi into a Thick Yellow Cable]]></title>
    <link href="https://blog.ipspace.net/2023/04/wifi-shared-medium/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/wifi-shared-medium/</id>
    <published>2023-04-07T07:09:00+00:00</published>
    <updated>2023-04-07T07:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The &ldquo;beauty&rdquo; (from an attacker perspective) of the original shared-media Ethernet was the ability to see all traffic sent to other hosts. While it&rsquo;s trivial to steal someone else&rsquo;s IPv4 address, the ability to see their traffic allowed you to hijack their TCP sessions without the victim being any wiser (apart from the obvious session timeout). Really smart attackers could go a step further, insert themselves into the forwarding path, and inject extra payload into unencrypted sessions.</p>
<p>A <a href="https://www.usenix.org/conference/usenixsecurity23/presentation/schepers">recently-discovered WiFi vulnerability</a> brought us back to that wonderful world.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/wifi-shared-medium/'>Read more &hellip;</a></div>]]></content>
    <category term="security" />
    <category term="switching" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Kicking the Tires of GitHub Copilot]]></title>
    <link href="https://blog.ipspace.net/2023/04/kicking-tires-github-copilot/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/kicking-tires-github-copilot/</id>
    <published>2023-04-06T07:39:00+00:00</published>
    <updated>2023-04-06T07:39:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A friend sent me a video demo of his <em>AI-driven network device configuration</em> proof-of-concept. Before commenting on that idea, I wanted to see how well AI works as an assistant. Once <a href="https://twitter.com/plajjan/status/1640088978228408326">Kristian Larsson mentioned</a> he was using <a href="https://github.com/features/copilot">GitHub Copilot</a>, it was obvious what to do next: try it out while working on the next <em><a href="https://netlab.tools/">netlab</a></em> release.</p>
<p><strong>TL&amp;DR:</strong></p>
<ul>
<li>It works.</li>
<li>Some Copilot suggestions are uncannily accurate; others are fishing expeditions.</li>
<li>It&rsquo;s bland.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/kicking-tires-github-copilot/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New: High Availability Clusters in Networking]]></title>
    <link href="https://blog.ipspace.net/2023/04/ha-cluster-resources/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/ha-cluster-resources/</id>
    <published>2023-04-05T06:49:00+00:00</published>
    <updated>2023-04-05T06:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Years ago I loved ranting about the stupidities of building stretched VLANs to run high-availability network services clusters with two nodes (be it firewalls, load balancers, or data center switches with centralized control plane) across multiple sites.</p>
<p>I collected pointers to those blog posts and other ipSpace.net HA cluster resources on the new <a href="/series/ha-cluster/">High Availability Service Clusters</a> page.</p>
<div class='jump-link'><a href="/series/ha-cluster/">Explore</a></div>
]]></content>
    <category term=" worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.5.1: VLAN and VRF Links]]></title>
    <link href="https://blog.ipspace.net/2023/04/netlab-release-1.5.1-vrf-vlan-links/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/netlab-release-1.5.1-vrf-vlan-links/</id>
    <published>2023-04-04T06:24:00+00:00</published>
    <updated>2023-04-04T06:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> <a href="https://netlab.tools/release/1.5/#release-1-5-1">release 1.5.1</a> makes it easier to create topologies with lots of <a href="https://netlab.tools/module/vrf/#module-vrf-links">VRF-</a> or <a href="https://netlab.tools/module/vlan/#module-vlan-creating-access-links">VLAN access</a> links, or <a href="https://netlab.tools/links/#link-groups">topologies with numerous similar links</a>. It also includes <a href="https://netlab.tools/outputs/d2/">support for D2 diagram scripting language</a> in case you prefer its diagrams over those generated by Graphviz.</p>
<p>Even if you don&rsquo;t find those features interesting (more about them later), you might want to upgrade to fix a nasty container-related behavior I discovered in recently-upgraded Ubuntu servers.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/netlab-release-1.5.1-vrf-vlan-links/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DHCP Relaying in EVPN VRFs]]></title>
    <link href="https://blog.ipspace.net/2023/04/netlab-evpn-dhcp-relay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/netlab-evpn-dhcp-relay/</id>
    <published>2023-04-03T06:40:00+00:00</published>
    <updated>2023-04-03T06:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="/2023/03/dhcp-relay-process/">figuring out how DHCP relaying works</a> and testing it with<a href="/2023/03/netlab-vrf-dhcp-relay/"> VRFs</a> and in <a href="/2023/03/netlab-vxlan-dhcp-relay/">VXLAN segments</a>, it seems like a no-brainer to make it work with EVPN.</p>
<p><strong>TL&amp;DR:</strong> It works, at least when using Arista vEOS as the relay and Cisco CSR 1000v as the DHCP server.</p>
<h3 id="lab-topology">Lab Topology</h3>
<p>We&rsquo;ll keep using the exact same &ldquo;physical&rdquo; topology we used in the <a href="/2023/03/netlab-vxlan-dhcp-relay/">VXLAN DHCP relaying</a> lab, add EVPN and BGP to the control-plane cocktail, and put the VXLAN segment into a VRF. We&rsquo;ll use CSR 1000v as the DHCP server because Cisco IOSv doesn&rsquo;t support some of the DHCP option-82 sub-options we need.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/04/netlab-evpn-dhcp-relay/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="DHCP" />
    <category term="EVPN" />
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Death of CLI]]></title>
    <link href="https://blog.ipspace.net/2023/04/worth-reading-death-of-cli/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/04/worth-reading-death-of-cli/</id>
    <published>2023-04-02T07:03:00+00:00</published>
    <updated>2023-04-02T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Jeff McLaughlin wrote a nice blog post on <a href="https://subnetzero.info/2023/03/13/cli-swift/">the death of CLI</a> (and why it has been greatly exaggerated):</p>
<blockquote>
<p>The GUI-based layout tool [for iOS app development] is going away in favor of UI-as-code! The black screen always comes back!</p>
</blockquote>
<p>As I&rsquo;ve been <a href="/series/cli/">saying for ages</a>: people optimizing their productivity use CLI.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Sample Kubernetes SDN Implementations]]></title>
    <link href="https://blog.ipspace.net/2023/03/video-kubernetes-sdn-configurations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/video-kubernetes-sdn-configurations/</id>
    <published>2023-03-31T07:07:00+00:00</published>
    <updated>2023-03-31T07:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s time for another Kubernetes video. After
<a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> explained the <a href="/2023/02/video-kubernetes-sdn-architecture/">Kubernetes SDN architecture</a>, he <a href="https://my.ipspace.net/bin/get/Kubernetes/2.2%20-%20Sample%20Kubernetes%20SDN%20Configurations.mp4?doccode=Kubernetes">described architectural approaches of Kubernetes SDN implementations</a>, using Flannel as a sample implementation.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/2.2%20-%20Sample%20Kubernetes%20SDN%20Configurations.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ChatGPT on BGP Routing Security]]></title>
    <link href="https://blog.ipspace.net/2023/03/chatgpt-bgp-routing-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/chatgpt-bgp-routing-security/</id>
    <published>2023-03-30T06:27:00+00:00</published>
    <updated>2025-04-25T15:29:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>I wanted to include a few examples of BGP bugs causing widespread disruption in the <a href="https://my.ipspace.net/bin/list?id=Net101#NETSEC">Network Security Fallacies</a> presentation. I tried to find what happened when <a href="https://labs.ripe.net/author/erik/ripe-ncc-and-duke-university-bgp-experiment/">someone announced beacon prefixes with unknown optional transitive attributes</a> (which should have been passed without complaints but weren&rsquo;t) without knowing <em>when</em> it happened or <em>who</em> did it.</p>
<p>Trying to find the answer on Google proved to be a Mission Impossible &ndash; regardless of how I structured my query, I got tons of results that seemed relevant to a subset of the search words but nowhere near what I was looking for. Maybe I would get luckier with a tool that&rsquo;s supposed to have ingested all the world&rsquo;s knowledge and seems to (according to overexcited claims) understand what it&rsquo;s talking about.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/chatgpt-bgp-routing-security/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Studying EVPN to Prepare for a Job Interview]]></title>
    <link href="https://blog.ipspace.net/2023/03/evpn-job-interview/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/evpn-job-interview/</id>
    <published>2023-03-29T06:31:00+00:00</published>
    <updated>2023-03-29T06:31:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>An ipSpace.net subscriber sent me this question:</p>
<blockquote>
<p>I am on job hunting. I have secured an interview and they will probably ask me about VxLAN BGP EVPN fabrics. If you have some time, it would be a great help for me if you could tell me 1 or 2 questions that you would ask in such interviews.</p>
</blockquote>
<p><strong>TL&amp;DR:</strong> He got the job. Congratulations!</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/evpn-job-interview/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[What Happened to Leaf Switches with Four Uplinks?]]></title>
    <link href="https://blog.ipspace.net/2023/03/leaf-switches-four-uplinks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/leaf-switches-four-uplinks/</id>
    <published>2023-03-28T06:08:00+00:00</published>
    <updated>2023-03-28T06:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The last time I spent days poring over vendor datasheets collecting information for the <em>overview</em> part of <a href="https://www.ipspace.net/Data_Center_Fabrics">Data Center Fabrics</a> webinar a lot of 1RU data center leaf switches came in two form factors:</p>
<ul>
<li>48 low-speed server-facing ports and 4 high-speed uplinks</li>
<li>32 high-speed ports that you could break out into four times as many low-speed ports (but not all of them)</li>
</ul>
<p>I expected the ratios to stay the same when the industry moved from 10/40 GE to 25/100 GE switches. I was wrong &ndash; most 1RU leaf data center switches based on recent Broadcom silicon (Trident-3 or Trident-4) have between eight and twelve uplinks.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/leaf-switches-four-uplinks/'>Read more &hellip;</a></div>]]></content>
    <category term="fabric" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DHCP Relaying in VXLAN Segments]]></title>
    <link href="https://blog.ipspace.net/2023/03/netlab-vxlan-dhcp-relay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/netlab-vxlan-dhcp-relay/</id>
    <published>2023-03-27T07:15:00+00:00</published>
    <updated>2023-03-27T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After I got the testing infrastructure in place (<a href="/2023/03/netlab-dhcp-relay/">simple DHCP relay</a>, <a href="/2023/03/netlab-vrf-dhcp-relay/">VRF-aware DHCP relay</a>), I was ready for the real fun: DHCP relaying in VXLAN (and later EVPN) segments.</p>
<p><strong>TL&amp;DR:</strong> It works exactly as expected. Even though I had anycast gateway configured on the VLAN, the Arista vEOS switches  used their unicast IP addresses in the DHCP relaying process. The DHCP server had absolutely no problem dealing with multiple copies of the same DHCP broadcast relayed by different switches attached to the same VLAN. One could only wish things were always as easy in the networking land.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/netlab-vxlan-dhcp-relay/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="IP routing" />
    <category term="DHCP" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Off-Path Firewall with Traffic Engineering]]></title>
    <link href="https://blog.ipspace.net/2023/03/worth-reading-off-path-firewall/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/worth-reading-off-path-firewall/</id>
    <published>2023-03-26T07:25:00+00:00</published>
    <updated>2023-03-26T07:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I have blog post ideas sitting in my to-write queue for over a decade. One of them is <em>why would you need a VRF (and associated router) between virtual servers and a firewall?</em></p>
<p>Andrea Dainese answered at least part of that question in his <a href="https://www.adainese.it/blog/2023/03/02/off-path-firewall-with-traffic-engineering/">Off-Path firewall with Traffic Engineering</a> blog post. Enjoy!</p>
]]></content>
    <category term="firewall" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Dangers of Knowing Everything]]></title>
    <link href="https://blog.ipspace.net/2023/03/worth-reading-dangers-knowing-everything/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/worth-reading-dangers-knowing-everything/</id>
    <published>2023-03-25T07:08:00+00:00</published>
    <updated>2023-03-25T07:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Another interesting take on ChatGPT in networking, this time by Tom Hollingsworth in <a href="http://networkingnerd.net/2023/03/10/the-dangers-of-knowing-everything/">The Dangers of Knowing Everything</a>:</p>
<blockquote>
<p>In a way, ChatGPT is like a salesperson. No matter what you ask it the answer is always yes, even if it has to make something up to answer the question.</p>
</blockquote>
<p>To paraphrase an old joke: It&rsquo;s not that ChatGPT is lying. It&rsquo;s just that what it knows isn&rsquo;t necessarily true. See also: <a href="https://www.membrain.com/blog/how-to-smell-the-difference-between-bs-and-a-lie">the difference between bullshit and lies</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Chassis Switch Architectures]]></title>
    <link href="https://blog.ipspace.net/2023/03/video-chassis-switches/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/video-chassis-switches/</id>
    <published>2023-03-24T07:23:00+00:00</published>
    <updated>2023-03-24T07:23:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Did you know most chassis switches look like leaf-and-spine fabrics<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> from the inside? If you didn&rsquo;t, you might want to watch the short <a href="https://my.ipspace.net/bin/get/DCFabric/AS4%20-%20Chassis%20Architectures.mp4?doccode=DCFabric">Chassis Architectures</a> video by <a href="https://www.ipspace.net/Author:Pete_Lumbis">Pete Lumbis</a> (author of <a href="https://my.ipspace.net/bin/list?id=DCFabric#TECHNOLOGY">ASICs for Networking Engineers</a> part of the <a href="https://www.ipspace.net/Data_Center_Fabrics">Data Center Fabric Architectures</a> webinar).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/DCFabric/AS4%20-%20Chassis%20Architectures.mp4?doccode=DCFabric">Watch the video</a></div>
<div  class="free">
You&rsquo;ll need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/video-chassis-switches/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
    <category term="switching" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Will ChatGPT Replace Stack Overflow?]]></title>
    <link href="https://blog.ipspace.net/2023/03/chatgpt-stack-overflow/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/chatgpt-stack-overflow/</id>
    <published>2023-03-23T07:03:00+00:00</published>
    <updated>2023-03-23T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR:</strong> No. You can move on.</p>
<p><a href="https://dataplane.org/jtk/blog/2023/02/nanog87/">NANOG87 summary</a> by John Kristoff prompted me to look at <a href="https://www.nanog.org/events/nanog-87/agenda/">NANOG87 presentations</a>, and one of them discussed <a href="https://storage.googleapis.com/site-media-prod/meetings/NANOG87/4699/20230214_Starr_Chatgpt_And_Networking_v1.pdf">ChatGPT and Network Engineering</a> (<a href="https://youtu.be/stzPJspkUUs">video</a>). I couldn&rsquo;t resist the clickbait ;)</p>
<p>Like most <em>using ChatGPT for something</em> articles we&rsquo;re seeing these days, the presentation is a bit too positive for my taste. After all, it&rsquo;s all fine and dandy to claim ChatGPT generates working router configurations and related Jinja2 templates <em>if you know what the correct configurations should look like and can confidently say &ldquo;and this is where it made a mistake&rdquo; afterwards.</em></p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/chatgpt-stack-overflow/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New: CI/CD in Networking Resource Page]]></title>
    <link href="https://blog.ipspace.net/2023/03/cicd-resources/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/cicd-resources/</id>
    <published>2023-03-22T06:42:00+00:00</published>
    <updated>2023-03-22T06:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Over the years I wrote a dozen blog posts describing various aspects of using CI/CD in network automation. These blog posts are now collected in the new <a href="/series/cicd/">CI/CD in Networking</a> page that also includes links to related podcasts, webinars, and sample network automation solutions.</p>
<div class='jump-link'><a href="/series/cicd/">Explore</a></div>
]]></content>
    <category term=" worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[External Links on Spine Switches]]></title>
    <link href="https://blog.ipspace.net/2023/03/external-links-spine-switches/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/external-links-spine-switches/</id>
    <published>2023-03-21T07:18:00+00:00</published>
    <updated>2023-03-21T07:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A networking engineer attending the <a href="https://www.ipspace.net/Building_Next-Generation_Data_Center">Building Next-Generation Data Center</a> online course asked this question:</p>
<blockquote>
<p>What is the best practice to connect DC fabric to outside world assuming there are 2 spine switches in the fabric and EVPN VXLAN is used as overlay? Is it a good idea to introduce edge (border) switches, or it is better to connect outside world directly to the spine?</p>
</blockquote>
<p>As always, the answer is &ldquo;<em>it depends</em>,&rdquo; this time based on:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/external-links-spine-switches/'>Read more &hellip;</a></div>]]></content>
    <category term="fabric" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Test VRF-Aware DHCP Relaying with netlab]]></title>
    <link href="https://blog.ipspace.net/2023/03/netlab-vrf-dhcp-relay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/netlab-vrf-dhcp-relay/</id>
    <published>2023-03-20T07:15:00+00:00</published>
    <updated>2023-03-20T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="/2023/03/dhcp-relay-process/">figuring out how DHCP relaying works</a> and <a href="/2023/03/netlab-dhcp-relay/">testing it in a simple lab</a>, I went a step further and tested VRF-aware DHCP relaying.</p>
<h3 id="lab-topology">Lab Topology</h3>
<p>I had to make just a few changes to the <a href="https://github.com/ipspace/netlab-examples/blob/master/DHCP/relay/topology.yml">DHCP relaying lab topology</a>:</p>
<ul>
<li>DHCP server is running on CSR 1000v. IOSv DHCP server does not support subnet selection DHCP option and thus doesn&rsquo;t work with relays that do inter-VRF DHCP relaying.</li>
<li>I put the link between the DHCP client and DHCP relay into a VRF.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/netlab-vrf-dhcp-relay/'>Read more &hellip;</a></div>]]></content>
    <category term="DHCP" />
    <category term="netlab" />
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: History of 8-bit Bytes]]></title>
    <link href="https://blog.ipspace.net/2023/03/worth-reading-history-8bit-byte/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/worth-reading-history-8bit-byte/</id>
    <published>2023-03-19T11:44:00+00:00</published>
    <updated>2023-03-19T11:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Just in case you wondered why we have eight bits per byte: after Julia Evans <a href="https://jvns.ca/blog/2023/03/06/possible-reasons-8-bit-bytes/">investigated this mystery</a>, Steven Bellovin published <a href="https://www.cs.columbia.edu/~smb/blog/2023-03/2023-03-07.html">an excellent overview of the early years of bytes and words</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: OSPF Watcher]]></title>
    <link href="https://blog.ipspace.net/2023/03/worth-reading-ospf-watcher/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/worth-reading-ospf-watcher/</id>
    <published>2023-03-18T10:14:00+00:00</published>
    <updated>2023-03-18T10:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Vadim Semenov created an interesting solution out of open-source tools (and some glue): a system that <a href="https://github.com/Vadims06/ospfwatcher">tracks, logs, and displays OSPF changes in your network</a>.</p>
<p>It might not be exactly what you&rsquo;re looking for (and purists would argue <a href="/2021/06/ospf-bgp-ls/">it should use BGP-LS</a>), but that&rsquo;s the beauty of open-source solutions: go and adapt it to your needs, generalizes your fixes, and submit a pull request.</p>
]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: vPC Fabric Peering with EVPN Multihoming]]></title>
    <link href="https://blog.ipspace.net/2023/03/video-evpn-vpc-fabric-peering/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/video-evpn-vpc-fabric-peering/</id>
    <published>2023-03-17T07:06:00+00:00</published>
    <updated>2023-03-17T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="https://my.ipspace.net/bin/get/EVPN/M3%20-%20Using%20MLAG%20in%20EVPN%20Environments.mp4?doccode=EVPN">implementing MLAG functionality with EVPN</a> and having a VXLAN-like fabric transport path between MLAG members, it becomes possible to get rid of the <a href="/2022/06/mlag-deep-dive-overview/">MLAG peer link</a>.</p>
<p>Not surprisingly, most implementations of virtual MLAG peer link remain proprietary. Lukas Krattiger described the <a href="https://my.ipspace.net/bin/get/EVPN/M4%20-%20Cisco%20vPC%20Fabric%20Peering%20Details.mp4?doccode=EVPN">details of Cisco&rsquo;s vPC Fabric Peering implementation</a> in the <a href="https://www.ipspace.net/EVPN_Technical_Deep_Dive">EVPN Deep Dive</a> webinar.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/EVPN/M4%20-%20Cisco%20vPC%20Fabric%20Peering%20Details.mp4?doccode=EVPN">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video. To watch the whole webinar, buy <a href="https://www.ipspace.net/Subscription/">Standard or Expert ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="video" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Advantages of Using Generalized TTL Security Mechanism (GTSM) with EBGP]]></title>
    <link href="https://blog.ipspace.net/2023/03/advantages-bgp-gtsm/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/advantages-bgp-gtsm/</id>
    <published>2023-03-16T07:56:00+00:00</published>
    <updated>2023-03-16T07:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago I <a href="/2023/03/ebgp-ttl-history/">described why EBGP TCP packets have TTL set to one</a> (unless you configured EBGP multihop). Although some people claim that (<a href="/2011/12/is-nat-security-feature/">like NAT</a>) it could be a security feature, it&rsquo;s not a good one. Generalized TTL Security Mechanism (GTSM, described in <a href="https://datatracker.ietf.org/doc/html/rfc5082">RFC 5082</a>) is much better.</p>
<p>Most BGP implementations <strong>set TTL field in outgoing EBGP packets to one</strong>. That prevents a remote intruder that manages to hijack a host route to an adjacent EBGP peer from forming a BGP session as the TCP replies get lost the moment they hit the first router in the path.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/advantages-bgp-gtsm/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[First Steps in IPv6 Deployments]]></title>
    <link href="https://blog.ipspace.net/2023/03/first-ipv6-steps/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/first-ipv6-steps/</id>
    <published>2023-03-15T07:48:00+00:00</published>
    <updated>2023-03-15T07:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Even though IPv6 could buy its own beer (in US, let alone rest of the world), networking engineers still struggle with its deployment &ndash; one of the <a href="https://designclinic.ipspace.net/topic/ipv6-first-steps/">first questions</a> I got in the <a href="https://www.ipspace.net/IpSpace.net_Design_Clinic">ipSpace.net Design Clinic</a> was:</p>
<blockquote>
<p>We have been tasked to start IPv6 planning. Can we discuss (for enterprises like us who all of the sudden want IPv6) which design paths to take?</p>
</blockquote>
<p>I did my best to <a href="https://my.ipspace.net/bin/get/Design/21.10.02%20-%20First%20Steps%20in%20IPv6%20Deployments.mp4?doccode=Design">answer this question</a> and <a href="https://my.ipspace.net/bin/get/Design/21.10.04%20-%20IPv6%20Addressing%20Plans%20and%20Prefix%20Delegation.mp4?doccode=Design">describe the basics of creating an IPv6 addressing plan</a>. For even more details, watch the <a href="https://www.ipspace.net/IPv6">IPv6 webinars</a> (most of them at least a few years old, but nothing changed in the IPv6 world in the meantime apart from the <a href="/2019/01/srv6-one-tool-to-rule-them-all/">SRv6 madness</a>).</p>
]]></content>
    <category term="IPv6" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Leaf-and-Spine Fabrics Between Theory and Reality]]></title>
    <link href="https://blog.ipspace.net/2023/03/leaf-spine-theory-reality/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/leaf-spine-theory-reality/</id>
    <published>2023-03-14T07:01:00+00:00</published>
    <updated>2023-03-14T07:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;m always envious of how easy networking challenges seem when you&rsquo;re solving them in PowerPoint, for example, when an <em>innovation specialist</em> explains how scalability works in leaf-and-spine fabrics in a <em>LinkedIn</em> comment:</p>
<blockquote>
<p>One of the main benefits of a CLOS folded spine topology is the scale out spine where you can scale out the number of spine nodes increasing your leaf-spine n-way ECMP as well as minimizing the blast radius with the more spine nodes the more redundancy and resiliency.</p>
</blockquote>
<p>Isn&rsquo;t that wonderful? If you need more bandwidth, sprinkle the magic spine powder on your fabric, add water, and voila! Problem solved. Also, it looks like adding spine switches reduces the blast radius. Who would have known?</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/leaf-spine-theory-reality/'>Read more &hellip;</a></div>]]></content>
    <category term="fabric" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Test DHCP Relaying with netlab]]></title>
    <link href="https://blog.ipspace.net/2023/03/netlab-dhcp-relay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/netlab-dhcp-relay/</id>
    <published>2023-03-13T07:01:00+00:00</published>
    <updated>2023-03-13T07:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="/2023/03/dhcp-relay-process/">figuring out how DHCP relaying works</a>, I decided to test it out in a lab. <em>netlab</em> has no DHCP configuration module (at the moment); the easiest way forward seemed to be custom configuration templates combined with a few extra attributes.</p>
<h3 id="lab-topology">Lab Topology</h3>
<p>This is how I set up the lab:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/netlab-dhcp-relay/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="DHCP" />
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Putting Large Language Models in Context]]></title>
    <link href="https://blog.ipspace.net/2023/03/worth-reading-large-language-models/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/worth-reading-large-language-models/</id>
    <published>2023-03-12T07:48:00+00:00</published>
    <updated>2023-03-12T07:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Another take on &ldquo;what are large language models and what can we expect from them,&rdquo; this time by Bruce Davie: <a href="https://systemsapproach.substack.com/p/putting-large-language-models-in">Putting Large Language Models in Context</a>:</p>
<blockquote>
<p>My approach, at least for now, is to treat these LLM-based systems as very large, efficient collections of matchboxes–and keep working in my chosen field of networking.</p>
</blockquote>
]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The War on Expertise]]></title>
    <link href="https://blog.ipspace.net/2023/03/worth-reading-war-on-expertise/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/worth-reading-war-on-expertise/</id>
    <published>2023-03-11T07:42:00+00:00</published>
    <updated>2023-03-11T07:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Jeff McLaughlin published an excellent blog post perfectly describing what we&rsquo;ve been experiencing for decades: <a href="https://subnetzero.info/2023/03/07/the-war-on-expertise/">the war on expertise</a>.</p>
<p>On one hand, the &ldquo;business owners&rdquo; force us to build complex stuff because they think they know better, on the other they blame people who know how to do it for the complex stuff that happens as the result of their requirements:</p>
<blockquote>
<p>I am saying that we need to stop blaming complexity on those who manage to understand it.</p>
</blockquote>
<p>Enjoy!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: SD-WAN Backend Architecture]]></title>
    <link href="https://blog.ipspace.net/2023/03/video-sdwan-backend-architecture/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/video-sdwan-backend-architecture/</id>
    <published>2023-03-10T07:48:00+01:00</published>
    <updated>2023-03-10T07:48:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="/2018/11/video-sdwan-reference-design/">describing the SD-WAN reference design</a>, <a href="https://www.ipspace.net/Author:Pradosh_Mohapatra">Pradosh Mohapatra</a> focused on individual components of an SD-WAN solution, <a href="https://my.ipspace.net/bin/get/SDWAN/3%20-%20Backend%20Architecture.mp4?doccode=SDWAN">starting with the backend architecture</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/SDWAN/3%20-%20Backend%20Architecture.mp4?doccode=SDWAN">Watch the video</a></div>
<div  class="free">
You need at least <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a> to watch this video and other videos in the <a href="https://www.ipspace.net/SD-WAN_Overview">SD-WAN Overview</a> webinar.
</div>
]]></content>
    <category term="SD-WAN" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DHCP Relaying Details]]></title>
    <link href="https://blog.ipspace.net/2023/03/dhcp-relay-process/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/dhcp-relay-process/</id>
    <published>2023-03-09T07:54:00+00:00</published>
    <updated>2023-03-09T07:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Chinar Trivedi asked an <a href="https://twitter.com/cloudnetworkguy/status/1631891785478971392">interesting question</a> about DHCP relaying in VXLAN/EVPN world on Twitter and my first thought was &ldquo;<em>that shouldn&rsquo;t be hard</em>&rdquo; but when I <a href="https://twitter.com/aninchat/status/1631952450189131776">read the first answer</a> that turned into &ldquo;<em>wait a minute, how exactly does DHCP relaying works?</em>&rdquo;</p>
<p>I&rsquo;m positive there&rsquo;s a tutorial out there somewhere, but I decided to go back to the sources of wisdom: the RFCs. It turned out to be a long walk down the IETF history lane.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/dhcp-relay-process/'>Read more &hellip;</a></div>]]></content>
    <category term="DHCP" />
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New: Anycast Resource Page]]></title>
    <link href="https://blog.ipspace.net/2023/03/anycast-resources/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/anycast-resources/</id>
    <published>2023-03-08T06:42:00+00:00</published>
    <updated>2023-03-08T06:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I wrote two dozen blog posts describing IP anycast concepts, from first-hop anycast gateways to anycast between DNS servers and global anycast (as used by large web properties), but never organized them in any usable form.</p>
<p>That&rsquo;s fixed: everything I ever wrote about anycast is nicely structured on the new <a href="/series/anycast/">Anycast Resources</a> page.</p>
<div class='jump-link'><a href="/series/anycast/">Explore</a></div>
]]></content>
    <category term=" worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dynamic MAC Learning: Hardware or CPU Activity?]]></title>
    <link href="https://blog.ipspace.net/2023/03/dynamic-mac-learning-hw-cpu/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/dynamic-mac-learning-hw-cpu/</id>
    <published>2023-03-07T06:59:00+00:00</published>
    <updated>2023-03-07T06:59:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>An ipSpace.net subscriber sent me a question along the lines of &ldquo;<em>does it matter that EVPN uses BGP to implement dynamic MAC learning whereas in traditional switching that&rsquo;s done in hardware?</em>&rdquo; Before going into those details, I wanted to establish the baseline: is dynamic MAC learning really implemented in hardware?</p>
<p>Hardware-based switching solutions usually <a href="/2022/02/packet-forwarding-header-lookup/">use a hash table to implement MAC address lookups</a>. The above question should thus be rephrased as <em>is it possible to update the MAC hash table in hardware without punting the packet to the CPU?</em> One would expect high-end (expensive) hardware to be able do it, while low-cost hardware would depend on the CPU. It turns out the reality is way more complex than that.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/dynamic-mac-learning-hw-cpu/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Change Stub Networks into Loopbacks]]></title>
    <link href="https://blog.ipspace.net/2023/03/netlab-stub-loopback/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/netlab-stub-loopback/</id>
    <published>2023-03-06T06:38:00+00:00</published>
    <updated>2023-03-06T06:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the least-documented limitations of virtual networking labs is the number of network interfaces a virtual machine could have. vSphere supports up to 10 interfaces per VM, the default setting for <em>vagrant-libvirt</em> is eight, and I couldn&rsquo;t find the exact numbers for KVM. Many vendors claim their KVM limit is around 25; I was able to bring up a Nexus 9300v device with 40 adapters.</p>
<p>Anyway, a dozen interfaces should be good enough if you&rsquo;re building a proof-of-concept fabric, but it might get a bit tight if you want to emulate plenty of edge subnets.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/netlab-stub-loopback/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Getting Started with netlab]]></title>
    <link href="https://blog.ipspace.net/2023/03/video-netlab-getting-started/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/video-netlab-getting-started/</id>
    <published>2023-03-03T07:49:00+00:00</published>
    <updated>2023-03-03T07:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After explaining <a href="/2022/10/replacing-gns3-netlab/">how <em>netlab</em> fits into the <em>virtual lab orchestration</em> picture</a> and <a href="https://my.ipspace.net/bin/get/NetTools/N2%20-%20What%20Can%20netlab%20Do.mp4?doccode=NetTools">what exactly it can do</a>, let&rsquo;s focus on <em>what&rsquo;s the easiest way to get started</em>.</p>
<p>The <a href="https://my.ipspace.net/bin/get/NetTools/N3%20-%20Getting%20Started%20with%20netlab.mp4?doccode=NetTools">next video</a> in the <em><a href="https://my.ipspace.net/bin/list?id=NetTools#NETLAB">Using netlab to Build Networking Labs</a></em> series describes:</p>
<ul>
<li>Typical deployment scenarios: <a href="https://netlab.tools/labs/virtualbox/">VirtualBox</a> on Windows or MacOS, or libvirt/KVM on a <a href="https://netlab.tools/install/ubuntu/">Linux server</a> or a <a href="https://netlab.tools/install/ubuntu-vm/">virtual machine</a> (running on Windows or MacOS).</li>
<li><a href="https://netlab.tools/platforms/">Hardware</a> and <a href="https://netlab.tools/install/">software</a> requirements</li>
<li>Behind-the-scene operations performed by <strong><a href="https://netlab.tools/netlab/create/">netlab create</a></strong>, <strong><a href="https://netlab.tools/netlab/initial/">netlab initial</a></strong> and <strong><a href="https://netlab.tools/netlab/up/">netlab up</a></strong> commands.</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetTools/N3%20-%20Getting%20Started%20with%20netlab.mp4?doccode=NetTools">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video and <a href="https://www.ipspace.net/Subscription">Standard ipSpace.net Subscription</a> to watch the rest of the webinar.
</div>
]]></content>
    <category term="video" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[History of IP TTL in EBGP Sessions]]></title>
    <link href="https://blog.ipspace.net/2023/03/ebgp-ttl-history/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/ebgp-ttl-history/</id>
    <published>2023-03-02T07:16:00+00:00</published>
    <updated>2023-03-02T07:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.networkfuntimes.com/about/">Chris Parker</a> wrote a <a href="https://www.networkfuntimes.com/your-multihop-bgp-session-probably-isnt-multi-hop/">wonderful blog post</a> going deep into the weeds on how EBGP sessions use IP TTL and why we need multihop EBGP sessions between adjacent devices. However, he couldn&rsquo;t find a source explaining why early BGP implementations decided to use IP TTL set to one on EBGP sessions:</p>
<blockquote>
<p>If there&rsquo;s a source on the internet that explains when it was decided that EBGP should use a TTL of 1, I can&rsquo;t find it. I can&rsquo;t even find it in any RFC. I looked in the RFC for BGP v4, and went all the way back to BGP v1. None of these documents contain the text &ldquo;TTL or &ldquo;time to live&rdquo; or &ldquo;time-to-live.&rdquo; It&rsquo;s not even in the RFC for EGP, back in 1984.</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2023/03/ebgp-ttl-history/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Microsoft Azure Networking]]></title>
    <link href="https://blog.ipspace.net/2023/03/feedback-azure/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/03/feedback-azure/</id>
    <published>2023-03-01T06:47:00+00:00</published>
    <updated>2023-03-01T06:47:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Numerous networking engineers found my <a href="https://www.ipspace.net/Cloud">cloud webinars</a> (<a href="https://www.ipspace.net/Amazon_Web_Services_Networking">AWS</a>, <a href="https://www.ipspace.net/Microsoft_Azure_Networking">Azure</a>) useful when preparing for a cloud migration project. Here&rsquo;s what <a href="https://www.ipspace.net/Microsoft_Azure_Networking#Happy_Campers">one of them wrote</a>:</p>
<blockquote>
<p>We are beginning to migrate some of our offerings to Microsoft Azure and I need to get up to speed with Azure products. I found this webinar very informative, and Ivan explained the concepts in a clear manner and easy to follow along. I would recommend watching these webinars and then read Microsoft documentation to get a thorough understanding.</p>
</blockquote>
<p>Want to have some hands-on work sprinkled on top of that? You&rsquo;ll find deployment examples in the <a href="https://github.com/ipspace/pubcloud">Networking in Public Clouds GitHub repository</a>.</p>
]]></content>
    <category term="cloud" />
    <category term="Azure" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Alternatives to IBGP within Multihomed Sites]]></title>
    <link href="https://blog.ipspace.net/2023/02/multihomed-ibgp-details/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/multihomed-ibgp-details/</id>
    <published>2023-02-28T07:21:00+00:00</published>
    <updated>2023-02-28T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Two weeks ago I explained why you might want to run IBGP between CE-routers on a multihomed site. One of the blog readers <a href="/2023/02/ce-ibgp-multihomed-site/#1669">didn&rsquo;t like my ideas</a>:</p>
<blockquote>
<p>In such a small deployment I assume that both ISPs offer transit, so that both CEs would get a default route from their upstream.</p>
<p>In this case I would not iBGP the CEs together but have HSRP running on the two CEs and track the uplink (interface and/of BGP session) to determine the active gateway.</p>
</blockquote>
<p>Let&rsquo;s see what could possibly go wrong with that design.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/multihomed-ibgp-details/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Suspending Devices in netlab Labs]]></title>
    <link href="https://blog.ipspace.net/2023/02/netlab-suspend/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/netlab-suspend/</id>
    <published>2023-02-27T07:02:00+00:00</published>
    <updated>2023-02-27T07:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A networking engineer <a href="/2023/02/virtual-device-boot-times/">tired of waiting for network devices to start</a> sent me this question:</p>
<blockquote>
<p>Can you suspend VMs in netlab? I use this trick in vSphere with CSR1Kv.</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: Maybe. Probably not.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/netlab-suspend/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Packet Buffers in Data Center ASICs]]></title>
    <link href="https://blog.ipspace.net/2023/02/video-dc-packet-buffers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/video-dc-packet-buffers/</id>
    <published>2023-02-24T07:13:00+00:00</published>
    <updated>2023-02-24T07:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few years ago, we were fortunate enough to have <a href="https://www.ipspace.net/Author:Pete_Lumbis">Pete Lumbis</a> talking about <a href="https://my.ipspace.net/bin/list?id=DCFabric#TECHNOLOGY">ASICs for Networking Engineers</a> as part of the <a href="https://www.ipspace.net/Data_Center_Fabrics">Data Center Fabric Architectures</a> webinar.</p>
<p>One of the topics he couldn&rsquo;t possibly skip was the question of <a href="https://my.ipspace.net/bin/get/DCFabric/AS3%20-%20Packet%20Buffers.mp4?doccode=DCFabric">how many packet buffers one needs</a> in a data center switch.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/DCFabric/AS3%20-%20Packet%20Buffers.mp4?doccode=DCFabric">Watch the video</a></div>
<div  class="info">
If you want even more details, watch the <a href="https://www.ipspace.net/Networks,_Buffers,_and_Drops">Networks, Buffers, and Drops</a> webinar.
</div>
]]></content>
    <category term="data center" />
    <category term="switching" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How Many Spines Should a Leaf-and-Spine Fabric Have?]]></title>
    <link href="https://blog.ipspace.net/2023/02/number-spines-leaf-spine-fabric/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/number-spines-leaf-spine-fabric/</id>
    <published>2023-02-23T07:18:00+00:00</published>
    <updated>2023-02-23T07:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me a question along these lines:</p>
<blockquote>
<p>How do we determine the number of spines needed in a leaf-and-spine fabric? It&rsquo;s easy to calculate the number of leaf nodes from the required number of server ports, and two spines give you the redundancy. Does it make sense to have more spines if two are good enough from the capacity perspective?</p>
</blockquote>
<p>There are at least two factors to consider:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/number-spines-leaf-spine-fabric/'>Read more &hellip;</a></div>]]></content>
    <category term="fabric" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Measuring Virtual Network Device Boot Times]]></title>
    <link href="https://blog.ipspace.net/2023/02/virtual-device-boot-times/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/virtual-device-boot-times/</id>
    <published>2023-02-22T06:45:00+00:00</published>
    <updated>2023-03-02T15:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A senior engineer at Juniper Networks wasn&rsquo;t happy with me <a href="/2023/02/cisco-ios-bgp-update-delay/#fn:2">mentioning</a> <em>resource hogs</em> and <em>Junos platforms</em> in the same statement. Instead of engaging in never-ending <em>angels dancing on pins</em> deliberations comparing the virtues of Junos with other network operating systems, I decided to throw a bit of real-life data into the mix &ndash; I <a href="https://github.com/ipspace/netlab-examples/tree/master/timing">created a simple script</a> that measures:</p>
<ul>
<li>The time it takes to execute <strong>vagrant up</strong> to start a single network device.</li>
<li>The time it takes to deploy simple initial configuration on that device.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/virtual-device-boot-times/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Some Operations Are Not Worth Automating]]></title>
    <link href="https://blog.ipspace.net/2023/02/not-worth-automating/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/not-worth-automating/</id>
    <published>2023-02-21T08:06:00+00:00</published>
    <updated>2023-02-21T08:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Ish <a href="/2023/01/network-automation-expert-beginners/#1661">wrote an interesting comment</a> on my <a href="/2023/01/network-automation-expert-beginners/">Network Automation Expert Beginners</a> blog post. He started with:</p>
<blockquote>
<p>[Our network has] about 40 sites, but we don&rsquo;t do total refresh cycles in bulk, just as needed. Everything we do is sporadic, and I&rsquo;m trying to see the ROI on learning automation for things that are done once in a while that don&rsquo;t take much time to do manually anyway.</p>
</blockquote>
<p>There are two aspects to this part of his comment:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/not-worth-automating/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Start Multiple netlab Labs on the Same Server]]></title>
    <link href="https://blog.ipspace.net/2023/02/netlab-multilab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/netlab-multilab/</id>
    <published>2023-02-20T06:52:00+00:00</published>
    <updated>2023-02-20T06:52:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A heavy <em>netlab</em> user sent me an email along these lines:</p>
<blockquote>
<p>We&rsquo;re running multiple labs in parallel on the same server, and we&rsquo;re experiencing all sorts of clashes like overlapping management IP addresses. We &ldquo;solved&rdquo; that by using static device identifiers in our labs, but I&rsquo;m wondering if there&rsquo;s a better way of doing it?</p>
</blockquote>
<p>That&rsquo;s exactly the sort of real-life challenges I love working on, so it wasn&rsquo;t hard to get me excited, and the results are <a href="https://netlab.tools/plugins/multilab/">bundled in <em>netlab</em> release 1.5</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/netlab-multilab/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: On ChatGPT]]></title>
    <link href="https://blog.ipspace.net/2023/02/worth-reading-chatgpt-shortcomings/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/worth-reading-chatgpt-shortcomings/</id>
    <published>2023-02-18T08:03:00+00:00</published>
    <updated>2023-02-18T08:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the best <a href="https://acoup.blog/2023/02/17/collections-on-chatgpt/">descriptions of what ChatGPT does and what it cannot do</a> I found so far comes from an <a href="https://acoup.blog/about-the-pedant/">ancient and military historian</a>. The <em>what is ChatGPT</em> and <em>what is an essay</em> parts are a must-read, the <em>preparing to be disrupted</em> conclusion is pure gold:</p>
<blockquote>
<p>I do think there are classrooms that will be disrupted by ChatGPT, but those are classrooms where something is already broken.</p>
</blockquote>
<p>I can&rsquo;t help but think of the never-ending brouhaha about exam brain dumps.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/worth-reading-chatgpt-shortcomings/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Link State Routing Protocol Basics]]></title>
    <link href="https://blog.ipspace.net/2023/02/video-link-state-routing-basics/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/video-link-state-routing-basics/</id>
    <published>2023-02-17T07:04:00+00:00</published>
    <updated>2023-02-17T07:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="/2022/11/video-routing-protocols-overview/">Routing Protocols Overview</a> part of <a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a> webinar introduced the concepts of <em>distance-vector</em> and <em>link-state</em> routing protocols. Next step: the <a href="https://my.ipspace.net/bin/get/Net101/RP2.1%20-%20Link%20State%20Routing%20Protocol%20Basics.mp4?doccode=Net101">basics of link-state routing protocols</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/RP2.1%20-%20Link%20State%20Routing%20Protocol%20Basics.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="IP routing" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Designing Active/Active and Disaster Recovery Data Centers]]></title>
    <link href="https://blog.ipspace.net/2023/02/feedback-disaster-recovery-data-centers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/feedback-disaster-recovery-data-centers/</id>
    <published>2023-02-16T06:53:00+00:00</published>
    <updated>2023-02-16T06:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <em><a href="https://www.ipspace.net/Designing_Active-Active_and_Disaster_Recovery_Data_Centers">Designing Active-Active and Disaster Recovery Data Centers</a></em> I tried to give networking engineers a high-level overview of challenges one might face when designing a highly-available application stack, and used that information to show why the common &ldquo;solutions&rdquo; like stretched VLANs make little sense if one cares about application availability (as opposed to auditor report). Some (customer) engineers <a href="https://www.ipspace.net/Designing_Active-Active_and_Disaster_Recovery_Data_Centers#Happy_Campers">like that approach</a>; here&rsquo;s the feedback I received not long ago:</p>
<blockquote>
<p>As ever, Ivan cuts to the quick and provides not just the logical basis for a given design, but a wealth of advice, pointers, gotchas stemming from his extensive real-world experience. What is most valuable to me are those &ldquo;gotchas&rdquo; and what NOT to do, again, logically explained. You won&rsquo;t find better material IMHO.</p>
</blockquote>
<p>Please note that I&rsquo;m talking about generic multi-site scenarios. From the high-level connectivity and application architecture perspective there&rsquo;s not much difference between a multi-site on-premises (or collocation) deployment, a hybrid cloud, or a multicloud deployment.</p>
]]></content>
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[CE-to-CE IBGP Session in a Multihomed Site]]></title>
    <link href="https://blog.ipspace.net/2023/02/ce-ibgp-multihomed-site/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/ce-ibgp-multihomed-site/</id>
    <published>2023-02-15T07:13:00+00:00</published>
    <updated>2023-02-15T07:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me a question along these lines:</p>
<blockquote>
<p>Do I have to have an IBGP session between Customer Edge (CE) routers in a multihomed site if they run EBGP with the upstream provider(s)?</p>
</blockquote>
<p>Let&rsquo;s start with a simple diagram and a refactoring of the question:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/ce-ibgp-multihomed-site/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="design" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: Machine Learning for Network and Cloud Engineers]]></title>
    <link href="https://blog.ipspace.net/2023/02/machine-learning-network-cloud/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/machine-learning-network-cloud/</id>
    <published>2023-02-14T07:15:00+00:00</published>
    <updated>2023-02-14T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a>, the author of the fantastic <a href="https://www.ipspace.net/AI_and_ML_in_Networking">AI/ML in Networking</a> webinar, spent years writing the <a href="https://www.amazon.com/Machine-Learning-Network-Cloud-Engineers-ebook/dp/B0BT6YZC33">Machine Learning for Network and Cloud Engineers</a> book that is now available in paperback and Kindle format.</p>
<p>I&rsquo;ve seen a final draft of the book and it&rsquo;s definitely worth reading. You should also invest some time into testing the scenarios Javier created. Here&rsquo;s what I wrote in the foreword:</p>
<hr>
<p>Artificial Intelligence (AI) has been around for decades. It was one of the exciting emerging (and overhyped) topics when I attended university in the late 1980s. Like today, the hype failed to deliver, resulting in long, long AI winter.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/machine-learning-network-cloud/'>Read more &hellip;</a></div>]]></content>
    <category term="AI" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Start Large netlab Topologies in Smaller Batches]]></title>
    <link href="https://blog.ipspace.net/2023/02/netlab-libvirt-batches/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/netlab-libvirt-batches/</id>
    <published>2023-02-13T07:08:00+00:00</published>
    <updated>2023-02-13T07:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s incredible how little CPU resources some network devices consume in a steady state &ndash; a <em>netlab</em> user managed to run almost 100 Mikrotik routers on a 24-core server. Starting them simultaneously (like <strong>vagrant up</strong> tries to do when used with the <em>vagrant-libvirt</em> plugin) is a different story. The router virtual machines are configured with two CPU cores for a good reason, and if they don&rsquo;t get enough CPU cycles during the boot time, they get sluggish, Vagrant gives up, and the lab start procedure fails.</p>
<p>One could use a nasty workaround:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/netlab-libvirt-batches/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Kubernetes SDN Architecture]]></title>
    <link href="https://blog.ipspace.net/2023/02/video-kubernetes-sdn-architecture/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/video-kubernetes-sdn-architecture/</id>
    <published>2023-02-10T07:01:00+00:00</published>
    <updated>2023-02-10T07:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> started the <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar with an <a href="https://my.ipspace.net/bin/list?id=Kubernetes#INTRO">overview of basic concepts</a> including the networking model and services. After covering the fundamentals, it was time for The Real Stuff: <a href="https://my.ipspace.net/bin/list?id=Kubernetes#CNI">Container Networking Interface</a>, starting with an overview of <a href="https://my.ipspace.net/bin/get/Kubernetes/2.1%20-%20Understanding%20Kubernetes%20SDN%20Architecture.mp4?doccode=Kubernetes">Kubernetes SDN architecture</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/2.1%20-%20Understanding%20Kubernetes%20SDN%20Architecture.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Real-Life Not-Exactly-Networking AI Use Case]]></title>
    <link href="https://blog.ipspace.net/2023/02/real-life-ai-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/real-life-ai-networking/</id>
    <published>2023-02-09T06:35:00+00:00</published>
    <updated>2023-02-09T06:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I get several emails every week<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> from people I never heard of telling me what a wonderful job they could do writing guest blog posts on a range of topics of interest to my audience.</p>
<p>I&rsquo;m positive you must be pretty intelligent to be a successful scammer, so I&rsquo;m sure the good ones are using ChatGPT to generate the &ldquo;unique&rdquo; content they&rsquo;re promising. I felt it was high time to return the favor.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/real-life-ai-networking/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="AI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: Nothing Works (in Enterprise IT)]]></title>
    <link href="https://blog.ipspace.net/2023/02/nothing-works-enterprise-it/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/nothing-works-enterprise-it/</id>
    <published>2023-02-08T09:08:00+00:00</published>
    <updated>2023-02-08T09:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Dmitry Perets <a href="/2023/01/worth-reading-nothing-works/#1629">left a thoughtful comment</a> on my Nothing Works blog post describing why enterprise IT might be even worse than consumer world.</p>
<blockquote>
<p>I think another reason for the &ldquo;Nothing Works&rdquo; world is that the only true Management Plane separation that exists in our industry is that of the real &ldquo;human&rdquo; management. In the medium/large enterprises they (and their interests, KPIs and so on) are very much separated from the technical workforce. And increasingly so, because today the technical workforce might not even be the employees of the same enterprise. They are likely to come from some IT consultancy outsource &ndash; degree of separation which makes a true SDN evangelist envious.</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/nothing-works-enterprise-it/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Improve BGP Startup Time on Cisco IOS]]></title>
    <link href="https://blog.ipspace.net/2023/02/cisco-ios-bgp-update-delay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/cisco-ios-bgp-update-delay/</id>
    <published>2023-02-07T07:09:00+00:00</published>
    <updated>2023-02-07T07:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I like using Cisco IOS for my routing protocol virtual labs<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. It uses a trivial amount of memory<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> and boots relatively fast. There was just one thing that kept annoying me: Cisco IOS release 15.x takes forever to install local routes in the BGP table and even longer to select the best routes and propagate them<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>.</p>
<p>I finally found the culprit: <strong>bgp update-delay</strong> nerd knob. Here&rsquo;s what the <a href="https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/command/irg-cr-book/bgp-a1.html#wp6262913850">documentation</a> has to say about it:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/cisco-ios-bgp-update-delay/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Mix Containers and VMs with netlab Release 1.5.0]]></title>
    <link href="https://blog.ipspace.net/2023/02/netlab-vm-containers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/netlab-vm-containers/</id>
    <published>2023-02-06T06:51:00+00:00</published>
    <updated>2023-02-06T06:51:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Maybe it&rsquo;s just me, but I always need a few extra devices in my virtual labs to have endpoints I could ping to/from or to have external routing information sources. We used VRF- and VLAN tricks in the days when we had to use physical devices to carve out a dozen hosts out of a single Cisco 2501, and life became much easier when you could spin up a few additional virtual machines in a virtual lab instead.</p>
<p>Unfortunately, those virtual machines eat precious resources. For example, <em>netlab</em> allocates <a href="https://netlab.tools/platforms/#supported-virtualization-providers">1GB to every Linux virtual machine</a> when you only need <code>bash</code> and <code>ping</code>. Wouldn&rsquo;t it be great if you could start that <code>ping</code> in a <em>busybox</em> container instead?</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/netlab-vm-containers/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: 2 Mpps on a Pentium CPU]]></title>
    <link href="https://blog.ipspace.net/2023/02/worth-reading-2mpps-pentium/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/worth-reading-2mpps-pentium/</id>
    <published>2023-02-04T06:56:00+00:00</published>
    <updated>2023-02-04T06:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Robert Graham published a blog post describing how his IDS/IPS system <a href="https://blog.erratasec.com/2023/01/im-still-bitter-about-slammer.html">handled 2 Mpps on a Pentium III CPU 20 years ago</a>&hellip; and yet <a href="/2023/01/data-center-tcp-replacement/">some people keep claiming</a> that &ldquo;<em>Driving a 100 Gbps network at 80% utilization in both directions consumes 10–20 cores just in the networking stack</em>&rdquo; (in 2023). I guess a suboptimal-enough implementation can still consume all the CPU cycles it can get and then some.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Migrating into a Cloud]]></title>
    <link href="https://blog.ipspace.net/2023/02/video-migrating-into-cloud/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/video-migrating-into-cloud/</id>
    <published>2023-02-03T07:28:00+00:00</published>
    <updated>2023-02-03T07:28:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Matthias_Luft">Matthias Luft</a> concluded his part of <a href="https://www.ipspace.net/Introduction_to_Cloud_Computing">Introduction to Cloud Computing</a> webinar with a case study: <a href="https://my.ipspace.net/bin/get/Cloud101/6.2%20-%20Case%20Study%20-%20Migrating%20into%20Cloud.mp4?doccode=Cloud101">how can you migrate an existing workload into a cloud environment</a>?</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Cloud101/6.2%20-%20Case%20Study%20-%20Migrating%20into%20Cloud.mp4?doccode=Cloud101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch this video.
</div>
]]></content>
    <category term="video" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IRB Models: Edge Routing]]></title>
    <link href="https://blog.ipspace.net/2023/02/irb-edge-routing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/irb-edge-routing/</id>
    <published>2023-02-02T07:31:00+00:00</published>
    <updated>2023-02-02T07:31:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The simplest way to implement layer-3 forwarding in a network fabric is to offload it to an external device<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, be it a WAN edge router, a firewall, a load balancer, or any other network appliance.</p>

<figure><img src="/2023/02/irb-edge-single.png"
   alt="Routing at the (outer) edge of the fabric"/><figcaption>
    <p>Routing at the (outer) edge of the fabric</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/irb-edge-routing/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="fabric" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: Complexities of Network Automation]]></title>
    <link href="https://blog.ipspace.net/2023/02/complexities-network-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/02/complexities-network-automation/</id>
    <published>2023-02-01T07:00:00+00:00</published>
    <updated>2023-02-01T07:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>David Gee couldn&rsquo;t resist making a few choice comments after I asked for his opinion of an early draft of the <a href="/2023/01/network-automation-expert-beginners/">Network Automation Expert Beginners</a> blog post, and allowed me to share them with you. Enjoy</em> 😉</p>
<hr>
<p>Network automation offers promises of reliability and efficiency, but it came without a warning label and health warnings. We seem to be perpetually stuck in a window display with sexily dressed mannequins.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/02/complexities-network-automation/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Design Clinic: Small-Site IPv6 Multihoming]]></title>
    <link href="https://blog.ipspace.net/2023/01/dc-ipv6-small-site-multihoming/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/dc-ipv6-small-site-multihoming/</id>
    <published>2023-01-31T07:50:00+00:00</published>
    <updated>2023-01-31T07:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I decided to stop caring about IPv6 when the protocol became old enough to buy its own beer (now even in US), but its <a href="https://en.wikipedia.org/wiki/Second-system_effect">second-system effects</a> keep coming back to haunt us. Here&rsquo;s a question I got for the <a href="https://designclinic.ipspace.net/">February 2023 ipSpace.net Design Clinic</a>:</p>
<blockquote>
<p>How can we do IPv6 networking in a small/medium enterprise if we’re using multiple ISPs and don’t have our own IPv6 Provider Independent IPv6 allocation. I’ve brainstormed this with people far more knowledgeable than me on IPv6, and listened to IPv6 Buzz episodes discussing it, but I still can’t figure it out.</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/dc-ipv6-small-site-multihoming/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.5.0: Larger Lab Topologies]]></title>
    <link href="https://blog.ipspace.net/2023/01/netlab-release-1.5.0-large-labs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/netlab-release-1.5.0-large-labs/</id>
    <published>2023-01-30T07:24:00+00:00</published>
    <updated>2023-01-30T07:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> release 1.5.0 includes features that will help you start very large lab topologies (someone managed to run over 90 Mikrotik routers on a 24-core server):</p>
<ul>
<li>You can <a href="https://netlab.tools/labs/libvirt/#starting-virtual-machines-in-batches">start <em>libvirt</em> virtual machines in batches</a> to reduce the CPU overload that causes startup failures on large topologies.</li>
<li>You can <a href="https://netlab.tools/providers/#combining-virtualization-providers">combine virtual machines and containers in the same lab</a>, further reducing the memory footprint for devices available as true containers (Linux hosts, Cumulus/FRR routers, Arista cEOS)</li>
<li>Use <a href="https://netlab.tools/labs/libvirt/#libvirt-management-network">custom management network IP subnet</a> if you&rsquo;re running out of management IP addresses</li>
</ul>
<p>To get more details and learn about additional features included in release 1.5.0, <a href="https://netlab.tools/release/1.5/#release-1-5-0">read the release notes</a>. To upgrade, execute <code>pip3 install --upgrade networklab</code>.</p>
<p>New to <em>netlab</em>? Start with the <a href="https://netlab.tools/tutorials/">Getting Started document</a> and the <a href="https://netlab.tools/install/">installation guide</a>.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: A Debugging Manifesto]]></title>
    <link href="https://blog.ipspace.net/2023/01/worth-reading-debugging-manifesto/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/worth-reading-debugging-manifesto/</id>
    <published>2023-01-29T07:25:00+00:00</published>
    <updated>2023-01-29T07:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Julia Evans published another fantastic must-read article: <a href="https://jvns.ca/blog/2022/12/08/a-debugging-manifesto/">a debugging manifesto</a>. Enjoy ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: Nothing Works]]></title>
    <link href="https://blog.ipspace.net/2023/01/worth-reading-nothing-works/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/worth-reading-nothing-works/</id>
    <published>2023-01-28T07:26:00+00:00</published>
    <updated>2023-01-28T07:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Did you ever wonder why it&rsquo;s impossible to find good service company, why most software sucks, or why networking vendors can get away with selling crap? If you did, and found no good answer (apart from <a href="https://en.wikipedia.org/wiki/Sturgeon%27s_law">Sturgeon&rsquo;s Law</a>), it&rsquo;s time to read <a href="https://danluu.com/nothing-works/"><em>Why is it so hard to buy things that work well?</em></a> by <a href="https://www.linkedin.com/in/danluu/">Dan Luu</a>.</p>
<p>Totally off-topic: his web site uses almost no CSS and looks in my browser like a relic of 1980s. Suggestions how to fix that (in Chrome) are most welcome.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Built.fm Podcast with David Gee]]></title>
    <link href="https://blog.ipspace.net/2023/01/built-fm-podcast/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/built-fm-podcast/</id>
    <published>2023-01-27T07:08:00+00:00</published>
    <updated>2023-01-27T07:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I had a lovely chat with <a href="https://www.ipspace.net/Author:David_Gee">David Gee</a> on his <a href="https://built.fm/">built.fm podcast</a> sometime in December. David <a href="https://www.linkedin.com/in/davedotdev/">switched jobs in the meantime</a>, and so it took him a bit longer than expected to publish it. Chatting with David is always fun; hope you&rsquo;ll enjoy our chat  as much as I did.</p>
<div class='jump-link'><a href="https://built.fm/p/ep06-ivan-broke-the-internet#details">Listen to the podcast</a></div>
]]></content>
    <category term="podcast" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Hiding Malicious Packets Behind LLC SNAP Header]]></title>
    <link href="https://blog.ipspace.net/2023/01/hiding-packets-behind-llc-headers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/hiding-packets-behind-llc-headers/</id>
    <published>2023-01-26T07:55:00+00:00</published>
    <updated>2023-01-26T07:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A random tweet<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> pointed me to <a href="https://kb.cert.org/vuls/id/855201">Vulnerability Note VU#855201</a> that documents four vulnerabilities exploiting a weird combination of LLC and VLAN headers can bypass layer-2 security on most network devices.</p>
<div  class="warn">
Before anyone starts jumping up and down &ndash; even though the VLAN header is mentioned, this is NOT VLAN hopping.
</div>
<p>The security researcher who found the vulnerability also <a href="https://blog.champtar.fr/VLAN0_LLC_SNAP/">provided an excellent in-depth description</a> focused on the way operating systems like Linux and Windows handle LLC-encapsulated IP packets. Here&rsquo;s the CliffNotes version focused more on the hardware switches. Even though I tried to keep it simple, you might want to read the <a href="/2022/10/ethernet-encapsulations/">History of Ethernet Encapsulation</a> before moving on.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/hiding-packets-behind-llc-headers/'>Read more &hellip;</a></div>]]></content>
    <category term="LAN" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: Network Automation Expert Beginners]]></title>
    <link href="https://blog.ipspace.net/2023/01/response-expert-beginners/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/response-expert-beginners/</id>
    <published>2023-01-25T07:00:00+00:00</published>
    <updated>2023-01-25T07:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>I usually <a href="https://www.linkedin.com/feed/update/urn:li:activity:7021022696943579136/">post links to my blog posts to LinkedIn</a>, and often get extraordinary comments. Unfortunately, those comments usually get lost in the mists of social media fog after a few weeks, so I&rsquo;m trying to save them by reposting them as blog posts (always with original author&rsquo;s permission). Here&rsquo;s a comment <a href="https://www.linkedin.com/in/dysun/">David Sun</a> left on my <a href="/2023/01/network-automation-expert-beginners/">Network Automation Expert Beginners</a> blog post</em></p>
<hr>
<p>The most successful automation I&rsquo;ve seen comes from orgs who start with proper software requirements specifications and more importantly, the proper organizational/leadership backing to document and support said infrastructure automation tooling.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/response-expert-beginners/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Will DPUs Change the Network?]]></title>
    <link href="https://blog.ipspace.net/2023/01/dpu-change-network-forever/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/dpu-change-network-forever/</id>
    <published>2023-01-24T07:16:00+00:00</published>
    <updated>2023-01-24T07:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s easy to get excited about what seems to be a new technology and conclude that it will forever change the way we do things. For example, I&rsquo;ve seen claims that SmartNICs (also known as <em>Data Processing Units</em> &ndash; DPU) will forever change the network.</p>
<p><strong>TL&amp;DR</strong>: Of course they won&rsquo;t.</p>
<p>Before we start discussing the details, it&rsquo;s worth remembering what a DPU is: it&rsquo;s another server with its own CPU, memory, and network interface card (NIC) that happens to have PCI hardware that emulates the host interface cards. It might also have dedicated FPGA or ASICs.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/dpu-change-network-forever/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Building a Layer-2 Fabric]]></title>
    <link href="https://blog.ipspace.net/2023/01/netlab-l2-fabric/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/netlab-l2-fabric/</id>
    <published>2023-01-23T07:44:00+00:00</published>
    <updated>2023-01-23T07:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine decided to use <em>netlab</em> to build a simple traditional data center fabric, and asked me a question along these lines:</p>
<blockquote>
<p>How do I make all the ports be L2 by default i.e. not have IP address assigned to them?</p>
</blockquote>
<p>Trying to answer his question way too late in the evening (I know, I shouldn&rsquo;t be doing that), I focused on the &ldquo;<em>no IP addresses</em>&rdquo; part. To get there, you <a href="https://netlab.tools/example/addressing-tutorial/#layer-2-only-links-using-l2only-address-pool">have to use the <strong>l2only</strong> pool</a> or disable IPv4 prefixes in the <a href="https://netlab.tools/example/addressing-tutorial/#using-built-in-address-pools">built-in address pools</a>, for example:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/netlab-l2-fabric/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Do We Need Network Automation]]></title>
    <link href="https://blog.ipspace.net/2023/01/worth-reading-need-network-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/worth-reading-need-network-automation/</id>
    <published>2023-01-22T08:08:00+00:00</published>
    <updated>2023-01-22T08:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A long, long time ago, <a href="https://www.ipspace.net/Author:Mircea_Ulinic">Mircea Ulinic</a> (the author of Salt networking modules) wrote a long and thoughtful blog post on <a href="https://mirceaulinic.net/2019-01-09-do-we-need-network-automation/">whether we need network automation</a> (TL&amp;DR spoiler: yes).</p>
<p>After reading the article, you might want to listen to the <a href="/2017/04/salt-and-saltstack-on-software-gone-wild/">Salt and SaltStack</a> podcast we did with Mircea a long while ago, and <a href="https://my.ipspace.net/bin/list?id=NetAutSol&amp;module=8#M8S2">watch his presentation</a> in <a href="https://www.ipspace.net/Building_Network_Automation_Solutions">Building Network Automation Solutions</a> online course (also accessible with <a href="https://www.ipspace.net/Subscription/Individual">Expert Subscription</a>).</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: OMNI and AERO]]></title>
    <link href="https://blog.ipspace.net/2023/01/worth-reading-omni-aero/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/worth-reading-omni-aero/</id>
    <published>2023-01-21T08:40:00+00:00</published>
    <updated>2023-01-21T08:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Do you ever feel like we don&rsquo;t have enough overlay networking technologies? Don&rsquo;t worry, there&rsquo;s always another one, for example <a href="https://www.ietf.org/archive/id/draft-templin-intarea-omni-14.html">Overlay Multilink Network Interface</a> (OMNI) with <a href="https://datatracker.ietf.org/doc/html/rfc6706">Asymmetric Extended Route Optimization</a> (AERO) services. Want to know more? Fred Templin <a href="https://blog.apnic.net/author/fred-templin/">described it in a series of overview articles</a> on APNIC blog.</p>
]]></content>
    <category term="overlay networks" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: 2023 Network Engineer Path to Success]]></title>
    <link href="https://blog.ipspace.net/2023/01/video-networking-engineer-path-success/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/video-networking-engineer-path-success/</id>
    <published>2023-01-20T07:36:00+00:00</published>
    <updated>2023-01-20T07:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>David Bombal kindly invited me to have another chat talking about the future of networking in late 2022. The resulting (masterfully edited) video is <a href="https://www.youtube.com/watch?v=Q9LZZ4ur-bU">already on YouTube</a>. Hope you&rsquo;ll enjoy it as much as I enjoyed chatting with David.</p>
]]></content>
    <category term="video" />
    <category term="certifications" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Relationships between Layer-2 (VLAN) and Layer-3 (Subnet) Segments]]></title>
    <link href="https://blog.ipspace.net/2023/01/l2-l3-segments/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/l2-l3-segments/</id>
    <published>2023-01-19T07:23:00+00:00</published>
    <updated>2023-01-19T07:23:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Sometimes it takes me years to answer interesting questions, like the one <a href="https://twitter.com/webernetz/status/1450559574927364097">I got in a tweet in 2021</a>:</p>
<blockquote>
<p>Do you have a good article describing the one-to-one relation of layer-2 and layer-3 networks? Why should every VLAN contain one single L3 segment?</p>
</blockquote>
<p>There is no mandatory relationship between multi-access layer-2 networks and layer-3 segments, and secondary IP addresses (and subnets) were available in Cisco IOS in early 1990s. The rules-of-thumb<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> claiming there should be a 1:1 relationship usually derive from the oft-forgotten underlying requirements. Let&rsquo;s start with those.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/l2-l3-segments/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Docker Networking Deep Dive]]></title>
    <link href="https://blog.ipspace.net/2023/01/feedback-docker-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/feedback-docker-networking/</id>
    <published>2023-01-18T06:46:00+00:00</published>
    <updated>2023-01-18T06:46:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>While the pundits keeps telling me Docker is dead (looking at its documentation I would say they&rsquo;re right) and Kubernetes it the way to go (yay!), some people still have to deal with Docker networking, and at least some of them found the <em><a href="https://www.ipspace.net/Docker_Networking_Deep_Dive">Docker Networking Deep Dive</a></em> webinar useful. Here&rsquo;s a recent <a href="https://www.ipspace.net/Docker_Networking_Deep_Dive#Happy_Campers">review</a>:</p>
<blockquote>
<p>You can scroll over internet pages as long as you can, you will rarely find this kind of specialized knowledge. This is the next level in term of knowledge about Docker.</p>
</blockquote>
<p>If you belong to the &ldquo;<em>Kubernetes will rule the world</em>&rdquo; camp, we have you covered as well: Stuart Charlton created a phenomenal <em><a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a></em> webinar (approximately half of it is already accessible with <a href="https://www.ipspace.net/Subscription/Free">free subscription</a>).</p>
]]></content>
    <category term="Docker" />
    <category term="containers" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Automation Expert Beginners]]></title>
    <link href="https://blog.ipspace.net/2023/01/network-automation-expert-beginners/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/network-automation-expert-beginners/</id>
    <published>2023-01-17T07:33:00+00:00</published>
    <updated>2023-01-17T07:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Some network automation skeptics came to that place the hard way: they got burned by half-baked semi-tested systems. This is what one of my good friends had to say in a LinkedIn comment:</p>
<blockquote>
<p>I am suspicious of automation, as I&rsquo;ve unfortunately seen too many outages caused by either human error or faulty automation. Every time it required human CLI/GUI intervention to correct it. The problem is that the more automation we push, the fewer people know how to use the &ldquo;old school&rdquo; way to administer stuff.</p>
</blockquote>
<p>Network automation is not the only IT discipline that could cause hard-to-correct errors requiring manual intervention. I&rsquo;m positive everyone knows at least one horror story resulting in manual tweaking of the Windows registry, or a sequence of arcane SQL commands<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/network-automation-expert-beginners/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.4.3: Cisco IOS XRv, MPLS on FRR]]></title>
    <link href="https://blog.ipspace.net/2023/01/netlab-release-1.4.3-xrv/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/netlab-release-1.4.3-xrv/</id>
    <published>2023-01-16T07:26:00+00:00</published>
    <updated>2023-01-16T07:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I had tons of plans to implement new <em>netlab</em> features during the last week of December, but then (fortunately) reality intervened and I spent my time relaxing and enjoying the break. I still managed to add IOS XRv support to <a href="https://netlab.tools/release/1.4/#release-1-4-3">netlab release 1.4.3</a> though ;). Other new features include:</p>
<ul>
<li><a href="https://netlab.tools/module/mpls/">MPLS, LDP and L3VPN</a> support on FRR by <a href="https://github.com/sysoleg">Oleg A. Arkhangelsky</a></li>
<li>Optimized <a href="https://netlab.tools/labs/clab/#clab-linux">Linux container deployment</a> that removes dependencies on Python and <code>ip</code></li>
<li><a href="https://netlab.tools/labs/clab/#clab-config-template">Custom templates for container configuration files</a></li>
</ul>
<p>To upgrade, execute <code>pip3 install --upgrade networklab</code>.</p>
<p>New to <em>netlab</em>? Start with the <a href="https://netlab.tools/tutorials/">Getting Started document</a> and the <a href="https://netlab.tools/install/">installation guide</a>.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Routing Protocol Implementation Evaluation]]></title>
    <link href="https://blog.ipspace.net/2023/01/worth-reading-sybil-routing-protocol-evaluation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/worth-reading-sybil-routing-protocol-evaluation/</id>
    <published>2023-01-15T07:09:00+00:00</published>
    <updated>2023-01-15T07:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In 2018 I tried to figure out whether the rush to deploy new routing protocols in leaf-and-spine fabrics is anything more than another blob of hype (<a href="/2018/03/data-center-routing-with-rift-on/">RIFT</a>, <a href="/2018/04/openfabric-with-russ-white-on-software/">OpenFabric</a>, <a href="/2018/08/is-bgp-good-enough-with-dinesh-dutt-on/">BGP</a>), considering <a href="/2020/08/worth-reading-ospf-scales-well/">OSPF got the job done for AWS</a>. Those discussions probably sounded like a bunch of smart kids trying to measure outside temperature with a moist finger, so the only recommendation I could give in 2021 was &ldquo;<em><a href="/2021/06/use-best-tool-for-job/">use the best tool for the job, keeping in mind you&rsquo;re not Google or Microsoft</a></em>&rdquo;</p>
<p>It&rsquo;s always better to measure than to have opinions, and a group of academics did just that. They developed <a href="https://compunet.ing.uniroma3.it/assets/publications/Caiazzi-Scazzariello-Sibyl.pdf">Sybil</a> &ndash; a tool to measure routing protocol performance in leaf-and-spine fabrics &ndash; and Dip Singh used it to <a href="https://dipsingh.github.io/Sibyl-Routing-Protocol-Evaluation/">compare BGP to IS-IS and OpenFabric</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lack of Use Cases: a Lesson about Handling Hype]]></title>
    <link href="https://blog.ipspace.net/2023/01/worth-reading-lack-use-cases-handling-hype/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/worth-reading-lack-use-cases-handling-hype/</id>
    <published>2023-01-14T07:01:00+00:00</published>
    <updated>2023-01-14T07:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/gerbenwierda/">Gerben Wierda</a> published an interesting article <a href="https://ea.rna.nl/2023/01/02/the-lack-of-use-cases-for-blockchain-should-teach-organisations-a-valuable-lesson-about-handling-hypes/">documenting how overhyped technologies eventually wither due to lack of realistic use cases</a>.</p>
<p>He&rsquo;s writing about blockchain, but it would be relatively trivial to replace that with OpenFlow &ndash; when was the last time you&rsquo;ve seen something implemented with OpenFlow that wouldn&rsquo;t be easier to do with traditional tools?</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: MLAG with EVPN Deep Dive]]></title>
    <link href="https://blog.ipspace.net/2023/01/video-evpn-mlag-deep-dive/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/video-evpn-mlag-deep-dive/</id>
    <published>2023-01-13T07:52:00+00:00</published>
    <updated>2023-01-13T07:52:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In November 2022 I described <a href="/2022/11/mlag-vxlan-evpn/">some of the intricacies of using EVPN to implement MLAG control plane</a>. You might have noticed that I didn&rsquo;t dive deep into EVPN details, and I had a good reason for that &ndash; Lukas Krattiger did a <a href="https://my.ipspace.net/bin/get/EVPN/M3%20-%20Using%20MLAG%20in%20EVPN%20Environments.mp4?doccode=EVPN">wonderful job describing how MLAG works with EVPN</a> in the <a href="https://www.ipspace.net/EVPN_Technical_Deep_Dive">EVPN Deep Dive</a> webinar.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/EVPN/M3%20-%20Using%20MLAG%20in%20EVPN%20Environments.mp4?doccode=EVPN">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video. To watch the whole webinar, buy <a href="https://www.ipspace.net/Subscription/">Standard or Expert ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="video" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[State of LDPv6 and 6PE]]></title>
    <link href="https://blog.ipspace.net/2023/01/state-of-ldpv6-6pe/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/state-of-ldpv6-6pe/</id>
    <published>2023-01-12T07:11:00+00:00</published>
    <updated>2023-06-13T16:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers successfully deployed LDPv6 in their production network:</p>
<blockquote>
<p>We are using LDPv6 since we started using MPLS with IPv6 because I was used to OSPF/OSPFv3 in dual-stack deployments, and it simply worked.</p>
</blockquote>
<p>Not everyone seems to be sharing his enthusiasm:</p>
<blockquote>
<p>Now some consultants tell me that they know no-one else that is using LDPv6. According to them &ldquo;everyone&rdquo; is using 6PE and the future of LDPv6 is not certain.</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/state-of-ldpv6-6pe/'>Read more &hellip;</a></div>]]></content>
    <category term=" IPv6" />
    <category term="MPLS" />
    <category term="segment routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Updates: AWS Networking]]></title>
    <link href="https://blog.ipspace.net/2023/01/aws-updates/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/aws-updates/</id>
    <published>2023-01-11T07:00:00+00:00</published>
    <updated>2023-01-11T07:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It didn&rsquo;t make sense to update <em><a href="https://www.ipspace.net/Amazon_Web_Services_Networking">Amazon Web Services Networking</a></em> webinar before the re:Invent conference &ndash; even though AWS introduced only a few networking features during the conference, at least <a href="/2022/12/quick-look-aws-srd/">one of them</a> made a significant impact on the materials.</p>
<p>However, once the conference was over, I went over the to-do list that has been slowly accumulating for months and spent days updating over a dozen videos<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. The major changes include:</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/aws-updates/'>Read more &hellip;</a></div>]]></content>
    <category term="AWS" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is It Time to Replace TCP in Data Centers?]]></title>
    <link href="https://blog.ipspace.net/2023/01/data-center-tcp-replacement/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/data-center-tcp-replacement/</id>
    <published>2023-01-10T07:41:00+00:00</published>
    <updated>2023-01-10T07:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers asked for my opinion about the provocative &ldquo;<em><a href="https://arxiv.org/abs/2210.00714">It&rsquo;s Time to Replace TCP in the Datacenter</a></em>&rdquo; article by prof. <a href="https://en.wikipedia.org/wiki/John_Ousterhout">John Ousterhout</a>. I started reading it, found too many things that didn&rsquo;t make sense, and decided to ignore it as another attempt of a <a href="https://xkcd.com/793/">proverbial physicist solving hard problems in someone else&rsquo;s field</a>.</p>
<p>However, pointers to that article kept popping up, and I eventually realized it was a <em>position paper</em> in a long-term process that included <a href="https://www.usenix.org/conference/atc21/presentation/ousterhout">conference talks</a>, <a href="https://www.theregister.com/2022/07/27/replace_tcp_datacenter/">interviews</a> and <a href="https://netdevconf.info/0x16/session.html?keynote-ousterhout">keynote speeches</a>, so I decided to take another look at the technical details.</p><div class='jump-link'><a href='https://blog.ipspace.net/2023/01/data-center-tcp-replacement/'>Read more &hellip;</a></div>]]></content>
    <category term="TCP" />
    <category term="data center" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.4.2: Juniper vMX and Junos Features]]></title>
    <link href="https://blog.ipspace.net/2023/01/netlab-release-1.4.2-vmx/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2023/01/netlab-release-1.4.2-vmx/</id>
    <published>2023-01-09T07:20:00+00:00</published>
    <updated>2023-01-09T07:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the last things I did before going on the Christmas break was to push out <a href="https://netlab.tools/release/1.4/#release-1-4-2">netlab release 1.4.2</a>. Its highlights include:</p>
<ul>
<li><a href="https://netlab.tools/platforms/">Juniper vMX</a> by <a href="https://www.linkedin.com/in/ssasso">Stefano Sasso</a></li>
<li>BFD, VRF, MPLS, SR-MPLS, and MPLS/VPN on Junos (also by Stefano)</li>
<li>Full VLAN support on vMX and routed VLAN interfaces on vSRX (yet again, Stefano&rsquo;s contribution)</li>
<li>VyOS containerlab support by <a href="https://github.com/sysoleg">Oleg A. Arkhangelsky</a></li>
<li>CSR 1000v VLAN and VXLAN support</li>
</ul>
<p>Upgrading is as easy as ever: execute <code>pip3 install --upgrade networklab</code>.</p>
<p>New to <em>netlab</em>? Start with the <a href="https://netlab.tools/tutorials/">Getting Started document</a> and the <a href="https://netlab.tools/install/">installation guide</a>.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Happy Holidays and All the Best in 2023!]]></title>
    <link href="https://blog.ipspace.net/2022/12/wrapup-2022/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/wrapup-2022/</id>
    <published>2022-12-15T07:14:00+00:00</published>
    <updated>2022-12-15T07:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/2022/">Two hundred forty</a> blog posts and <a href="https://www.ipspace.net/Webinars/#Recent_webinars">sixteen webinar sessions</a> later, it&rsquo;s time for yet another &ldquo;year gone by&rdquo; blog post &ndash; I&rsquo;m shutting down my virtual office and will disappear until mid-January. I&rsquo;ll read my email should someone experience an urgent support problem but won&rsquo;t reply to 90% of the other stuff coming in.</p>
<p>I hope you&rsquo;ll find a few days to disconnect from the crazy pace of the networking world, forget all the marketing shenanigans you encountered in 2022, and focus on your loved ones. I would also like to wish you all the best in 2023!</p>
<p>Finally, I couldn&rsquo;t resist posting a few teasers of what&rsquo;s coming in early 2023<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/wrapup-2022/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[A Quick Look at AWS Scalable Reliable Datagram Protocol]]></title>
    <link href="https://blog.ipspace.net/2022/12/quick-look-aws-srd/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/quick-look-aws-srd/</id>
    <published>2022-12-14T07:17:00+00:00</published>
    <updated>2022-12-14T07:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the most exciting announcements from the last AWS re:Invent was the <a href="https://aws.amazon.com/about-aws/whats-new/2022/11/elastic-network-adapter-ena-express-amazon-ec2-instances/">Elastic Network Adapter (ENA) Express</a> functionality that uses the <a href="https://ieeexplore.ieee.org/document/9167399">Scalable Reliable Datagram (SRD)</a> protocol as the transport protocol for the overlay virtual networks. AWS claims ENA Express can push 25 Gbps over a single TCP flow and that SRD improves the tail latency (99.9 percentile) for high-throughput workloads by 85%.</p>
<p>Ignoring the &ldquo;<em><a href="/2023/01/dpu-change-network-forever/">DPUs could change the network forever</a></em>&rdquo; blogosphere reactions (hint: they won&rsquo;t), let&rsquo;s see what could be happening behind the scenes and why SRD improves TCP throughput and tail latency.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/quick-look-aws-srd/'>Read more &hellip;</a></div>]]></content>
    <category term="AWS" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[DPU Hype Considered Harmful]]></title>
    <link href="https://blog.ipspace.net/2022/12/dpu-hype-considered-harmful/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/dpu-hype-considered-harmful/</id>
    <published>2022-12-13T07:11:00+00:00</published>
    <updated>2022-12-13T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The hype generated by the &ldquo;<a href="https://www.servethehome.com/amd-pensando-dpu-to-run-vmware-vsphere-and-offload-key-functions/">VMware supports DPU offload</a>&rdquo; announcement already resulted in fascinating misunderstandings. Here&rsquo;s what I got from a System Architect:</p>
<blockquote>
<p>We are dealing with an interesting scenario where a customer had limited data center space, but applications demand more resources. We are evaluating whether we could offload ESXi processing to DPUs (Pensando) to use existing servers as bare-metal servers. Would it be a use case for DPU?</p>
</blockquote>
<p>First of all, congratulations to whichever vendor marketer managed to put that guy in that state of mind. Well done, sir, well done. Now for a dose of reality.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/dpu-hype-considered-harmful/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="virtualization" />
  </entry>
  <entry>
    <title type="html"><![CDATA[vagrant-libvirt Dependency Hell]]></title>
    <link href="https://blog.ipspace.net/2022/12/vagrant-libvirt-dependency-hell/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/vagrant-libvirt-dependency-hell/</id>
    <published>2022-12-12T08:30:00+00:00</published>
    <updated>2022-12-12T08:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the tiny details Open Networking preachers conveniently forget to mention is the tendency of open-source software to use a <a href="https://xkcd.com/2347/">gazillion small packages from numerous independent sources</a> to get the job done. Vendors selling commercial products (for example, Cumulus Linux) try their best to select the correct version of every package involved in their product; open-source projects could <a href="https://xkcd.com/1579/">quickly end in dependency hell</a>.</p>
<p><em>netlab</em> tries to solve the dependency conundrum with <a href="https://netlab.tools/netlab/install/">well-defined installation scripts</a>. We recommend you start with a brand new Ubuntu server (or VM) and <strong><a href="https://netlab.tools/install/ubuntu-vm/#manual-virtual-machine-provisioning">follow the four lines of instructions</a></strong><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. In that case, you usually get a working system unless something unexpected breaks behind the scenes, like what we experienced a few days ago.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/vagrant-libvirt-dependency-hell/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: NetOps Requires AI/ML and Rules]]></title>
    <link href="https://blog.ipspace.net/2022/12/worth-reading-netops-ai-rules/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/worth-reading-netops-ai-rules/</id>
    <published>2022-12-11T07:36:00+00:00</published>
    <updated>2022-12-11T07:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s some <a href="https://internetdynamics.substack.com/p/netops-requires-aiml-and-rules">common-sense view on hard-coded rules versus machine learning in network operations</a> by Mark Seery &ndash; quite often we can specify our response to an event as a simple set of rules, but if we want to identify deviation from &ldquo;normal&rdquo; behavior, machine learning might not be a bad idea.</p>
<p>For more details, watch the <em><a href="https://my.ipspace.net/bin/list?id=NetAutSol&amp;module=8">Event-Driven Network Automation</a></em> part of  <em><a href="https://www.ipspace.net/Building_Network_Automation_Solutions">Building Network Automation Solutions</a></em> online course.</p>
]]></content>
    <category term="automation" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Fail-Slow at Scale]]></title>
    <link href="https://blog.ipspace.net/2022/12/worth-reading-fail-slow-scale/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/worth-reading-fail-slow-scale/</id>
    <published>2022-12-10T07:29:00+00:00</published>
    <updated>2022-12-10T07:29:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Did you ever wonder why everything in IT becomes slower over time? Our changed expectations and accumulated cruft definitely play a major role.. but it could also be hardware. For more details (and fun reading), explore <a href="https://dl.acm.org/doi/10.1145/3242086">Fail-Slow at Scale: Evidence of Hardware Performance Faults in Large Production Systems</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: IPv6 Traffic Filtering Details]]></title>
    <link href="https://blog.ipspace.net/2022/12/video-ipv6-traffic-filtering-details/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/video-ipv6-traffic-filtering-details/</id>
    <published>2022-12-09T06:24:00+00:00</published>
    <updated>2022-12-09T06:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Did you like the <a href="/2022/10/video-ipv6-traffic-filtering/">traffic filtering in the age of IPv6</a> video by <a href="https://www.ipspace.net/Author:Christopher_Werny">Christopher Werny</a>? Time for part two: <a href="https://my.ipspace.net/bin/get/IPv6Sec/E4.2%20-%20Traffic%20Filtering%20Details.mp4?doccode=IPv6Sec">IPv6 traffic filtering details</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/IPv6Sec/E4.2%20-%20Traffic%20Filtering%20Details.mp4?doccode=IPv6Sec">Watch the video</a></div>
<div  class="info">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Arista EOS Configuration Automation]]></title>
    <link href="https://blog.ipspace.net/2022/12/arista-eos-configuration-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/arista-eos-configuration-automation/</id>
    <published>2022-12-08T07:42:00+00:00</published>
    <updated>2022-12-08T07:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I keep getting questions along the lines of &ldquo;<em>is network automation practical/a reality?</em>&rdquo; with arguments like:</p>
<blockquote>
<p>Many do not see a value and are OK with just a configuration manager such as Arista CVP (CloudVision Portal) and Cisco DNA.</p>
</blockquote>
<p><a href="/2018/04/configuration-templating-could-be-huge/">Configuration consistently is a huge win</a> regardless of how you implement it (it&rsquo;s perfectly fine if the tools your vendor providers work for you). It prevents <em>opportunistic consistency</em>, as Antti Ristimäki <a href="/2022/11/automation-service-provider/">succinctly explained</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/arista-eos-configuration-automation/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Would You Need an Overlay Network?]]></title>
    <link href="https://blog.ipspace.net/2022/12/need-overlay-network/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/need-overlay-network/</id>
    <published>2022-12-07T07:25:00+00:00</published>
    <updated>2022-12-07T07:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I got this question from one of ipSpace.net subscribers:</p>
<blockquote>
<p>My VP is not a fan of overlays and is determined to move away from our legacy implementation of OTV, VXLAN, and EVPN<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. We own and manage our optical network across all sites; however, it&rsquo;s hard for me to picture a network design without overlays. He keeps asking why we need overlays when we own the optical network.</p>
</blockquote>
<p>There are several reasons (apart from RFC 1925 Rule 6a) why you might want to add another layer of abstraction (that&rsquo;s what overlay networks are in a nutshell) to your network.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/need-overlay-network/'>Read more &hellip;</a></div>]]></content>
    <category term=" overlay networks" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running Routing Protocols over MLAG Links]]></title>
    <link href="https://blog.ipspace.net/2022/12/mlag-routing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/mlag-routing/</id>
    <published>2022-12-06T07:06:00+00:00</published>
    <updated>2022-12-06T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It took vendors like Cisco years to start supporting routing protocols between MLAG-attached routers and a pair of switches in the MLAG cluster. That seems like a no-brainer scenario, so there must be some hidden complexities. Let&rsquo;s figure out what they are.</p>
<p>We&rsquo;ll use the familiar MLAG diagram, replacing one of the attached hosts with a router running a routing protocol with both members of the MLAG cluster (for example, R, S1, and S2 are OSPF neighbors).</p>

<figure><img src="/2022/12/mlag-routing.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/mlag-routing/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: VRF Lite over VXLAN Transport]]></title>
    <link href="https://blog.ipspace.net/2022/12/netlab-vxlan-vrf-lite/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/netlab-vxlan-vrf-lite/</id>
    <published>2022-12-05T07:44:00+00:00</published>
    <updated>2022-12-05T07:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the comments I received after publishing the <em><a href="/2022/10/use-vrf-for-vxlan-vlans/">Use VRFs for VXLAN-Enabled VLANs</a></em> claimed that:</p>
<blockquote>
<p>I&rsquo;m firmly of the belief that VXLAN should be solely an access layer/edge technology and if you are running your routing protocols within the tunnel, you&rsquo;ve already lost the plot.</p>
</blockquote>
<p>That&rsquo;s a pretty good guideline for typical data center fabric deployments, but VXLAN is just a tool that allows you to build multi-access Ethernet networks on top of IP infrastructure. You can use it to emulate E-LAN service or to build networks similar to what you can get with DMVPN (<a href="/2018/11/omg-vxlan-is-still-insecure/">without any built-in security</a>). Today we&rsquo;ll use it to build a VRF Lite topology with two tenants (<em>red</em> and <em>blue</em>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/netlab-vxlan-vrf-lite/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Egress Anycast in Cloudflare Network]]></title>
    <link href="https://blog.ipspace.net/2022/12/worth-reading-cloudflare-egress-anycast/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/worth-reading-cloudflare-egress-anycast/</id>
    <published>2022-12-03T10:36:00+00:00</published>
    <updated>2022-12-03T10:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Cloudflare has been using <a href="/2021/11/anycast-principles/">ingress anycast</a> (advertising the same set of prefixes from all data centers) for ages. Now they did a giant leap forward and implemented another &ldquo;<em>this thing can never work</em>&rdquo; technology: egress anycast. Servers from multiple data centers use source addresses from the prefix that&rsquo;s advertised by all data centers.</p>
<p>Not only that, in the long-established tradition they <a href="https://blog.cloudflare.com/cloudflare-servers-dont-own-ips-anymore/">described their implementation</a> in enough details that someone determined enough could go and implement it (as opposed to the typical <em><a href="/2020/11/worth-reading-ai-replication-self-promotion/">look how awesome our secret sauce is</a></em> approach from Google).</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: What Can Netlab Do?]]></title>
    <link href="https://blog.ipspace.net/2022/12/what-can-netlab-do/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/what-can-netlab-do/</id>
    <published>2022-12-02T07:59:00+00:00</published>
    <updated>2022-12-02T07:59:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Time for another <em><a href="https://netlab.tools/">netlab</a></em> video: after explaining <a href="/2022/10/replacing-gns3-netlab/">how <em>netlab</em> fits into the <em>virtual lab orchestration</em> picture</a>, let&rsquo;s answer the following question: <a href="https://my.ipspace.net/bin/get/NetTools/N2%20-%20What%20Can%20netlab%20Do.mp4?doccode=NetTools">what exactly can <em>netlab</em> do?</a></p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetTools/N2%20-%20What%20Can%20netlab%20Do.mp4?doccode=NetTools">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video and <a href="https://www.ipspace.net/Subscription">Standard ipSpace.net Subscription</a> to watch the rest of the webinar.
</div>
]]></content>
    <category term="video" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Are DPUs Any Good?]]></title>
    <link href="https://blog.ipspace.net/2022/12/are-dpu-any-good/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/12/are-dpu-any-good/</id>
    <published>2022-12-01T08:14:00+00:00</published>
    <updated>2022-12-01T08:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="https://blogs.vmware.com/networkvirtualization/2022/08/announcing-dpu-based-acceleration-for-nsx.html/">VMware launched DPU-based acceleration for VMware NSX</a>, marketing-focused websites frantically started discussing the benefits of DPUs. Although I&rsquo;ve been writing about SmartNICs and DPUs for years, it&rsquo;s time for another closer look at the emperor&rsquo;s clothes.</p>
<h3 id="what-is-a-dpu">What Is a DPU</h3>
<p>DPU (Data Processing Unit) is a fancier name for a network adapter formerly known as SmartNIC &ndash; a server repackaged into an interface card form factor. We had them for decades (anyone remembers iSCSI offload adapters?)</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/12/are-dpu-any-good/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="virtualization" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ICMP Redirects and Suboptimal Routing]]></title>
    <link href="https://blog.ipspace.net/2022/11/what-causes-icmp-redirects/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/what-causes-icmp-redirects/</id>
    <published>2022-11-30T07:25:00+00:00</published>
    <updated>2022-12-01T16:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, I wrote a blog post <a href="/2022/02/nexus-icmp-redirects/">explaining why we should (mostly) disable ICMP redirects</a>, triggering a series of comments discussing the root cause of ICMP redirects. A few of those blamed static routes, including:</p>
<blockquote>
<p>Put another way, the presence or absence of ICMP Redirects is a red herring, usually pointing to architectural/design issues instead. In this example, using vPC Peer Gateway or, better yet, running a minimal IGP instead of relying on static routes eliminates ICMP Redirects from both the problem and solution spaces simultaneously.</p>
</blockquote>
<p>Unfortunately, that&rsquo;s not the case. You can get suboptimal routing that sometimes triggers ICMP redirects in well-designed networks running more than one routing protocol.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/what-causes-icmp-redirects/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Azure Networking Update Is Completed]]></title>
    <link href="https://blog.ipspace.net/2022/11/azure-update-complete/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/azure-update-complete/</id>
    <published>2022-11-29T08:04:00+00:00</published>
    <updated>2022-11-29T08:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I planned to write a few interesting blog posts last week, but then got sucked into updating Azure Networking webinar. At least I got that completed 😊; the webinar materials now include these new Azure services:</p>
<ul>
<li><a href="https://my.ipspace.net/bin/list?id=AzureNet#FIREWALL">Azure Firewall</a></li>
<li><a href="https://my.ipspace.net/bin/get/AzureNet/5.8%20-%20Azure%20Private%20Link.mp4?doccode=AzureNet">Azure Private Link</a></li>
<li><a href="https://my.ipspace.net/bin/get/AzureNet/LB1.1%20-%20Azure%20Load%20Balancing%20Functionality.mp4?doccode=AzureNet">Azure Gateway Load Balancer</a></li>
</ul>
<p>I also added descriptions of numerous new features:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/azure-update-complete/'>Read more &hellip;</a></div>]]></content>
    <category term="Azure" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.4.1: Cisco ASAv]]></title>
    <link href="https://blog.ipspace.net/2022/11/netlab-release-1-4-1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/netlab-release-1-4-1/</id>
    <published>2022-11-28T07:12:00+00:00</published>
    <updated>2022-11-28T07:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The star of the <a href="https://netlab.tools/release/1.4/"><em>netlab</em> release 1.4.1</a> is <a href="https://netlab.tools/platforms/">Cisco ASAv support</a>: IPv4 and IPv6 addressing, IS-IS and BGP, and libvirt box building instructions.</p>
<p>Other new features include:</p>
<ul>
<li><a href="https://netlab.tools/module/gateway/">VRRP</a> on VyOS</li>
<li><a href="https://netlab.tools/module/gateway/">Anycast gateway and VRRP</a> on Dell OS10 (with a <a href="https://netlab.tools/caveats/#dell-os10">bunch of caveats</a>)</li>
<li>Unnumbered OSPF interfaces on VyOS</li>
<li>Support for all <a href="https://netlab.tools/module/evpn/#evpn-bundle-services">EVPN bundle services</a></li>
<li>FRR version 8.4.0</li>
</ul>
<p>Upgrading is as easy as ever: execute <code>pip3 install --upgrade networklab</code>.</p>
<p>New to <em>netlab</em>? Start with the <a href="https://netlab.tools/tutorials/">Getting Started document</a> and the <a href="https://netlab.tools/install/">installation guide</a>.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Congestion Control Algorithms Are Not Fair]]></title>
    <link href="https://blog.ipspace.net/2022/11/worth-reading-congestion-control-not-fair/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/worth-reading-congestion-control-not-fair/</id>
    <published>2022-11-27T07:00:00+00:00</published>
    <updated>2022-11-27T07:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Creating a mathematical model of queuing in a distributed system is hard (<a href="https://www.ipspace.net/Queuing">Queuing Theory</a> was one of the most challenging ipSpace.net webinars so far), and so  instead of solutions based on control theory and mathematical models we often get what seems to be <em>promising stuff</em>.</p>
<p>Things that look <em>intuitively promising</em> aren&rsquo;t always <a href="https://www.explainxkcd.com/wiki/index.php/793:_Physicists">what we expect them to be</a>, at least according to an MIT group that
<a href="https://blog.apnic.net/2022/11/23/congestion-control-algorithms-are-not-fair/">analyzed delay-bounding TCP congestion control algorithms (CCA)</a> and found that most of them result in unfair distribution of bandwidth across parallel flows in scenarios that diverge from <a href="https://en.wikipedia.org/wiki/Spherical_cow">spherical cow in vacuum</a>. Even worse, they claim that:</p>
<blockquote>
<p>[&hellip;] Our paper provides a detailed model and rigorous proof that shows how all delay-bounding, delay-convergent CCAs must suffer from such problems.</p>
</blockquote>
<p>It seems QoS will remain <a href="https://archive.psg.com/051000.sigcomm-ivtf.pdf">spaghetti-throwing black magic</a> for a bit longer&hellip;</p>
]]></content>
    <category term="QoS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Troubleshooting EVPN Control Plane]]></title>
    <link href="https://blog.ipspace.net/2022/11/worth-reading-troubleshooting-evpn-arista-eos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/worth-reading-troubleshooting-evpn-arista-eos/</id>
    <published>2022-11-26T08:47:00+00:00</published>
    <updated>2022-11-26T08:47:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When trying to decide <a href="/2022/09/mlag-bridging-evpn/">whether to use EVPN for your next data center fabric</a>, you might want to consider how easy it is to configure and troubleshoot.</p>
<p>You&rsquo;ll find a few configuration hints in the <a href="https://my.ipspace.net/bin/list?id=EVPN#MULTIVENDOR">Multivendor Data Center EVPN</a> part of the <a href="https://www.ipspace.net/EVPN_Technical_Deep_Dive">EVPN Technical Deep Dive</a> webinar. For the troubleshooting part, check out the phenomenal <a href="https://datacenteroverlords.com/2022/11/18/troubleshooting-evpn-with-arista-eos-control-plane-edition/">Troubleshooting EVPN with Arista EOS</a> article by <a href="https://www.linkedin.com/in/tony-bourke-a3232b1/">Tony Bourke</a>.</p>
]]></content>
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Cloud Infrastructure-as-Code]]></title>
    <link href="https://blog.ipspace.net/2022/11/video-cloud-infrastructure-as-code/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/video-cloud-infrastructure-as-code/</id>
    <published>2022-11-25T07:55:00+00:00</published>
    <updated>2022-11-25T07:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>With AWS re:Invent 2022 being just a few days away, it&rsquo;s time for another cloudy Friday video: <a href="https://my.ipspace.net/bin/get/Cloud101/6.1%20-%20Case%20Study%20-%20Infrastructure-as-Code.mp4?doccode=Cloud101">using infrastructure-as-code principles to provision public cloud resources</a> by <a href="https://www.ipspace.net/Author:Matthias_Luft">Matthias Luft</a> (part of <a href="https://www.ipspace.net/Introduction_to_Cloud_Computing">Introduction to Cloud Computing</a> webinar).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Cloud101/6.1%20-%20Case%20Study%20-%20Infrastructure-as-Code.mp4?doccode=Cloud101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch this video.
</div>
]]></content>
    <category term="video" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Azure Networking Update (Phase 1)]]></title>
    <link href="https://blog.ipspace.net/2022/11/azure-update-2022-1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/azure-update-2022-1/</id>
    <published>2022-11-24T08:26:00+00:00</published>
    <updated>2022-11-24T08:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week I completed the first part of the annual <a href="https://www.ipspace.net/Microsoft_Azure_Networking">Azure Networking</a> update. The <em><a href="https://my.ipspace.net/bin/list?id=AzureNet#FIREWALL">Azure Firewall</a></em> section is already online; hope you&rsquo;ll find it useful. I already have the materials for the <em>Private Link</em> and <em>Gateway Load Balancer</em> services, but haven&rsquo;t decided whether to schedule another live session to cover them, or just create a short video.</p>
<p>Then there are a half-dozen smaller things I found while processing a year worth of Azure networking News. You&rsquo;ll find them (and links to documentation) in <a href="https://my.ipspace.net/bin/get/AzureNet/Azure-Update.md?doccode=AzureNet">New Azure Services and Features</a> document.</p>
]]></content>
    <category term="Azure" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Integrated Routing and Bridging (IRB) Design Models]]></title>
    <link href="https://blog.ipspace.net/2022/11/irb-design-models/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/irb-design-models/</id>
    <published>2022-11-23T07:58:00+00:00</published>
    <updated>2022-11-23T07:58:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Imagine you built a layer-2 fabric with tons of VLANs stretched all over the place. Now the users want to exchange traffic between those VLANs, and the obvious question is: which devices should do layer-2 forwarding (bridging) and which ones should do layer-3 forwarding (routing)?</p>
<p>There are four typical designs you can use to solve that challenge:</p>
<ul>
<li>Exchange traffic between VLANs outside of the fabric (edge routing)</li>
<li>Route on core switches (centralized routing)</li>
<li>Route on ingress (asymmetric IRB)</li>
<li>Route on ingress and egress (symmetric IRB)</li>
</ul>
<p>This blog post is an overview of the design models; we&rsquo;ll cover each design in a separate blog post.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/irb-design-models/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="fabric" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Automation: a Service Provider Perspective]]></title>
    <link href="https://blog.ipspace.net/2022/11/automation-service-provider/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/automation-service-provider/</id>
    <published>2022-11-22T07:59:00+00:00</published>
    <updated>2022-11-22T07:59:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="/2022/10/network-automation-considered-harmful/#1458">Antti Ristimäki left an interesting comment</a> on <a href="/2022/10/network-automation-considered-harmful/">Network Automation Considered Harmful</a> blog post detailing why it&rsquo;s suboptimal to run manually-configured modern service provider network.</em></p>
<hr>
<p>I really don&rsquo;t see how a network any larger and more complex than a small and simple enterprise or campus network can be developed and engineered in a consistent manner without full automation. At least routing intensive networks might have very complex configurations related to e.g. routing policies and it would be next to impossible to configure them manually, at least without errors and in a consistent way.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/automation-service-provider/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: IRB with Anycast Gateways]]></title>
    <link href="https://blog.ipspace.net/2022/11/netlab-anycast-gateway/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/netlab-anycast-gateway/</id>
    <published>2022-11-21T06:18:00+00:00</published>
    <updated>2022-11-21T06:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/2022/11/netlab-release-1-4-0/">netlab release 1.4</a> added support for static anycast gateways and VRRP. Today we&rsquo;ll use that functionality to add anycast gateways to the <a href="/2022/06/netsim-vlan-trunk/">VLAN trunk lab</a>:</p>

<figure><img src="/2022/06/vlan-trunk.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure>
<p>We&rsquo;ll start with the <a href="https://github.com/ipspace/netlab-examples/blob/master/VLAN/vlan-trunk/topology.yml">VLAN trunk lab topology</a> and make the following changes:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/netlab-anycast-gateway/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Resolverless DNS]]></title>
    <link href="https://blog.ipspace.net/2022/11/worth-reading-resolverless-dns/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/worth-reading-resolverless-dns/</id>
    <published>2022-11-20T08:49:00+00:00</published>
    <updated>2022-11-20T08:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Geoff Huston published a lengthy article (as always)
<a href="https://www.potaroo.net/ispcol/2022-10/oarc39.html">describing talks from recent OARC meeting</a>, including resolver-less DNS and DNSSEC deployment risks.</p>
<p>Definitely worth reading if you&rsquo;re at least vaguely interested in the technology that supposedly causes all network-related outages (unless it&rsquo;s BGP, of course)</p>
]]></content>
    <category term="DNS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Another Hugo-Based Blog]]></title>
    <link href="https://blog.ipspace.net/2022/11/worth-reading-another-hugo-based-blog/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/worth-reading-another-hugo-based-blog/</id>
    <published>2022-11-19T08:41:00+00:00</published>
    <updated>2022-11-19T08:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/wollmannbruno/">Bruno Wollmann</a> migrated his blog post to Hugo/GitHub/CloudFlare  (the exact toolchain I&rsquo;m using for one of my personal web sites) and <a href="https://brunowollmann.com/2022/11/this-site-now-cooked-by-hugo/">described his choices and improved user- and author experience</a>.</p>
<p>As I keep telling you, always make sure you own your content. There&rsquo;s absolutely no reason to publish stuff you spent hours researching and creating on legacy platforms like WordPress, third-party walled gardens like LinkedIn, or &ldquo;free services&rdquo; obsessed with gathering visitors&rsquo; personal data like Medium.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Exposing Kubernetes Services to External Clients]]></title>
    <link href="https://blog.ipspace.net/2022/11/video-exposing-kubernetes-services/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/video-exposing-kubernetes-services/</id>
    <published>2022-11-18T06:49:00+00:00</published>
    <updated>2022-11-18T06:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After a brief <a href="https://my.ipspace.net/bin/get/Kubernetes/1.8%20-%20Kubernetes%20Service%20Types.mp4?doccode=Kubernetes">introduction of Kubernetes service</a> and an <a href="https://my.ipspace.net/bin/get/Kubernetes/1.8%20-%20Kubernetes%20Service%20Types.mp4?doccode=Kubernetes">overview of services types</a>, <a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> added the last missing bit: how do you <a href="https://my.ipspace.net/bin/get/Kubernetes/1.9%20-%20Exposing%20Services%20to%20External%20Clients.mp4?doccode=Kubernetes">expose Kubernetes services to external clients</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/1.9%20-%20Exposing%20Services%20to%20External%20Clients.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multihoming Cannot Be Solved within a Network]]></title>
    <link href="https://blog.ipspace.net/2022/11/multihoming-within-network/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/multihoming-within-network/</id>
    <published>2022-11-17T06:51:00+00:00</published>
    <updated>2022-11-17T06:51:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Henk made an <a href="/2022/11/worth-reading-routing-never-solved-problem/#1487">interesting comment</a> that finally triggered me to organize my thoughts about network-level host multihoming<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>:</p>
<blockquote>
<p>The problems I see with routing are: [hard stuff], <strong>host multihoming</strong>, [even more hard stuff]. To solve some of those, we should have true identifier/locator separation. Not an after-thought like LISP, but something built into the layer-3 addressing architecture.</p>
</blockquote>
<p>Proponents of various clean-slate (RINA) and pimp-my-Internet (LISP) approaches are quick to point out how their solution solves multihoming. I might be missing something, but it seems like that problem cannot be solved within the network.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/multihoming-within-network/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
    <category term="LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP in ipSpace.net Design Clinic]]></title>
    <link href="https://blog.ipspace.net/2022/11/design-clinic-bgp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/design-clinic-bgp/</id>
    <published>2022-11-16T06:35:00+00:00</published>
    <updated>2022-11-16T06:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="https://designclinic.ipspace.net/">ipSpace.net Design Clinic</a> has been running for a <a href="/2021/09/design-clinic/">bit over than a year</a>. We covered tons of interesting technologies and design challenges, resulting in over 13 hours of content (so far), including several BGP-related discussions:</p>
<ul>
<li><a href="https://designclinic.ipspace.net/topic/bgp-route-server/">BGP route servers</a></li>
<li><a href="https://designclinic.ipspace.net/topic/redundant-internet-access/">Redundant BGP-Based Internet Access</a></li>
<li><a href="https://designclinic.ipspace.net/topic/securing-customer-bgp-setup/">Secure BGP Configuration on Customer Routers</a></li>
<li><a href="https://designclinic.ipspace.net/topic/enterprise-wan-routing/">Enterprise WAN Routing Design</a></li>
</ul>
<p>All the Design Clinic discussions are available with <a href="https://www.ipspace.net/Subscription/">Standard or Expert ipSpace.net Subscription</a>, and anyone can <a href="https://designclinic.ipspace.net/pages/submit/">submit new design/discussion challenges</a>.</p>
]]></content>
    <category term="BGP" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Unnumbered Duct Tape]]></title>
    <link href="https://blog.ipspace.net/2022/11/bgp-unnumbered-duct-tape/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/bgp-unnumbered-duct-tape/</id>
    <published>2022-11-15T07:18:00+00:00</published>
    <updated>2022-11-15T07:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Every time I mention unnumbered BGP sessions in a webinar, someone inevitably asks &ldquo;<em>and how exactly does that work?</em>&rdquo; I always replied &ldquo;<em>gee, that&rsquo;s a blog post I should write one of these days,</em>&rdquo; and although some readers might find it long overdue, here it is ;)</p>
<p>We&rsquo;ll work with a simple two-router lab with two parallel unnumbered links between them. Both devices will be running Cumulus VX 4.4.0 (FRR 8.4.0 container generates almost identical printouts).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/bgp-unnumbered-duct-tape/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab VXLAN Router-on-a-Stick Example]]></title>
    <link href="https://blog.ipspace.net/2022/11/netlab-vxlan-router-stick/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/netlab-vxlan-router-stick/</id>
    <published>2022-11-14T07:18:00+00:00</published>
    <updated>2022-11-14T07:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In October 2022 I described how you could <a href="/2022/10/netlab-router-stick/">build a VLAN router-on-a-stick topology with <em>netlab</em></a>. With the new <a href="/2022/11/netlab-release-1-4-0/">features added in netlab release 1.4</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> we can do the same for VXLAN-enabled VLANs &ndash; we&rsquo;ll build a lab where a router-on-a-stick will do VXLAN-to-VXLAN routing.</p>

<figure><img src="/2022/11/netlab-vxlan-router-stick.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/netlab-vxlan-router-stick/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: History of Fiber Optics Cables]]></title>
    <link href="https://blog.ipspace.net/2022/11/worth-reading-history-fiber-optics-cable/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/worth-reading-history-fiber-optics-cable/</id>
    <published>2022-11-13T10:47:00+00:00</published>
    <updated>2022-11-13T10:47:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Geoff Huston published a fantastic <a href="https://www.potaroo.net/ispcol/2022-11/optics.html">history of fiber optics cables</a>, from the first (copper) transatlantic cable to 2.2Tbps coherent optics. Have fun!</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Routing Protocols Overview]]></title>
    <link href="https://blog.ipspace.net/2022/11/video-routing-protocols-overview/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/video-routing-protocols-overview/</id>
    <published>2022-11-11T07:43:00+00:00</published>
    <updated>2022-11-11T07:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After discussing <a href="https://my.ipspace.net/bin/list?id=Net101#ADDR">network addressing</a> and <a href="https://my.ipspace.net/bin/list?id=Net101#SWITCH">switching, routing, and bridging</a> in the <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> webinar, it was high time for a deep dive into routing protocols, starting (as always) with an <a href="https://my.ipspace.net/bin/get/Net101/RP1%20-%20Routing%20Protocols%20Overview.mp4?doccode=Net101">overview</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/RP1%20-%20Routing%20Protocols%20Overview.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="IP routing" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Route Reflectors in the Forwarding Path]]></title>
    <link href="https://blog.ipspace.net/2022/11/bgp-route-reflectors-forwarding-path/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/bgp-route-reflectors-forwarding-path/</id>
    <published>2022-11-10T07:31:00+00:00</published>
    <updated>2022-11-10T07:31:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bela Varkonyi left <a href="/2022/10/bgp-route-reflector-next-hops/#1481">two intriguing comments</a> on my <em><a href="/2022/10/bgp-route-reflector-next-hops/">Leave BGP Next Hops Unchanged on Reflected Routes</a></em> blog post. Let&rsquo;s start with:</p>
<blockquote>
<p>The original RR design has a lot of limitations. For usual enterprise networks I always suggested to follow the topology with RRs (every interim node is an RR), since this would become the most robust configuration where a link failure would have the less impact.</p>
</blockquote>
<p>He&rsquo;s talking about the extreme case of hierarchical route reflectors, a concept I first encountered when designing a large service provider network. Here&rsquo;s a simplified conceptual diagram (lines between boxes are physical links as well as IBGP sessions between loopback interfaces):</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/bgp-route-reflectors-forwarding-path/'>Read more &hellip;</a></div>]]></content>
    <category term=" BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using EVPN/VXLAN with MLAG Clusters]]></title>
    <link href="https://blog.ipspace.net/2022/11/mlag-vxlan-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/mlag-vxlan-evpn/</id>
    <published>2022-11-09T07:34:00+00:00</published>
    <updated>2022-11-10T07:58:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>There&rsquo;s no better way to start this blog post than with a widespread myth: we don&rsquo;t need MLAG now that most vendors have implemented EVPN multihoming.</p>
<p><strong>TL&amp;DR</strong>: This myth is close to the <a href="https://en.wikipedia.org/wiki/Not_even_wrong">not even wrong</a> category.</p>
<p>As we discussed in the <a href="/2022/06/mlag-deep-dive-overview/">MLAG System Overview</a> blog post, every MLAG implementation needs at least three functional components:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/mlag-vxlan-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SRv6 as a Host-to-Host Overlay]]></title>
    <link href="https://blog.ipspace.net/2022/11/srv6-host-overlay/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/srv6-host-overlay/</id>
    <published>2022-11-08T07:38:00+00:00</published>
    <updated>2022-11-08T07:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>During the <a href="https://www.linkedin.com/posts/ivanpepelnjak_on-applicability-of-mpls-segment-routing-activity-6988028852761427968-0Qeq/">discussion</a> of the <a href="/2022/10/applicability-sr-mpls/">On Applicability of MPLS Segment Routing (SR-MPLS)</a> blog post on LinkedIn someone made an off-the-cuff remark that&hellip;</p>
<blockquote>
<p>SRv6 as an host2host overlay - in some cases not a bad idea</p>
</blockquote>
<p>It&rsquo;s probably just my myopic view, but I fail to see the above idea as anything else but another tiny chapter in the &ldquo;<em>Solution in Search of a Problem</em>&rdquo; SRv6 saga<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/srv6-host-overlay/'>Read more &hellip;</a></div>]]></content>
    <category term="segment routing" />
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.4.0: EVPN Asymmetric IRB, Anycast Gateways, VRRP]]></title>
    <link href="https://blog.ipspace.net/2022/11/netlab-release-1-4-0/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/netlab-release-1-4-0/</id>
    <published>2022-11-07T07:41:00+00:00</published>
    <updated>2022-11-07T07:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The big three features of the <a href="https://netlab.tools/release/1.4/"><em>netlab</em> release 1.4.0</a> are:</p>
<ul>
<li><a href="https://netlab.tools/module/evpn/#asymmetric-irb">EVPN asymmetric IRB</a> on Arista EOS, Cumulus Linux, Dell OS10, Nokia SR Linux, Nokia SR OS and VyOS</li>
<li><a href="https://netlab.tools/module/gateway/#anycast-gateway">Anycast gateway</a> on Arista EOS, Cumulus Linux, Nokia SR OS and Nokia SR Linux</li>
<li><a href="https://netlab.tools/module/gateway/#virtual-router-redundancy-protocol-vrrp">VRRP</a> on Arista EOS, Cisco IOSv/CSR, Cisco Nexus OS, Cumulus Linux and Nokia SR OS</li>
</ul>
<p>We also added tons of new functionality, including:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/netlab-release-1-4-0/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Must Read: Routing Will Never Be a Solved Problem]]></title>
    <link href="https://blog.ipspace.net/2022/11/worth-reading-routing-never-solved-problem/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/worth-reading-routing-never-solved-problem/</id>
    <published>2022-11-05T07:40:00+00:00</published>
    <updated>2022-11-05T07:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Mark Seery wrote a fantastic must-read article explaining why
<a href="https://internetdynamics.substack.com/p/routing-will-never-be-a-solved-problem">routing will never be a solved problem</a>.</p>
<p>You might want to enjoy it as a relaxing antidote after a painful exposure to SD-WAN (or SD-something-else) brainwashing.</p>
]]></content>
    <category term="IP routing" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: EVPN Multihoming Deep Dive]]></title>
    <link href="https://blog.ipspace.net/2022/11/video-evpn-multihoming-deep-dive/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/video-evpn-multihoming-deep-dive/</id>
    <published>2022-11-04T07:02:00+00:00</published>
    <updated>2022-11-04T07:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After starting the <a href="https://my.ipspace.net/bin/list?id=EVPN#MH">EVPN multihoming versus MLAG</a> presentation (part of <a href="https://www.ipspace.net/EVPN_Technical_Deep_Dive">EVPN Deep Dive</a> webinar) with the <a href="/2022/10/video-evpn-multihoming-overview/">taxonomy of EVPN-based multihoming</a>, Lukas Krattiger did a <a href="https://my.ipspace.net/bin/get/EVPN/M2%20-%20EVPN%20Multihoming%20Deep%20Dive.mp4?doccode=EVPN">deep dive into its intricacies</a> including:</p>
<ul>
<li>EVPN route types needed to support multihoming</li>
<li>A typical sequence of EVPN updates during multihoming setup</li>
<li>MAC multipathing, MAC aliasing, split horizon and mass withdrawals</li>
<li>Designated forwarder election</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/EVPN/M2%20-%20EVPN%20Multihoming%20Deep%20Dive.mp4?doccode=EVPN">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video. To watch the whole webinar, buy <a href="https://www.ipspace.net/Subscription/">Standard or Expert ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="video" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Rant: Cloudy Snowflakes]]></title>
    <link href="https://blog.ipspace.net/2022/11/public-cloud-snowflakes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/public-cloud-snowflakes/</id>
    <published>2022-11-03T07:36:00+00:00</published>
    <updated>2022-11-03T07:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I could spend days writing riffs on some of the more creative (in whatever dimension) comments left on my blog post or LinkedIn<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Here&rsquo;s one about uselessness of network automation in cloud infrastructure (take that, AWS!):</p>
<blockquote>
<p>If the problem is well known you can apply rules to it (automation). The problem with networking is that it results in a huge number of cases that are not known in advance. And I don&rsquo;t mean only the stuff you add/remove to fix operational problems. A friend in one of the biggest private clouds was saying that more than 50% of transport services are customized (a static route here, a PBR there etc) or require customization during their lifecycle (e.g. add/remove a knob). Telcos are &ldquo;worse&rdquo; and for good reasons.</p>
</blockquote>
<p>Yeah, I&rsquo;ve seen such environments. I had discussions with a wide plethora of people building private and public (telco) clouds, and summarized the few things I learned (not many of them good) in <em><a href="https://my.ipspace.net/bin/list?id=NetBiz#BF">Address the Business Challenges First</a></em> part of the <em><a href="https://www.ipspace.net/Business_Aspects_of_Networking_Technologies">Business Aspects of Networking Technologies</a></em> webinar.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/public-cloud-snowflakes/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Scalability Aspects of SR-MPLS]]></title>
    <link href="https://blog.ipspace.net/2022/11/sr-mpls-scalability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/11/sr-mpls-scalability/</id>
    <published>2022-11-02T07:37:00+00:00</published>
    <updated>2022-11-03T09:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Henk Smit left a <a href="/2022/09/greenfield-sr-mpls-srv6/#1397">wonderful comment discussing various scalability aspects of SR-MPLS</a>. Let&rsquo;s go through the points he made:</p>
<blockquote>
<p>When you have a thousand routers in your networks, you can put all of them in one (IS-IS) area. Maybe with 2k routers as well. But when you have several thousand routers, you want to use areas, if only to limit the blast-radius.</p>
</blockquote>
<p>Absolutely agree, and as RFC 3439 explained in more eloquent terms than I ever could:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/11/sr-mpls-scalability/'>Read more &hellip;</a></div>]]></content>
    <category term="segment routing" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: NetTowel]]></title>
    <link href="https://blog.ipspace.net/2022/10/worth-reading-nettowel/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/worth-reading-nettowel/</id>
    <published>2022-10-29T08:20:00+00:00</published>
    <updated>2022-10-29T08:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few months ago, Urs Baumann created <a href="https://github.com/InfrastructureAsCode-ch/nettowel">NetTowel</a>, a very nice CLI wrapper around several popular libraries, including Jinja2, TTP, NetMiko and netaddr. Although it seems he got busy with other things in recent months, and the development stalled a bit, the tool is definitely worth exploring.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Could I Use netlab instead of GNS3?]]></title>
    <link href="https://blog.ipspace.net/2022/10/replacing-gns3-netlab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/replacing-gns3-netlab/</id>
    <published>2022-10-28T07:26:00+00:00</published>
    <updated>2022-10-28T07:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;m often getting questions like <em>&ldquo;I&rsquo;m using GNS3. Could I replace it with <a href="https://netlab.tools/">netlab</a>?&rdquo;</em></p>
<p><strong>TL&amp;DR</strong>: No.</p>
<p>You need a set of functions to build a network lab:</p>
<ul>
<li>Virtualization environment (netlab supports VirtualBox, libvirt, Docker, and Podman)</li>
<li>An orchestration tool/system that will deploy network device images in such an environment (netlab supports Vagrant and containerlab)</li>
<li>A tool that will build orchestration system configuration (netlab core functionality)</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/replacing-gns3-netlab/'>Read more &hellip;</a></div>]]></content>
    <category term="video" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Leave BGP Next Hops Unchanged on Reflected Routes]]></title>
    <link href="https://blog.ipspace.net/2022/10/bgp-route-reflector-next-hops/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/bgp-route-reflector-next-hops/</id>
    <published>2022-10-27T06:38:00+00:00</published>
    <updated>2022-10-27T06:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s the last question I&rsquo;ll answer from that <a href="https://twitter.com/danieldibswe/status/1579674196833366017">long list Daniel Dib posted weeks ago</a> (<a href="/2022/10/ospf-external-routes/">answer to Q1</a>, <a href="/2022/10/ibgp-full-mesh/">answer to Q2</a>).</p>
<blockquote>
<p>I am trying to understand what made the BGP designers decide that RR should not change the BGP Next Hop for IBGP-learned routes.</p>
</blockquote>
<div  class="note">
If anyone wants to have the answer to the very last question in Daniel&rsquo;s list, they&rsquo;re free to search for &ldquo;BGP Next Hops&rdquo; on my blog and start exploring. Studying OSPF Forwarding Address might provide additional clues.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/bgp-route-reflector-next-hops/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[History of Ethernet Encapsulations]]></title>
    <link href="https://blog.ipspace.net/2022/10/ethernet-encapsulations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/ethernet-encapsulations/</id>
    <published>2022-10-26T07:43:00+00:00</published>
    <updated>2022-10-26T07:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Henk Smit <a href="/2022/09/from-bits-to-applications/#1356">conscientiously pointed out a major omission</a> I made when summarizing <a href="/2022/09/from-bits-to-applications/">Peter Paluch&rsquo;s excellent description</a> of how bits get parsed in network headers:</p>
<blockquote>
<p>EtherType? What do you mean EtherType? There are/were 4 types of Ethernet encapsulation. Only one of them (ARPA encapsulation) has an EtherType. The other 3 encapsulations do not have an EtherType field.</p>
</blockquote>
<p>What is he talking about? Time for another history lesson<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/ethernet-encapsulations/'>Read more &hellip;</a></div>]]></content>
    <category term="LAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Automation Considered Harmful]]></title>
    <link href="https://blog.ipspace.net/2022/10/network-automation-considered-harmful/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/network-automation-considered-harmful/</id>
    <published>2022-10-25T06:22:00+00:00</published>
    <updated>2022-10-25T06:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Some of the blog comments never cease to amaze me. Here&rsquo;s one <a href="/2022/10/repost-whats-wrong-network-automation/#1421">questioning the value of network automation</a>:</p>
<blockquote>
<p>I think there is a more fundamental reason than the (in my opinion simplistic) lack of skills argument. As someone mentioned on twitter</p>
<p>&ldquo;Rules make it harder to enact change. Automation is essentially a set of rules.&rdquo;</p>
<p>We underestimated the fact that infrastructure is a value differentiator for many and that customization and rapid change don&rsquo;t go hand in hand with automation.</p>
</blockquote>
<p>Whenever someone starts using MBA-speak like <em>value differentiator</em> in a technical arguments, I get an acute allergic reaction, but maybe he&rsquo;s right.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/network-automation-considered-harmful/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Use VRFs for VXLAN-Enabled VLANs]]></title>
    <link href="https://blog.ipspace.net/2022/10/use-vrf-for-vxlan-vlans/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/use-vrf-for-vxlan-vlans/</id>
    <published>2022-10-24T06:43:00+00:00</published>
    <updated>2022-10-24T06:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I started one of my VXLAN tests with a simple setup &ndash; two switches connecting two hosts over a VXLAN-enabled (gray tunnel) <em>red</em> VLAN. The switches are connected with a single <em>blue</em> link.</p>

<figure><img src="/2022/10/vxlan-ospf.png"
   alt="Test lab"/><figcaption>
    <p>Test lab</p>
  </figcaption>
</figure>
<p>I configured VLANs and VXLANs, and started OSPF on S1 and S2 to get connectivity between their loopback interfaces. Here&rsquo;s the configuration of one of the Arista cEOS switches:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/use-vrf-for-vxlan-vlans/'>Read more &hellip;</a></div>]]></content>
    <category term="VXLAN" />
    <category term="bridging" />
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: EVPN Multihoming Taxonomy and Overview]]></title>
    <link href="https://blog.ipspace.net/2022/10/video-evpn-multihoming-overview/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/video-evpn-multihoming-overview/</id>
    <published>2022-10-21T09:02:00+00:00</published>
    <updated>2022-10-21T09:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I promised you a blog post explaining the intricacies of implementing MLAG with EVPN, but (as is often the case) it&rsquo;s taking longer than expected. In the meantime, enjoy the <a href="https://my.ipspace.net/bin/get/EVPN/M1%20-%20Taxonomy%20and%20Overview.mp4?doccode=EVPN">EVPN Multihoming Taxonomy and Overview</a> video from Lukas Krattiger&rsquo;s <a href="https://my.ipspace.net/bin/list?id=EVPN#MH">EVPN Multihoming versus MLAG</a> presentation (part of <a href="https://www.ipspace.net/EVPN_Technical_Deep_Dive">EVPN Deep Dive</a> webinar).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/EVPN/M1%20-%20Taxonomy%20and%20Overview.mp4?doccode=EVPN">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video. To watch the whole webinar, buy <a href="https://www.ipspace.net/Subscription/">Standard or Expert ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="video" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New Webinar: Internet Routing Security]]></title>
    <link href="https://blog.ipspace.net/2022/10/bgp-internet-routing-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/bgp-internet-routing-security/</id>
    <published>2022-10-20T07:32:00+00:00</published>
    <updated>2022-10-20T07:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;m always in a bit of a bind when I get an invitation to speak at a security conference (after all, I know just enough about security to make a fool of myself), but when the organizers of the <a href="https://deep-conference.com/">DEEP Conference</a> invited me to talk about Internet routing security I simply couldn&rsquo;t resist &ndash; the topic is dear and near to my heart, and I planned to do a  related webinar for a very long time.</p>
<p>Even better, that conference would have been my first on-site presentation since the COVID-19 craze started, and I love going to Dalmatia (where the conference is taking place). Alas, it was not meant to be &ndash; I came down with high fever just days before the conference and had to cancel the talk.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/bgp-internet-routing-security/'>Read more &hellip;</a></div>]]></content>
    <category term="Internet" />
    <category term="BGP" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Do We Need IBGP Full Mesh?]]></title>
    <link href="https://blog.ipspace.net/2022/10/ibgp-full-mesh/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/ibgp-full-mesh/</id>
    <published>2022-10-19T07:45:00+00:00</published>
    <updated>2022-10-19T07:45:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another question from the <a href="https://twitter.com/danieldibswe/status/1579674196833366017">excellent list posted by Daniel Dib on Twitter</a>:</p>
<blockquote>
<p>BGP Split Horizon rule says &ldquo;<em>Don&rsquo;t advertise IBGP-learned routes to another IBGP peer.</em>&rdquo; The purpose is to avoid loops because it&rsquo;s assumed that all of IBGP peers will be on full mesh connectivity. What is the reason the BGP protocol designers made this assumption?</p>
</blockquote>
<p>Time for another history lesson. BGP was designed in late 1980s (<a href="https://datatracker.ietf.org/doc/html/rfc1105">RFC 1105</a> was published in 1989) as a replacement for the original Exterior Gateway Protocol (EGP). In those days, the original hub-and-spoke Internet topology with <a href="https://en.wikipedia.org/wiki/National_Science_Foundation_Network">NSFNET core</a> was gradually replaced with a mesh of interconnections, and EGP couldn&rsquo;t cope with that.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/ibgp-full-mesh/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[On Applicability of MPLS Segment Routing (SR-MPLS)]]></title>
    <link href="https://blog.ipspace.net/2022/10/applicability-sr-mpls/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/applicability-sr-mpls/</id>
    <published>2022-10-18T06:28:00+00:00</published>
    <updated>2022-10-20T13:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Whenever I compare MPLS-based Segment Routing (SR-MPLS) with it&rsquo;s distant IPv6-based cousin (SRv6), someone invariably mentions the specter of large label stacks that some hardware cannot handle, for example:</p>
<blockquote>
<p>Do you think vendors current supported label max stack might be an issue when trying to route a packet from source using Adj-SIDs on relatively big sized (and meshed) cores? Many seem to be proposing to use SRv6 to overcome this.</p>
</blockquote>
<p>I&rsquo;d dare to guess that more hardware supports MPLS with decent label stacks than SRv6, and if I&rsquo;ve learned anything from my <a href="/2015/11/fibbing-ospf-based-traffic-engineering/">chats with Laurent Vanbever</a>, it&rsquo;s that it sometimes takes surprisingly little to push the traffic into the right direction. You do need a controller that can figure out what that little push is and where to apply it though.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/applicability-sr-mpls/'>Read more &hellip;</a></div>]]></content>
    <category term="segment routing" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Router-on-a-Stick Example]]></title>
    <link href="https://blog.ipspace.net/2022/10/netlab-router-stick/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/netlab-router-stick/</id>
    <published>2022-10-17T06:12:00+00:00</published>
    <updated>2022-10-17T06:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In early June 2022 I described <a href="/2022/06/netsim-vlan-trunk/">a netlab topology using VLAN trunks</a> in <em>netlab</em>. That topology provided pure bridging service for two IP subnets. Now let&rsquo;s go a step further and add a router-on-a-stick:</p>
<ul>
<li>S1 and S2 are layer-2 switches (no IP addresses on <em>red</em> or <em>blue</em> VLANs).</li>
<li>ROS is a router-on-a-stick routing between <em>red</em> and <em>blue</em> VLANs.</li>
<li>Hosts on <em>red</em> and <em>blue</em> VLANs should be able to ping each other.</li>
</ul>

<figure><img src="/2022/10/netlab-router-stick.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/netlab-router-stick/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.3.3: Bug Fixes]]></title>
    <link href="https://blog.ipspace.net/2022/10/netlab-1-3-3/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/netlab-1-3-3/</id>
    <published>2022-10-16T06:22:00+00:00</published>
    <updated>2022-10-16T06:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Just FYI: I pushed out <a href="https://netlab.tools/"><em>netlab</em></a> release 1.3.3 yesterday. It&rsquo;s a purely bug fix release, new functionality and a few breaking changes are coming in release 1.4 in a few weeks.</p>
<p><a href="https://netlab.tools/release/1.3/#bug-fixes-in-release-1-3-3">Some of the bugs we fixed</a> weren&rsquo;t exactly pleasant; if you&rsquo;re using release 1.3.2 you might want to upgrade with <code>pip3 install --upgrade networklab</code>.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN VLAN-Aware Bundle Service]]></title>
    <link href="https://blog.ipspace.net/2022/10/evpn-vlan-aware-bundle-service/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/evpn-vlan-aware-bundle-service/</id>
    <published>2022-10-13T06:06:00+00:00</published>
    <updated>2022-10-13T06:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <em><a href="/2022/10/evpn-mpls-bridging-forwarding-model/">EVPN/MPLS Bridging Forwarding Model</a></em> blog post I mentioned numerous services defined in <a href="https://datatracker.ietf.org/doc/html/rfc7432">RFC 7432</a>. That blog post focused on <a href="https://datatracker.ietf.org/doc/html/rfc7432#section-6.1">VLAN-Based Service Interface</a> that mirrors the <a href="https://datatracker.ietf.org/doc/html/rfc7209#section-7">Carrier Ethernet VLAN mode</a>.</p>
<p>RFC 7432 defines two other VLAN services that can be used to implement Carrier Ethernet services:</p>
<ul>
<li><a href="https://datatracker.ietf.org/doc/html/rfc7432#section-6.2.1">Port-based service</a> &ndash; whatever is received on the ingress port is sent to the egress port(s)</li>
<li><a href="https://datatracker.ietf.org/doc/html/rfc7432#section-6.2">VLAN bundle service</a> &ndash; multiple VLANs sharing the same bridging table, effectively emulating single outer VLAN in Q-in-Q bridging.</li>
</ul>
<p>And then there&rsquo;s the VLAN-Aware Bundle Service, where a bunch of VLANs <em>share the same MPLS pseudowires</em> while <em>having separate bridging tables</em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/evpn-vlan-aware-bundle-service/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="bridging" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OSPF External Routes (Type-5 LSA) Mysteries]]></title>
    <link href="https://blog.ipspace.net/2022/10/ospf-external-routes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/ospf-external-routes/</id>
    <published>2022-10-12T07:04:00+00:00</published>
    <updated>2022-10-12T07:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Daniel Dib <a href="https://twitter.com/danieldibswe/status/1579674196833366017">posted a number of excellent questions on Twitter</a>, including:</p>
<blockquote>
<p>While forwarding a received Type-5 LSA to other areas, why does the ABR not change the Advertising Router ID to it&rsquo;s own IP address? If ABR were able to change the Advertising Router ID in the Type-5 LSA, then there would be no need for Type-4 LSA which meant less OSPF overhead on the network.</p>
</blockquote>
<p><strong>TL&amp;DR:</strong> The current implementation of external routes in OSPF minimizes topology database size (memory utilization)</p>
<p>Before going to the details, try to imagine the environment in which OSPF was designed, and the problems it was solving.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/ospf-external-routes/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cumulus Linux NVUE: an Incomplete Data Model]]></title>
    <link href="https://blog.ipspace.net/2022/10/cumulus-linux-nvue/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/cumulus-linux-nvue/</id>
    <published>2022-10-11T06:11:00+00:00</published>
    <updated>2022-10-11T06:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago I described how Cumulus Linux tried to <del>put lipstick on a pig</del> <a href="/2022/09/linux-data-plane-configuration/">reduce the Linux data plane configuration pains</a> with <a href="/2022/09/cumulus-nclu/">Network Command Line Utility</a>. NCLU is a thin shim that takes CLI arguments, translates them into <em>FRR</em> or <em>ifupdown</em> configuration syntax, and updates the configuration files (similar to what Ansible is doing with <strong><em>something</em>_config</strong> modules).</p>
<p>Obviously that wasn&rsquo;t good enough. <a href="https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-44/System-Configuration/NVIDIA-User-Experience-NVUE/">Cumulus Linux 4.4 introduced NVIDIA User Experience</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> &ndash; a full-blown configuration engine with its own data model and REST API<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/cumulus-linux-nvue/'>Read more &hellip;</a></div>]]></content>
    <category term="Cumulus Linux" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.3.2: Mikrotik RouterOS 7, Additional EVPN Platforms]]></title>
    <link href="https://blog.ipspace.net/2022/10/netlab-1-3-2/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/netlab-1-3-2/</id>
    <published>2022-10-10T06:22:00+00:00</published>
    <updated>2022-10-10T06:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The star of the <a href="https://netlab.tools/release/1.3/"><em>netlab</em> release 1.3.2</a> is <a href="https://netlab.tools/platforms/">Mikrotik RouterOS version 7</a>. Stefano Sasso did a fantastic job adding support for VLANs, VRFs, OSPFv2, OSPFv3, BGP, MPLS, and MPLS/VPN, plus the libvirt <a href="https://netlab.tools/labs/routeros7/">box-building recipe</a>.</p>
<p>Jeroen van Bemmel contributed another major PR<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> adding VLANs, VRFs, VXLAN, EVPN, and OSPFv3 to Nokia SR OS.</p>
<p>Other platform improvements include:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/netlab-1-3-2/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: VXLAN Drops Large Packets]]></title>
    <link href="https://blog.ipspace.net/2022/10/worth-reading-vxlan-drops-fat-packets/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/worth-reading-vxlan-drops-fat-packets/</id>
    <published>2022-10-09T07:41:00+00:00</published>
    <updated>2022-10-09T07:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Ian Nightingale published an <a href="https://constantpinger.home.blog/2022/09/27/selective-packet-loss-over-vxlan-fat-packets-dropped/">interesting story of connectivity problems he had in a VXLAN-based campus network</a>. <strong>TL&amp;DR</strong>: it&rsquo;s always the MTU (unless it&rsquo;s DNS or BGP).</p>
<p>The really fun part: even though large L2 segments might have magical properties (according to vendor fluff), there&rsquo;s no host-to-network communication in transparent bridging, so there&rsquo;s absolutely no way that the ingress VTEP could tell the host that the packet is too big. In a layer-3 network you have at least a fighting chance&hellip;</p>
<p>For more details, watch the <em><a href="https://my.ipspace.net/bin/list?id=Net101#SWITCH">Switching, Routing and Bridging</a></em> part of <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> webinar (most of it available with <a href="https://www.ipspace.net/Subscription/Free">Free Subscription</a>).</p>
]]></content>
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Traffic Filtering in the Age of IPv6]]></title>
    <link href="https://blog.ipspace.net/2022/10/video-ipv6-traffic-filtering/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/video-ipv6-traffic-filtering/</id>
    <published>2022-10-07T06:25:00+00:00</published>
    <updated>2022-10-07T06:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Christopher_Werny">Christopher Werny</a> covered another interesting IPv6 security topic in the hands-on part of <a href="https://www.ipspace.net/IPv6_security">IPv6 security</a> webinar: <a href="https://my.ipspace.net/bin/get/IPv6Sec/E4.1%20-%20Traffic%20Filtering%20in%20the%20Age%20of%20IPv6.mp4?doccode=IPv6Sec">traffic filtering in the age of dual-stack and IPv6-only networks</a>, including filtering extension headers, filters on Internet uplinks, ICMPv6 filters, and address space filters.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/IPv6Sec/E4.1%20-%20Traffic%20Filtering%20in%20the%20Age%20of%20IPv6.mp4?doccode=IPv6Sec">Watch the video</a></div>
<div  class="info">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[More Arista EOS BGP Route Reflector Woes]]></title>
    <link href="https://blog.ipspace.net/2022/10/arista-route-reflector-woes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/arista-route-reflector-woes/</id>
    <published>2022-10-06T06:05:00+00:00</published>
    <updated>2022-11-03T16:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Most BGP implementations I&rsquo;ve worked with split the neighbor BGP configuration into two parts:</p>
<ul>
<li>Global configuration that creates the transport session</li>
<li>Address family configuration that activates the address family across a configured transport session and changes the parameters that affect BGP updates</li>
</ul>
<p>AS numbers, source interfaces, peer IPv4/IPv6 addresses, and passwords clearly belong to the global neighbor configuration.</p>
<div  class="info">
Starting with EOS release 4.29.0F, you can <a href="https://www.arista.com/en/support/toi/eos-4-29-0f/16340-next-hop-self-in-address-family-mode-for-ipv4-and-ipv6-unicast">configure the <strong>neighbor next-hop-self</strong> option within IPv4 and IPv6 address families</a>. Great job! Hopefully, we can consider this blog post a <a href="https://xkcd.com/979/">historical curiosity</a>.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/arista-route-reflector-woes/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN/MPLS Bridging Forwarding Model]]></title>
    <link href="https://blog.ipspace.net/2022/10/evpn-mpls-bridging-forwarding-model/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/evpn-mpls-bridging-forwarding-model/</id>
    <published>2022-10-05T06:29:00+00:00</published>
    <updated>2022-10-05T06:29:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Most networking engineers immediately think about VXLAN and data center switches when they hear about EVPN. While that&rsquo;s the most hyped use case, EVPN standardization started in 2012 as a layer-2 VPN solution on top of MPLS transport trying to merge the best of VPLS and MPLS/VPN worlds.</p>
<p>If you want to understand how any technology works, and what its quirks are, you have to know how it was designed to be used. In this blog post we&rsquo;ll start that journey exploring the basics of EVPN used in a <a href="https://github.com/ipspace/netlab-examples/tree/master/EVPN/mpls-bridging">simple MLPS network with three PE-routers</a>:</p>

<figure><img src="/2022/10/evpn-mpls-topology.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/evpn-mpls-bridging-forwarding-model/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: What's Wrong with Network Automation]]></title>
    <link href="https://blog.ipspace.net/2022/10/repost-whats-wrong-network-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/repost-whats-wrong-network-automation/</id>
    <published>2022-10-04T07:47:00+00:00</published>
    <updated>2022-10-04T07:47:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Responding to my <em><a href="/2022/09/infrastructure-as-code-sounds-scary/">Infrastructure as Code Sounds Scary</a></em> blog post, <a href="https://www.linkedin.com/in/anetworkartist/">Deepak Arora</a> posted an interesting (and unfortunately way too accurate) <a href="https://www.linkedin.com/posts/ivanpepelnjak_infrastructure-as-code-sounds-scary-ipspacenet-activity-6975503760752050176-x2b6/">list of challenges</a> you might encounter when trying to introduce network automation in an enterprise environment.</p>
<p>He graciously allowed me to repost his thoughts on my blog.</p>
<hr>
<p>Why don&rsquo;t we agree on that :</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/repost-whats-wrong-network-automation/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab EVPN/VXLAN Bridging Example]]></title>
    <link href="https://blog.ipspace.net/2022/10/netlab-evpn-vxlan-bridging/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/netlab-evpn-vxlan-bridging/</id>
    <published>2022-10-03T07:21:00+00:00</published>
    <updated>2022-10-03T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/2022/09/netlab-1-3/">netlab release 1.3</a> introduced support for <a href="https://netlab.tools/module/vxlan/">VXLAN transport with static ingress replication</a> and <a href="https://netlab.tools/module/evpn/">EVPN control plane</a>. Last week we <a href="/2022/09/netlab-vxlan-bridging/">replaced a VLAN trunk with VXLAN transport</a>, now we&rsquo;ll <a href="https://github.com/ipspace/netlab-examples/tree/master/EVPN/vxlan-bridging">replace static ingress replication with EVPN control plane</a>.</p>

<figure><img src="/2022/10/evpn-vxlan-bridging-topology.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/10/netlab-evpn-vxlan-bridging/'>Read more &hellip;</a></div>]]></content>
    <category term="VXLAN" />
    <category term="EVPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: QUIC Is Not a TCP Replacement]]></title>
    <link href="https://blog.ipspace.net/2022/10/worth-reading-quic-tcp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/worth-reading-quic-tcp/</id>
    <published>2022-10-02T08:54:00+00:00</published>
    <updated>2022-10-02T08:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bruce Davie makes an excellent point in his <a href="https://systemsapproach.substack.com/p/quic-is-not-a-tcp-replacement">QUIC Is Not a TCP Replacement</a> article &ndash; QUIC not a next-generation TCP, it&rsquo;s a reliable RPC transport protocol.</p>
<p>What Bruce forgot to mention is that we had a production-grade RPC transport protocol for years &ndash; <a href="https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">SCTP (Stream Control Transmission Protocol)</a> &ndash; but it had two shortcomings:</p>
<ul>
<li><a href="/2009/08/what-went-wrong-sctp/">It wasn&rsquo;t invented by the right people</a>;</li>
<li>It used a different IP protocol number and thus upset every ossified middlebox in the Internet. QUIC hides on top of UDP (because adding extra headers makes at least as much sense as <a href="https://en.wikipedia.org/wiki/Non-coding_DNA#Junk_DNA">junk DNA</a>).</li>
</ul>
]]></content>
    <category term="TCP" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: EVPN/VXLAN with FRR on Linux Hosts]]></title>
    <link href="https://blog.ipspace.net/2022/10/worth-reading-evpn-vxlan-unix-hosts/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/10/worth-reading-evpn-vxlan-unix-hosts/</id>
    <published>2022-10-01T16:18:00+00:00</published>
    <updated>2022-10-01T16:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Jeroen Van Bemmel created another interesting <em><a href="https://netlab.tools/">netlab</a></em> topology: <a href="https://srlinux-at-your-service.medium.com/revisiting-bgp-evpn-vxlan-to-the-hosts-with-sr-linux-22-6-3-586df95f730c">EVPN/VXLAN between SR Linux fabric and FRR on Linux hosts</a> based on his work implementing VRFs, VXLAN, and EVPN on FRR in <a href="https://netlab.tools/release/1.3/">netlab release 1.3.1</a>.</p>
<p><strong>Bonus point</strong>: he also described how to do multi-vendor interoperability testing with <em>netlab</em>.</p>
<p>If only he wouldn&rsquo;t be publishing his articles on a platform that&rsquo;s almost as user-data-craving as Google.</p>
]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Kubernetes Services Types]]></title>
    <link href="https://blog.ipspace.net/2022/09/video-kubernetes-services-types/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/video-kubernetes-services-types/</id>
    <published>2022-09-30T06:03:00+00:00</published>
    <updated>2022-09-30T06:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Kubernetes services are like networking standards: there are so many to choose from. In his brief <a href="https://my.ipspace.net/bin/get/Kubernetes/1.8%20-%20Kubernetes%20Service%20Types.mp4?doccode=Kubernetes">introduction to Kubernetes service types</a>, <a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> listed six of them, and I&rsquo;m positive there are more. That&rsquo;s what you get when you&rsquo;re trying to reinvent every network load balancing method known to mankind ;)</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/1.8%20-%20Kubernetes%20Service%20Types.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cumulus Linux Network Command Line Utility (NCLU)]]></title>
    <link href="https://blog.ipspace.net/2022/09/cumulus-nclu/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/cumulus-nclu/</id>
    <published>2022-09-29T06:07:00+00:00</published>
    <updated>2022-09-29T06:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>While <a href="/2022/09/linux-data-plane-configuration/">ranting about Linux data plane configuration</a>, I mentioned an interesting solution: Cumulus Linux Network Command Line Utility (NCLU), an attempt to make Linux networking more palatable to more traditional networking engineers.</p>
<p>NCLU is a simple wrapper around <em>ifupdown2</em> and <em>frr</em> packages. You can execute <strong>net add</strong> and <strong>net del</strong> commands to set or remove configuration parameters<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, and NCLU translates those commands into changes to corresponding configuration files.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/cumulus-nclu/'>Read more &hellip;</a></div>]]></content>
    <category term="Cumulus Linux" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Combining MLAG Clusters with VXLAN Fabric]]></title>
    <link href="https://blog.ipspace.net/2022/09/mlag-deep-dive-vxlan-fabric/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/mlag-deep-dive-vxlan-fabric/</id>
    <published>2022-09-28T09:27:00+00:00</published>
    <updated>2022-09-28T17:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous MLAG Deep Dive blog posts, we discussed the innards of a standalone MLAG cluster. Now let&rsquo;s see what happens when we connect such a cluster to a VXLAN fabric &ndash; we&rsquo;ll use our standard MLAG topology and add a VXLAN transport underlay to it with another switch connected to the other end of the underlay network.</p>

<figure><img src="/2022/09/MLAG-VXLAN-topology.jpg"
   alt="MLAG cluster connected to a VXLAN fabric"/><figcaption>
    <p>MLAG cluster connected to a VXLAN fabric</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/mlag-deep-dive-vxlan-fabric/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: On the Viability of EVPN]]></title>
    <link href="https://blog.ipspace.net/2022/09/repost-evpn-viability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/repost-evpn-viability/</id>
    <published>2022-09-27T06:53:00+00:00</published>
    <updated>2022-09-27T06:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Jordi left an <a href="/2022/09/mlag-bridging-evpn/#1375">interesting comment</a> to my <em><a href="/2022/09/mlag-bridging-evpn/">EVPN/VXLAN or Bridged Data Center Fabrics</a></em> blog post discussing the viability of using VXLAN and EVPN in times when the equipment lead times can exceed 12 months. Here it is:</p>
<hr>
<p>Interesting article Ivan. Another major problem I see for EPVN, is the incompatibility between vendors, even though it is an open standard. With today’s crazy switch delivery times, we want a multi-vendor solution like BGP or LACP, but EVPN (due to vendors) isn’t ready for a multi-vendor production network fabric.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/repost-evpn-viability/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab VXLAN Bridging Example]]></title>
    <link href="https://blog.ipspace.net/2022/09/netlab-vxlan-bridging/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/netlab-vxlan-bridging/</id>
    <published>2022-09-26T07:21:00+00:00</published>
    <updated>2022-09-26T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/2022/09/netlab-1-3/">netlab release 1.3</a> introduced support for <a href="https://netlab.tools/module/vxlan/">VXLAN transport with static ingress replication</a>. Time to check how easy it is to replace a VLAN trunk with VXLAN transport. We&rsquo;ll use the lab topology from the <a href="/2022/06/netsim-vlan-trunk/">VLAN trunking example</a>, replace the VLAN trunk between S1 and S2 with an IP underlay network, and <a href="https://github.com/ipspace/netlab-examples/tree/master/VXLAN/vxlan-bridging">transport Ethernet frames across that network with VXLAN</a>.</p>

<figure><img src="/2022/09/vxlan-bridging.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/netlab-vxlan-bridging/'>Read more &hellip;</a></div>]]></content>
    <category term="VXLAN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Hierarchy Is Bullshit]]></title>
    <link href="https://blog.ipspace.net/2022/09/worth-reading-hierarchy-is-bullshit/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/worth-reading-hierarchy-is-bullshit/</id>
    <published>2022-09-25T08:35:00+00:00</published>
    <updated>2022-09-25T08:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Charity Majors published another masterpiece: <a href="https://charity.wtf/2022/09/23/the-hierarchy-is-bullshit-and-bad-for-business/">The Hierarchy Is Bullshit (And Bad For Business)</a>.</p>
<p>I doubt that anyone who would need this particular bit of advice would read or follow it, but (as they say) hope springs eternal.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Cloud-Native Environments]]></title>
    <link href="https://blog.ipspace.net/2022/09/video-cloud-native/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/video-cloud-native/</id>
    <published>2022-09-23T06:20:00+00:00</published>
    <updated>2022-09-23T06:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the overused buzzwords of the cloudy days is the <em>Cloud-Native Environment</em>. What should that mean and why could that be better than what we&rsquo;ve been doing decades ago? Matthias Luft and Florian Barth <a href="https://my.ipspace.net/bin/get/Cloud101/5%20-%20Cloud-Native%20Environments.mp4?doccode=Cloud101">tried to answer that question</a> in the <em><a href="https://www.ipspace.net/Introduction_to_Cloud_Computing">Introduction to Cloud Computing</a></em> webinar.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Cloud101/5%20-%20Cloud-Native%20Environments.mp4?doccode=Cloud101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="video" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SR-MPLS or SRv6 for Greenfield Networks]]></title>
    <link href="https://blog.ipspace.net/2022/09/greenfield-sr-mpls-srv6/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/greenfield-sr-mpls-srv6/</id>
    <published>2022-09-22T07:05:00+00:00</published>
    <updated>2022-09-22T07:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s an <a href="https://twitter.com/ccurtis584/status/1563950747120979968">interesting question</a> randomly appearing in my Twitter feed:</p>
<blockquote>
<p>If you had a greenfield network, would you choose SR-MPLS, or SRv6? And why?</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: SR-MPLS, assuming you&rsquo;re building a network providing end-to-end connectivity between hardware edge devices.</p>
<p>Now for the <em>why</em> part of the question:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/greenfield-sr-mpls-srv6/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
    <category term="segment routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Linux Networking Data Plane Configuration]]></title>
    <link href="https://blog.ipspace.net/2022/09/linux-data-plane-configuration/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/linux-data-plane-configuration/</id>
    <published>2022-09-21T06:20:00+00:00</published>
    <updated>2022-09-21T06:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I spent a rainy day <a href="/2022/09/netlab-1-3-1/">implementing VLANs, VRFs, and VXLAN on Cumulus Linux VX</a> and came to &ldquo;appreciate&rdquo; the beauties of Linux networking configuration.</p>
<p><strong>TL&amp;DR</strong>: It sucks</p>
<p>There are two major ways of configuring data plane constructs (interfaces, port channels, VLANs, VRFs) on Linux:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/linux-data-plane-configuration/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
    <category term="Cumulus Linux" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN/VXLAN or Bridged Data Center Fabric?]]></title>
    <link href="https://blog.ipspace.net/2022/09/mlag-bridging-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/mlag-bridging-evpn/</id>
    <published>2022-09-20T07:55:00+00:00</published>
    <updated>2022-09-20T07:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>An attendee in the <a href="https://www.ipspace.net/Building_Next-Generation_Data_Center">Building Next-Generation Data Center</a> online course sent me an interesting dilemma:</p>
<blockquote>
<p>Some customers don’t like EVPN because of complexity (it is required knowledge BGP, symmetric/asymmetric IRB, ARP suppression, VRF, RT/RD, etc). They agree, that EVPN gives more stability and broadcast traffic optimization, but still, it will not save DC from broadcast storms, because protections methods are the same for both solutions (minimize L2 segments, storm-control).</p>
</blockquote>
<p>We&rsquo;ll deal with the unnecessary EVPN-induced complexity some other time, today let&rsquo;s start with a few intro-level details.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/mlag-bridging-evpn/'>Read more &hellip;</a></div>]]></content>
    <category term="EVPN" />
    <category term="data center" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.3.1: BGP local-as, FRR and Cumulus Data Plane Enhancements]]></title>
    <link href="https://blog.ipspace.net/2022/09/netlab-1-3-1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/netlab-1-3-1/</id>
    <published>2022-09-19T07:08:00+00:00</published>
    <updated>2022-09-19T07:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> release 1.3.1 contains major additions to FRR and Cumulus Linux, and new BGP features:</p>
<ul>
<li>VXLAN, VLANs, VRFs, and EVPN <a href="https://netlab.tools/platforms/#platform-dataplane-support">implemented on</a> FRR and Cumulus Linux</li>
<li><a href="https://netlab.tools/module/bgp/#node-configuration-parameters">BGP local-as</a> implemented in the BGP configuration module and supported on Arista EOS, Cisco IOS, Dell OS10, FRR, and Nokia SR Linux.</li>
<li>Configurable <a href="https://netlab.tools/module/bgp/#node-configuration-parameters">BGP transport sessions</a></li>
<li>Configurable <a href="https://netlab.tools/module/bgp/#node-configuration-parameters">default BGP address families</a> supported on Arista EOS, Cisco IOS, Cumulus Linux, FRR, and Nokia SR Linux.</li>
</ul>
<p>Here are some of the other goodies included in this release:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/netlab-1-3-1/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Basics of Network Address Translation (NAT)]]></title>
    <link href="https://blog.ipspace.net/2022/09/video-nat-101/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/video-nat-101/</id>
    <published>2022-09-16T06:27:00+00:00</published>
    <updated>2022-09-16T06:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The last video in the 2-hour-long <em><a href="https://my.ipspace.net/bin/list?id=Net101#ADDR">Network Addressing</a></em> part of <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> discusses <a href="https://my.ipspace.net/bin/get/Net101/NA6%20-%20Network%20Address%20Translation.mp4?doccode=Net101">Network Address Translation</a>.</p>
<p>After watching it, you might want to spend some extra quality time (with a bit of soap opera vibe) enjoying the recent <em>‌<a href="https://mailarchive.ietf.org/arch/msg/v6ops/u0JH7vote1uQnYwWXMwQ1hxDuPw/">Dual ISP deployment operational issues and uncertainties</a></em> thread on the v6ops mailing list with a &ldquo;surprising&rdquo; result: <a href="https://mailarchive.ietf.org/arch/msg/v6ops/KLco291CsytXvDGa-GBd1y5JOh8/">NPTv6 or NAT66 is the least horrible way to do it</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA6%20-%20Network%20Address%20Translation.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="NAT" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multi-Cloud: Myths and Reality]]></title>
    <link href="https://blog.ipspace.net/2022/09/multicloud-myths/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/multicloud-myths/</id>
    <published>2022-09-15T07:44:00+00:00</published>
    <updated>2022-09-15T07:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I keep hearing numerous variations of the following argument from people believing in the unlimited powers of <a href="https://en.wikipedia.org/wiki/Multicloud">multi-cloud</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> (deploying your workloads in multiple public cloud providers):</p>
<blockquote>
<p>We don&rsquo;t install all our servers in the same DC. But would you trust one Cloud Server Provider with all your applications? That&rsquo;s why you should use multi-cloud.</p>
</blockquote>
<p>I&rsquo;ve been hearing similar arguments for at least 30 years, including:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/multicloud-myths/'>Read more &hellip;</a></div>]]></content>
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[VLAN Interfaces and Subinterfaces]]></title>
    <link href="https://blog.ipspace.net/2022/09/vlan-interfaces/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/vlan-interfaces/</id>
    <published>2022-09-14T07:31:00+00:00</published>
    <updated>2025-03-11T13:48:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>Early bridges <a href="/2022/09/interfaces-ports/">implemented a single bridging domain across all ports</a>. Within a few years, we got multiple bridging domains within a single device (including <a href="/2022/09/routers-bridges-crb-irb/">bridging implementation in Cisco IOS</a>). The capability to have multiple bridging domains stretched across several devices was still missing&hellip; until the modern-day Pandora opened the VLAN box and forever swamped us in the complexities of large-scale bridging.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/vlan-interfaces/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="IP routing" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Infrastructure-as-Code Sounds Scary]]></title>
    <link href="https://blog.ipspace.net/2022/09/infrastructure-as-code-sounds-scary/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/infrastructure-as-code-sounds-scary/</id>
    <published>2022-09-13T06:53:00+00:00</published>
    <updated>2022-09-13T06:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers preparing for public cloud deployment sent me an interesting observation:</p>
<blockquote>
<p>I pushed to use infrastructure-as-code as we move to Azure, but I&rsquo;m receiving a lot of pushback due to most of the involved parties not having any experience with code. Management is scared to use any kind of &ldquo;homegrown&rdquo; tools that only a few would understand. I feel like I&rsquo;m stuck deploying and managing the environment manually.</p>
</blockquote>
<p>It looks like a bad case of suboptimal terminology for this particular audience. For whatever reason, some infrastructure engineers prefer to stay as far away from programming as possible<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, and infrastructure-as-code sounds like programming to them.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/infrastructure-as-code-sounds-scary/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: VRF Lite Topology with VLAN Trunks]]></title>
    <link href="https://blog.ipspace.net/2022/09/netlab-vrf-lite/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/netlab-vrf-lite/</id>
    <published>2022-09-12T06:01:00+00:00</published>
    <updated>2022-09-12T06:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2022/06/netsim-vlan-vrf/">last blog post in the <em>VLANs and VRFs in netlab</em></a> series, I described how we can combine VLANs and VRFs and create a VRF Lite solution with stretched VLANs. Wonder how hard would it be to create a routed multi-hop <a href="/2022/04/netsim-vrf-lite/">VRF Lite</a> topology? It&rsquo;s trivial.</p>

<figure><img src="/2022/09/netlab-vrf-lite-routed.png"
   alt="Routed VRF Lite lab topology"/><figcaption>
    <p>Routed VRF Lite lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/netlab-vrf-lite/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: NetDoc – Automated Network Discovery and Documentation]]></title>
    <link href="https://blog.ipspace.net/2022/09/worth-reading-netdoc/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/worth-reading-netdoc/</id>
    <published>2022-09-11T07:56:00+00:00</published>
    <updated>2022-09-11T07:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Andrea Dainese released an interesting tool that <a href="https://www.adainese.it/blog/2022/08/28/netdoc-automated-network-discovery-and-documentation/">performs automated network discovery</a>, pushes the discovered data into NetBox, and then uses <em>netbox-topology-views</em> plugin to create network topology diagrams.</p>
<p>Definitely worth exploring!</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Fun Times: Is Cisco ACI Dead?]]></title>
    <link href="https://blog.ipspace.net/2022/09/worth-reading-cisco-aci-dead/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/worth-reading-cisco-aci-dead/</id>
    <published>2022-09-10T07:48:00+00:00</published>
    <updated>2022-09-10T07:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://blogs.gartner.com/andrew-lerner/2022/09/02/is-cisco-aci-dead/">A recent blog post by Andrew Lerner</a> asks whether Cisco ACI is dead. According to <a href="https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines">Betteridge&rsquo;s law of headlines</a>, the answer is NO (which is also Andrew&rsquo;s conclusion), but I liked this gem:</p>
<blockquote>
<p>However, Gartner assesses that Nexus Dashboard Fabric Controller is the optimal fabric management software for most Cisco data center environments.</p>
</blockquote>
<p>An <del>automation</del> intent-based system provisioning a traditional routed network is considered a better solution than a black-box proprietary software-defined blob of complexity? Who would have thought&hellip;</p>
]]></content>
    <category term="ACI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Testing IPv6 RA Guard]]></title>
    <link href="https://blog.ipspace.net/2022/09/video-testing-ipv6-ra-guard/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/video-testing-ipv6-ra-guard/</id>
    <published>2022-09-09T06:21:00+00:00</published>
    <updated>2022-09-09T06:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After discussing <a href="/2022/06/video-rogue-ra-challenges/">rogue IPv6 RA challenges</a> and the <a href="/2022/06/video-ra-guard-extension-headers/">million ways one can circumvent IPv6 RA guard with IPv6 extension headers</a>, <a href="https://www.ipspace.net/Author:Christopher_Werny">Christopher Werny</a> focused on practical aspects of this thorny topic: <a href="https://my.ipspace.net/bin/get/IPv6Sec/E5.4%20-%20Testing%20RA%20Guard%20Implementations.mp4?doccode=IPv6Sec">how can we test IPv6 RA Guard implementations and how good are they</a>?</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/IPv6Sec/E5.4%20-%20Testing%20RA%20Guard%20Implementations.mp4?doccode=IPv6Sec">Watch the video</a></div>
<div  class="info">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[From Bits to Application Data]]></title>
    <link href="https://blog.ipspace.net/2022/09/from-bits-to-applications/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/from-bits-to-applications/</id>
    <published>2022-09-08T06:33:00+00:00</published>
    <updated>2022-09-08T06:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Long long time ago, Daniel Dib started an interesting Twitter discussion with <a href="https://twitter.com/danieldibswe/status/1537671262750879745">this seemingly simple question</a>:</p>
<blockquote>
<p>How does a switch/router know from the bits it has received which layer each bit belongs to? Assume a switch received 01010101, how would it know which bits belong to the data link layer, which to the network layer and so on.</p>
</blockquote>
<p>As is often the case, Peter Paluch provided an <a href="https://twitter.com/Peter_Paluch/status/1537822843601403904">excellent answer in a Twitter thread</a>, and allowed me to save it for posterity.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/from-bits-to-applications/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[How Routers Became Bridges]]></title>
    <link href="https://blog.ipspace.net/2022/09/routers-bridges-crb-irb/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/routers-bridges-crb-irb/</id>
    <published>2022-09-07T07:05:00+00:00</published>
    <updated>2022-09-07T07:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Network terminology was easy in the 1980s: bridges forwarded frames between Ethernet segments based on MAC addresses, and routers forwarded network layer packets between network segments. That nirvana couldn&rsquo;t last long; eventually, a big enough customer told Cisco: &ldquo;<em>I don&rsquo;t want to buy another box if I already have your too-expensive router. I want your router to be a bridge.</em>&rdquo;</p>
<p>Turning a router into a bridge is easier than going the other way round<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>: add MAC table and dynamic MAC learning, and spend an evening implementing STP.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/routers-bridges-crb-irb/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="IP routing" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Was IPv6 Really the Worst Decision Ever?]]></title>
    <link href="https://blog.ipspace.net/2022/09/ipv6-worst-decision-ever/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/ipv6-worst-decision-ever/</id>
    <published>2022-09-06T07:17:00+00:00</published>
    <updated>2022-09-06T07:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, Daniel Dib tweeted a slide from Radia Perlman&rsquo;s presentation in which she claimed IPv6 was the worst decision ever as we could have adopted CLNP in 1992. I had similar thoughts on the topic a few years ago, and over tons of discussions, blog posts, and creating the <a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a> webinar slowly realized it wouldn&rsquo;t have mattered.</p>

<figure><img src="/2022/09/ipv6-worst-decision-ever.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/ipv6-worst-decision-ever/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Release 1.3: VXLAN and EVPN]]></title>
    <link href="https://blog.ipspace.net/2022/09/netlab-1-3/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/netlab-1-3/</id>
    <published>2022-09-05T07:05:00+00:00</published>
    <updated>2022-09-05T07:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> release 1.3 contains two major additions:</p>
<ul>
<li><a href="https://netlab.tools/module/vxlan/">VXLAN transport</a> using static ingress replication or EVPN control plane &ndash; implemented on Arista EOS, Cisco Nexus OS, Dell OS10, Nokia SR Linux and VyOS.</li>
<li><a href="https://netlab.tools/module/evpn/">EVPN control plane</a> supporting VXLAN transport, VLAN bridging, VLAN-aware bundles, and symmetric IRB &ndash; implemented on Arista EOS, Dell OS10, Nokia SR Linux, Nokia SR OS (control plane), VyOS, and FRR (control plane).</li>
</ul>
<p>Here are some of the other goodies included in this release:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/netlab-1-3/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback Appreciated: Next-Generation Metro Area Networks]]></title>
    <link href="https://blog.ipspace.net/2022/09/feedback-next-generation-man/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/feedback-next-generation-man/</id>
    <published>2022-09-04T12:17:00+00:00</published>
    <updated>2022-09-04T12:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.um.edu.mt/profile/etiennedepasquale">Etienne-Victor Depasquale</a>, a researcher at University of Malta, is trying to figure out what technologies service providers use to build real-life metro-area networks, and what services they offer on top of that infrastructure.</p>
<p>If you happen to be involved with a metro area network, he&rsquo;d love to hear from you &ndash; <a href="https://docs.google.com/forms/d/e/1FAIpQLScCKLr82hwoJSYUP4AuWHz2TgDjD3q_ezkbafPWZC8K_q9JGA/viewform">please fill in this survey</a> &ndash; and he promised that he&rsquo;ll share the results of the survey with the participants.</p>
]]></content>
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Latency Matters When Migrating Workloads]]></title>
    <link href="https://blog.ipspace.net/2022/09/worth-reading-cloud-migration-latency/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/worth-reading-cloud-migration-latency/</id>
    <published>2022-09-03T12:05:00+00:00</published>
    <updated>2022-09-03T12:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s so refreshing to find someone who understands the impact of latency on application performance, and develops a methodology that considers latency when migrating a workload into a public cloud: <a href="https://blog.lawrencejones.dev/latency/">Adding latency: one step, two step, oops</a> by Lawrence Jones.</p>
]]></content>
    <category term="WAN" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Kubernetes Services Overview]]></title>
    <link href="https://blog.ipspace.net/2022/09/video-kubernetes-services/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/video-kubernetes-services/</id>
    <published>2022-09-02T06:19:00+00:00</published>
    <updated>2022-09-02T06:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After completing the discussion of basic Kubernetes networking with a <a href="https://my.ipspace.net/bin/get/Kubernetes/1.6%20-%20Typical%20Inter-Pod%20Traffic%20Walk.mp4?doccode=Kubernetes">typical inter-pod traffic scenario</a>, <a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> tackled another confusing topic: an <a href="https://my.ipspace.net/bin/get/Kubernetes/1.7%20-%20Kubernetes%20Services%20Overview.mp4?doccode=Kubernetes">overview of what Kubernetes services are</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/1.7%20-%20Kubernetes%20Services%20Overview.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Router Interfaces and Switch Ports]]></title>
    <link href="https://blog.ipspace.net/2022/09/interfaces-ports/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/09/interfaces-ports/</id>
    <published>2022-09-01T06:43:00+00:00</published>
    <updated>2025-03-11T10:49:00+01:00</updated>
    
    <content type="html"><![CDATA[<p>When I started implementing the <a href="https://netlab.tools/module/vlan/">netlab VLAN module</a>, I encountered (at least) three different ways of configuring physical interfaces and bridging domains even though the underlying packet forwarding operations (and sometimes even the forwarding hardware) are the same. That <a href="https://en.wikipedia.org/wiki/Confusopoly">confusopoly</a> is guaranteed to make your head spin for years, and the only way to figure out what&rsquo;s going on behind the scenes is to go back to the fundamentals.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/09/interfaces-ports/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="IP routing" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netsim-tools Renamed to netlab]]></title>
    <link href="https://blog.ipspace.net/2022/08/netsim-netlab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/08/netsim-netlab/</id>
    <published>2022-08-27T11:35:00+00:00</published>
    <updated>2022-08-27T11:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR</strong>: we renamed <em>netsim-tools</em> to <em>netlab</em> as the project evolved from a bag of tools into a full-blown intent-based lab-as-code system (how&rsquo;s that for a Bullshit Bingo winner?).</p>
<p>There is no change to the functionality, user interface (CLI commands), or documentation. Upgrading the existing Python package should install the new one, but please make sure you install or upgrade <em>networklab</em> Python package instead of <em>netsim-tools</em>; we won&rsquo;t keep the backward compatibility forever.</p>
<p>Now for more details:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/08/netsim-netlab/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Twilight Zone: File Transfer Never Completes]]></title>
    <link href="https://blog.ipspace.net/2022/07/file-transfer-never-completes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/07/file-transfer-never-completes/</id>
    <published>2022-07-27T06:27:00+00:00</published>
    <updated>2022-07-27T06:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Ages ago when we were building networks using super-expensive 64kbps WAN links, a customer sent us a weird bug report:</p>
<blockquote>
<p>Everything works fine, but we cannot transfer one particular file between two locations &ndash; the file transfer stalls and eventually times out. At the same time, we&rsquo;re seeing increased number of CRC errors on the WAN link.</p>
</blockquote>
<p>My chat with the engineer handling the ticket went along these lines:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/07/file-transfer-never-completes/'>Read more &hellip;</a></div>]]></content>
    <category term="history" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: Akvorado Flow Collector and Visualizer]]></title>
    <link href="https://blog.ipspace.net/2022/07/worth-reading-akvorado-flow-collector/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/07/worth-reading-akvorado-flow-collector/</id>
    <published>2022-07-15T07:15:00+00:00</published>
    <updated>2022-07-15T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The results you can get when you know how to apply proper glue to a bunch of open-source tools never cease to amaze me. The latest entrant in that category: <a href="https://github.com/vincentbernat/akvorado">Akvorado</a>, a Netflow/IPFIX collector and analyzer by <a href="https://www.linkedin.com/in/vincentbernat/">Vincent Bernat</a>.</p>
<p>Some of the sample graphs (shown in the GitHub repo) are not far off from those that knocked our socks off during the first <a href="/2017/09/nfd16-first-impressions/">Kentik Networking Field Day presentation</a>. Definitely a tool worth exploring ;)</p>
]]></content>
    <category term="network management" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Twilight Zone: File Transfer Causes Link Drop]]></title>
    <link href="https://blog.ipspace.net/2022/07/file-transfer-drops-link/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/07/file-transfer-drops-link/</id>
    <published>2022-07-13T07:48:00+00:00</published>
    <updated>2022-07-13T07:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Long long time ago, we built a multi-protocol WAN network for a large organization. Everything worked great, until we got the weirdest bug report I&rsquo;ve seen thus far:</p>
<blockquote>
<p>When trying to transfer a particular file with DECnet to the central location, the WAN link drops. That does not happen with any other file, or when transferring the same file with TCP/IP. The only way to recover is to power cycle the modem.</p>
</blockquote>
<p>Try to figure out what was going on before reading any further ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/07/file-transfer-drops-link/'>Read more &hellip;</a></div>]]></content>
    <category term="history" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: On the Dangers of Cryptocurrencies...]]></title>
    <link href="https://blog.ipspace.net/2022/07/worth-reading-dangers-cryptocurrencies-uselessness-blockchain/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/07/worth-reading-dangers-cryptocurrencies-uselessness-blockchain/</id>
    <published>2022-07-02T07:05:00+00:00</published>
    <updated>2022-07-02T07:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Bruce_Schneier">Bruce Schneier</a> wrote an article on <a href="https://www.schneier.com/blog/archives/2022/06/on-the-dangers-of-cryptocurrencies-and-the-uselessness-of-blockchain.html">the dangers of cryptocurrencies and the uselessness of blockchain</a>, including this gem:</p>
<blockquote>
<p>From its inception, this technology has been a solution in search of a problem and has now latched onto concepts such as financial inclusion and data transparency to justify its existence, despite far better solutions to these issues already in use.</p>
</blockquote>
<p>Please feel free to tell me how he&rsquo;s just another individual full of misguided opinions&hellip; after all, what does he know about crypto?</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: Buffers, Congestion, Jitter, and Shapers]]></title>
    <link href="https://blog.ipspace.net/2022/06/buffers-congestion-jitter/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/buffers-congestion-jitter/</id>
    <published>2022-06-27T06:15:00+00:00</published>
    <updated>2022-06-27T06:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://www.linkedin.com/in/belavarkonyi/">Béla Várkonyi</a> left a <a href="/2022/06/beware-vendors-bringing-whitepapers/#1309">great comment</a> on a blog post discussing (among other things) whether we need large buffers on spine switches. I don&rsquo;t know how many people read the comments; this one is too valuable to be lost somewhere below the fold</em></p>
<hr>
<p>You might want to add another consideration. If you have a lot of traffic aggregation even when the ingress and egress port are roughly at the same speed or when the egress port has more capacity, you could still have congestion. Then you have two strategies, buffer and suffer jitter and delay, or drop and hope that the upper layers will detect it and reduce the sending by shaping.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/buffers-congestion-jitter/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="QoS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Smart Highways or Smart Cars?]]></title>
    <link href="https://blog.ipspace.net/2022/06/worth-reading-smart-highways-smart-cars/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/worth-reading-smart-highways-smart-cars/</id>
    <published>2022-06-25T06:56:00+00:00</published>
    <updated>2022-06-25T06:56:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I stumbled upon an interesting article in one of my RSS feeds: should we build <a href="https://circleid.com/posts/20220614-smart-highways-or-smart-cars">smart highways or smart cars?</a></p>
<p>The article eloquently explains how ridiculous and expensive it would be to put the smarts in the infrastructure, and why most everyone is focused on building smart cars. The same concepts should be applied to networking, but of course the networking vendors furiously disagree &ndash; the network should be as complex, irreplaceable, and expensive as possible. I collected <a href="/2013/06/network-virtualization-and-spaghetti/">a few examples seven years ago</a>, and nothing changed in the meantime.</p>
]]></content>
    <category term="SDN" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab VLAN Module Is Complete]]></title>
    <link href="https://blog.ipspace.net/2022/06/netsim-vlan-complete/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/netsim-vlan-complete/</id>
    <published>2022-06-23T06:12:00+00:00</published>
    <updated>2022-06-23T06:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the last things I did before starting the 2022 summer break was to push out the <a href="https://netlab.tools/release/">next netlab release</a>.</p>
<p>It includes support for routed VLAN subinterfaces (needed to implement router-on-a-stick) and routed VLANs (needed to implement multi-hop VRF lite), completing the lengthy (and painful) development of the <a href="https://netlab.tools/module/vlan/">VLAN configuration module</a>. Stefano Sasso added VLAN support for Mikrotik RouterOS and VyOS, and Jeroen van Bemmel completed VLAN implementation for Nokia SR Linux. Want to see VLANs on other platforms? Read the <a href="https://netlab.tools/dev/guidelines/">contributor guidelines</a> and <a href="https://netlab.tools/dev/config/vlan/">VLAN developer docs</a>, and submit a PR.</p>
<p>I&rsquo;ll be back in September with more blog posts, webinars, and cool netlab features. In the meantime, automate everything, get away from work, turn off the Internet, and enjoy a few days in your favorite spot with your loved ones!</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MLAG Deep Dive: Layer-3 Forwarding]]></title>
    <link href="https://blog.ipspace.net/2022/06/mlag-active-active-layer3/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/mlag-active-active-layer3/</id>
    <published>2022-06-22T06:55:00+00:00</published>
    <updated>2022-06-22T06:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <a href="/2022/06/mlag-deep-dive-mac-learning/">layer-2 forwarding</a> and <a href="/2022/06/mlag-deep-dive-flooding/">flooding</a> in an MLAG cluster are intricate but still reasonably easy to understand. Layer-3 gets more interesting; its quirks depend heavily on layer-2 implementation. While most MLAG implementations exhibit similar bridging behavior, expect interesting differences in routing behavior.</p>
<p>We&rsquo;ll have to expand by-now familiar network topology to cover layer-3 edge cases. We&rsquo;ll still work with two switches in an MLAG cluster, but we&rsquo;ll have an external router attached to both of them. The hosts connected to the switches belong to two subnets (red and blue).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/mlag-active-active-layer3/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[VXLAN-to-VXLAN Bridging in DCI Environments]]></title>
    <link href="https://blog.ipspace.net/2022/06/vxlan-bridging-dci/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/vxlan-bridging-dci/</id>
    <published>2022-06-21T06:50:00+00:00</published>
    <updated>2022-06-21T06:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Almost exactly a decade ago I wrote that <a href="/2012/11/vxlan-is-not-data-center-interconnect/">VXLAN isn&rsquo;t a data center interconnect technology</a>. That&rsquo;s still true, but you can make it a bit better with EVPN &ndash; at the very minimum you&rsquo;ll get an ARP proxy and anycast gateway. Even this combo does not address the other requirements I listed a decade ago, but maybe I&rsquo;m too demanding and <em>good enough</em> works <em>well enough</em>.</p>
<p>However, there is one other bit that was missing from most VXLAN implementations: LAN-to-WAN VXLAN-to-VXLAN bridging. Sounds weird? Supposedly a picture is worth a thousand words, so here we go.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/vxlan-bridging-dci/'>Read more &hellip;</a></div>]]></content>
    <category term="VXLAN" />
    <category term="data center" />
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Help Appreciated: netsim-tools Device Features]]></title>
    <link href="https://blog.ipspace.net/2022/06/netsim-help-device-features/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/netsim-help-device-features/</id>
    <published>2022-06-20T06:17:00+00:00</published>
    <updated>2022-06-20T06:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>There are (at least) two steps to get new functionality (like VLANs) implemented in <a href="https://netlab.tools/">netsim-tools</a>:</p>
<ul>
<li>We have to develop a data transformation module that takes high-level lab-, node-, link- or interface attributes and transforms them into device data.</li>
<li>Someone has to create Jinja2 templates <em>for each supported device</em> that transform per-device <em>netsim-tools</em> data into device configurations.</li>
</ul>
<p>I usually implement new features on Cisco IOSv and Arista EOS<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, <a href="https://www.linkedin.com/in/ssasso/">Stefano Sasso</a> adds support for VyOS, Dell OS10, and Mikrotik RouterOS, and <a href="https://www.linkedin.com/in/jeroenvbemmel/">Jeroen van Bemmel</a> adds Nokia SR Linux and/or SR OS support. That&rsquo;s less than <a href="https://netlab.tools/platforms/">half of the platforms supported by netsim-tools</a>, and anything you could do to help us increase the coverage would be highly appreciated.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/netsim-help-device-features/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Is IPv6 Faster Than IPv4?]]></title>
    <link href="https://blog.ipspace.net/2022/06/worth-reading-ipv6-faster-than-ipv4/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/worth-reading-ipv6-faster-than-ipv4/</id>
    <published>2022-06-18T06:35:00+00:00</published>
    <updated>2022-06-18T06:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In a recent blog post, <a href="https://www.linkedin.com/in/podomere/">Donal O Duibhir</a> claims
<a href="https://pansift.com/blog/is-ipv6-faster-than-ipv4/">IPv6 is faster than IPv4</a>&hellip; 39% of the time, which at a quick glance makes as much sense as &ldquo;<a href="https://www.youtube.com/watch?v=pjvQFtlNQ-M">60% of the time it works every time</a>&rdquo;. The real reason for his claim is that there was no difference between IPv4 and IPv6 in ~30% of the measurements.</p>
<p>Unfortunately he measured only the Wi-Fi part of the connection (until the first-hop gateway); I hope he&rsquo;ll keep going and measure response times from well-connected dual-stack sites like Google&rsquo;s public DNS servers.</p>
]]></content>
    <category term=" IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: IPv6 RA Guard and Extension Headers]]></title>
    <link href="https://blog.ipspace.net/2022/06/video-ra-guard-extension-headers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/video-ra-guard-extension-headers/</id>
    <published>2022-06-17T06:42:00+00:00</published>
    <updated>2022-06-17T06:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week&rsquo;s IPv6 security video <a href="/2022/06/video-rogue-ra-challenges/">introduced the rogue IPv6 RA challenges</a> and the usual countermeasure &ndash; RA guard. Unfortunately, IPv6 tends to be a wonderfully extensible protocol, creating all sorts of opportunities for nefarious actors and security researchers.</p>
<p>For years, the networking vendors were furiously trying to plug the holes created by the academically minded IPv6 designers in love with fragmented extension headers. In the meantime, security researches had absolutely no problem finding yet another weird combination of IPv6 headers that would bypass any IPv6 RA guard implementation until IETF gave up and admitted <a href="https://datatracker.ietf.org/doc/html/rfc6980#section-5">one cannot have &ldquo;infinitely extensible&rdquo; and &ldquo;secure&rdquo; in the same sentence</a>.</p>
<p>For more details watch the video by <a href="https://www.ipspace.net/Author:Christopher_Werny">Christopher Werny</a> describing how <a href="https://my.ipspace.net/bin/get/IPv6Sec/E5.3%20-%20Extension%20Headers%20Circumvent%20RA%20Guard.mp4?doccode=IPv6Sec">one could use IPv6 extension headers to circumvent IPv6 RA guard</a></p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/IPv6Sec/E5.3%20-%20Extension%20Headers%20Circumvent%20RA%20Guard.mp4?doccode=IPv6Sec">Watch the video</a></div>
<div  class="info">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MLAG Deep Dive: Layer-2 Flooding]]></title>
    <link href="https://blog.ipspace.net/2022/06/mlag-deep-dive-flooding/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/mlag-deep-dive-flooding/</id>
    <published>2022-06-16T06:55:00+00:00</published>
    <updated>2022-06-19T16:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2022/06/mlag-deep-dive-mac-learning/">previous blog post</a> of the <a href="/series/mlag/#technology-deep-dive"><em>MLAG Technology Deep Dive</em> series</a>, we explored the intricacies of layer-2 unicast forwarding. Now let&rsquo;s focus on layer-2 BUM<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> flooding functionality of an MLAG system.</p>
<p>Our network topology will have two switches and five hosts, some connected to a single switch. That&rsquo;s not a good idea in an MLAG environment, but even if you have a picture-perfect design with everything redundantly connected, you will have to deal with it after a single link failure.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/mlag-deep-dive-flooding/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Beware of Vendors Bringing White Papers]]></title>
    <link href="https://blog.ipspace.net/2022/06/beware-vendors-bringing-whitepapers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/beware-vendors-bringing-whitepapers/</id>
    <published>2022-06-15T06:20:00+00:00</published>
    <updated>2022-06-15T06:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago I wrote about <a href="/2022/06/data-center-switching-asic-tradeoffs/">tradeoffs vendors have to make when designing data center switching ASICs</a>, followed by another blog post <a href="/2022/06/select-data-center-switching-asic/">discussing how to select the ASICs for various roles in data center fabrics</a>.</p>
<p>You <a href="https://datatracker.ietf.org/doc/html/rfc6919#section-1">REALLY SHOULD</a> read the two blog posts before moving on; here&rsquo;s the buffer-related TL&amp;DR for those of you ignoring my advice ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/beware-vendors-bringing-whitepapers/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[When You Find Yourself on Mount Stupid]]></title>
    <link href="https://blog.ipspace.net/2022/06/mount-stupid/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/mount-stupid/</id>
    <published>2022-06-14T06:20:00+00:00</published>
    <updated>2022-06-14T06:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The early October 2021 Facebook outage generated a predictable phenomenon &ndash; couch epidemiologists became experts in little-known <a href="https://x.com/ACM_IMC2021/status/1445725066403196928">Bridging the Gap Protocol</a> (BGP), including its Introvert and Extrovert variants. Unfortunately, I also witnessed several unexpected trips to <a href="https://www.smbc-comics.com/?id=2475">Mount Stupid</a> by people who should have known better.</p>
<p>To set the record straight: everyone&rsquo;s been there, and the more vocal you tend to be on social media (including mailing lists), the more probable it is that you&rsquo;ll take a wrong turn and end there. What matters is how gracefully you descend and what you&rsquo;ve learned on the way back.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/mount-stupid/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab: Combining VLANs with VRFs]]></title>
    <link href="https://blog.ipspace.net/2022/06/netsim-vlan-vrf/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/netsim-vlan-vrf/</id>
    <published>2022-06-13T06:38:00+00:00</published>
    <updated>2022-06-13T06:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last two weeks we focused on <a href="/2022/05/netsim-vlan-simple/">access VLANs</a> and <a href="/2022/06/netsim-vlan-trunk/">VLAN trunk</a> <em><a href="https://netlab.tools/">netlab</a></em> implementation. Can we combine them with <a href="/2022/04/netsim-vrf-lite/">VRFs</a>? Of course.</p>
<p>The trick is very simple: attributes within a VLAN definition become attributes of VLAN interfaces. Add <code>vrf</code> attribute to a VLAN and you get all VLAN interfaces created for that VLAN in the corresponding VRF. Can&rsquo;t get any easier, can it?</p>
<p>How about extending our VLAN trunk lab topology with VRFs? We&rsquo;ll put <em>red</em> VLAN in <em>red</em> VRF and <em>blue</em> VLAN in <em>blue</em> VRF.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/netsim-vlan-vrf/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Rogue IPv6 RA Challenges]]></title>
    <link href="https://blog.ipspace.net/2022/06/video-rogue-ra-challenges/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/video-rogue-ra-challenges/</id>
    <published>2022-06-10T06:33:00+00:00</published>
    <updated>2022-06-10T06:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>IPv6 security-focused presentations were usually an awesome opportunity to lean back and enjoy another round of whack-a-mole, often starting with an attacker using IPv6 Router Advertisements to divert traffic (see also: <a href="/2011/11/ipv6-security-getting-bored-bru-airport/">getting bored at Brussels airport</a>) .</p>
<p>Rogue IPv6 RA challenges and the corresponding countermeasures are thus a mandatory part of any IPv6 security training, and <a href="https://www.ipspace.net/Author:Christopher_Werny">Christopher Werny</a> did a great job <a href="https://my.ipspace.net/bin/get/IPv6Sec/E5.2%20-%20Rogue%20RA%20Challenges.mp4?doccode=IPv6Sec">describing them</a> in <a href="https://www.ipspace.net/IPv6_security">IPv6 security webinar</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/IPv6Sec/E5.2%20-%20Rogue%20RA%20Challenges.mp4?doccode=IPv6Sec">Watch the video</a></div>
<div  class="info">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using Custom Vagrant Boxes with netlab]]></title>
    <link href="https://blog.ipspace.net/2022/06/netsim-custom-vagrant-boxes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/netsim-custom-vagrant-boxes/</id>
    <published>2022-06-09T06:10:00+00:00</published>
    <updated>2022-06-09T06:10:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine started using Vagrant with libvirt years ago (it was his enthusiasm that piqued my interest in this particular setup, eventually resulting in <em>netlab</em>). Not surprisingly, he&rsquo;s built Vagrant boxes for any device he ever encountered, created quite a collection that way, and would like to use them with <em>netlab</em>.</p>
<p>While I didn&rsquo;t think about this particular use case when programming the <em>netlab</em> virtualization provider interface, I decided very early on that:</p>
<ul>
<li>Everything worth changing will be specified in the system defaults</li>
<li>You will be able to change system defaults in topology file or user defaults.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/netsim-custom-vagrant-boxes/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Select the Best Switching ASIC For the Job]]></title>
    <link href="https://blog.ipspace.net/2022/06/select-data-center-switching-asic/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/select-data-center-switching-asic/</id>
    <published>2022-06-08T06:16:00+00:00</published>
    <updated>2022-06-08T06:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week I described some of the <a href="/2022/06/data-center-switching-asic-tradeoffs/">data center switching ASIC design tradeoffs</a> and the ASIC families Broadcom created to fit somewhere in that multi-dimensional space.</p>
<p>Next step: how could you design your data center fabric to make the most out of them? To keep things simple, we&rsquo;ll build a typical leaf-and-spine fabric with a WAN edge layer (sometimes called <em>border leaf</em> switches).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/select-data-center-switching-asic/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MLAG Deep Dive: Dynamic MAC Learning]]></title>
    <link href="https://blog.ipspace.net/2022/06/mlag-deep-dive-mac-learning/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/mlag-deep-dive-mac-learning/</id>
    <published>2022-06-07T06:38:00+00:00</published>
    <updated>2022-06-07T06:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2022/06/mlag-deep-dive-overview/">first blog post</a> of the <a href="/series/mlag/#technology-deep-dive"><em>MLAG Technology Deep Dive</em> series</a>, we explored the components of an MLAG system and the fundamental control plane requirements.</p>
<p>This post focuses on a major building block of the layer-2 data plane functionality: MAC learning. We&rsquo;ll keep using the same network topology with two switches and five hosts, and assume our system tries its best to implement <a href="/2010/12/multi-chassis-link-aggregation-mlag-and/">hot-potato switching</a> (sending the frames toward the destination MAC address on the shortest possible path).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/mlag-deep-dive-mac-learning/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab VLAN Trunk Example]]></title>
    <link href="https://blog.ipspace.net/2022/06/netsim-vlan-trunk/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/netsim-vlan-trunk/</id>
    <published>2022-06-06T06:12:00+00:00</published>
    <updated>2022-06-06T06:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week I described <a href="/2022/05/netsim-vlan-simple/">how easy it is to use access VLANs</a> in <em>netlab</em>. Next step: VLAN trunks.</p>
<p>We&rsquo;ll add two Linux hosts to the lab topology used in the previous blog post, resulting in two switches, two Linux hosts in <em>red</em> VLAN and two Linux hosts in <em>blue</em> VLAN.</p>

<figure><img src="/2022/06/vlan-trunk.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/netsim-vlan-trunk/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Network Address Scopes]]></title>
    <link href="https://blog.ipspace.net/2022/06/video-network-address-scopes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/video-network-address-scopes/</id>
    <published>2022-06-03T06:25:00+00:00</published>
    <updated>2022-06-03T06:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When defining network addresses in <a href="https://www.rfc-editor.org/ien/ien19.txt">IEN 19</a> John Shoch said:</p>
<blockquote>
<p>Addresses must, therefore, be meaningful throughout the domain, and must be drawn from some uniform address space.</p>
</blockquote>
<p>But what is a domain? Welcome to the address scope discussion ;)</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA5%20-%20Address%20Scope.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Data Center Switching ASICs Tradeoffs]]></title>
    <link href="https://blog.ipspace.net/2022/06/data-center-switching-asic-tradeoffs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/data-center-switching-asic-tradeoffs/</id>
    <published>2022-06-02T06:01:00+00:00</published>
    <updated>2022-06-02T06:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A brief mention of Broadcom ASIC families in the <em><a href="/2022/05/network-hardware-disaggregation-2022/">Networking Hardware/Software Disaggregation in 2022</a></em> blog post triggered an interesting discussion of ASIC features and where one should use different ASIC families.</p>
<p>Like so many things in life, ASIC design is all about tradeoffs. Usually you&rsquo;re faced with a decision to either implement X (whatever X happens to be), or have high-performance product, or have a reasonably-priced product. It&rsquo;s very hard to get two out of three, and getting all three is beyond Mission Impossible.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/data-center-switching-asic-tradeoffs/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MLAG Deep Dive: System Overview]]></title>
    <link href="https://blog.ipspace.net/2022/06/mlag-deep-dive-overview/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/06/mlag-deep-dive-overview/</id>
    <published>2022-06-01T06:11:00+00:00</published>
    <updated>2022-06-01T06:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="/series/mlag/">Multi-Chassis Link Aggregation</a> (MLAG) &ndash; the ability to terminate a Port Channel/Link Aggregation Group on multiple switches &ndash; is one of the more convoluted<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> bridging technologies<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. After all, it&rsquo;s not trivial to persuade two boxes to behave like one and handle the myriad corner cases correctly.</p>
<p>In this series of deep dive blog posts, we&rsquo;ll explore the intricacies of MLAG, starting with the data plane considerations and the control plane requirements resulting from the data plane quirks. If you wonder why we need all that complexity, remember that Ethernet networks still try to emulate the <a href="/2015/02/lets-get-rid-of-thick-yellow-cable/">ancient thick yellow</a> cable that could <em>lose</em> some packets but could never <em>reorder</em> packets or deliver <em>duplicate</em> packets.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/06/mlag-deep-dive-overview/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[VXLAN-Focused Design Clinic in June 2022]]></title>
    <link href="https://blog.ipspace.net/2022/05/june-design-clinic/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/june-design-clinic/</id>
    <published>2022-05-31T06:39:00+00:00</published>
    <updated>2022-05-31T06:39:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>ipSpace.net subscribers are probably already familiar with the Design Clinic: a monthly Zoom call in which we discuss <a href="https://designclinic.ipspace.net/pages/submit/">real-life design- and technology challenges</a>. I started it in September 2021 and it quickly became reasonably successful; we covered <a href="https://designclinic.ipspace.net/">almost two dozen topics so far</a>.</p>
<p>Most of the challenges contributed for the <a href="https://designclinic.ipspace.net/posts/2022/06/">June 2022 session</a> were focused on VXLAN use cases (quite fitting considering I just updated the <a href="https://www.ipspace.net/VXLAN_Technical_Deep_Dive">VXLAN Technical Deep Dive</a> webinar), including:</p>
<ul>
<li>Can we implement Data Center Interconnect (DCI) with VXLAN? (Yes, but&hellip;)</li>
<li>Can we run VXLAN over SD-WAN (and does it make sense)? (Yes/No)</li>
<li>What happened to traditional MPLS/VPN Enterprise core and can we use VXLAN/EVPN instead? (Still there/Maybe)</li>
<li>Should we use routers or switches as data center WAN edge devices, and how do we integrate them with VXLAN/EVPN data center fabric? (Yes 😊)</li>
</ul>
<p>For more details, join us on June 6th. There&rsquo;s just a minor gotcha: you have to be an active <a href="https://www.ipspace.net/Subscription/">ipSpace.net subscriber</a> to do it.</p>
]]></content>
    <category term="design" />
    <category term="VXLAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Simple VLAN Example]]></title>
    <link href="https://blog.ipspace.net/2022/05/netsim-vlan-simple/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/netsim-vlan-simple/</id>
    <published>2022-05-30T05:57:00+00:00</published>
    <updated>2022-05-30T05:57:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I had no idea how convoluted VLANs could get until I tried to <a href="https://netlab.tools/module/vlan/">implement them in <em>netlab</em></a>.</p>
<p>We&rsquo;ll start with the simplest option: <a href="https://github.com/ipspace/netlab-examples/tree/master/VLAN/vlan-access-stretch">a single VLAN</a> stretched across two <del>bridges</del> switches with two Linux hosts connected to it. <em>netlab</em> can <a href="https://netlab.tools/module/vlan/#platform-support">configure VLANs</a> on Arista EOS, Cisco IOSv, Cisco Nexus OS, VyOS, Dell OS10, and Nokia SR Linux. We&rsquo;ll use the quickest (deployment-wise) option: Arista EOS on <em>containerlab</em>.</p>

<figure><img src="/2022/05/vlan-simple.png"
   alt="Simple VLAN topology"/><figcaption>
    <p>Simple VLAN topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/netsim-vlan-simple/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: ACI Terraform Scalability]]></title>
    <link href="https://blog.ipspace.net/2022/05/worth-reading-aci-terraform-scalability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/worth-reading-aci-terraform-scalability/</id>
    <published>2022-05-29T07:15:00+00:00</published>
    <updated>2022-05-29T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Using Terraform to deploy networking elements with an SDN controller that cannot replace the current state of a tenant with the desired state specified in a text file (because nobody ever wants to do that, right) sounds like a great idea&hellip; until you try to do it at scale.</p>
<p>Noël Boulene hit interesting scalability limits when trying to <a href="https://netmemo.github.io/post/aci-terraform-scale/">provision VLANs on Cisco ACI with Terraform</a>. If you&rsquo;re thinking about doing something similar, you REALLY SHOULD read his article.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Automation Report From 1958]]></title>
    <link href="https://blog.ipspace.net/2022/05/worth-reading-automation-report-1958/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/worth-reading-automation-report-1958/</id>
    <published>2022-05-28T07:02:00+00:00</published>
    <updated>2022-05-28T07:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Are you afraid the network automation will eat your job? You might have to worry if you&rsquo;re a VLAN-provisioning CLI jockey, but then you&rsquo;re not alone. <a href="https://en.wikipedia.org/wiki/Luddite">Textile workers</a> faces the same challenges in 19th century and <a href="https://economistwritingeveryday.com/2022/05/07/automation-report-from-1958/">automation report from 1958</a> the clerical workers were facing the same dilemma when the first computers were introduced.</p>
<p>Guess what: unemployment rate has been going up and down in the meantime (<a href="https://www.thebalance.com/unemployment-rate-by-year-3305506">US data</a>), but mostly due to various crisis. Automation had little impact.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Ugly Challenges of Using AI/ML in Networking]]></title>
    <link href="https://blog.ipspace.net/2022/05/video-ml-ai-ugly/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/video-ml-ai-ugly/</id>
    <published>2022-05-27T06:24:00+00:00</published>
    <updated>2022-05-27T06:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> concluded the <em><a href="https://www.ipspace.net/AI_and_ML_in_Networking">AI/ML in Networking</a></em> webinar with the <a href="https://my.ipspace.net/bin/get/AI/3.3%20-%20The%20Ugly%20Challenges.mp4?doccode=AI">ugly challenges of using AI/ML in networking</a>. I won&rsquo;t spoil the fun, you REALLY SHOULD watch the video (keeping in mind he was trying to stay polite and diplomatic).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/3.3%20-%20The%20Ugly%20Challenges.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Resolverless DNS]]></title>
    <link href="https://blog.ipspace.net/2022/05/worth-reading-resolverless-dns/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/worth-reading-resolverless-dns/</id>
    <published>2022-05-26T06:09:00+00:00</published>
    <updated>2022-05-26T06:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Every network engineer should be familiar with the DNS basics &ndash; after all, all network failures are caused by DNS&hellip; unless it&rsquo;s BGP.</p>
<p>The <a href="https://www.potaroo.net/ispcol/2022-05/resolverless.html">May 2022 ISP Column</a> by Geoff Huston is an excellent place to brush up on your DNS basics and learn about new ideas, including a clever one to push DNS entries that will be needed in the future to a web client through a DNS-over-HTTPS session.</p>
]]></content>
    <category term="DNS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ipSpace.net Blog Is in a Public GitHub Repository]]></title>
    <link href="https://blog.ipspace.net/2022/05/ipspace-blog-github/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/ipspace-blog-github/</id>
    <published>2022-05-25T06:03:00+00:00</published>
    <updated>2022-05-25T06:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I <a href="/2020/03/ipspace-blog-runs-on-hugo/">migrated my blog to Hugo</a> two years ago, and never regretted the decision. At the same time I implemented version control with Git, and started using GitHub (and GitLab for a convoluted set of reasons) to host the blog repository.</p>
<p>After hesitating for way too long, I decided to go one step further and made the <a href="https://github.com/ipspace/blog">blog repository</a> public. The next time a blatant error of mine annoys you fork it, fix my blunder(s), and submit a pull request (or write a comment and I&rsquo;ll fix stuff like I did in the past).</p>
]]></content>
    <category term="training" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Simplify and Standardize Mantra Encounters Reality]]></title>
    <link href="https://blog.ipspace.net/2022/05/network-automation-simplification-reality/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/network-automation-simplification-reality/</id>
    <published>2022-05-24T06:04:00+00:00</published>
    <updated>2022-05-24T06:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;m usually telling networking engineers seriously considering whether to automate their networks to cleanup their design and simplify the network services first.</p>
<blockquote>
<p>The only reasonable way forward is to simplify your processes – get rid of all corner cases, all special deals that are probably costing you more than you earned on them, all one-off kludges to support badly-designed applications – and once you get that done, you might realize you don’t need a magic platform anymore, because you can run your simpler network using traditional tools.</p>
</blockquote>
<p>While <a href="/2022/02/cleanup-before-automation/">seasoned automation practitioners</a> agree with me, a lot of enterprise engineers face a different reality. Straight from a source that wished to remain anonymous&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/network-automation-simplification-reality/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Largest netlab Topology I've Seen So Far]]></title>
    <link href="https://blog.ipspace.net/2022/05/largest-netsim-topology-so-far/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/largest-netsim-topology-so-far/</id>
    <published>2022-05-23T06:41:00+00:00</published>
    <updated>2022-05-23T06:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I stumbled upon a blog post by <a href="https://dipsingh.github.io/about/">Diptanshu Singh</a> discussing whether <a href="https://dipsingh.github.io/IS-IS-Flooding/">IS-IS flooding in highly meshed fabric</a> is as much of a problem as some people would like to make it. I won&rsquo;t spoil the fun, read his blog post ;)</p>
<p>The really interesting part (for me) was the topology he built with <em><a href="https://netlab.tools/">netlab</a></em> and <em><a href="https://containerlab.dev/">containerlab</a></em>: seven leaf-and-spine fabrics connected with WAN links and superspines for a total of 68 instances of Arista cEOS. I hope he automated building the topology file (I&rsquo;m a bit sorry we haven&rsquo;t implemented <a href="https://github.com/ipspace/netlab/discussions/151">composite topologies</a> yet); after that all he had to do was to execute <strong><a href="https://netlab.tools/netlab/up/">netlab up</a></strong> to get a fully-configured lab running IS-IS.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Typical Kubernetes Inter-Pod Traffic Walk]]></title>
    <link href="https://blog.ipspace.net/2022/05/video-kubernetes-inter-pod-traffic/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/video-kubernetes-inter-pod-traffic/</id>
    <published>2022-05-20T06:26:00+00:00</published>
    <updated>2022-05-20T06:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> did his best to <a href="https://my.ipspace.net/bin/get/Kubernetes/1.5%20-%20Understanding%20Pods.mp4?doccode=Kubernetes">explain the concept of pods</a> in the <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar, but we were still a bit confused. Next step: <a href="https://my.ipspace.net/bin/get/Kubernetes/1.6%20-%20Typical%20Inter-Pod%20Traffic%20Walk.mp4?doccode=Kubernetes">let&rsquo;s talk about typical inter-pod traffic scenario</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/1.6%20-%20Typical%20Inter-Pod%20Traffic%20Walk.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is OpenFlow Still Kicking?]]></title>
    <link href="https://blog.ipspace.net/2022/05/openflow-still-kicking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/openflow-still-kicking/</id>
    <published>2022-05-19T06:31:00+00:00</published>
    <updated>2022-05-20T10:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Continuing the <em><a href="/2022/05/network-hardware-disaggregation-2022/">how real is the decade-old SDN hype</a></em> thread, let&rsquo;s try to figure out if anyone still uses OpenFlow. OpenFlow was <a href="/2016/12/response-on-death-of-openflow/">declared dead</a> by the troubadour of the SDN movement in 2016, so it looks like the question is moot. However, nothing ever dies in networking (including <a href="/2022/04/hop-by-hop-pmtud/">hop-by-hop IPv6 extension headers</a>), so here we go.</p>
<h3 id="why-would-one-use-openflow">Why Would One Use OpenFlow?</h3>
<p>Ignoring for the moment the embarrassing <em><a href="/2011/10/openflow-and-state-explosion/">we solved the global load balancing</a> with <a href="/2022/03/flow-based-forwarding/">per-flow forwarding</a></em> academic blunders<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, OpenFlow wasn&rsquo;t the worst tool for programming forwarding exceptions (ACL/PBR) into TCAM.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/openflow-still-kicking/'>Read more &hellip;</a></div>]]></content>
    <category term="OpenFlow" />
  </entry>
  <entry>
    <title type="html"><![CDATA[SDN Controller Taxonomy]]></title>
    <link href="https://blog.ipspace.net/2022/05/sdn-controller-taxonomy/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/sdn-controller-taxonomy/</id>
    <published>2022-05-18T06:55:00+00:00</published>
    <updated>2022-05-18T06:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Even though Gartner declared SDN <em>obsolete before plateau</em> in their 2021 <a href="https://blogs.gartner.com/andrew-lerner/2021/10/11/networking-hype-cycle-2021/">Networking Hype Cycle</a>, most vendor marketers never got the memo. Anything that interacts with network devices in any way<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> is called an SDN controller. Let&rsquo;s try to throw some minimal amount of taxonomy into that mess based on how these controllers interact with network elements (physical or virtual).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/sdn-controller-taxonomy/'>Read more &hellip;</a></div>]]></content>
    <category term="SDN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Ethernet Encryptor Market Overview (2022 Edition)]]></title>
    <link href="https://blog.ipspace.net/2022/05/ethernet-encryptor-market-overview/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/ethernet-encryptor-market-overview/</id>
    <published>2022-05-17T06:25:00+00:00</published>
    <updated>2022-05-17T06:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Christoph Jaggi, the author of <em><a href="https://www.ipspace.net/Ethernet_Encryption">Ethernet Encryption</a></em> webinar, published a new version of <a href="https://www.uebermeister.com/fileadmin/documents/uebermeister.ch/Dokumente/2022_Market_OverviewLayer_2_Encryptors_Carrier_Ethernet_MPLS_IP__short__.pdf">Ethernet Encryptor Market Overview</a> including:</p>
<ul>
<li>Network standards and platforms</li>
<li>Data plane encryption</li>
<li>Control plane security</li>
<li>Key- and system management</li>
<li>Relevant approvals</li>
<li>Vendors and products, including detailed feature support matrices.</li>
</ul>
]]></content>
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Networking Hardware/Software Disaggregation in 2022]]></title>
    <link href="https://blog.ipspace.net/2022/05/network-hardware-disaggregation-2022/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/network-hardware-disaggregation-2022/</id>
    <published>2022-05-16T06:36:00+00:00</published>
    <updated>2022-05-17T14:31:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I started preparing the materials for the <em>SDN &ndash; 10 years later</em> webinar, and plan to publish a series of blog posts documenting what I found on various aspects of what could be considered SDN<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. I&rsquo;m pretty sure I missed quite a few things; your comments are most welcome.</p>
<p>Let&rsquo;s start with an easy one: software/hardware disaggregation in network devices.</p>
<h3 id="open-source-network-operating-systems">Open-Source Network Operating Systems</h3>
<p>I found several widely-used open-source<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> network operating systems:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/network-hardware-disaggregation-2022/'>Read more &hellip;</a></div>]]></content>
    <category term="SDN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Using LEO and GEO Satellite Internet]]></title>
    <link href="https://blog.ipspace.net/2022/05/worth-reading-leo-geo-satellite-internet/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/worth-reading-leo-geo-satellite-internet/</id>
    <published>2022-05-14T07:51:00+00:00</published>
    <updated>2022-05-14T07:51:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Another interesting column by Geoff Huston: <a href="https://www.potaroo.net/ispcol/2022-04/leogeo.html">performance of TCP congestion control protocols when using Low-Earth Orbit or Geosynchronous Orbit satellites for Internet access</a>.</p>
]]></content>
    <category term="Internet" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Network Address Assignments]]></title>
    <link href="https://blog.ipspace.net/2022/05/video-network-address-assignment/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/video-network-address-assignment/</id>
    <published>2022-05-13T06:44:00+00:00</published>
    <updated>2022-05-13T06:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The last part of the <a href="https://my.ipspace.net/bin/list?id=Net101#ADDR">Network Addressing</a> section of <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> webinar covered other addressing-related topics starting with <a href="https://my.ipspace.net/bin/get/Net101/NA4.1%20-%20Address%20Assignments.mp4?doccode=Net101">address assignment mechanisms</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA4.1%20-%20Address%20Assignments.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is Fibre Channel Still a Thing?]]></title>
    <link href="https://blog.ipspace.net/2022/05/fibre-channel-2022/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/fibre-channel-2022/</id>
    <published>2022-05-12T06:26:00+00:00</published>
    <updated>2022-05-12T06:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another &ldquo;<em>do these things ever disappear?</em>&rdquo; question from Enrique Vallejo:</p>
<blockquote>
<p>Regarding storage, is Fibre Channel still a thing in 2022, or most people employ SATA over Ethernet and NVMe over fabrics?</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: Yes. So is COBOL.</p>
<p>To understand why some people still use Fibre Channel, we have to start with an observation made by Howard Marks: &ldquo;<em>Storage is different.</em>&rdquo; It&rsquo;s OK to drop a packet in transit. It&rsquo;s NOT OK to lose data at rest.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/fibre-channel-2022/'>Read more &hellip;</a></div>]]></content>
    <category term="SAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New in netlab: VLANs, Hardware Labs, VRF Loopbacks]]></title>
    <link href="https://blog.ipspace.net/2022/05/netsim-release-1.2.2/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/netsim-release-1.2.2/</id>
    <published>2022-05-11T06:36:00+00:00</published>
    <updated>2022-05-11T06:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s a short list of major goodies included in netsim-tools release 1.2.2:</p>
<ul>
<li><a href="https://netlab.tools/module/vlan/">Access VLANs, VLAN trunks and native VLANs</a> implemented on Cisco IOS, Arista EOS, VyOS, and Dell OS10 (VyOS and OS10 support contributed by Stefano Sasso)</li>
<li><a href="/2022/05/netsim-hardware-lab/">Hardware labs</a> implemented with <a href="https://netlab.tools/providers/"><em>external</em> topology provider</a> (contributed by Stefano Sasso)</li>
<li><a href="https://netlab.tools/module/vrf/#vrf-loopback">VRF loopback interfaces</a> (contributed by Stefano Sasso)</li>
</ul>
<p>More details in the <a href="https://netlab.tools/release/1.2/">release notes</a>.</p>
<div  class="info">
In release 1.3, we renamed <em>netsim-tools</em> to <em>netlab</em>.
</div>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IPv6 Unique Local Addresses (ULA) Made Useless]]></title>
    <link href="https://blog.ipspace.net/2022/05/ipv6-ula-made-useless/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/ipv6-ula-made-useless/</id>
    <published>2022-05-10T06:30:00+00:00</published>
    <updated>2022-05-10T06:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Recent news from the <em>Department of Unintended Consequences</em>: <a href="https://datatracker.ietf.org/doc/html/rfc6724">RFC 6724</a> changed the IPv4/IPv6 source/destination address selection rules a decade ago, and it seems that the common interpretation of those rules makes IPv6 Unique Local Addresses (ULA) <em>less preferred</em> than the IPv4 addresses, at least according to the recent <em><a href="https://datatracker.ietf.org/doc/html/draft-buraglio-v6ops-ula-05">Unintended Operational Issues With ULA</a></em> draft by <a href="https://www.ipspace.net/Expert:Nick_Buraglio">Nick Buraglio</a>, Chris Cummings and <a href="https://www.ipspace.net/Author:Russ_White">Russ White</a>.</p>
<p><strong>End result</strong>: If you use only ULA addresses in your dual-stack network<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, IPv6 won&rsquo;t be used <strong>at all</strong>. Even worse, if you use ULA addresses together with global IPv6 addresses (GUA) as a fallback mechanism, there might be hidden gotchas that you won&rsquo;t discover until you turn off IPv4. Looks like someone did a Truly Great Job, and ULA stands for Useless Local Addresses.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/ipv6-ula-made-useless/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Living with Small Forwarding Tables]]></title>
    <link href="https://blog.ipspace.net/2022/05/living-small-forwarding-tables/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/living-small-forwarding-tables/</id>
    <published>2022-05-09T06:46:00+00:00</published>
    <updated>2022-05-09T06:46:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine working for a mid-sized networking vendor sent me an intriguing  question:</p>
<blockquote>
<p>We have a product using an old ASIC that has 12K forwarding entries, and would like to extend its lifetime. I know you were mentioning some useful tricks, would you happen to remember what they were?</p>
</blockquote>
<p>This challenge has no perfect solution, but there are at least three tricks I&rsquo;ve encountered so far (as always, comments are most welcome):</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/living-small-forwarding-tables/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The State of fq_codel (and Bufferbloat)]]></title>
    <link href="https://blog.ipspace.net/2022/05/worth-reading-state-fq-codel-bufferbloat/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/worth-reading-state-fq-codel-bufferbloat/</id>
    <published>2022-05-08T07:20:00+00:00</published>
    <updated>2022-05-08T07:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Erik Auerswald sent me a pointer to a blog post by Dave Taht: <a href="https://blog.cerowrt.org/post/state_of_fq_codel/">The state of fq_codel and sch_cake worldwide</a>. It&rsquo;s so nice to see what a huge impact Dave made since he started the <a href="https://www.bufferbloat.net/projects/">Bufferbloat project</a>.</p>
<p><strong>Hint</strong>: if you have no idea what Bufferbloat or fq_codel are, you REALLY SHOULD explore Dave&rsquo;s web site.</p>
]]></content>
    <category term="worth reading" />
    <category term="QoS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Watching: Source Routing on the Edge (iNOG::14v)]]></title>
    <link href="https://blog.ipspace.net/2022/05/worth-reading-source-routing-proxy-servers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/worth-reading-source-routing-proxy-servers/</id>
    <published>2022-05-07T07:10:00+00:00</published>
    <updated>2022-05-07T07:10:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Most large content providers use some sort of egress traffic engineering on edge web proxy/caching servers to optimize the end-user experience (avoid congested transit autonomous systems) and link utilization on egress links.</p>
<p>I was planning to write a blog post about the tricks they use for ages, and never found time to do it&hellip; but if you don&rsquo;t mind watching a video, the <a href="https://youtu.be/T7sOAvzyqZ4">Source Routing on the Edge</a> presentation Oliver Herms had at iNOG::14v does a pretty good job explaining the concepts and a particular implementation.</p>
]]></content>
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Practical Aspects of IPv6 Security]]></title>
    <link href="https://blog.ipspace.net/2022/05/video-practical-aspects-ipv6-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/video-practical-aspects-ipv6-security/</id>
    <published>2022-05-06T06:41:00+00:00</published>
    <updated>2022-05-06T06:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Christopher_Werny">Christopher Werny</a> has tons of hands-on experience with IPv6 security (or lack thereof), and described some of his findings in the <a href="https://my.ipspace.net/bin/get/IPv6Sec/E3%20-%20Practical%20Aspects.mp4?doccode=IPv6Sec&amp;start=89">Practical Aspects of IPv6 Security</a> part of <a href="https://www.ipspace.net/IPv6_security">IPv6 security webinar</a>, including:</p>
<ul>
<li>Impact of dual-stack networks</li>
<li>Security implications of IPv6 address planning</li>
<li>Isolation on routing layer and strict filtering</li>
<li>IPv6-related requirements for Internet- or MPLS uplinks</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/IPv6Sec/E3%20-%20Practical%20Aspects.mp4?doccode=IPv6Sec">Watch the video</a></div>
<div  class="info">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Configure Hardware Labs with netlab]]></title>
    <link href="https://blog.ipspace.net/2022/05/netsim-hardware-lab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/netsim-hardware-lab/</id>
    <published>2022-05-05T06:57:00+00:00</published>
    <updated>2022-05-05T06:57:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://netlab.tools/">netlab</a></em> started as a <a href="/2020/12/build-labs-netsim-tools/">simple tool to create virtual lab topologies</a> (I hated creating <em>Vagrantfiles</em> describing complex topologies), but when it morphed into an ever-growing &ldquo;<em>configure all the boring stuff in your lab from a high-level description</em>&rdquo;  thingie, it gave creative networking engineers an interesting idea: could we use this tool to do all the stuff we always hated doing in our physical labs?</p>
<p>My answer was always &ldquo;<em>of course, please feel free to submit a PR</em>&rdquo;, and <a href="http://stefano.dscnet.org/">Stefano Sasso</a> did just that: he implemented <a href="https://netlab.tools/providers/"><em>external</em>  orchestration provider</a> that allows you to use <em>netlab</em> to configure IPv4, IPv6, VLANs, VRFs, VXLAN, LLDP, BFD, OSPFv2, OSPFv3, EIGRP, IS-IS, BGP, MPLS, BGP-LU, L3VPN (VPNv4 + VPNv6), EVPN, SR-MPLS, or SRv6 on <a href="https://netlab.tools/platforms/">supported hardware devices</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/netsim-hardware-lab/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Modern IBGP Design with AddPath and ORR]]></title>
    <link href="https://blog.ipspace.net/2022/05/modern-bgp-design-addpath-orr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/modern-bgp-design-addpath-orr/</id>
    <published>2022-05-04T07:55:00+00:00</published>
    <updated>2022-05-04T07:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Nicola Modena created an <a href="http://blog.modena.to/2022/04/modern-bgp-design.html">interesting presentation</a> describing IBGP designs using BGP <a href="/2021/12/bgp-multipath-addpath/">Additional Paths</a> and <a href="/2021/10/bgp-optimal-route-reflection/">Optimal Route Reflection functionality</a></p>
<p>Hope you&rsquo;ll enjoy the presentation as much as I did&hellip; and make sure you understand <a href="/2021/10/circular-dependencies-considered-harmful/">potential circular dependencies</a> you might be introducing when running a route reflector as a virtual machine.</p>
]]></content>
    <category term="BGP" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[What Happened to FabricPath and Its Friends?]]></title>
    <link href="https://blog.ipspace.net/2022/05/cisco-fabric-path-and-friends/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/05/cisco-fabric-path-and-friends/</id>
    <published>2022-05-03T06:59:00+00:00</published>
    <updated>2022-05-03T06:59:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Continuing the <a href="/2022/04/x25-still-alive/"><em>what happened to old technologies</em> saga</a>, here&rsquo;s <a href="/2022/04/do-you-care-about-mpls/#1137">another question</a> by Enrique Vallejo:</p>
<blockquote>
<p>Are FabricPath, TRILL or SPB still alive, or has everyone moved to VXLAN? Are they worth studying?</p>
</blockquote>
<p>TL&amp;DR: Barely. Yes. No.</p>
<p><a href="/2010/08/how-many-large-scale-bridging-standards/">Layer-2 Fabric craziness exploded in 2010</a> with vendors playing the <a href="/2011/03/dont-lie-about-proprietary-protocols/">usual misinformation games</a> that eventually resulted in totally fragmented market full of partial- or proprietary solutions. At one point in time, some HP data center switches supported only TRILL, and other data center switches <em>from the same company</em> supported only SPB.</p>
<p>Now for individual technologies:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/05/cisco-fabric-path-and-friends/'>Read more &hellip;</a></div>]]></content>
    <category term="fabric" />
    <category term="data center" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: The Long Tail of AI/ML Problems]]></title>
    <link href="https://blog.ipspace.net/2022/04/video-ml-ai-bad-parts/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/video-ml-ai-bad-parts/</id>
    <published>2022-04-29T06:01:00+00:00</published>
    <updated>2022-04-29T06:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s time for the <em>bad</em> part of <em><a href="https://www.ipspace.net/AI_and_ML_in_Networking">AI/ML in Networking: Good, Bad, and Ugly</a></em> webinar. After <a href="/2022/02/video-ml-in-networking/">describing the potential AI/ML wins</a>, <a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> walked us through the <a href="https://my.ipspace.net/bin/get/AI/3.2%20-%20The%20Long%20Tail%20of%20Problems%20%28The%20Bad%29.mp4?doccode=AI">long tail of AI/ML problems</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/3.2%20-%20The%20Long%20Tail%20of%20Problems%20%28The%20Bad%29.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Creating MPLS/VPN Labs With netlab]]></title>
    <link href="https://blog.ipspace.net/2022/04/netsim-mpls-vpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/netsim-mpls-vpn/</id>
    <published>2022-04-28T06:30:00+00:00</published>
    <updated>2022-04-28T06:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Two week ago I described how to create a simple VRF Lite lab with <em>netlab</em> <a href="https://netlab.tools/module/vrf/">VRF configuration module</a>. Adding MPLS/VPN to the mix and creating a full-blown MPLS/VPN lab is a piece of cake. In this blog post we&rsquo;ll build a simple topology with two VRFs (<em>red</em> and <em>blue</em>) and two PE-routers:</p>

<figure><img src="/2022/04/mpls-vpn-simple.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/netsim-mpls-vpn/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS VPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is X.25 Still Alive?]]></title>
    <link href="https://blog.ipspace.net/2022/04/x25-still-alive/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/x25-still-alive/</id>
    <published>2022-04-27T07:04:00+00:00</published>
    <updated>2022-04-27T07:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Enrique Vallejo <a href="/2022/04/do-you-care-about-mpls/#1137">asked an interesting question</a> a while ago:</p>
<blockquote>
<p>When was X.25 official declared dead? Note that the wikipedia claims that it is still in use in parts of the world.</p>
</blockquote>
<p><a href="https://en.wikipedia.org/wiki/X.25">Wikipedia is probably right</a>, and had several encounters with X.25 that would corroborate that claim. If you happen to have more up-to-date information, please leave a comment.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/x25-still-alive/'>Read more &hellip;</a></div>]]></content>
    <category term="WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Detecting Byzantine Link Failures with SNMP]]></title>
    <link href="https://blog.ipspace.net/2022/04/detecting-link-loss-with-snmp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/detecting-link-loss-with-snmp/</id>
    <published>2022-04-26T07:03:00+00:00</published>
    <updated>2022-04-26T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers has to deal with a crappy Network Termination Equipment (NTE)<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> that does not drop local link carrier<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> when the remote link fails. Here&rsquo;s the original ASCII art describing the topology:</p>
<pre tabindex="0"><code>PE---------------NTE--FW---NMS 
  &lt;--------IP--------&gt;
</code></pre><p>He&rsquo;d like to use interface SNMP counters on the firewall to detect the PE-NTE link failure. He&rsquo;s using static default route toward PE on FW, and tried to detect the link failure with <strong>ifOutDiscards</strong> counter.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/detecting-link-loss-with-snmp/'>Read more &hellip;</a></div>]]></content>
    <category term="SNMP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Multi-Platform Custom Configuration Templates]]></title>
    <link href="https://blog.ipspace.net/2022/04/multi-platform-custom-netsim-config/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/multi-platform-custom-netsim-config/</id>
    <published>2022-04-25T07:07:00+00:00</published>
    <updated>2022-04-25T07:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <em><a href="/2021/12/bgp-anycast-lab/">Building a BGP Anycast Lab</a></em> I described how you could use custom configuration templates to extend the <em>netlab</em> functionality.</p>
<p>That example used Cisco IOS&hellip; but what if you want to test the same functionality on multiple platforms? <em><a href="https://netlab.tools/">netlab</a></em> provides a nice trick: the <a href="https://netlab.tools/groups/#custom-configuration-templates">custom configuration template</a> could point to a directory with platform-specific templates. Let me show you how that works&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/multi-platform-custom-netsim-config/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OMG: Hop-by-Hop Path MTU Discovery]]></title>
    <link href="https://blog.ipspace.net/2022/04/hop-by-hop-pmtud/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/hop-by-hop-pmtud/</id>
    <published>2022-04-23T06:49:00+00:00</published>
    <updated>2022-04-23T06:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Straight from the &ldquo;Bad Ideas Never Die&rdquo; (see also RFC 1925 Rule 11) department: Geoff Huston <a href="https://www.potaroo.net/ispcol/2022-04/hopbyhop.html">described a proposal to use hop-by-hop IPv6 extension headers to implement Path MTU Discovery</a>. In his words:</p>
<blockquote>
<p>It is a rare situation when you can create an outcome from two somewhat broken technologies where the outcome is not also broken.</p>
</blockquote>
<p>IETF should put rules in place similar to the ones used by the patent office (Thou Shalt Not Patent <a href="https://en.wikipedia.org/wiki/Perpetual_motion">Perpetual Motion Machine</a>), but unfortunately we&rsquo;re way past that point. Back to Geoff:</p>
<blockquote>
<p>It appears that the IETF has decided that volume is far easier to achieve than quality. These days, what the IETF is generating as RFCs is pretty much what the IETF accused the OSI folk of producing back then: Nothing more than voluminous paperware about vapourware!</p>
</blockquote>
]]></content>
    <category term="IPv6" />
    <category term="Internet" />
    <category term="MTU" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Understanding Kubernetes Pods]]></title>
    <link href="https://blog.ipspace.net/2022/04/video-kubernetes-understanding-pods/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/video-kubernetes-understanding-pods/</id>
    <published>2022-04-22T06:48:00+00:00</published>
    <updated>2022-04-22T06:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Pods are a basic building block of any Kubernetes-based deployment&hellip; but what exactly are they and how are they related to Kubernetes networking? <a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> unraveled that mystery in the <a href="https://my.ipspace.net/bin/get/Kubernetes/1.5%20-%20Understanding%20Pods.mp4?doccode=Kubernetes">Understanding Pods</a> video (part of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar)</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/1.5%20-%20Understanding%20Pods.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New in netlab: More MPLS and VRFs, Dell OS10, Cumulus 5.0 on Containerlab]]></title>
    <link href="https://blog.ipspace.net/2022/04/netsim-tools-release-1.2.1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/netsim-tools-release-1.2.1/</id>
    <published>2022-04-21T07:41:00+00:00</published>
    <updated>2022-04-21T07:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I already mentioned the <a href="/2022/04/netsim-tools-better-with-gui/">netsim-tools Easter Egg</a>, here are the other cool features shipping in release 1.2.1:</p>
<ul>
<li><a href="https://netlab.tools/labs/dellos10/">Dell OS10 on <em>libvirt</em></a> (including BGP, OSPFv2, OSPFv3 and VRF Lite) by Stefano Sasso</li>
<li><a href="https://netlab.tools/platforms/#supported-configuration-modules">VRFs, MPLS, and MPLS/VPN support</a> on Mikrotik RouterOS and VyOS by Stefano Sasso</li>
<li><a href="https://netlab.tools/platforms/#supported-virtualization-providers">Containerlab support for Cumulus 5.0 with NVUE</a> including <a href="https://netlab.tools/module/vrf/#module-vrf-platform-support">Simple VRF-Lite</a> by Julien Dhaille</li>
</ul>
<div  class="info">
In release 1.3, we renamed <em>netsim-tools</em> to <em>netlab</em>.
</div>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Network Digital Twins Work Best in PowerPoint]]></title>
    <link href="https://blog.ipspace.net/2022/04/digital-twin-powerpoint/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/digital-twin-powerpoint/</id>
    <published>2022-04-20T06:07:00+00:00</published>
    <updated>2022-04-20T06:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine sent me the following question a few months ago:</p>
<blockquote>
<p>I thought you might know the best way (currently) to create a digital clone of parts of a production network? The objective is to test changes against a test network as part of a CI/CD process. Ideally, there would be an automation that could replicate selected parts of a production network in a test network.</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: Sounds great, but you might be solving the wrong problem.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/digital-twin-powerpoint/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Everything Is Better with a GUI (even netlab)]]></title>
    <link href="https://blog.ipspace.net/2022/04/netsim-tools-better-with-gui/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/netsim-tools-better-with-gui/</id>
    <published>2022-04-19T06:53:00+00:00</published>
    <updated>2023-04-27T09:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Some people think that <a href="https://www.youtube.com/watch?v=0KXoBcQER_0">everything is better with Bluetooth</a> (or maybe it&rsquo;s AI these days). They&rsquo;re clearly wrong; according to the ancient wisdom of product managers working for networking vendors, everything is better with a GUI.</p>
<p>Now imagine adding network topology visualizer and GUI-based device access with in-browser SSH to an intent-based infrastructure-as-code virtual network function labbing tool. How&rsquo;s that for a Bullshit Bingo winner<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>?</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/netsim-tools-better-with-gui/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: New Linux Command Line Tools]]></title>
    <link href="https://blog.ipspace.net/2022/04/worth-reading-list-new-cli-tools/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/worth-reading-list-new-cli-tools/</id>
    <published>2022-04-16T07:22:00+00:00</published>
    <updated>2022-04-16T07:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Julia Evans published a <a href="https://jvns.ca/blog/2022/04/12/a-list-of-new-ish--command-line-tools/">long list of new(ish) Linux command line tools</a>. For example, did you ever want to have directory listing in nicely formatted JSON? How about <code>ls -l | jc --ls | jq .</code>?</p>
<p>Quite a few of these tools also work on Mac and can be installed with HomeBrew. Some are written in a scripting language, so you could (in theory) also use them on Windows (without WSL).</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Challenges of Managed SD-WAN Services]]></title>
    <link href="https://blog.ipspace.net/2022/04/video-sdwan-services-challenges/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/video-sdwan-services-challenges/</id>
    <published>2022-04-15T06:17:00+00:00</published>
    <updated>2022-04-15T06:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When I published a link to the <em><a href="/2022/03/mpls-vpn-too-complex/">Is MPLS/VPN Too Complex?</a></em> blog post to LinkedIn, someone asked whether I&rsquo;m skeptical about service provider SD-WAN services due to lack of skills, and <a href="https://www.linkedin.com/in/kristijan-taskovski/">Kristijan Taskovski</a> quickly identified the root cause in his reply:</p>
<blockquote>
<p>The argument of a lack of skill is only one that is perpetuated by businesses. It&rsquo;s not perpetuated by engineers. People that are trained, honed, and knowledgeable are expensive. Expense is the number one enemy for a business.</p>
</blockquote>
<p>That&rsquo;s exactly why I think most managed SD-WAN services will be a dismal failure.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/video-sdwan-services-challenges/'>Read more &hellip;</a></div>]]></content>
    <category term="SD-WAN" />
    <category term="service providers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Telephone System Is a Bad Example of Hierarchical Addresses]]></title>
    <link href="https://blog.ipspace.net/2022/04/telephone-system-hierarchical-addresses/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/telephone-system-hierarchical-addresses/</id>
    <published>2022-04-14T06:24:00+00:00</published>
    <updated>2022-04-14T06:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Networking engineers proposing strict hierarchical addressing scheme as a solution to global BGP table explosion often cite the international telephone system numbering plan (<a href="https://en.wikipedia.org/wiki/E.164">E.164</a>) as a perfect example of an addressing plan that uses hierarchy to minimize routing table sizes. Even more, widespread mobile roaming and <a href="https://en.wikipedia.org/wiki/Local_number_portability">local number portability</a> indicate that we could solve IP mobility and multihoming if only <em>insert-your-favorite-opinion-here</em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/telephone-system-hierarchical-addresses/'>Read more &hellip;</a></div>]]></content>
    <category term="Internet" />
  </entry>
  <entry>
    <title type="html"><![CDATA[AWS Automatic EC2 Instance Recovery]]></title>
    <link href="https://blog.ipspace.net/2022/04/aws-automatic-instance-recovery/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/aws-automatic-instance-recovery/</id>
    <published>2022-04-13T06:42:00+00:00</published>
    <updated>2022-04-13T06:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>On March 30th 2022, AWS <a href="https://aws.amazon.com/about-aws/whats-new/2022/03/amazon-ec2-default-automatic-recovery/">announced</a> automatic recovery of EC2 instances. Does that mean that AWS got feature-parity with VMware High Availability, or that VMware got it right from the very start? No and No.</p>
<h3 id="automatic-instance-recover-is-not-high-availability">Automatic Instance Recover Is Not High Availability</h3>
<p>Reading the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html">AWS documentation</a> (as opposed to the feature announcement) quickly reveals a caveat or two. The automatic recovery is performed <em>if an instance becomes impaired because of an underlying hardware failure or a problem that requires AWS involvement to repair</em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/aws-automatic-instance-recovery/'>Read more &hellip;</a></div>]]></content>
    <category term="AWS" />
    <category term="virtualization" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Keep Blogging, Some of Us Still Read]]></title>
    <link href="https://blog.ipspace.net/2022/04/keep-blogging/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/keep-blogging/</id>
    <published>2022-04-12T07:46:00+00:00</published>
    <updated>2022-04-12T07:46:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I stumbled upon a sad tweet a few days ago&hellip;</p>

<figure><img src="/2022/04/tweet-blogging.jpg"/>
</figure>
<p>&hellip; and not surprisingly, a lot of people chimed in saying &ldquo;<em>don&rsquo;t give up, we still prefer reading</em>&rdquo;. Unfortunately, it does seem like the amount of worthy content is constantly decreasing, and way too many quality blogs disappeared over the years, so I&rsquo;ll try to lift the veil of depression a bit ;)</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/keep-blogging/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Creating VRF Lite Labs With netlab]]></title>
    <link href="https://blog.ipspace.net/2022/04/netsim-vrf-lite/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/netsim-vrf-lite/</id>
    <published>2022-04-11T06:30:00+00:00</published>
    <updated>2022-04-11T06:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I always found VRF lab setups a chore. On top of the usual IPAM tasks you have to create VRFs, assign route targets and route distinguishers, do that on every PE-router in your lab&hellip; before you can start working on interesting things.</p>
<p>I tried to remove as much friction as I could with the <em>netlab</em> <a href="https://netlab.tools/module/vrf/">VRF configuration module</a> &ndash; let me walk you through a few simple examples<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> which will also serve to <a href="/2022/04/netsim-vrf-lite/#differences">illustrate the VRF configuration differences between Cisco IOS and Arista EOS</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/netsim-vrf-lite/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS VPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Full-Stack Network Automation]]></title>
    <link href="https://blog.ipspace.net/2022/04/worth-reading-full-stack-network-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/worth-reading-full-stack-network-automation/</id>
    <published>2022-04-10T08:33:00+00:00</published>
    <updated>2022-04-10T08:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Lívio Zanol Puppim published a series of blog posts describing a <a href="https://livio.zanol.com.br/full-stack-it-automation-part-1">full-stack network automation</a>, including GitOps with GitLab, handling secrets with Hashicorp Vault, using Ansible and AWX to run automation scripts, continuous integration with Gitlab CI Runner, and topped it off with a REST API and React-based user interface.</p>
<p>You might not want to use the exact same components, but it&rsquo;s probably worthwhile going through his solution and <a href="https://github.com/liviozanol/full-stack_automation">explore the source code</a>. He&rsquo;s also looking for any comments or feedback you might have on how to improve what he did.</p>
]]></content>
    <category term="automation" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The AI Illusion]]></title>
    <link href="https://blog.ipspace.net/2022/04/worth-reading-ai-illusion/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/worth-reading-ai-illusion/</id>
    <published>2022-04-09T07:20:00+00:00</published>
    <updated>2022-04-09T07:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://rule11.tech/">Russ White</a>&rsquo;s Weekend Reads are full of gems, including a recent pointer to the <a href="https://mindmatters.ai/2022/03/the-ai-illusion-state-of-the-art-chatbots-arent-what-they-seem/">AI Illusion – State-of-the-Art Chatbots Aren’t What They Seem</a> article. It starts with &ldquo;<em>Artificial intelligence is an oxymoron. Despite all the incredible things computers can do, they are still not intelligent in any meaningful sense of the word.</em>&rdquo; and it only gets better.</p>
<p>While the article focuses on natural language processing (GPT-3 model), I see no reason why we should expect better performance from AI in networking (see also: <em><a href="https://www.ipspace.net/AI_and_ML_in_Networking">AI/ML in Networking &ndash; The Good, the Bad, and the Ugly</a></em>).</p>
]]></content>
    <category term="AI" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: IPv6 Trust Model]]></title>
    <link href="https://blog.ipspace.net/2022/04/video-ipv6-trust-model/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/video-ipv6-trust-model/</id>
    <published>2022-04-08T07:06:00+00:00</published>
    <updated>2022-04-08T07:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After discussing the <a href="/2020/03/video-ipv6-security-overview/">basics of IPv6 security</a> in the hands-on part of <a href="https://www.ipspace.net/IPv6_security">IPv6 security webinar</a> webinar, <a href="https://www.ipspace.net/Author:Christopher_Werny">Christopher Werny</a> focused on the <a href="https://my.ipspace.net/bin/get/IPv6Sec/E2%20-%20IPv6%20Trust%20Model.mp4?doccode=IPv6Sec">IPv6 trust model</a> (aka &ldquo;<em>we&rsquo;re all brothers and sisters on link-local</em>&rdquo;).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/IPv6Sec/E2%20-%20IPv6%20Trust%20Model.mp4?doccode=IPv6Sec">Watch the video</a></div>
<div  class="info">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Next Hops of BGP Routes Reflected by Arista EOS]]></title>
    <link href="https://blog.ipspace.net/2022/04/eos-route-reflector-next-hop-self/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/eos-route-reflector-next-hop-self/</id>
    <published>2022-04-07T06:09:00+00:00</published>
    <updated>2022-04-07T06:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Imagine a suboptimal design in which:</p>
<ul>
<li>A BGP route reflector also servers as an AS edge (PE) router<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>;</li>
<li>You want to use <strong>next-hop-self</strong> on AS edge routers.</li>
</ul>
<p>Being exposed to Cisco IOS for decades, I considered that to be a no-brainer. After all, <a href="https://datatracker.ietf.org/doc/html/rfc4456#section-10">section 10 of RFC 4456</a> is pretty specific:</p>
<blockquote>
<p>In addition, when a RR reflects a route, it SHOULD NOT modify the following path attributes: NEXT_HOP, AS_PATH, LOCAL_PREF, and MED.</p>
</blockquote>
<p>Arista EOS is different &ndash; a route reflector happily modifies NEXT_HOP on reflected routes (but then, did you notice the &ldquo;<a href="https://www.ietf.org/rfc/rfc2119.txt">SHOULD NOT</a>&rdquo; wording?<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>)</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/eos-route-reflector-next-hop-self/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Opinion: Do You Care about MPLS in 2022?]]></title>
    <link href="https://blog.ipspace.net/2022/04/do-you-care-about-mpls/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/do-you-care-about-mpls/</id>
    <published>2022-04-06T07:11:00+00:00</published>
    <updated>2022-04-06T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers asked for my opinion about this question&hellip;</p>

<figure><img src="/2022/04/tweet-mpls.jpg"/>
</figure>
<p>&hellip; and I promised something longer than 280 characters.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/do-you-care-about-mpls/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labeled Unicast Interoperability Challenges]]></title>
    <link href="https://blog.ipspace.net/2022/04/bgp-labeled-unicast-interoperability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/bgp-labeled-unicast-interoperability/</id>
    <published>2022-04-05T07:11:00+00:00</published>
    <updated>2022-04-05T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Jeff Tantsura left me tantalizing hint after reading the <em><a href="/2022/03/bgp-labeled-unicast-cisco-ios/">BGP Labeled Unicast on Cisco IOS</a></em> blog post:</p>
<blockquote>
<p>Read carefully “<a href="https://datatracker.ietf.org/doc/html/rfc8277#section-5">Relationship between SAFI-4 and SAFI-1 Routes</a>” section in RFC 8277</p>
</blockquote>
<p>The start of that section doesn&rsquo;t look promising (and it gets worse):</p>
<blockquote>
<p>It is possible that a BGP speaker will receive both a SAFI-1<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> route for prefix P and a SAFI-4<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> route for prefix P.  Different implementations treat this situation in different ways.</p>
</blockquote>
<p>Now for the details:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/04/bgp-labeled-unicast-interoperability/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab MPLS Support]]></title>
    <link href="https://blog.ipspace.net/2022/04/netsim-mpls/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/netsim-mpls/</id>
    <published>2022-04-04T06:52:00+00:00</published>
    <updated>2022-04-04T06:52:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netlab</em> release 1.2.0 adds full-blown MPLS and MPLS/VPN support:</p>
<ul>
<li><a href="https://netlab.tools/module/vrf/">VRF definitions and layer-3 VRFs</a></li>
<li><a href="https://netlab.tools/module/vrf/#interaction-with-routing-protocols">VRF-aware OSPF, IS-IS and BGP</a></li>
<li><a href="https://netlab.tools/module/mpls/#label-distribution-protocol-ldp">Traditional MPLS with LDP</a> (SR-MPLS was already available)</li>
<li><a href="https://netlab.tools/module/mpls/#bgp-labeled-unicast-bgp-lu">BGP Labeled Unicast</a></li>
<li>MPLS/VPN: <a href="https://netlab.tools/module/mpls/#mpls-l3vpn-supported-platforms">VPNv4 and VPNv6 address family</a> support</li>
</ul>
<p>It&rsquo;s never been easier to build full-blown MPLS/VPN labs ;)&hellip; if you&rsquo;re OK with <a href="https://netlab.tools/module/mpls/#platform-support">using Cisco IOS or Arista EOS</a>. Please feel free to <a href="https://netlab.tools/dev/guidelines/">submit a PR</a> to add support for other platforms.</p>
<p>You might want to start with the <a href="https://netlab.tools/example/vrf-tutorial/">VRF tutorial</a> to see how simple it is to define VRFs, and <a href="https://netlab.tools/install/">follow the installation guide</a> to set up your lab &ndash; if you&rsquo;re semi-fluent in Linux, the easiest option would be to run Arista cEOS.</p>
]]></content>
    <category term="MPLS" />
    <category term="MPLS VPN" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Higher Levels of Address Aggregation]]></title>
    <link href="https://blog.ipspace.net/2022/04/worth-reading-internet-address-aggregation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/worth-reading-internet-address-aggregation/</id>
    <published>2022-04-03T08:34:00+00:00</published>
    <updated>2022-04-03T08:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Every now and then someone tells me how much better the global Internet would be if only we were using recursive layers (RINA) and hierarchical addresses. I always answer &ldquo;<em>that&rsquo;s a business problem, not a technical one, and <a href="/2014/09/youve-been-doing-same-thing-for-last-20/">you cannot solve business problems by throwing technology at them</a></em>&rdquo;, but of course that has never persuaded anyone who hasn&rsquo;t been running a large-enough business for long enough.</p>
<p>Geoff Huston is doing a much better job in the
<a href="https://www.potaroo.net/ispcol/2022-03/ietf113-iepg.html">March 2022 ISP Column</a> &ndash; read the <em>Higher Levels of Address Aggregation</em>, and if you still need more technical details, there&rsquo;s 30+ pages of <a href="https://www.rfc-editor.org/rfc/rfc4984.html">RFC 4984</a>.</p>
]]></content>
    <category term="Internet" />
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Career Advice I'd Give to Younger Me]]></title>
    <link href="https://blog.ipspace.net/2022/04/worth-reading-career-advice-younger-me/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/worth-reading-career-advice-younger-me/</id>
    <published>2022-04-02T08:25:00+00:00</published>
    <updated>2022-04-02T08:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>You MUST read the next masterpiece coming from Ethan Banks: <a href="https://packetpushers.net/blog/career-advice/">Career Advice I’d Give To 20, 30 and 40-Something Year Old Me</a>. I found this bit particularly relevant:</p>
<blockquote>
<p>Your life is at least half over. Stop wasting time doing things other people think are important.</p>
</blockquote>
<p>If only Ethan would have told me that wisdom ten years ago.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Combining Data-Link- and Network Layer Addresses]]></title>
    <link href="https://blog.ipspace.net/2022/04/video-combine-data-link-network-addresses/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/04/video-combine-data-link-network-addresses/</id>
    <published>2022-04-01T07:19:00+00:00</published>
    <updated>2022-04-01T07:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The previous videos in the <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> webinar described some interesting details of data-link layer addresses and network layer addresses. Now for the final bit: how do we map an adjacent network address into a per-interface data link layer address?</p>
<p>If you answered ARP (or ND if you happen to be of IPv6 persuasion) you&rsquo;re absolutely right&hellip; but is that the only way? Watch the <em><a href="https://my.ipspace.net/bin/get/Net101/NA3.3%20-%20Combining%20Data-Link%20and%20Network%20Addresses.mp4?doccode=Net101">Combining Data-Link- and Network Addresses</a></em> video to find out.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA3.3%20-%20Combining%20Data-Link%20and%20Network%20Addresses.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="video" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Is MPLS/VPN Too Complex?]]></title>
    <link href="https://blog.ipspace.net/2022/03/mpls-vpn-too-complex/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/mpls-vpn-too-complex/</id>
    <published>2022-03-31T08:37:00+00:00</published>
    <updated>2022-03-31T08:37:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Henk Smit made the following claim in one of his comments:</p>
<blockquote>
<p>I think BGP-MPLS-VPNs are over-complicated. And you don&rsquo;t get enough return for that extra complexity.</p>
</blockquote>
<p><strong>TL&amp;DR</strong>: He&rsquo;s right (and I just violated <em><a href="https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines">Betteridge&rsquo;s law of headlines</a></em>)</p>
<p>The history of how we got to the current morass might be interesting for engineers who want to look behind the curtain, so here we go&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/mpls-vpn-too-complex/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS VPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Duplicate ARP Replies with Anycast Gateways]]></title>
    <link href="https://blog.ipspace.net/2022/03/duplicate-arp-reply-anycast-gateway/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/duplicate-arp-reply-anycast-gateway/</id>
    <published>2022-03-30T07:11:00+00:00</published>
    <updated>2022-03-30T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A reader sent me the following intriguing question:</p>
<blockquote>
<p>I&rsquo;m trying to understand the ARP behavior with SVI interface configured with anycast gateways of leaf switches, and with distributed anycast gateways configured across the leaf nodes in VXLAN scenario.</p>
</blockquote>
<p>Without going into too many details, the core dilemma is: will the ARP request get flooded, and will we get multiple ARP replies. As always, the correct answer is &ldquo;<em>it depends</em>&rdquo; 🤷‍♂️</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/duplicate-arp-reply-anycast-gateway/'>Read more &hellip;</a></div>]]></content>
    <category term="ARP" />
    <category term="EVPN" />
    <category term="bridging" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labeled Unicast on Arista EOS]]></title>
    <link href="https://blog.ipspace.net/2022/03/bgp-labeled-unicast-arista-eos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/bgp-labeled-unicast-arista-eos/</id>
    <published>2022-03-29T07:50:00+00:00</published>
    <updated>2022-03-29T07:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A week ago I described how <a href="/2022/03/bgp-labeled-unicast-cisco-ios/">Cisco IOS implemented BGP Labeled Unicast</a>. In this blog post we&rsquo;ll focus on Arista EOS using <a href="https://github.com/ipspace/netlab-examples/tree/master/MPLS/ldp-bgp-lu">the same lab as before</a>:</p>

<figure><img src="/2022/03/bgp-lu-topology.bgp-eos.jpg"
   alt="BGP sessions in the BGP-LU lab"/><figcaption>
    <p>BGP sessions in the BGP-LU lab</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/bgp-labeled-unicast-arista-eos/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Combining BGP and IGP in an Enterprise Network]]></title>
    <link href="https://blog.ipspace.net/2022/03/bgp-igp-enterprise-network/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/bgp-igp-enterprise-network/</id>
    <published>2022-03-28T08:42:00+00:00</published>
    <updated>2024-05-31T13:51:00+02:00</updated>
    
    <content type="html"><![CDATA[<p>Syed Khalid Ali left the following question on an old blog post <a href="/2011/08/ibgp-or-ebgp-in-enterprise-network/">describing the use of IBGP and EBGP in an enterprise network</a>:</p>
<blockquote>
<p>From an enterprise customer perspective, should I run iBGP, iBGP+IGP (OSPF/ISIS/EIGRP), or IGP with mutual redistribution on the edge routers? I was hoping you could share some thoughtful insight on when to select one over the other.</p>
</blockquote>
<p>We covered many relevant details in the <a href="https://my.ipspace.net/bin/list?id=Design#2022_01">January 2022 Design Clinic</a>; here&rsquo;s the CliffNotes version. Remember that the road to hell (and broken designs) is paved with great recipes and best practices and that I&rsquo;m presenting a black-and-white picture because I don&rsquo;t feel like transcribing our discussion into an oversized blog post. People wrote books on this topic; search for &ldquo;Russ White books&rdquo; to find a few.</p>
<p>Finally, there&rsquo;s no good substitute for understanding how things work (which brings me to <a href="https://www.ipspace.net/How_Networks_Really_Work">another webinar</a> ;).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/bgp-igp-enterprise-network/'>Read more &hellip;</a></div>]]></content>
    <category term=" BGP" />
    <category term="IP routing" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: VMware Operations Guide]]></title>
    <link href="https://blog.ipspace.net/2022/03/worth-reading-vmware-operations-guide/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/worth-reading-vmware-operations-guide/</id>
    <published>2022-03-27T10:24:00+00:00</published>
    <updated>2022-03-27T10:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Iwan Rahabok&rsquo;s open-source <a href="https://www.vmwareopsguide.com/">VMware Operations Guide</a> is now also available in Markdown-on-GitHub format. Networking engineers support vSphere/NSX infrastructure might be particularly interested in the <a href="https://www.vmwareopsguide.com/metrics/chapter-5-network-metrics/">Network Metrics</a> chapter.</p>
]]></content>
    <category term="virtualization" />
    <category term="NSX" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Draw a Network Diagram from Excel Spreadsheet]]></title>
    <link href="https://blog.ipspace.net/2022/03/turn-excel-into-graph/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/turn-excel-into-graph/</id>
    <published>2022-03-26T07:38:00+00:00</published>
    <updated>2022-03-26T07:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Would you happen to have your network connectivity data in a tabular format (Excel or similar)? Would you like to make a graph out of that?</p>
<p>Look at the <a href="https://salmannaqvi.com/2022/03/15/convert-excel-documents-into-diagrams-with-video/">Excel-to-Graphviz solution</a> created by and <a href="https://salmannaqvi.com/about/">Salman Naqvi</a> and <a href="https://github.com/dukkee">Roman Urchin</a>. It might not be exactly what you&rsquo;re looking for, but you might get a few ideas and an inspiration to do something similar.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Managed SD-WAN Services]]></title>
    <link href="https://blog.ipspace.net/2022/03/managed-sdwan-services/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/managed-sdwan-services/</id>
    <published>2022-03-25T07:19:00+00:00</published>
    <updated>2022-03-25T07:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Should service providers offer managed SD-WAN services? According to <em><a href="https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines">Betteridge&rsquo;s law of headlines</a></em>, the answer is <strong>NO</strong>, and that&rsquo;s exactly what I explained in a <a href="https://my.ipspace.net/bin/get/NetBiz/MS1%20-%20Should%20Service%20Providers%20Offer%20Managed%20SD-WAN%20Services.mp4?doccode=NetBiz">short video with the same name</a>.</p>
<p>Turns out there&rsquo;s not much to explain; even with my usual verbosity I was done in five minutes, so you might want to watch <em><a href="https://my.ipspace.net/bin/get/NetBiz/MS2%20-%20SD-WAN%20Technical%20Challenges.mp4?doccode=NetBiz">SD-WAN Technical Challenges</a></em> as well.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetBiz/MS1%20-%20Should%20Service%20Providers%20Offer%20Managed%20SD-WAN%20Services.mp4?doccode=NetBiz">Watch the video</a></div>
<div  class="free">
Both videos are accessible with the <a href="https://www.ipspace.net/Subscription/Free">free ipSpace.net subscription</a>
</div>
]]></content>
    <category term="SD-WAN" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Beware: Ansible Reorders List Values in Loops]]></title>
    <link href="https://blog.ipspace.net/2022/03/ansible-reorder-list-values/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/ansible-reorder-list-values/</id>
    <published>2022-03-24T07:27:00+00:00</published>
    <updated>2022-03-24T07:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><strong>TL&amp;DR</strong>: Ansible might decide to reorder list values in a <strong>loop</strong> parameter, resulting in unexpected order of execution and (in my case) totally borked device configuration.</p>
<p>A bit of a background first: I&rsquo;m using an Ansible playbook within <em><a href="https://netlab.tools/">netlab</a></em> to deploy <a href="https://netlab.tools/netlab/initial/">initial device configurations</a>. Among other things, that playbook deploys configuration snippets for <a href="https://netlab.tools/modules/">numerous configuration modules</a>, and the order of deployment is absolutely crucial. For example, you cannot activate BGP neighbors in Labeled Unicast (BGP-LU) address family (<strong>mpls</strong> module) before configuring BGP neighbors (<strong>bgp</strong> module).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/ansible-reorder-list-values/'>Read more &hellip;</a></div>]]></content>
    <category term="Ansible" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Labeled Unicast on Cisco IOS]]></title>
    <link href="https://blog.ipspace.net/2022/03/bgp-labeled-unicast-cisco-ios/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/bgp-labeled-unicast-cisco-ios/</id>
    <published>2022-03-23T07:50:00+00:00</published>
    <updated>2022-03-23T07:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>While researching the BGP RFCs for the <em><a href="/2022/01/bgp-af-nerd-knobs/">Three Dimensions of BGP Address Family Nerd Knobs</a></em>, I figured out that the BGP Labeled Unicast (BGP-LU, advertising MPLS labels together with BGP prefixes) uses a different address family. So far so good.</p>
<p>Now for the intricate bit: a BGP router might negotiate IPv4 and IPv4-LU address families with a neighbor. Does that mean that it&rsquo;s advertising every IPv4 prefix twice, once without a label, and once with a label? Should that be the case, how are those prefixes originated and how are they stored in the BGP table?</p>
<p>As always, the correct answer is &ldquo;<em>it depends</em>&rdquo;, this time on the network operating system implementation. This blog post describes Cisco IOS behavior, a follow-up one will focus on Arista EOS.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/bgp-labeled-unicast-cisco-ios/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MPLS/LDP Creation Myths]]></title>
    <link href="https://blog.ipspace.net/2022/03/mpls-ldp-creation-myths/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/mpls-ldp-creation-myths/</id>
    <published>2022-03-22T08:05:00+00:00</published>
    <updated>2022-03-22T08:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Hannes Gredler wrote an <a href="/2022/03/hub-spoke-ldp-segment-routing/#1077">interesting comment</a> to my <em><a href="/2022/03/hub-spoke-ldp-segment-routing/">Segment Routing vs LDP in Hub-and-Spoke Networks</a></em> blog post:</p>
<blockquote>
<p>In 2014 when I did the first prototype implementation of MPLS-SR node labels, I was stunned that just with an incremental add of 500 lines of code to the vanilla IPv4/IPv6 IS-IS codebase I got full any-to-any connectivity, no sync issues, no targeted sessions for R-LFA &hellip;. essentially labeled transport comes for free.</p>
</blockquote>
<p>Based on that, one has to wonder &ldquo;<em>why did we take the LDP detour and all the complexity it brings?</em>&rdquo;. Here&rsquo;s what Hannes found out:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/mpls-ldp-creation-myths/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Automating NSX-T Deployments]]></title>
    <link href="https://blog.ipspace.net/2022/03/nsxt-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/nsxt-automation/</id>
    <published>2022-03-21T07:54:00+00:00</published>
    <updated>2022-03-21T07:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Nicholas Michel <a href="https://github.com/vmware-nsx/sddc-demos">open-sourced an automation solution</a> (<a href="https://www.youtube.com/watch?v=9M0UJXiBVbw">video</a>) that deploys the whole NSX-T infrastructure stack including:</p>
<ul>
<li>NSX-T manager virtual machines</li>
<li>NSX-T uplink profiles and IP pools</li>
<li>Transport zones and transport nodes (NSX-T modules on ESXi hypervisors)</li>
<li>Edge clusters including BGP, EVPN and BFD</li>
</ul>
<p>Once the infrastructure is set up, his solution uses a Terraform configuration file to deploy multiple tenants: external VLANs, tier-0 gateways, BGP neighbors, tier-1 gateways, and application segments.</p>
<p>While the infrastructure part of his solution might be fully reusable, the tenant deployments definitely aren&rsquo;t, but they provide a great starting point if you decide to build a fully automated provisioning system.</p>
]]></content>
    <category term="NSX" />
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Kubernetes Networking Model]]></title>
    <link href="https://blog.ipspace.net/2022/03/kubernetes-networking-model/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/kubernetes-networking-model/</id>
    <published>2022-03-18T07:58:00+00:00</published>
    <updated>2022-03-18T07:58:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="/2022/01/video-kubernetes-architecture/">describing the Kubernetes architecture</a> in the introductory part of the excellent <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar, <a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a> focused on what matters most to networking engineers: <a href="https://my.ipspace.net/bin/get/Kubernetes/1.4%20-%20Kubernetes%20Networking%20Model.mp4?doccode=Kubernetes">Kubernetes networking model</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/1.4%20-%20Kubernetes%20Networking%20Model.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[So-Called Modern VPNs: Marketing and Reality]]></title>
    <link href="https://blog.ipspace.net/2022/03/vpn-marketing-reality/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/vpn-marketing-reality/</id>
    <published>2022-03-17T07:59:00+00:00</published>
    <updated>2022-03-17T07:59:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Someone left a &ldquo;killer&rdquo; comment<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> after reading the <em><a href="/2022/03/should-we-use-lisp/">Should We Use LISP</a></em> blog post. It start with&hellip;</p>
<blockquote>
<p>I must sadly say that your view on what VPN is all about is pretty rusty and archaic :( Sorry! Modern VPNs are all pub-sub based and are already turning into NaaS.</p>
</blockquote>
<p>Nothing new there. I&rsquo;ve been called <em>old-school guru from an ivory tower</em> when claiming TRILL is the wrong direction and we should use good old layer-3-based design<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, but let&rsquo;s unpack the &ldquo;pub-sub&rdquo; bit.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/vpn-marketing-reality/'>Read more &hellip;</a></div>]]></content>
    <category term="VPN" />
    <category term="LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Hub-and-Spoke VPLS: Revenge of LDP]]></title>
    <link href="https://blog.ipspace.net/2022/03/hub-spoke-vpls-revenge-ldp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/hub-spoke-vpls-revenge-ldp/</id>
    <published>2022-03-16T07:55:00+00:00</published>
    <updated>2022-03-18T07:02:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2022/03/hub-spoke-ldp-segment-routing/">Segment Routing vs LDP in Hub-and-Spoke Networks</a> blog post I explained why you could get into interesting scaling issues when running MPLS with LDP in a large hub-and-spoke network, and how you can use Segment Routing (MPLS edition) to simplify your design.</p>

<figure><img src="/2022/03/LDP-Hub-Spoke.jpg"
   alt="Sample hub-and-spoke network"/><figcaption>
    <p>Sample hub-and-spoke network</p>
  </figcaption>
</figure>
<p>Now imagine you&rsquo;d like to offer VPLS services between hubs and spokes, and happen to be using equipment that uses targeted LDP sessions to signal pseudowires. Guess what happens next&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/hub-spoke-vpls-revenge-ldp/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
    <category term="segment routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netsim-tools Release 1.1.4]]></title>
    <link href="https://blog.ipspace.net/2022/03/netsim-release-1.1.4/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/netsim-release-1.1.4/</id>
    <published>2022-03-15T07:46:00+00:00</published>
    <updated>2022-03-15T07:46:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/1.1/"><em>netsim-tools</em> release 1.1.4</a> includes a number of seemingly unrelated goodies; here&rsquo;s the the reasoning (or story) behind some of them:</p>
<blockquote>
<p><a href="https://netlab.tools/netlab/clab/">netlab clab tarball</a> creates a tar package that can be deployed with <em>containerlab</em> without <em>netsim-tools</em></p>
</blockquote>
<div  class="info">
Starting with release 1.3, we <a href="/2022/08/netsim-netlab/">renamed <em>netsim-tools</em> to <em>netlab</em></a>.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/netsim-release-1.1.4/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Ansible for Networking Engineers]]></title>
    <link href="https://blog.ipspace.net/2022/03/feedback-ansible/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/feedback-ansible/</id>
    <published>2022-03-14T08:05:00+00:00</published>
    <updated>2022-03-14T08:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of ipSpace.net subscribers sent me the following feedback on <em><a href="https://www.ipspace.net/Ansible_for_Networking_Engineers">Ansible for Networking Engineers</a></em> webinar:</p>
<blockquote>
<p>The &ldquo;Ansible for Network Engineers&rdquo; webinar is of the highest caliber. I&rsquo;ve taken Ansible courses with your CCIE peers, and though they are good, I objectively feel, that I get more of a total comprehensive understanding with network automation here at ipSpace. Also, I enjoy your professional care-free tone, and how you pepper humor into the subject matter.</p>
<p>I&rsquo;ve setup a virtual lab with Ubuntu 18.04 LTS server, and am using both Aruba and Cisco switches/routers. Ansible has lots of nuances that will take me time to fully get a grip-on&ndash; but, that&rsquo;s why I subscribe with the network pros like ipSpace.</p>
</blockquote>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Switching the Technology Stack]]></title>
    <link href="https://blog.ipspace.net/2022/03/worth-reading-switching-technology-stack/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/worth-reading-switching-technology-stack/</id>
    <published>2022-03-13T07:27:00+00:00</published>
    <updated>2022-03-13T07:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Did you ever wonder why a company would replace a working technology with an overhyped pile of half-baked code? <em><a href="https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company-switched-to-hyped-technology/">Why we at $FAMOUS_COMPANY Switched to $HYPED_TECHNOLOGY</a></em> by Saagar Jha is a hilarious take on the subject.</p>
<p>Want more? How about <a href="https://www.youtube.com/watch?v=_8AHPqzuLkM">migrating your Exadata database to AWS</a>?</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Functions-as-a-Service Demo]]></title>
    <link href="https://blog.ipspace.net/2022/03/video-function-as-service/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/video-function-as-service/</id>
    <published>2022-03-11T08:15:00+00:00</published>
    <updated>2022-03-11T08:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>Serverless computing</em> (marketing term for code running on servers managed by other people) is one of the must-have terms if you&rsquo;re playing a Buzzword Bingo, but what does it really mean and how does the whole thing work?</p>
<p><a href="https://www.ipspace.net/Author:Matthias_Luft">Matthias Luft</a> and <a href="https://www.ipspace.net/Author:Florian_Barth">Florian Barth</a> illustrated the concept during the <em><a href="https://www.ipspace.net/Introduction_to_Cloud_Computing">Introduction to Cloud Computing</a></em> webinar with a <a href="https://my.ipspace.net/bin/get/Cloud101/3%20-%20Functions-as-a-Service%20Demo.mp4?doccode=Cloud101">short demo in which they build a simple AWS Lambda function</a>. For a more network-centric view, read the <em><a href="https://netmemo.github.io/post/lambdaping/">Can We Ping a Lambda Function</a></em> blog post by <a href="https://twitter.com/noyelb">Noel Boulene</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Cloud101/3%20-%20Functions-as-a-Service%20Demo.mp4?doccode=Cloud101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free</a> or <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term=" cloud" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Should We Use LISP?]]></title>
    <link href="https://blog.ipspace.net/2022/03/should-we-use-lisp/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/should-we-use-lisp/</id>
    <published>2022-03-10T08:21:00+00:00</published>
    <updated>2022-03-10T08:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>LISP started as yet-another ocean-boiling project focused initially on solving the &ldquo;<em>we use locators as identifiers</em>&rdquo; mess (<a href="/2022/03/lisp-false-economy/">not quite</a>), and providing scalable IPv6 connectivity over IPv4-only transport networks by adding another layer of indirection and thus yet again proving RFC 1925 rule 6a. At least those are the diagrams I remember from the early &ldquo;look at this wonderful tool&rdquo; presentations explaining for example how Facebook is using LISP to deploy IPv6 (more details in <a href="https://archive.nanog.org/meetings/nanog50/presentations/Tuesday/NANOG50.Talk9.lee_nanog50_atlanta_oct2010_007_publish.pdf">this presentation</a>).</p>
<p>Somehow that use case failed to gain traction and so the pivots<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> started explaining how one can use LISP to solve IP mobility or IP multihoming or live VM migration, or to implement IP version of conversational learning in Cisco SD-Access. After a few years of those pivots, I started dismissing LISP with a short &ldquo;<em><a href="/2022/02/cache-based-forwarding/">cache-based forwarding never worked well</a></em>&rdquo; counterargument.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/should-we-use-lisp/'>Read more &hellip;</a></div>]]></content>
    <category term="LISP" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Segment Routing vs LDP in Hub-and-Spoke Networks]]></title>
    <link href="https://blog.ipspace.net/2022/03/hub-spoke-ldp-segment-routing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/hub-spoke-ldp-segment-routing/</id>
    <published>2022-03-09T07:32:00+00:00</published>
    <updated>2022-03-09T07:32:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I got an interesting question that nicely illustrates why Segment Routing (the MPLS variant) is so much better than LDP. Imagine a redundant hub-and-spoke network with hundreds of spokes. Let&rsquo;s settle on 500 spokes &ndash; IS-IS supposedly has no problem dealing with a link-state topology of that size.</p>

<figure><img src="/2022/03/LDP-Hub-Spoke.jpg"/>
</figure>
<p>Let&rsquo;s further assume that all routers advertise only their loopbacks<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and that we&rsquo;re using unnumbered hub-to-spoke links to minimize the routing table size. The global routing table thus contains ~500 entries. MPLS forwarding tables (LFIB) contain approximately as many entries as each router assigns a label to every prefix in the routing table<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. What about the LDP table (LIB &ndash; Label Information Base)?</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/hub-spoke-ldp-segment-routing/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
    <category term="segment routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Flow-Based Packet Forwarding]]></title>
    <link href="https://blog.ipspace.net/2022/03/flow-based-forwarding/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/flow-based-forwarding/</id>
    <published>2022-03-08T06:12:00+00:00</published>
    <updated>2022-03-08T06:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <em><a href="/2022/02/cache-based-forwarding/">Cache-Based Packet Forwarding</a></em> blog post I described what happens when someone tries to bypass the complexities of IP routing table lookup with a forwarding cache.</p>
<p>Now imagine you want to implement full-featured fast packet forwarding including ingress- and egress ACL, NAT, QoS&hellip; but find the required hardware (TCAM) too expensive. Wouldn&rsquo;t it be nice if we could send the first packet of every flow to a CPU to figure out what to do with it, and download the results into a high-speed flow cache where they could be used to switch the subsequent packets of the same flow. Welcome to <em><a href="/2015/12/is-flow-based-forwarding-just-marketing/">flow-based packet forwarding</a></em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/flow-based-forwarding/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netsim-tools Release 1.1.3]]></title>
    <link href="https://blog.ipspace.net/2022/03/netsim-release-1.1.3/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/netsim-release-1.1.3/</id>
    <published>2022-03-07T09:53:00+00:00</published>
    <updated>2022-03-07T09:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>netsim-tools</em> release 1.1.3 brings a number of goodies, including:</p>
<ul>
<li><a href="https://netlab.tools/module/ospf/">OSPFv3 support</a> on a few platforms (we&rsquo;re still <a href="/2022/03/contribute-netsim-ospf/">looking for contributors to implement OSPFv3 on other platforms</a>)</li>
<li>EIGRP implementation of <a href="https://netlab.tools/module/routing/">common routing protocol features</a> (router ID, passive and external interfaces)</li>
<li><a href="https://netlab.tools/module/routing/#af">Configurable address family support</a> for IS-IS, OSPF and EIGRP</li>
<li>Support for /31 IPv4 P2P links</li>
<li>Configurable MTU for VyOS and RouterOS</li>
</ul>
<div  class="info">
Starting with release 1.3, we <a href="/2022/08/netsim-netlab/">renamed <em>netsim-tools</em> to <em>netlab</em></a>.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/netsim-release-1.1.3/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Misconceptions about Route Origin Validation]]></title>
    <link href="https://blog.ipspace.net/2022/03/worth-reading-security-misconceptions/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/worth-reading-security-misconceptions/</id>
    <published>2022-03-06T08:44:00+00:00</published>
    <updated>2022-03-06T08:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Use the <a href="https://www.ripe.net/ripe/mail/archives/routing-wg/2022-February/004542.html">email sent by Randy Bush to RIPE routing WG mailing list</a> every time a security researcher claims a technology with no built-in security mechanism is insecure (slightly reworded to make it more generic).</p>
<hr>
<p>Lately, I am getting flak about $SomeTechnology not providing protection from this or that malicious attack. Indeed it does not.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/worth-reading-security-misconceptions/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: AI Makes Animists of Us All]]></title>
    <link href="https://blog.ipspace.net/2022/03/worth-reading-ai-making-us-animist/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/worth-reading-ai-making-us-animist/</id>
    <published>2022-03-05T08:23:00+00:00</published>
    <updated>2022-03-05T08:23:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Erik Hoel published a <a href="https://erikhoel.substack.com/p/ai-makes-animists-of-us-all">wonderful article</a> describing how he&rsquo;s fighting the algorithm that is deciding whether to approve a charge on his credit card.</p>
<blockquote>
<p>My credit card now has a kami. Such new technological kamis are, just like the ancient ones, fickle; sometimes blessing us, sometimes hindering us, and all we as unwilling animists can do is a modern ritual to the inarticulate fey creatures that control our inboxes and our mortgages and our insurance rates.</p>
</blockquote>
<p>There are networking vendors unleashing similar &ldquo;spirits&rdquo; on our networks. Welcome to the brave new world ;)</p>
]]></content>
    <category term="AI" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Comparing TCP/IP and CLNP]]></title>
    <link href="https://blog.ipspace.net/2022/03/video-comparing-tcpip-clns/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/video-comparing-tcpip-clns/</id>
    <published>2022-03-04T08:44:00+00:00</published>
    <updated>2022-03-04T08:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>If you were building networks in early 1990s you probably remember at least a half-dozen different network protocols. Only one of them survived (IPv6 came later), with another one (CLNP) providing an interesting view into a totally different parallel universe that evolved using a different set of fundamental principles.</p>
<p>After <a href="/2022/02/video-network-layer-addressing/">introducing the network-layer addressing</a>, I <a href="https://my.ipspace.net/bin/get/Net101/NA3.2%20-%20Comparing%20IP%20and%20CLNP%20Addressing.mp4?doccode=Net101">compared the two and pointed out where one or the other was clearly better</a>.</p>
<p>You might think that it makes no sense to talk about protocols that were rarely used in old days, and that are almost non-existent today, but as always <em>those who cannot remember the past are doomed to repeat it</em>, this time reinventing CLNP principles in <a href="/2017/09/coming-full-circle-on-ipv6-address/">IPv6-based</a> <a href="/2015/05/reinventing-clns-with-l3-only-forwarding/">layer-3-only data center fabrics</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA3.2%20-%20Comparing%20IP%20and%20CLNP%20Addressing.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="video" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Data Plane Quirks in Virtual Network Devices]]></title>
    <link href="https://blog.ipspace.net/2022/03/dataplane-quirks-virtual-devices/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/dataplane-quirks-virtual-devices/</id>
    <published>2022-03-03T07:48:00+00:00</published>
    <updated>2022-03-09T07:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Have you noticed an <a href="/2022/02/nexus-icmp-redirects/">interesting twist in the ICMP Redirects saga</a>: operating systems of some network devices might install redirect entries and use them for control plane traffic &ndash; an interesting implementation side effect of the architecture of most modern network devices.</p>
<p>A large majority of network devices run on some variant of Linux or *BSD operating system, the only true exception being ancient operating systems like Cisco IOS<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. The network daemons populate various routing protocol tables and compute the best routes that somehow get merged into a single routing table <em>that might still be just a data structure in some user-mode process</em>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/dataplane-quirks-virtual-devices/'>Read more &hellip;</a></div>]]></content>
    <category term="NFV" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Contribute to netlab: OSPFv3]]></title>
    <link href="https://blog.ipspace.net/2022/03/contribute-netsim-ospf/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/contribute-netsim-ospf/</id>
    <published>2022-03-02T07:30:00+00:00</published>
    <updated>2022-03-12T07:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Every other blue moon I get a question along the lines of &ldquo;<em>how could I contribute to netlab</em>&rdquo;. The process is pretty streamlined and reasonably (I hope) documented in <em><a href="https://netlab.tools/dev/guidelines/">Contributor Guidelines</a></em>; if you want to get started with an easy task, try <a href="https://github.com/ipspace/netlab/issues/220">implementing OSPFv3</a> for one of almost a dozen devices (<a href="https://github.com/ipspace/netlab/commit/9d22fef13e9df7021194d475b842cd9e1e426fda">vSRX implementation</a> by <a href="http://stefano.dscnet.org/about/">Stefano Sasso</a> is a picture-perfect example):</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/contribute-netsim-ospf/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Repost: LISP Is a False Economy]]></title>
    <link href="https://blog.ipspace.net/2022/03/lisp-false-economy/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/03/lisp-false-economy/</id>
    <published>2022-03-01T07:13:00+00:00</published>
    <updated>2022-03-01T07:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>Minh Ha left this comment on the <em><a href="/2022/02/packet-forwarding-header-lookup/">Packet Forwarding 101</a></em> blog post. As is usually the case, it&rsquo;s fun reading and it would be a shame not to repost it as a standalone blog post (even though I don&rsquo;t necessarily agree with all his conclusions).</em></p>
<hr>
<p>I always enjoy Bela&rsquo;s great insights, esp. on hardware and transport networks, but this time I beg to differ. LISP, is a false economy. It was twisted from the start, unscalable right from the get-go. In Networking and OS, to name (ID) something is to locate it, and vice versa. So the name LISP itself reflects a false distinction. Due to this misconception, LISP proponents are unable to establish the right boundary conditions, leading to the size of xTRs&rsquo; RIB diverging (going unbounded). In a word, it has come full circle back to BGP, an exemplary manifestation of RFC 1925 rule 6.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/03/lisp-false-economy/'>Read more &hellip;</a></div>]]></content>
    <category term=" LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running a Ubuntu VM on a Mac M1]]></title>
    <link href="https://blog.ipspace.net/2022/02/ubuntu-mac-m1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/ubuntu-mac-m1/</id>
    <published>2022-02-28T08:00:00+00:00</published>
    <updated>2022-02-28T08:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>If you&rsquo;re brand-new to Python and Ansible, you might be a bit reluctant to install a bunch of packages and Ansible collections on your production laptop to start building your automation skills. The usual recommendation I make to get past that hurdle is to create a Ubuntu virtual machine that can be destroyed every time to mess it up.</p>
<p>Creating a virtual machine is trivial on Linux and macOS with Intel CPU (install VirtualBox and Vagrant). The same toolset no longer works on newer Macs with M1 CPU (VMware Fusion is in tech preview, so we&rsquo;re getting there), but there&rsquo;s an amazingly simple alternative: Multipass by Canonical.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/ubuntu-mac-m1/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Use Cases for AI/ML in Networking]]></title>
    <link href="https://blog.ipspace.net/2022/02/video-ml-in-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/video-ml-in-networking/</id>
    <published>2022-02-25T07:03:00+00:00</published>
    <updated>2022-02-25T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the first half of the <em><a href="https://www.ipspace.net/AI_and_ML_in_Networking">AI/ML in Networking</a></em> webinar, <a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> walked us through the <a href="/2021/10/video-ai-ml-introduction/">AI/ML hype</a>, <a href="/2021/12/video-machine-learning-101/">basics of machine learning</a>, and <a href="/2022/01/video-machine-learning-techniques/">machine learning techniques</a>.</p>
<p>In the second part of the webinar, he described &ldquo;The Good, The Bad and The Ugly&rdquo;, starting with the good parts: <a href="https://my.ipspace.net/bin/get/AI/3.1%20-%20Networking-Related%20Use%20Cases%20%28The%20Good%29.mp4?doccode=AI">where does AI/ML make sense in networking</a>?</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/3.1%20-%20Networking-Related%20Use%20Cases%20%28The%20Good%29.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Cache-Based Packet Forwarding]]></title>
    <link href="https://blog.ipspace.net/2022/02/cache-based-forwarding/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/cache-based-forwarding/</id>
    <published>2022-02-24T08:57:00+00:00</published>
    <updated>2022-02-28T16:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the previous blog post in this series I described <a href="/2022/02/packet-forwarding-header-lookup/">how convoluted routing table lookups could become</a> when you have to deal with numerous layers of indirection (BGP prefix ⇨ BGP next hop ⇨ IGP next hop ⇨ link bundle ⇨ outgoing interface). Modern high-end hardware can deal with the resulting complexity; decades ago we had to use router CPU to do multiple (potentially recursive) lookups in the IP routing table (there was no FIB at that time).</p>
<p>Network devices were always pushed to the bleeding edge of performance, and smart programmers always tried to optimize the CPU-intensive processes. One of the obvious packet forwarding optimizations relied on the fact that within a short timeframe most packets have to be forwarded to a small set of destinations. Welcome to the wonderful world of cache-based forwarding.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/cache-based-forwarding/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
    <category term="switching" />
    <category term="LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New netlab Installation Instructions]]></title>
    <link href="https://blog.ipspace.net/2022/02/netsim-installation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/netsim-installation/</id>
    <published>2022-02-23T08:44:00+00:00</published>
    <updated>2022-02-23T08:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A long-time subscriber with a knack for telling me precisely why something I&rsquo;m doing sucks big time sent me his opinion on netlab<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> installation instructions:</p>
<blockquote>
<p>I do not want to say it is impossible to follow your instruction but I wonder why the process is not clearly defined for someone not deeply involved in such tasks with full understanding of why to install from github, etc..</p>
<p>Many guys do not know if they want to use libvirt. They want to use the tool simple way without studying upfront what the libvirt is - but they see libvirt WARNING - should we install libvirt then or skip the installation?. But stop, this step of libvirt installation is obligatory in the 2nd Ubuntu section. So why the libvirt warning earlier?</p>
<p>I believe we should start really quickly to enjoy the tool before we reject it for &ldquo;complexity&rdquo;. Time To Play matters. Otherwise you are tired trying to understand the process before you check if this tool is right for you.</p>
</blockquote>
<p>He was absolutely right &ndash; it was time to overhaul the &ldquo;organically grown&rdquo; installation instructions and make them goal-focused and structured. For those of you who want to see the big picture first, I also added numerous (hopefully helpful) diagrams. <a href="https://netlab.tools/install/">The new documentation is already online</a>, and I&rsquo;d love to hear your feedback. Thank you!</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><em>netlab</em> was known as <em>netsim-tools</em> at that time.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[ICMP Redirects Considered Harmful]]></title>
    <link href="https://blog.ipspace.net/2022/02/nexus-icmp-redirects/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/nexus-icmp-redirects/</id>
    <published>2022-02-22T07:28:00+00:00</published>
    <updated>2022-02-03T07:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me an intriguing challenge based on the following design:</p>
<ul>
<li>He has a data center with two core switches (C1 and C2) and two Cisco Nexus edge switches (E1 and E2).</li>
<li>He&rsquo;s using static default routing from core to edge switches with HSRP on the edge switches.</li>
<li>E1 is the active HSRP gateway connected to the primary WAN link.</li>
</ul>
<p>The following picture shows the simplified network diagram:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/nexus-icmp-redirects/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="data center" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: DMVPN Webinars]]></title>
    <link href="https://blog.ipspace.net/2022/02/feedback-dmvpn-webinars/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/feedback-dmvpn-webinars/</id>
    <published>2022-02-21T07:18:00+00:00</published>
    <updated>2022-02-21T07:18:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Some webinars on ipSpace.net are ancient (= more than a decade old). I&rsquo;m refreshing some of them (the overhaul of <em><a href="https://www.ipspace.net/Introduction_to_Virtualized_Networking">Introduction to Virtualized Networking</a></em> was completed earlier this month); others will stay as they are because the technology hasn&rsquo;t changed in a long while, and it&rsquo;s always nice to hear someone still finds them useful. This is a recent feedback I got on the <a href="https://www.ipspace.net/Roadmap/VPN_webinars">DMVPN webinars</a>:</p>
<blockquote>
<p>As with any other webinar I have viewed on ipspace.net, this one provides the background as to why you may or may not want to do certain things and what impact that may have (positive or negative) on your network. Then it digs into the how of actually doing something. Brilliant content as always.</p>
<p>IPSpace.net is my go-to for deep dives on existing and emerging technologies in the networking industry. No unnecessary preamble. Gets straight to the point of why you are looking at a specific technology and explains the what and the why before getting into the how.</p>
</blockquote>
]]></content>
    <category term="DMVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Using netlab with containerlab: Welcome to the World of Tomorrow]]></title>
    <link href="https://blog.ipspace.net/2022/02/worth-reading-netsim-tools-containerlab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/worth-reading-netsim-tools-containerlab/</id>
    <published>2022-02-20T08:55:00+00:00</published>
    <updated>2022-02-20T08:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Julio Perez wrote a wonderful blog post describing how he
<a href="https://juliopdx.com/2022/02/13/network-simulation-tools-and-containerlab/">combined netlab and containerlab</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> to build Arista cEOS labs.</p>
<p><strong>Hint</strong>: when you&rsquo;re done with that blog post, keep reading and add his blog to your RSS feed &ndash; he wrote some great stuff in the past.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><em>netlab</em> was known as <em>netsim-tools</em> at the time he wrote the blog post&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="netlab" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Performance Testing of Commercial BGP Stacks]]></title>
    <link href="https://blog.ipspace.net/2022/02/worth-reading-performance-bgp-stacks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/worth-reading-performance-bgp-stacks/</id>
    <published>2022-02-19T08:27:00+00:00</published>
    <updated>2022-02-19T08:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>For whatever reason, most IT vendors attach &ldquo;<em>you cannot use this for performance testing and/or publish any results</em>&rdquo; caveat to their licensing agreements, so it&rsquo;s really hard to get any independent test results that are not vendor-sponsored and thus suitably biased.</p>
<p>Justin Pietsch managed to get a permission to <a href="https://elegantnetwork.github.io/posts/BGP-commercial-stacks/">publish test results of Junos container implementation</a> (cRPD) &ndash; no surprise there, Junos outperformed all open-source implementations Justin tested in the past.</p>
<p>What about other commercial BGP stacks? Justin did the best he could: he published <em><a href="https://github.com/netenglabs/bgperf2/blob/master/README.md#targets">Testing Commercial BGP Stacks</a></em> instructions, so you can do the measurements on your own.</p>
]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netsim-tools (now netlab) on the Modem Podcast]]></title>
    <link href="https://blog.ipspace.net/2022/02/netsim-tools-modem-podcast/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/netsim-tools-modem-podcast/</id>
    <published>2022-02-18T07:30:00+00:00</published>
    <updated>2022-02-18T07:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, <a href="https://www.ipspace.net/Expert:Nick_Buraglio">Nick Buraglio</a> and <a href="https://slash64.tech/">Chris Cummings</a> invited me for an <a href="https://www.modem.show/post/s02e01/">hour-long chat about netlab on the Modem Podcast</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>We talked about why one might want to use <a href="https://netlab.tools/">netlab</a> instead of another lab orchestration solution and the high-level functionality offered by the tool. Nick particularly loved its IPAM features which got so extensive in the meantime that I had to write a <a href="https://netlab.tools/example/addressing-tutorial/">full-blown addressing tutorial</a>. But there&rsquo;s so much more: you can also get a fully configured OSPFv2, OSPFv3, EIGRP, IS-IS, SRv6, or BGP lab built from <a href="https://netlab.tools/platforms/">more than a dozen different devices</a>. In short (as Nick and Chris said): you can use netlab to make labbing less miserable.</p>
<div class='jump-link'><a href="https://www.modem.show/post/s02e01/">Listen to the podcast</a></div>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><em>netlab</em> was known as <em>netsim-tools</em> when we were recording that podcast.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    <category term="podcast" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[The Impact of Jumbo Maximum Frame Size on Data Center Switches]]></title>
    <link href="https://blog.ipspace.net/2022/02/jumbo-mtu-everywhere/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/jumbo-mtu-everywhere/</id>
    <published>2022-02-17T07:51:00+00:00</published>
    <updated>2022-02-19T07:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/sandersteffann/">Sander Steffann</a> sent me an intriguing question a long while ago:</p>
<blockquote>
<p>I was wondering if there are any downsides to setting &ldquo;system mtu jumbo 9198&rdquo; by default on every switch? I mean, if all connected devices have MTU 1500 they won&rsquo;t notice that the switch could support longer frames, right?</p>
</blockquote>
<p>That&rsquo;s absolutely correct, and unless the end hosts get into UDP fights things will always work out (aka TCP MSS saves the day)&hellip; but there must be a reason switching vendors don&rsquo;t use maximum frame sizes larger than 1514 by default (<a href="https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-41/Whats-New/">Cumulus Linux seems to be an exception</a>, and according to <a href="https://www.linkedin.com/in/sebastienkeller/">Sébastien Keller</a> Arista&rsquo;s default maximum frame size is between 9214 and 10178 depending on the platform).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/jumbo-mtu-everywhere/'>Read more &hellip;</a></div>]]></content>
    <category term=" switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running BGP between Virtual Machines and Data Center Fabric]]></title>
    <link href="https://blog.ipspace.net/2022/02/bgp-on-virtual-machines/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/bgp-on-virtual-machines/</id>
    <published>2022-02-16T09:03:00+00:00</published>
    <updated>2022-02-16T09:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Got this question from one of my readers:</p>
<blockquote>
<p>When adopting the BGP on the VM model (say, a Kubernetes worker node on top of vSphere or KVM or Openstack), how do you deal with VM migration to another host (same data center, of course) for maintenance purposes? Do you keep peering with the old ToR even after the migration, or do you use some BGP trickery to allow the VM to peer with whatever ToR it&rsquo;s closest to?</p>
</blockquote>
<p>Short answer: <strong>you don&rsquo;t</strong>.</p>
<p>Kubernetes was <a href="/2022/01/video-kubernetes-architecture/">designed in a way that made worker nodes expendable</a>. The Kubernetes cluster (and all properly designed applications) should recover automatically after a worker node restart. From the purely academic perspective, there&rsquo;s no reason to migrate VMs running Kubernetes.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/bgp-on-virtual-machines/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="data center" />
    <category term="virtualization" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Cisco ACI Webinars]]></title>
    <link href="https://blog.ipspace.net/2022/02/feedback-cisco-aci-webinars/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/feedback-cisco-aci-webinars/</id>
    <published>2022-02-15T08:21:00+00:00</published>
    <updated>2022-02-15T08:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://www.linkedin.com/in/antonio-boj-49474618/">Antonio Boj</a> enjoyed the <a href="https://www.ipspace.net/SDDC">Cisco ACI webinars</a> by <a href="https://www.ipspace.net/Author:Mario_Rosi">Mario Rosi</a> and sent me this feedback:</em></p>
<hr>
<p>I just wanted to pass you my feedback about the documentation and content of the above webinars. Excellent content, very well organized.</p>
<p>My expectation is always high about your content because I’ve become used to it with other webinars you published. I always look for non-marketing content to understand the technology.</p>
<p>I don’t want to criticize vendors based on assumptions or personal agendas from interested people but evaluate whether or not it is the right path forward for the problem I want to solve, knowing the pros and cons. So again, both webinars about Cisco ACI have given me excellent visibility of the solution. Thank you very much!</p>
]]></content>
    <category term="ACI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Packet Forwarding 101: Header Lookups]]></title>
    <link href="https://blog.ipspace.net/2022/02/packet-forwarding-header-lookup/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/packet-forwarding-header-lookup/</id>
    <published>2022-02-14T07:40:00+00:00</published>
    <updated>2022-02-14T07:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Whenever someone asks me about LISP, I answer, &ldquo;<em>it&rsquo;s a nice idea, but cache-based forwarding never worked well.</em>&rdquo; Oldtimers familiar with the spectacular failures of fast switching and various incarnations of flow switching usually need no further explanation. Unfortunately, that lore is quickly dying out, so let&rsquo;s start with the fundamentals: how does packet forwarding work?</p>
<p>Packet forwarding used by bridges and routers (or <a href="/2011/02/how-did-we-ever-get-into-this-switching/">Layer-2/3 switches</a> if you believe in <a href="/2009/12/lies-damned-lies-and-product-marketing/">marketing terminology</a>) is just a particular case of <a href="https://en.wikipedia.org/wiki/Statistical_time-division_multiplexing">statistical multiplexing</a> &ndash; a mechanism where many communication streams share the network resources by slicing the data into packets that are sent across the network. The packets are usually forwarded independently; every one of them must contain enough information to be propagated by each intermediate device it encounters on its way across the network.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/packet-forwarding-header-lookup/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
    <category term="switching" />
    <category term="LISP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: End-to-end Congestion Control Cannot Avoid Latency Spikes]]></title>
    <link href="https://blog.ipspace.net/2022/02/worth-reading-latency-spikes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/worth-reading-latency-spikes/</id>
    <published>2022-02-13T06:11:00+00:00</published>
    <updated>2022-02-13T06:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Found a pointer to another <em>you cannot beat the laws of physics or networking</em> result: <a href="https://blog.apnic.net/2022/01/26/beyond-bufferbloat-end-to-end-congestion-control-cannot-avoid-latency-spikes/">you cannot avoid latency spikes with end-to-end congestion control</a> regardless of the amount of unicorn dust or hype you&rsquo;re throwing at the problem (<a href="https://arxiv.org/abs/2111.00488">original paper</a>).</p>
]]></content>
    <category term="QoS" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Crazy about VMware SD-WAN]]></title>
    <link href="https://blog.ipspace.net/2022/02/worth-reading-vmware-sdwan/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/worth-reading-vmware-sdwan/</id>
    <published>2022-02-12T07:22:00+00:00</published>
    <updated>2022-02-12T07:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Have to work with VMware SD-WAN (the entity formerly known as VeloCloud)? You might find interesting tidbits in <a href="https://sd-wahn.blogspot.com/">Crazy about VMware SD-WAN</a> by <a href="https://www.linkedin.com/in/alexander-marhold-b6522098/">Alexander Marhold</a>.</p>
]]></content>
    <category term="worth reading" />
    <category term="SD-WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Network Layer Addressing]]></title>
    <link href="https://blog.ipspace.net/2022/02/video-network-layer-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/video-network-layer-addressing/</id>
    <published>2022-02-11T08:07:00+00:00</published>
    <updated>2022-02-11T08:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After a brief excursion into the <a href="/2021/11/video-data-link-addressing/">ancient data link layer addressing ideas</a> (that you can still find in numerous systems today) and <a href="/2022/01/video-local-area-network-addressing/">LAN addressing</a> it&rsquo;s time to focus on network-layer addressing, starting with &ldquo;<em>can we design protocols without network-layer addresses</em>&rdquo; (unfortunately, YES) and &ldquo;<em>should a network-layer address be tied to a node or to an interface</em>&rdquo; (as always, <em>it depends</em>).</p>
<p>For more details, watch the <a href="https://my.ipspace.net/bin/get/Net101/NA3.1%20-%20Network%20Layer%20Addressing.mp4?doccode=Net101">Network Layer Addressing</a> video (part of <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> webinar).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA3.1%20-%20Network%20Layer%20Addressing.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Build Vagrant Boxes for Your Network Devices]]></title>
    <link href="https://blog.ipspace.net/2022/02/netsim-build-vagrant-boxes/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/netsim-build-vagrant-boxes/</id>
    <published>2022-02-10T07:45:00+00:00</published>
    <updated>2022-02-15T14:37:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the toughest hurdles to overcome when building your own virtual networking lab is the slog of downloading VM images for your favorite network devices and building Vagrant boxes<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> in case you want to use them with Vagrant or <a href="https://netlab.tools/">netlab</a>.</p>
<p>You can find box-building recipes on the Internet &ndash; <a href="https://codingpackets.com/blog/tag/vagrant/">codingpackets.com has a dozen of them</a> &ndash; but they tend to be a bit convoluted and a smidge hard-to-follow the first time you&rsquo;re trying to build the boxes (trust me, I&rsquo;ve been there).</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/netsim-build-vagrant-boxes/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OMG: VTP Is Insecure]]></title>
    <link href="https://blog.ipspace.net/2022/02/vtp-insecure/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/vtp-insecure/</id>
    <published>2022-02-09T09:35:00+00:00</published>
    <updated>2022-02-09T09:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me an interesting pointer:</p>
<blockquote>
<p>I just watched a <a href="https://youtu.be/u5cp_hcwq2c">YouTube video</a> by a security researcher showing how a five line python script can be used to unilaterally configure a Cisco switch port connected to a host computer into a trunk port. It does this by forging a single virtual trunk protocol (VTP) packet. The host can then eavesdrop on broadcast traffic on all VLANs on the network, as well as prosecute man-in-the-middle of attacks.</p>
</blockquote>
<p>I&rsquo;d say that&rsquo;s a &ldquo;startling revelation&rdquo; along the lines of &ldquo;<a href="/2018/11/omg-vxlan-is-still-insecure/">OMG, VXLAN is insecure</a>&rdquo; &ndash; a wonderful way for a security researcher to gain instant visibility. From a more pragmatic perspective, if you enable an insecure protocol on a user-facing port, you get the results you deserve<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>While I could end this blog post with the above flippant remark, it&rsquo;s more fun considering two fundamental questions.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/vtp-insecure/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Mixed Feelings about BGP Route Reflector Cluster ID]]></title>
    <link href="https://blog.ipspace.net/2022/02/bgp-rr-cluster-myths/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/bgp-rr-cluster-myths/</id>
    <published>2022-02-08T07:54:00+00:00</published>
    <updated>2022-02-08T07:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another BGP Route Reflector myth:</p>
<blockquote>
<p>In a redundant design, you should use Route Reflector Cluster ID to avoid loops.</p>
</blockquote>
<p>TL&amp;DR: No.</p>
<p>While BGP route reflectors <a href="/2013/10/can-bgp-route-reflectors-really/">can cause permanent forwarding loops</a> in sufficiently broken topologies, the Cluster ID was never needed to stop a routing update propagation loop:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/bgp-rr-cluster-myths/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: ipSpace.net Materials]]></title>
    <link href="https://blog.ipspace.net/2022/02/feedback-ipspace-subscription/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/feedback-ipspace-subscription/</id>
    <published>2022-02-07T09:27:00+00:00</published>
    <updated>2022-02-07T09:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.linkedin.com/in/andrewlemin/">Andy Lemin</a> sent me such a wonderful review of ipSpace.net materials that I simply couldn&rsquo;t resist publishing it ;)</p>
<hr>
<p>ipSpace.net is probably my favorite networking resource out there. After spending years with other training content sites which are geared around certifications, ipspace.net provides a totally unique source of vendor neutral opinions, information, and anecdotes &ndash; the kind of information that is just not available anywhere else. And to top it off, is presented by a wonderful speaker who is passionate, smart and really knows his stuff!</p>
<p>The difference between an engineer who just has certs versus an engineer who has a rounded and wide view of the whole industry is massive. An engineer with certs can configure your network, but an engineer with all the knowledge this site provides, is someone who can question why and challenge how we can configure your network in a better way.</p>
]]></content>
    <category term="training" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: We're a Decade Past Blade Server Market Peak]]></title>
    <link href="https://blog.ipspace.net/2022/02/worth-reading-blade-server-peak/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/worth-reading-blade-server-peak/</id>
    <published>2022-02-06T08:09:00+00:00</published>
    <updated>2022-02-06T08:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Stumbled upon a <a href="http://www.bladesmadesimple.com/2022/01/are-vendors-getting-out-of-the-blade-server-market/">totally unexpected fun fact</a>:</p>
<blockquote>
<p>Every server vendor either peaked or hits the peak of maximum units sold per quarter in 2015. In the years that follow, the monthly averages drop.</p>
</blockquote>
<p>Keep that in mind the next time Cisco sales team comes along with a UCS presentation.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Non-Standard Standards, SRv6 Edition]]></title>
    <link href="https://blog.ipspace.net/2022/02/worth-reading-non-standard-srv6/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/worth-reading-non-standard-srv6/</id>
    <published>2022-02-05T08:03:00+00:00</published>
    <updated>2022-02-05T08:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Years ago, I <a href="/2017/02/evpn-all-that-glitters-is-not-gold/">compared EVPN to SIP</a> &ndash; it has a gazillion options, and every vendor implements a different subset of them, making interoperability a nightmare.</p>
<p>According to Andrew Alston, <a href="https://medium.com/@AndrewLiquid/non-standard-standards-srv6-aa7b360e8e20">SRv6 is no better</a> (while being a <a href="/2021/11/worth-reading-srv6-insecure/">security nightmare</a>). No surprise there.</p>
]]></content>
    <category term="worth reading" />
    <category term="IPv6" />
    <category term="segment routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lesson Learned: The Way Forward]]></title>
    <link href="https://blog.ipspace.net/2022/02/video-lessons-learned-next-steps/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/video-lessons-learned-next-steps/</id>
    <published>2022-02-04T07:50:00+00:00</published>
    <updated>2022-02-04T07:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I tried to wrap up my <a href="https://my.ipspace.net/bin/list?id=NetBiz#LL">Lessons Learned</a> presentation on a <a href="https://my.ipspace.net/bin/get/NetBiz/L5%20-%20The%20Way%20Forward.mp4?doccode=NetBiz">positive note</a>: what are some of the things you can do to avoid all the traps and pitfalls I encountered in the almost four decades of working in networking industry:</p>
<ul>
<li>Get invited to architecture and design meetings when a new application project starts.</li>
<li>Always try to figure out what the <a href="https://my.ipspace.net/bin/list?id=NetBiz#BF">underlying actual business needs are</a>.</li>
<li>Just because you can doesn&rsquo;t mean that you should.</li>
<li>Keep it as simple as possible, but no simpler.</li>
<li>Work with your peers and explain how networking works and why you face certain limitations.</li>
<li>Humans are not perfect &ndash; automate as much as it makes sense, but no more.</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetBiz/L5%20-%20The%20Way%20Forward.mp4?doccode=NetBiz">Watch the video</a></div>
<div  class="free">
You&rsquo;ll need a <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Do a Cleanup Before Automating Your Network]]></title>
    <link href="https://blog.ipspace.net/2022/02/cleanup-before-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/cleanup-before-automation/</id>
    <published>2022-02-03T08:06:00+00:00</published>
    <updated>2022-02-03T08:06:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://www.linkedin.com/in/remington/">Remington Loose</a> sent me an interesting email describing his views on the right approach to network automation after reading my <em><a href="/2020/06/network-reliability-engineering-more-than-automation/">Network Reliability Engineering Should Be More than Software or Automation</a></em> rant &ndash; he&rsquo;s advocating standardizing network services and cleaning up your network before trying to deploy full-scale automation.</em></p>
<hr>
<p>I think you are 100% right to start with a thorough cleanup before automation. Garbage in, garbage out. It is also the case that all that inconsistency and differentiation makes for complexity in automation (as well as general operations) that makes it harder to gain traction.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/cleanup-before-automation/'>Read more &hellip;</a></div>]]></content>
    <category term=" automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netsim-tools Release 1.1.2]]></title>
    <link href="https://blog.ipspace.net/2022/02/netsim-tools-1.1.2/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/netsim-tools-1.1.2/</id>
    <published>2022-02-02T07:23:00+00:00</published>
    <updated>2022-02-02T07:23:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Every time I&rsquo;m writing <em>netsim-tools</em> release notes I&rsquo;m amazed at the number of features we managed to put together in just a few weeks.</p>

<figure><img src="/2022/02/netsim-1.1.2-insights.png"/>
</figure>
<div  class="info">
Starting with release 1.3, we <a href="/2022/08/netsim-netlab/">renamed <em>netsim-tools</em> to <em>netlab</em></a>.
</div>
<p>Here are the goodies from <em>netsim-tools</em> releases 1.1.1 and 1.1.2:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/netsim-tools-1.1.2/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Route Reflector Myths]]></title>
    <link href="https://blog.ipspace.net/2022/02/bgp-rr-myths/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/02/bgp-rr-myths/</id>
    <published>2022-02-01T07:54:00+00:00</published>
    <updated>2022-02-01T07:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>New networking myths are continuously popping up. Here&rsquo;s a BGP one I encountered a few days ago:</p>
<blockquote>
<p>You don&rsquo;t need IBGP sessions between BGP route reflectors</p>
</blockquote>
<p>In general, that&rsquo;s clearly wrong, as illustrated by this setup:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/02/bgp-rr-myths/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Sample Lab: SR-MPLS on Junos and SR Linux]]></title>
    <link href="https://blog.ipspace.net/2022/01/netsim-example-sr-mpls-junos-srlinux/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/netsim-example-sr-mpls-junos-srlinux/</id>
    <published>2022-01-31T07:36:00+00:00</published>
    <updated>2022-01-31T19:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week I <a href="/2022/01/netsim-example-rsvp-te-junos/">published</a> a link to <a href="https://blog.petecrocker.com/about/">Pete Crocker</a>&rsquo;s <a href="https://github.com/ipspace/netlab-examples/tree/master/routing/rsvp-mpls-vsrx">RSVP-TE lab</a>, but there&rsquo;s more: he <a href="https://github.com/ipspace/netlab-examples/tree/master/routing/sr-isis-te-vsrx">created another lab</a> using the same topology that uses SR-MPLS with IS-IS to get the job done.</p>
<p><a href="https://www.linkedin.com/in/jeroenvbemmel/">Jeroen Van Bemmel</a> did something similar for SR Linux: <a href="https://github.com/ipspace/netlab-examples/tree/master/routing/sr-mpls-bgp-srlinux">his lab topology</a> has fewer devices (plus SR Linux runs in containers), so it&rsquo;s easily deployable on machines without humongous amount of memory.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/netsim-example-sr-mpls-junos-srlinux/'>Read more &hellip;</a></div>]]></content>
    <category term="traffic engineering" />
    <category term="MPLS" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Network Does Too Much]]></title>
    <link href="https://blog.ipspace.net/2022/01/worth-reading-network-does-too-much/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/worth-reading-network-does-too-much/</id>
    <published>2022-01-30T09:57:00+00:00</published>
    <updated>2022-01-30T09:57:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Tom Hollingsworth published a <a href="https://networkingnerd.net/2022/01/28/the-network-does-too-much/">more eloquent version of what I&rsquo;ve been saying for ages</a>:</p>
<ul>
<li>Complexity belongs to the end nodes;</li>
<li>Network should provide end-to-end packet transport, not a fix for every stupidity someone managed to push down the stack;</li>
<li>There&rsquo;s nothing wrong with being a well-performing utility instead of pretending your stuff is working on unicorn farts and fairy dust.</li>
</ul>
<p>Obviously it&rsquo;s totally against the vested interest of any networking vendor out there to admit it.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Exploring: Christoph Jaggi's New Web Site]]></title>
    <link href="https://blog.ipspace.net/2022/01/worth-reading-website-christoph-jaggi/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/worth-reading-website-christoph-jaggi/</id>
    <published>2022-01-29T09:51:00+00:00</published>
    <updated>2022-01-29T09:51:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Christoph_Jaggi">Christoph Jaggi</a>, the author of  <em><a href="https://www.ipspace.net/Ethernet_Encryption">Ethernet Encryption</a></em> webinar and  <a href="/2017/08/new-metro-and-carrier-ethernet/">ethernet encryptor market overviews</a> launched a <a href="https://www.uebermeister.com/en/">new site</a> in which he collected tons material he created in the past &ndash; the <em>network security</em> and <em>news and articles</em> sections are definitely worth exploring.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Kubernetes Architecture]]></title>
    <link href="https://blog.ipspace.net/2022/01/video-kubernetes-architecture/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/video-kubernetes-architecture/</id>
    <published>2022-01-28T09:19:00+00:00</published>
    <updated>2022-01-28T09:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Yesterday I <a href="/2022/01/mtu-virtual-devices/">mentioned</a> <em>the giant glob of complexity called Kubernetes</em> (see also <a href="https://buttondown.email/nelhage/archive/two-reasons-kubernetes-is-so-complex/">more nuanced take on the topic</a>). If you want to slowly unravel it, <em><a href="https://my.ipspace.net/bin/get/Kubernetes/1.3%20-%20Kubernetes%20Architecture.mp4?doccode=Kubernetes">Kubernetes Architecture</a></em> video from the excellent <em><a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a></em> webinar by <em><a href="https://www.ipspace.net/Author:Stuart_Charlton">Stuart Charlton</a></em> is a pretty good starting point.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Kubernetes/1.3%20-%20Kubernetes%20Architecture.mp4?doccode=Kubernetes">Watch the video</a></div>
<div  class="free">
Parts of <em><a href="https://www.ipspace.net/Kubernetes_Networking_Deep_Dive">Kubernetes Networking Deep Dive</a></em> webinar (including this video) are available with <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a>.
</div>
]]></content>
    <category term="containers" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MTU Settings in Virtual Network Devices]]></title>
    <link href="https://blog.ipspace.net/2022/01/mtu-virtual-devices/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/mtu-virtual-devices/</id>
    <published>2022-01-27T09:34:00+00:00</published>
    <updated>2022-01-27T09:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When I finally<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> managed to get SR Linux running with <em>netlab</em>, I wanted to test how it interacts with Cumulus VX and FRR in an OSPF+BGP lab&hellip; and failed. <a href="https://github.com/jbemmel">Jeroen Van Bemmel</a> quickly identified the culprit: MTU. Yeah, it&rsquo;s always the MTU (or DNS, or BGP).</p>
<p>I never experienced a similar problem, so of course I had to identify the root cause:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/mtu-virtual-devices/'>Read more &hellip;</a></div>]]></content>
    <category term="virtualization" />
    <category term="Cumulus Linux" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Three Dimensions of BGP Address Family Nerd Knobs]]></title>
    <link href="https://blog.ipspace.net/2022/01/bgp-af-nerd-knobs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/bgp-af-nerd-knobs/</id>
    <published>2022-01-26T08:03:00+00:00</published>
    <updated>2022-01-26T08:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Got into an interesting BGP discussion a few days ago, resulting in a wild chase through recent SRv6 and BGP drafts and RFCs. You might find the results mildly interesting ;)</p>
<p>BGP has three dimensions of address family configurability:</p>
<ul>
<li><strong>Transport sessions</strong>. Most vendors implement BGP over TCP over IPv4 and IPv6. I&rsquo;m sure there&rsquo;s someone out there running BGP over CLNS<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, and there are already drafts proposing running BGP over QUIC<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</li>
<li><strong>Address families</strong> enabled on individual transport sessions, more precisely a combination of <a href="https://www.iana.org/assignments/address-family-numbers/address-family-numbers.xhtml">Address Family Identifier</a> (AFI) and <a href="https://www.iana.org/assignments/safi-namespace/safi-namespace.xhtml">Subsequent Address Family Identifier</a>.</li>
<li><strong>Next hops address family</strong> for enabled address families.</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/bgp-af-nerd-knobs/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[More: Hardware Differences between Routers and Switches]]></title>
    <link href="https://blog.ipspace.net/2022/01/more-router-switch-hardware/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/more-router-switch-hardware/</id>
    <published>2022-01-25T08:47:00+00:00</published>
    <updated>2022-01-25T08:47:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>Aaron Glenn sent me his thoughts on hardware differences between routers and switches based on the last paragraph of <a href="https://www.linkedin.com/in/dmytro-shypovalov-573aab58/">Dmytro Shypovalov</a>&rsquo;s <a href="/2021/12/response-router-switch-hardware/">views on the topic</a></em></p>
<hr>
<blockquote>
<p>To conclude, what is the difference between routers and switches in my opinion? I have absolutely no idea.</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/more-router-switch-hardware/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Sample Lab: RSVP TE on Junos]]></title>
    <link href="https://blog.ipspace.net/2022/01/netsim-example-rsvp-te-junos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/netsim-example-rsvp-te-junos/</id>
    <published>2022-01-24T07:36:00+00:00</published>
    <updated>2022-01-24T07:36:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s amazing how creative networking engineers become once they have the basic tools to get the job done a bit quicker. Last week Pete Crocker <a href="https://github.com/ipspace/netlab-examples/tree/master/routing/rsvp-mpls-vsrx">published the largest topology</a> I&rsquo;ve seen built with <em>netlab</em> so far: a 13-router lab running RSVP TE to transport IP traffic between external autonomous systems<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>

<figure><img src="https://raw.githubusercontent.com/ipspace/netlab-examples/master/routing/rsvp-mpls-vsrx/mpls.png"
   alt="Lab topology"/><figcaption>
    <p>Lab topology</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/netsim-example-rsvp-te-junos/'>Read more &hellip;</a></div>]]></content>
    <category term="traffic engineering" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Machine Learning Techniques]]></title>
    <link href="https://blog.ipspace.net/2022/01/video-machine-learning-techniques/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/video-machine-learning-techniques/</id>
    <published>2022-01-21T07:03:00+00:00</published>
    <updated>2022-01-21T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> walked us through the <a href="/2021/10/video-ai-ml-introduction/">AI/ML hype</a> and described the <a href="/2021/12/video-machine-learning-101/">basics of machine learning</a> it was time for a <a href="https://my.ipspace.net/bin/get/AI/2.2%20-%20Machine%20Learning%20Techniques.mp4?doccode=AI">more thorough look</a> at:</p>
<ul>
<li>Machine learning techniques, including <em>unsupervised learning</em> (clustering and anomaly detection), <em>supervised learning</em> (regression, classification and generation) and <em>reinforced learning</em></li>
<li>Machine learning implementations, including <em>neural networks</em>, <em>deep neural networks</em> and <em>convolutional neural networks</em>.</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/2.2%20-%20Machine%20Learning%20Techniques.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Introducing netlab Plugins]]></title>
    <link href="https://blog.ipspace.net/2022/01/netsim-plugins/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/netsim-plugins/</id>
    <published>2022-01-19T07:09:00+00:00</published>
    <updated>2022-01-19T07:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Remember the <a href="/2021/12/bgp-anycast-lab/">BGP anycast lab</a> I described in December 2021? In that blog post I briefly mentioned a problem of extraneous IBGP sessions and promised to address it at a later date. Let&rsquo;s see how we can fix that with a <em>netlab</em> plugin.</p>
<p>We always knew that it&rsquo;s impossible to implement every nerd knob someone would like to have when building their labs, and extending the tool with Python plugins seemed like the only sane way to go. We added <a href="https://netlab.tools/plugins/">custom plugins</a> to <em>netlab</em> in late 2021, but I didn&rsquo;t want to write about them because we had to optimize the internal data structures first.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/netsim-plugins/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Layer-3 Carrier Ethernet]]></title>
    <link href="https://blog.ipspace.net/2022/01/l3-carrier-ethernet/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/l3-carrier-ethernet/</id>
    <published>2022-01-18T07:49:00+00:00</published>
    <updated>2022-01-18T07:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of ipSpace.net subscribers asked for my opinion about <em>Adaptive IP</em>, a concept promoted by one of the optical connectivity vendors. As he put it:</p>
<blockquote>
<p>My interest in Carrier Ethernet moving up to Layer 3 is to see if it would be something to account for in the future.</p>
</blockquote>
<p>A quick search resulted in a marketecture using Segment Routing (of course) and an SDN controller (what else could one be using today) using Path Computation Element Protocol (PCEP) to program the network devices&hellip; and then I hit a regwall. They wanted to collect my personal details to grace me with their whitepaper, and I couldn&rsquo;t find even a link to the product documentation.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/l3-carrier-ethernet/'>Read more &hellip;</a></div>]]></content>
    <category term="VPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running IS-IS over Unnumbered Ethernet Interfaces]]></title>
    <link href="https://blog.ipspace.net/2022/01/isis-unnumbered/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/isis-unnumbered/</id>
    <published>2022-01-17T07:04:00+00:00</published>
    <updated>2022-01-17T07:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last time we figured out that we <a href="/2022/01/ospf-unnumbered/">cannot run OSPF over unnumbered interfaces</a> that are not point-to-point links because OSPF makes assumptions about interface IP addresses. IS-IS makes no such assumptions; IPv4 and IPv6 prefixes are just a bunch of TLVs exchanged between routers over a <a href="/2009/06/is-is-is-not-running-over-clnp/">dedicated layer-3 protocol</a> with ridiculously long network addresses.</p>
<p>Could we thus build a totally unnumbered IP network with IS-IS even when the network contains multi-access segments? It depends:</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/isis-unnumbered/'>Read more &hellip;</a></div>]]></content>
    <category term="IS-IS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Local Area Network Addressing]]></title>
    <link href="https://blog.ipspace.net/2022/01/video-local-area-network-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/video-local-area-network-addressing/</id>
    <published>2022-01-14T07:17:00+00:00</published>
    <updated>2022-01-14T07:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <em><a href="https://my.ipspace.net/bin/get/Net101/NA2.2%20-%20Local%20Area%20Network%20Addressing.mp4?doccode=Net101">Local Area Network Addressing</a></em> video (part of <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> webinar) I covered numerous obscure LAN addressing details including:</p>
<ul>
<li>There&rsquo;s no layer-2 address in Fibre Channel frames (because <a href="/2011/07/is-fibre-channel-switching-bridging-or/">FC is routing not bridging</a>);</li>
<li>Why is the multicast bit the lowest bit (0x01) in the first byte on Ethernet but the highest bit (0x80) on Token Ring or FDDI;</li>
<li>How some NIC manufacturers never got the memo on what OUI really means.</li>
</ul>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA2.2%20-%20Local%20Area%20Network%20Addressing.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Recursive BGP Next Hop Resolution]]></title>
    <link href="https://blog.ipspace.net/2022/01/feedback-recursive-bgp-next-hops/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/feedback-recursive-bgp-next-hops/</id>
    <published>2022-01-12T06:27:00+00:00</published>
    <updated>2022-01-12T06:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <em><a href="/2022/01/bgp-recursive-next-hops-rfc/">Recursive BGP Next Hops: an RFC 4271 Quirk</a></em> blog post generated tons of feedback (thanks a million to everyone writing a comment on my blog or <a href="https://www.linkedin.com/feed/update/urn%3Ali%3Aactivity%3A6884535946654572544/">LinkedIn</a>).</p>
<p>Starting with <a href="/2022/01/bgp-recursive-next-hops-rfc/#956">Robert Razsuk</a> who managed to track down the <a href="https://mailarchive.ietf.org/arch/msg/idr/OHlGLdQOF5lSa_NR7oOaDjse8y8/">original email</a> that triggered the (maybe dubious) text in RFC 4271:</p>
<blockquote>
<p>The text in section 5.1.3 was not really targeting to prohibit load balancing. Keep in mind that it is FIB layer which constructs actual forwarding paths.</p>
<p>The text has been suggested by Tom Petch in discussion about BGP advertising valid paths or even paths it actually installs in the RIB/FIB. The entire section 5.1.3 is about rules when advertising paths by BGP.</p>
</blockquote><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/feedback-recursive-bgp-next-hops/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Just Out: netsim-tools Release 1.1]]></title>
    <link href="https://blog.ipspace.net/2022/01/netsim-tools-1.1/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/netsim-tools-1.1/</id>
    <published>2022-01-11T08:01:00+00:00</published>
    <updated>2022-01-11T08:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>New Year break was probably my busiest time (programming-wise) in years. <a href="https://github.com/jbemmel">Jeroen van Bemmel</a> continued generating great ideas (and <a href="https://github.com/ipspace/netlab/graphs/contributors">writing code and device configuration templates</a>), and I found myself saying, &ldquo;<em>why not, let&rsquo;s do the right thing!</em>&rdquo; more often than I expected. In parallel, <a href="https://github.com/ssasso">Stefano Sasso</a> fixed configuration templates for Junos, Mikrotik Router OS, and VyOS, and we were good to go.</p>
<p>To give you an idea of <a href="https://github.com/ipspace/netlab/pulse/monthly">how fast we were moving</a>: issue #84 was created on December 22nd, Sunday&rsquo;s pull request that pushed release 1.1 into the master branch was #135 (GitHub numbers everything you do sequentially).</p>
<div  class="info">
Starting with release 1.3, we <a href="/2022/08/netsim-netlab/">renamed <em>netsim-tools</em> to <em>netlab</em></a>.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/netsim-tools-1.1/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running OSPF over Unnumbered Ethernet Interfaces]]></title>
    <link href="https://blog.ipspace.net/2022/01/ospf-unnumbered/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/ospf-unnumbered/</id>
    <published>2022-01-10T07:04:00+00:00</published>
    <updated>2023-08-22T15:17:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Remember the <em>unnumbered IP interfaces</em> saga? Let&rsquo;s conclude with the final challenge: can we run link-state routing protocols (OSPF or IS-IS) over unnumbered interfaces?</p>
<p><strong>Quick answer</strong>: Sure, just use IPv6.</p>
<p>Cheater! IPv6 doesn&rsquo;t count. There are no unnumbered interfaces in IPv6 &ndash; every interface has at least a link-local address (LLA). Even more, routing protocols are designed to run over LLA addresses, including some EBGP implementations, allowing you to build an LLA-only network (see <a href="https://datatracker.ietf.org/doc/html/rfc7404">RFC 7404</a> for details).</p>
<p>OK, what about IPv4?</p>
<p><strong>TL&amp;DR</strong>: It works, but&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/ospf-unnumbered/'>Read more &hellip;</a></div>]]></content>
    <category term="OSPF" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Free Software Is a Gift]]></title>
    <link href="https://blog.ipspace.net/2022/01/worth-reading-open-source-gift/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/worth-reading-open-source-gift/</id>
    <published>2022-01-08T09:09:00+00:00</published>
    <updated>2022-01-08T09:09:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;m positive that this pointer to <em><a href="https://apenwarr.ca/log/20211229">The Gift of It&rsquo;s Your Problem Now</a></em> by Avery Pennarun will generate similar comments to the <a href="/2021/11/worth-reading-bitcoin-fail/">blockchain one</a>: &ldquo;<em>he&rsquo;s an idiot, and you&rsquo;re an idiot for wasting my time posting this</em>&rdquo;.</p>
<p>That might be true, but in that case he&rsquo;s my kind of idiot, and you shouldn&rsquo;t complain about a gift anyway &ndash; there are tons of high-quality lolcats videos waiting for you instead.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Cloud Services Hierarchy]]></title>
    <link href="https://blog.ipspace.net/2022/01/video-cloud-services-hierarchy/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/video-cloud-services-hierarchy/</id>
    <published>2022-01-07T07:12:00+00:00</published>
    <updated>2022-01-07T07:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Remember the <em><a href="/2019/12/video-cloud-models-layers-and/">Cloud Models, Layers and Responsibilities</a></em> video by <a href="https://www.ipspace.net/Author:Matthias_Luft">Matthias Luft</a>? He continued his introduction of cloud services with <em>Cloud Services Hierarchy</em>, explained the differences between <em>infrastructure</em>, <em>platform</em>, <em>function</em> and <em>software</em> as a service, and concluded with a <em>there&rsquo;s no free lunch</em> message.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Cloud101/2%20-%20Cloud%20Services%20Hierarchy.mp4?doccode=Cloud101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this video.
</div>
]]></content>
    <category term="cloud" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Cisco ACI Deep Dive]]></title>
    <link href="https://blog.ipspace.net/2022/01/feedback-cisco-aci/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/feedback-cisco-aci/</id>
    <published>2022-01-06T07:03:00+00:00</published>
    <updated>2022-01-06T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In 2021, we completed one of the longest ipSpace.net webinars: <a href="https://www.ipspace.net/Cisco_ACI_Deep_Dive">Cisco ACI Deep Dive</a> (almost 13 hours of content<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>). One of the participants <a href="https://www.ipspace.net/Cisco_ACI_Deep_Dive#Happy_Campers">found it extremely useful</a>:</p>
<blockquote>
<p>I really like the technical detail of the webinar and the way it is composed. Mario also does a good job in explaining all the complexity in a clear way without oversimplifying. All the sessions help to build up an understanding on the inner workings of the ACI solution, because they deliver technical details in depth piece by piece.</p>
</blockquote>
<p>I also liked his take on the value of this webinar:</p>
<blockquote>
<p>I&rsquo;m always amazed on how much other (offical) training vendors under deliver in their courses that cost thousands of dollars, compared to the real expert level stuff you&rsquo;ve got here.</p>
</blockquote>
<p>Hope you&rsquo;ll like the webinar as much as he did &ndash; you can get it with Standard or Expert <a href="https://www.ipspace.net/Subscription/Individual">ipSpace.net Subscription</a>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/feedback-cisco-aci/'>Read more &hellip;</a></div>]]></content>
    <category term="ACI" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Recursive BGP Next Hops: an RFC 4271 Quirk]]></title>
    <link href="https://blog.ipspace.net/2022/01/bgp-recursive-next-hops-rfc/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/bgp-recursive-next-hops-rfc/</id>
    <published>2022-01-05T07:41:00+00:00</published>
    <updated>2022-01-05T07:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>All BGP implementations I&rsquo;ve seen so far use <em>recursive next hop lookup</em>:</p>
<ul>
<li>The next hop in the IP routing table is the BGP next hop advertised in the incoming update</li>
<li>That next hop is resolved into the actual next hop using one or more recursive lookups into the IP routing table.</li>
</ul>
<p>Furthermore, all BGP implementations I&rsquo;ve seen used multiple recursive next hops (if available) to implement load balancing toward the BGP next hop &ndash; that&rsquo;s how we made <a href="/2009/03/ebgp-load-balancing-with-multihop-ebgp/">EBGP load balancing work</a> in Stone Age of networking.</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/bgp-recursive-next-hops-rfc/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Microsegmentation Terminology]]></title>
    <link href="https://blog.ipspace.net/2022/01/microsegmentation-terminology/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/microsegmentation-terminology/</id>
    <published>2022-01-04T08:43:00+00:00</published>
    <updated>2022-01-04T08:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>While I liked reading the <em><a href="https://netcraftsmen.com/where-to-stick-the-firewall-part-1/">Where to Stick the Firewall</a></em> blog post by Peter Welcher, it bothered me a bit that he used <em>microsegmentation</em> to mean <em>security groups</em>.</p>
<p>I know that <em>microsegmentation</em> became approximately as well-defined as <em>cloud</em> or <em>SDN</em><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, but let&rsquo;s aim our shiny lance <sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> at the nearest windmill and gallop away&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/microsegmentation-terminology/'>Read more &hellip;</a></div>]]></content>
    <category term="security" />
    <category term="firewalls" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netsim-tools: New in December 2021]]></title>
    <link href="https://blog.ipspace.net/2022/01/netsim-tools-december-2021/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2022/01/netsim-tools-december-2021/</id>
    <published>2022-01-03T09:13:00+00:00</published>
    <updated>2022-01-03T09:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://netlab.tools/release/1.0/">Tons of new things</a> were added to <em><a href="https://netlab.tools/">netsim-tools</a></em> in December 2021:</p>
<ul>
<li><a href="https://www.linkedin.com/in/petercrocker/">Pete Crocker</a> contributed support for Fortinet devices. You can configure IPv4, IPv6 and OSPF. <a href="https://netlab.tools/platforms/">More details…</a></li>
<li><a href="https://github.com/jbemmel">Jeroen van Bemmel</a> contributed support for Nokia SR Linux and SR OS (including initial device configuration, OSPF, ISIS, BGP, and SR-MPLS).</li>
<li>I added Vagrant box names for IOSv, CSR and vSRX on VirtualBox. You still have to build the boxes, but at least you won’t have to change the default settings.</li>
</ul>
<div  class="info">
Starting with release 1.3, we <a href="/2022/08/netsim-netlab/">renamed <em>netsim-tools</em> to <em>netlab</em></a>.
</div><div class='jump-link'><a href='https://blog.ipspace.net/2022/01/netsim-tools-december-2021/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[That's It for 2021]]></title>
    <link href="https://blog.ipspace.net/2021/12/thats-it/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/thats-it/</id>
    <published>2021-12-17T07:08:00+00:00</published>
    <updated>2021-12-17T07:08:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It&rsquo;s hard to believe, but another year has swooshed by, and it&rsquo;s time to shut down my virtual office and disappear until mid-January. Of course I&rsquo;ll be around in case of urgent support problems &ndash; I will read my email, but won&rsquo;t reply to 90% of the stuff coming in.</p>
<p>I hope you’ll be able to find a few days to disconnect from the crazy pace of networking world and focus on your loved ones. I would also like to wish you all the best in 2022!</p>
]]></content>
    <category term="training" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Highlights: Dynamic Negotiation of BGP Capabilities]]></title>
    <link href="https://blog.ipspace.net/2021/12/highlights-dynamic-bgp-capabilities/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/highlights-dynamic-bgp-capabilities/</id>
    <published>2021-12-15T06:48:00+00:00</published>
    <updated>2021-12-20T18:44:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <em><a href="/2021/11/bgp-dynamic-capability/">Dynamic Negotiation of BGP Capabilities</a></em> blog post generated almost no comments, apart from the #facepalm realization that a <a href="/2021/11/bgp-dynamic-capability/#891">certain network operating system resets IBGP sessions when the sole EBGP session goes down</a>, but there were a few interesting comments on LinkedIn and Twitter.</p>
<p>While most engineers easily relate to the <a href="https://twitter.com/alex_saroyan/status/1465849573293707273">awkwardness of bringing down a BGP session</a> to enable new functionality (<em>Tearing down BGP session, as a solution reminds me rebooting a host, as a solution.</em>), it&rsquo;s not as easy as it looks. As <a href="https://twitter.com/packetsource/status/1465598502671732741">Adam Chappell put it</a> &ldquo;<em>Dynamic capability renegotiation does tend to sound a bit like changing the tyres while still moving. Very neat if you can pull it off but so much to go wrong&hellip;</em>&rdquo;</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/highlights-dynamic-bgp-capabilities/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Checking Network Device Configurations in a GitOps CI Pipeline]]></title>
    <link href="https://blog.ipspace.net/2021/12/gitops-device-configurations/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/gitops-device-configurations/</id>
    <published>2021-12-14T07:54:00+00:00</published>
    <updated>2021-12-14T07:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s a fun fact network automation pundits don&rsquo;t want to hear: if you&rsquo;re working with <a href="/2016/10/network-automation-rfp-requirements/">replaceable device configurations</a> (as we did for the past 20 years, at least those fortunate enough to buy Junos), you already meet the <a href="https://en.wikipedia.org/wiki/Infrastructure_as_code">Infrastructure-as-Code</a> requirements. <a href="/2018/08/gitops-in-networking/">Storing device configurations in a version control system</a> and using reviews and merge requests to change them (aka GitOps) is just a cherry on the cake.</p>
<p>When I <a href="https://my.ipspace.net/bin/list?id=AutConcepts#NIAC">made a claim along these same lines</a> a few weeks ago during the <em><a href="https://www.ipspace.net/Network_Automation_Concepts">Network Automation Concepts</a></em> webinar, <a href="https://www.linkedin.com/in/vldmtr/">Vladimir Troitskiy</a> sent me an interesting question:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/gitops-device-configurations/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Running Network Automation Tools in a Container]]></title>
    <link href="https://blog.ipspace.net/2021/12/network-automation-container/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/network-automation-container/</id>
    <published>2021-12-13T07:14:00+00:00</published>
    <updated>2021-12-13T07:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Setting up a network automation development environment is an interesting task:</p>
<ul>
<li>You have to install a half-dozen tools, each one with tons of dependencies;</li>
<li>SSH libraries like <em>paramiko</em> have to installed manually;</li>
<li>Ansible modules for individual network devices might need extra libraries;</li>
<li>Parsing tools invoked with Ansible Jinja2 filters have to be installed separately;</li>
<li>Add your pet peeve here ;)</li>
</ul>
<p>Now imagine having to do that for a dozen networking engineers and software developers working on all sorts of semi-managed laptops. <em>Containers</em> seem to be one of the sane solutions<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/network-automation-container/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
    <category term="Docker" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Snowflake Network Devices]]></title>
    <link href="https://blog.ipspace.net/2021/12/worth-reading-snowflake-network-devices/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/worth-reading-snowflake-network-devices/</id>
    <published>2021-12-11T07:43:00+00:00</published>
    <updated>2021-12-11T07:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In his <a href="https://networkingnerd.net/2021/12/10/is-disaggregation-going-to-be-cord-cutting-for-the-enterprise/">latest blog post</a>, Tom Hollingsworth compares network device disaggregations with cord cutting (replacing cable TV subscription with Netflix and friends), and comes to the inevitable conclusion:</p>
<blockquote>
<p>The idea is that you gain freedom and cheaper software. The hope is that you can build an enterprise network for half of what it would normally cost. The reality is that you’re going to gain less functionality and spend more time integrating things together on your own instead of just putting in a turnkey solution.</p>
</blockquote>
<p>To rephrase it, you&rsquo;ll design a snowflake network with snowflake devices. Good job &ndash; just because it makes sense for the FAANG club (<a href="/2016/09/whitebox-switching-at-linkedin-with/">or LinkedIn</a>), it <a href="/2016/03/you-want-your-network-to-be-like/">doesn&rsquo;t mean you should be doing it</a>.</p>
]]></content>
    <category term="SDN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Podcast: Ironing Out the BGP Ruffles]]></title>
    <link href="https://blog.ipspace.net/2021/12/ironing-out-bgp-ruffles/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/ironing-out-bgp-ruffles/</id>
    <published>2021-12-10T07:48:00+00:00</published>
    <updated>2021-12-10T07:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After the (in)famous <a href="https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/">October 2021 Facebook outage</a>, Corey Quinn invited me for another <a href="https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/">Screaming in the Cloud</a> chat, this time <a href="https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/ironing-out-the-bgp-ruffles-with-ivan-pepelnjak/">focusing on what went wrong</a> (hint: it wasn&rsquo;t DNS or BGP).</p>
<p>We also touched on VAX/VMS history, how early CCIE lab exams worked, how BGP started, why there are only 13 root name servers (<a href="/2021/11/dns-anycast/">not really</a>), and the transition from networking being pure magic to becoming a commodity. Hope you&rsquo;ll enjoy our chat as much as I did.</p>
<div class='jump-link'><a href="https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/ironing-out-the-bgp-ruffles-with-ivan-pepelnjak/">Listen to the podcast</a></div>
]]></content>
    <category term="BGP" />
    <category term="Internet" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Response: Hardware Differences between Routers and Switches]]></title>
    <link href="https://blog.ipspace.net/2021/12/response-router-switch-hardware/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/response-router-switch-hardware/</id>
    <published>2021-12-09T07:48:00+00:00</published>
    <updated>2021-12-09T07:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://www.linkedin.com/in/dmytro-shypovalov-573aab58/">Dmytro Shypovalov</a> sent me his views on the hardware differences between routers and switches. Enjoy!</em></p>
<hr>
<p>So, a long time ago routers were L3 with CPU forwarding and switches were L2 with ASIC. Then they had invented TCAM and L3 switches, and since then ASICs have evolved to support more features (QoS, encapsulations etc) and store more routes, while CPU-based architectures have evolved to specialised NPU and parallel processing (e.g. Cisco QFX) to handle more traffic, while supporting all features of CPU forwarding.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/response-router-switch-hardware/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[What Are You Going to Test in Network Automation CI/CD Pipeline?]]></title>
    <link href="https://blog.ipspace.net/2021/12/ci-cd-network-automation-tests/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/ci-cd-network-automation-tests/</id>
    <published>2021-12-08T07:25:00+00:00</published>
    <updated>2021-12-08T07:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Network automation <a href="https://en.wikipedia.org/wiki/CI/CD">CI/CD pipeline</a> seems to be the next hot thing, with <a href="https://techfieldday.com/video/arista-next-generation-automation-architectures/">vendors</a> and <a href="https://juliopdx.com/2021/10/20/building-a-network-ci-cd-pipeline-part-1/">bloggers</a> describing in detail how you could get it done. How realistic is that idea for an average environment that&rsquo;s barely starting its automation journey?</p>
<p><strong>TL&amp;DR</strong>: it will take a long time to get there, and lack of tests is the first showstopper.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/ci-cd-network-automation-tests/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Highlights: Multi-Threaded Routing Daemons]]></title>
    <link href="https://blog.ipspace.net/2021/12/highlights-multi-threaded-routing-daemons/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/highlights-multi-threaded-routing-daemons/</id>
    <published>2021-12-07T07:53:00+00:00</published>
    <updated>2021-12-07T07:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <em><a href="/2021/11/multi-threaded-routing-daemons/">multi-threaded routing daemons</a></em> blog post generated numerous in-depth comments here and on LinkedIn. As always, thanks a million for keeping me honest and providing more details or additional perspectives. Here are some of the best bits.</p>
<p>Jeff Tantsura provided the first dose of reality:</p>
<blockquote>
<p>All modern routing protocols implementations are multi-threaded, with a minimum separation of adjacency handling, route calculations and update generation. Note - writing multi-threaded code for complex tasks is a non trivial exercise (you could search for thread safety and similar artifacts and what happens when not implemented correctly). Moving to a multi-threaded code in early 2010s resulted in a multi-release (year) effort and 100s of related bugs all around.</p>
</blockquote>
<p>Dr. Tony Przygienda added his hands-on experience (he&rsquo;s been developing routing protocol software for ages):</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/highlights-multi-threaded-routing-daemons/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Building a BGP Anycast Lab]]></title>
    <link href="https://blog.ipspace.net/2021/12/bgp-anycast-lab/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/bgp-anycast-lab/</id>
    <published>2021-12-06T07:30:00+00:00</published>
    <updated>2022-01-16T07:58:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The <em><a href="/2021/11/anycast-mpls/">Anycast Works Just Fine with MPLS/LDP</a></em> blog post generated so much interest that I decided to check a few similar things, including running BGP-based anycast over a BGP-free core, and using BGP Labeled Unicast (BGP-LU).</p>
<h3 id="the-big-picture">The Big Picture</h3>
<p>We&rsquo;ll use the same physical topology we used in the <a href="/2021/11/anycast-mpls/">OSPF+MPLS anycast example</a>: a leaf-and-spine fabric (admittedly with a single spine) with three anycast servers advertising 10.42.42.42/32 attached to two of the leafs:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/bgp-anycast-lab/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Xen on AWS Nitro NICs]]></title>
    <link href="https://blog.ipspace.net/2021/12/worth-reading-xen-on-aws-nitro/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/worth-reading-xen-on-aws-nitro/</id>
    <published>2021-12-04T07:40:00+00:00</published>
    <updated>2021-12-04T07:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>If you find <a href="/2020/09/need-smart-nic/">smart NICs</a> interesting, you&rsquo;ll like the latest blog post by James Hamilton explaining how <a href="https://perspectives.mvdirona.com/2021/11/xen-on-nitro-aws-nitro-for-legacy-instances/">AWS emulated Xen environment on Nitro hardware</a> to keep old VM instances running on new hardware.</p>
]]></content>
    <category term="virtualization" />
    <category term="cloud" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Machine Learning 101]]></title>
    <link href="https://blog.ipspace.net/2021/12/video-machine-learning-101/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/video-machine-learning-101/</id>
    <published>2021-12-03T07:34:00+00:00</published>
    <updated>2021-12-03T07:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After a <a href="/2021/10/video-ai-ml-introduction/">brief overview of the AI/ML hype</a>, <a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> continued the <a href="https://www.ipspace.net/AI_and_ML_in_Networking"><em>AI and ML in Networking</em></a> webinar with the basics of underlying technologies, starting with the <a href="https://my.ipspace.net/bin/get/AI/2.1%20-%20Machine%20Learning%20101.mp4?doccode=AI">machine learning fundamentals</a>.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/2.1%20-%20Machine%20Learning%20101.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Optimal BGP Path Selection with BGP Additional Paths]]></title>
    <link href="https://blog.ipspace.net/2021/12/bgp-multipath-addpath/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/bgp-multipath-addpath/</id>
    <published>2021-12-02T07:40:00+00:00</published>
    <updated>2021-12-02T07:40:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A month ago I explained how <a href="/2021/11/bgp-multipath-netsim-tools/">using a BGP route reflector in a large-enough non-symmetrical network could result in suboptimal routing</a> (or loss of path diversity or multipathing). I also promised to explain how <em>Advertisement of Multiple Paths in BGP</em>  functionality<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> solves that problem. Here we go&hellip;</p>
<p>I extended the <a href="https://github.com/ipspace/netlab-examples/blob/master/BGP/Multipath/baseline.yml">original lab</a> with another router to get a scenario where one route reflector (RR) client should use equal-cost paths to an external destination while another RR client should select a best path that is different from what the route reflector would select.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/12/bgp-multipath-addpath/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Scalable Policy Routing]]></title>
    <link href="https://blog.ipspace.net/2021/12/scalable-policy-routing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/12/scalable-policy-routing/</id>
    <published>2021-12-01T07:45:00+00:00</published>
    <updated>2021-12-01T07:45:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>More than a decade ago (before SD-WAN was even a thing) I wrote an article describing how easy it is to route different applications onto different links (MPLS/VPN versus IPsec tunnels) using a distance vector routing protocol (preferably BGP, although even RIP would work).</p>
<p>You might find it interesting that it&rsquo;s possible to solve tough problems with good network design instead of proprietary unicorn dust, so I salvaged the article from some dusty archive, cleaned it up, polished it, and published it on ipSpace.net.</p>
<div class='jump-link'><a href="/kb/Internet/ScalablePolicyRouting/">Keep reading</a></div>
]]></content>
    <category term="IP routing" />
    <category term="SD-WAN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Dynamic Negotiation of BGP Capabilities]]></title>
    <link href="https://blog.ipspace.net/2021/11/bgp-dynamic-capability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/bgp-dynamic-capability/</id>
    <published>2021-11-30T07:15:00+00:00</published>
    <updated>2021-11-30T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I wanted to write a blog post explaining the intricacies of <em>Advertisement of Multiple Paths in BGP</em>, got into a yak-shaving exercise when discussing the need to exchange BGP capabilities to enable this feature, and decided to turn it into a separate prerequisite blog post. The optimal path selection with <em>BGP AddPath</em> post is coming in a few days.</p>
<h3 id="the-problem">The Problem</h3>
<p>Whenever you want to use BGP for something else than simple IPv4 unicast routing the BGP neighbors must agree on what they are willing to do &ndash; be it multiprotocol extensions and individual additional address families, graceful restart, route refresh&hellip; (IANA has the <a href="https://www.iana.org/assignments/capability-codes/capability-codes.xhtml">complete BGP Capability Codes registry</a>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/bgp-dynamic-capability/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Mikrotik RouterOS and VyOS Added to netsim-tools]]></title>
    <link href="https://blog.ipspace.net/2021/11/netsim-tools-mikrotik-vyos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/netsim-tools-mikrotik-vyos/</id>
    <published>2021-11-29T07:13:00+00:00</published>
    <updated>2021-11-29T07:13:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="http://stefano.dscnet.org/about/">Stefano Sasso</a> took my &ldquo;<em>Don&rsquo;t complain, submit a PR</em>&rdquo; advice seriously and did a wonderful job adding support for Mikrotik RouterOS and VyOS to <em>netsim-tools</em>, increasing the number of <a href="https://netlab.tools/platforms/">supported platforms</a> to twelve. His additions are available in release 1.0.2 which also includes:</p>
<ul>
<li><a href="https://netlab.tools/groups/#automatic-bgp-groups">Automatic creation of groups based on BGP AS numbers</a></li>
<li><a href="https://netlab.tools/groups/#setting-node-data-in-groups">Group-wide node attributes</a></li>
<li><a href="https://netlab.tools/plugins/">Experimental support for Python plugins</a></li>
</ul>
<p>Interested? Start with <a href="https://netlab.tools/tutorials/">tutorials</a> and <a href="https://netlab.tools/install/">installation guide</a> which includes <a href="https://netlab.tools/install/#creating-the-lab-environment">lab building instructions</a>.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Git as a Source of Truth for Network Automation]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-git-source-truth/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-git-source-truth/</id>
    <published>2021-11-28T07:28:00+00:00</published>
    <updated>2021-11-28T07:28:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In <a href="https://vincent.bernat.ch/en/blog/2021-source-of-truth-network">Git as a source of truth for network automation</a>, Vincent Bernat explained why they decided to use Git-managed YAML files as the source of truth in their network automation project instead of relying on a database-backed GUI/API product like NetBox.</p>
<p>Their decision process was pretty close to what I explained in <em><a href="https://my.ipspace.net/bin/list?id=AutConcepts#DATASTORE">Data Stores</a></em> and <em><a href="https://my.ipspace.net/bin/list?id=AutConcepts#SSOT">Source of Truth</a></em> parts of <em><a href="https://www.ipspace.net/Network_Automation_Concepts">Network Automation Concepts</a></em> webinar: you need change logging, auditing, reviews, and all-or-nothing transactions, and most IPAM/CMDB products have none of those.</p>
<p>On a more positive side, NetBox (and its fork, <a href="https://blog.networktocode.com/post/why-did-network-to-code-fork-netbox/">Nautobot</a>) has change logging (HT: <a href="https://blog.kirchne.red/">Leo Kirchner</a>) and things are getting much better with <a href="https://www.dolthub.com/blog/2021-09-24-announcing-nautobot-on-dolt/">Nautobot Version Control plugin</a>. Stay tuned ;)</p>
]]></content>
    <category term="automation" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Load Balancing on Network Devices]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-understanding-load-balancing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-understanding-load-balancing/</id>
    <published>2021-11-27T07:53:00+00:00</published>
    <updated>2021-11-27T07:53:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Christopher Hart wrote a great blog post explaining the fundamentals of <a href="https://www.chrisjhart.com/Understanding-Load-Balancing/">how packet load balancing works on network devices</a>. Enjoy.</p>
<p>For more details, watch the Multipath Forwarding part of <a href="https://my.ipspace.net/bin/list?id=Net101#ADV_ROUTING">Advanced Routing Protocol Topics</a> section of <a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a> webinar.</p>
]]></content>
    <category term="load balancing" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lesson Learned: Some Services Are Not Worth Delivering]]></title>
    <link href="https://blog.ipspace.net/2021/11/services-not-worth-delivering/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/services-not-worth-delivering/</id>
    <published>2021-11-26T07:50:00+00:00</published>
    <updated>2021-11-26T07:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s one of the secrets to AWS&rsquo;s unprecedented scale and financial success: they quickly figured out that some services are not worth delivering. Most everyone else believes in building snowflake single-customer solutions to solve imaginary problems, effectively losing money while doing so.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetBiz/L4%20-%20Some%20Services%20Are%20Not%20Worth%20Delivering.mp4?doccode=NetBiz">Watch the video</a></div>
<div  class="free">
You&rsquo;ll need a Free ipSpace.net Subscription to watch the video.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Circular Dependencies, VMware NSX-T Edition]]></title>
    <link href="https://blog.ipspace.net/2021/11/circular-dependencies-vmware-edition/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/circular-dependencies-vmware-edition/</id>
    <published>2021-11-25T07:41:00+00:00</published>
    <updated>2021-11-25T07:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A friend of mine sent me a link to a <a href="https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.1/installation/GUID-3770AA1C-DA79-4E95-960A-96DAC376242F.html">lengthy convoluted document</a> describing the 17-step procedure (with the last step having 10 micro-steps) to follow if you want to run NSX manager on top of N-VDS, or as they call it: <em>Deploy a Fully Collapsed vSphere Cluster NSX-T on Hosts Running N-VDS Switches</em><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>You might not be familiar with vSphere networking and the way NSX-T uses that (in which case I can highly recommend <a href="https://www.ipspace.net/VSphere_6_Networking_Deep_Dive">vSphere</a> and <a href="https://www.ipspace.net/VMware_NSX_Technical_Deep_Dive">NSX</a> webinars), so here&rsquo;s a CliffsNotes version of it: you want to put the management component of NSX-T on top of the virtual switch it&rsquo;s managing, and make it accessible only through that virtual switch. What could possibly go wrong?</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/circular-dependencies-vmware-edition/'>Read more &hellip;</a></div>]]></content>
    <category term="NSX" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Anycast Fundamentals]]></title>
    <link href="https://blog.ipspace.net/2021/11/anycast-principles/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/anycast-principles/</id>
    <published>2021-11-24T07:15:00+00:00</published>
    <updated>2021-11-24T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I got into an interesting debate after I published the <em><a href="/2021/11/anycast-mpls/">Anycast Works Just Fine with MPLS/LDP</a></em> blog post, and after a while it turned out we have a slightly different understanding what <em>anycast</em> means. Time to fall back to a <a href="https://en.wikipedia.org/wiki/Anycast">Wikipedia definition</a>:</p>
<blockquote>
<p>Anycast is a network addressing and routing methodology in which a single destination IP address is shared by devices (generally servers) in multiple locations. Routers direct packets addressed to this destination to the location nearest the sender, using their normal decision-making algorithms, typically the lowest number of BGP network hops.</p>
</blockquote>
<p>Based on that definition, any transport technology that allows the same IP address or prefix to be announced from several locations supports anycast. To make it a bit more challenging, I would add &ldquo;<em>and if there are multiple paths to the anycast destination that could be used for multipath forwarding<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, they should all be used</em>&rdquo;.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/anycast-principles/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Multi-Threaded Routing Daemons]]></title>
    <link href="https://blog.ipspace.net/2021/11/multi-threaded-routing-daemons/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/multi-threaded-routing-daemons/</id>
    <published>2021-11-23T07:46:00+00:00</published>
    <updated>2021-11-26T15:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>When I wrote the <em><a href="/2021/11/internet-keeps-breaking/">Why Does Internet Keep Breaking?</a></em> blog post a few weeks ago, I claimed that FRR still uses single-threaded routing daemons (after a too-cursory read of their documentation).</p>
<p><a href="https://www.linkedin.com/in/donaldsharp/">Donald Sharp</a> and <a href="https://github.com/qlyoung">Quentin Young</a> politely told me <del>I was an idiot</del> I should get my facts straight, I removed the offending part of the blog post, promised to write another one going into the details, and Quentin improved the documentation in the meantime, so here we are&hellip;</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/multi-threaded-routing-daemons/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Custom Groups and Deployment Templates]]></title>
    <link href="https://blog.ipspace.net/2021/11/netsim-groups-deployment-templates/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/netsim-groups-deployment-templates/</id>
    <published>2021-11-22T07:15:00+00:00</published>
    <updated>2021-11-22T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Using custom templates to <a href="/2021/11/anycast-mpls/">test IP anycast with MPLS</a> was fun, but as I got into interesting discussions focusing on convoluted details, I found myself going through the same set of steps too many times.</p>
<p>It started with the need to specify individual devices in <code>netlab config</code> command to create new loopback interfaces on anycast servers but not on any other device in the lab. Wouldn&rsquo;t it be nice to have a <em>group of devices</em> (similar to Ansible groups) that one could use in the <strong>limit</strong> parameter of <code>netlab config</code>?</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/netsim-groups-deployment-templates/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[RFC 9098: Operational Implications of IPv6 Extension Headers]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-implications-ipv6-extension-headers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-implications-ipv6-extension-headers/</id>
    <published>2021-11-21T06:43:00+00:00</published>
    <updated>2021-11-21T06:43:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It <a href="https://www.linkedin.com/posts/fernandogont_after-7-years-of-work-the-ietf-has-activity-6846280826510954496-Nlck/">took more than seven years</a> to publish an obvious fact as an RFC: <a href="https://www.rfc-editor.org/rfc/rfc9098.html">IPv6 extension headers are a bad idea</a> (RFC 9098 has a much more polite title or it would never get published).</p>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: How to Get Useful Answers to Your Questions]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-get-good-answers/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-get-good-answers/</id>
    <published>2021-11-20T06:41:00+00:00</published>
    <updated>2021-11-20T06:41:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Another must-read masterpiece by Julia Evans: <a href="https://jvns.ca/blog/2021/10/21/how-to-get-useful-answers-to-your-questions/">how to get useful answers to your questions</a>.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Early Data-Link-Layer Addressing]]></title>
    <link href="https://blog.ipspace.net/2021/11/video-data-link-addressing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/video-data-link-addressing/</id>
    <published>2021-11-19T07:04:00+00:00</published>
    <updated>2021-11-19T07:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After a <a href="/2021/10/network-addressing-theory/">brief coverage of the theoretical aspects of network addressing</a>, it&rsquo;s time to pay a brief visit to the <a href="https://my.ipspace.net/bin/get/Net101/NA2.1%20-%20Early%20Data%20Link%20Layer%20Addressing%20Mechanisms.mp4?doccode=Net101">early data-link-layer addressing solutions</a>, from <em>one address per datagram/frame</em> (SDLC, HDLC) and <em>ignore this address</em> (PPP) to <em>no address on P2P links</em> (SLIP).</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA2.1%20-%20Early%20Data%20Link%20Layer%20Addressing%20Mechanisms.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Hardware Differences between Routers and Switches]]></title>
    <link href="https://blog.ipspace.net/2021/11/router-switch-hardware/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/router-switch-hardware/</id>
    <published>2021-11-18T07:35:00+00:00</published>
    <updated>2021-11-18T07:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me this age-old question:</p>
<blockquote>
<p>Is there a real difference in the underlying hardware of switches and routers in terms of the traffic processing chips and their capabilities in terms of routing and switching (or should I say only switching)?</p>
</blockquote>
<p>Let&rsquo;s get the terminology straight. <a href="/2010/07/bridging-and-routing-is-there/">Router</a> is a technical term for a device that forwards packets based on network layer information. <a href="/2011/02/how-did-we-ever-get-into-this-switching/">Switch is a marketing term</a> for a device that does something with packets.</p>
<p>Rephrasing the question: is there a hardware difference between a box <em>marketed as a router</em> and another box <em>marketed as a layer-3 switch</em>?</p>
<p><strong>TL&amp;DR: Yes.</strong></p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/router-switch-hardware/'>Read more &hellip;</a></div>]]></content>
    <category term="switching" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Anycast Works Just Fine with MPLS/LDP]]></title>
    <link href="https://blog.ipspace.net/2021/11/anycast-mpls/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/anycast-mpls/</id>
    <published>2021-11-17T07:24:00+00:00</published>
    <updated>2022-02-16T16:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I stumbled upon an article praising the beauties of SR-MPLS that claimed:</p>
<blockquote>
<p>Yet MPLS, until recently, was deprived of anycast routing. This is because MPLS is not a pure packet switching technology, but has a control plane based on virtual circuit switching.</p>
</blockquote>
<p>My first reaction was &ldquo;<em>that&rsquo;s not how MPLS works</em>,&rdquo;<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> followed by &ldquo;<em>that would be fun to test</em>&rdquo; a few seconds later.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/anycast-mpls/'>Read more &hellip;</a></div>]]></content>
    <category term="MPLS" />
    <category term="LDP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Optimizing the Time-to-First-Byte]]></title>
    <link href="https://blog.ipspace.net/2021/11/optimizing-time-first-byte/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/optimizing-time-first-byte/</id>
    <published>2021-11-16T07:12:00+00:00</published>
    <updated>2021-11-16T07:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I don&rsquo;t think I&rsquo;ve ever met someone saying &ldquo;<em>I wish my web application would run slower</em>.&rdquo; Everyone wants their stuff to run faster, but most environments are not willing to pay the cost (rearchitecting the application). Welcome to the wonderful world of PowerPoint &ldquo;solutions&rdquo;.</p>
<p><strong>The obvious answer</strong>: The Cloud. Let&rsquo;s move our web servers closer to the clients &ndash; deploy them in various cloud regions around the world. Mission accomplished.</p>
<p>Not really; the laws of physics (latency in particular) will kill your wonderful idea. I <a href="/2015/01/latency-killer-of-spread-out/">wrote about the underlying problems years ago</a>, wrote another blog post <a href="/2020/02/the-myth-of-scaling-from-on-premises/">focused on the misconceptions of cloudbursting</a>, but I&rsquo;m still getting the questions along the same lines. Time for another blog post, this time with even more diagrams.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/optimizing-time-first-byte/'>Read more &hellip;</a></div>]]></content>
    <category term="design" />
    <category term="high availability" />
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Overlay Virtual Networking Examples]]></title>
    <link href="https://blog.ipspace.net/2021/11/feedback-overlay-networks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/feedback-overlay-networks/</id>
    <published>2021-11-15T09:21:00+00:00</published>
    <updated>2021-11-15T09:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of ipSpace.net subscribers wanted to see a real-life examples in the Overlay Virtual Networking webinar:</p>
<blockquote>
<p>I would be nice to have real world examples. The webinar lacks of contents about how to obtain a fully working L3 fabric overlay network, including gateways, vrfs, security zones, etc&hellip; I know there is not only one &ldquo;design for all&rdquo; but a few complete architectures from L2 to L7 will be appreciated over deep-dives about specific protocols or technologies.</p>
</blockquote>
<p>Most ipSpace.net webinars are bits of a larger puzzle. In this particular case:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/feedback-overlay-networks/'>Read more &hellip;</a></div>]]></content>
    <category term="overlay networks" />
    <category term="VXLAN" />
    <category term="NSX" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Jerikan+Ansible: a Configuration Management System]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-jerikan-ansible-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-jerikan-ansible-automation/</id>
    <published>2021-11-14T06:38:00+00:00</published>
    <updated>2021-11-14T06:38:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Vincent Bernat and his team open-sourced <a href="https://github.com/jerikan-network/cmdb">Jerikan</a>, <a href="https://vincent.bernat.ch/en/blog/2021-network-jerikan-ansible">a production-grade network configuration management system</a>.</p>
<p>It might not be immediately applicable to your network, but I&rsquo;m positive you could find tons of good ideas in it.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting: What's Wrong with Bitcoin]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-bitcoin-fail/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-bitcoin-fail/</id>
    <published>2021-11-13T06:26:00+00:00</published>
    <updated>2021-11-13T06:26:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I read tons of articles debunking the blockchain hype, and the stupidity of waisting CPU cycles and electricity on calculating meaningless hashes; here&rsquo;s a <a href="https://apenwarr.ca/log/20110508">totally different take on the subject</a> by <a href="https://www.linkedin.com/in/apenwarr/">Avery Pennarun</a> (an <a href="https://apenwarr.ca/log/20211117">update written ten years later</a>).</p>
<p><strong>TL&amp;DR</strong>: Bitcoin is a return to gold standard, and people who know more about economy than GPUs and hash functions have figured out that&rsquo;s a bad idea long time ago.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/worth-reading-bitcoin-fail/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Non-Stop Routing (NSR) 101]]></title>
    <link href="https://blog.ipspace.net/2021/11/non-stop-routing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/non-stop-routing/</id>
    <published>2021-11-11T06:54:00+00:00</published>
    <updated>2021-11-11T06:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After <a href="/2021/09/non-stop-forwarding/">Non-Stop Forwarding</a>, <a href="/2021/09/stateful-switchover/">Stateful Switchover</a> and <a href="/2021/09/graceful-restart/">Graceful Restart</a>, it&rsquo;s time for the pinnacle of <em>high-availability switching</em>: Non-Stop Routing (NSR)<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>The PowerPoint-level description of this idea sounds fantastic:</p>
<ul>
<li>A device runs two active copies of its control plane.</li>
<li>There is no cold/warm start of the backup control plane. The failover is almost instantaneous.</li>
<li>The state of all control plane protocols is continuously synchronized between the two control plane instances. If one of them fails, the other one continues running.</li>
<li>A failure of a control plane instance is thus invisible from the outside.</li>
</ul>
<p>If this sounds an awful lot like <a href="/2011/08/high-availability-fallacies/">VMware Fault Tolerance</a>, you&rsquo;re not too far off the mark.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/non-stop-routing/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Building a Separate Infrastructure for Guest Access]]></title>
    <link href="https://blog.ipspace.net/2021/11/separate-guest-vlan-infrastructure/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/separate-guest-vlan-infrastructure/</id>
    <published>2021-11-10T06:50:00+00:00</published>
    <updated>2021-11-10T06:50:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my readers sent me an age-old question:</p>
<blockquote>
<p>I have my current guest network built on top of my production network. The separation between guest- and corporate network is done using a VLAN &ndash; once you connect to the wireless guest network, you&rsquo;re in guest VLAN that forwards your packets to a guest router and off toward the Internet.</p>
<p>Our security team claims that this design is not secure enough. They claim a user would be able to attach somehow to the switch and jump between VLANs, suggesting that it would be better to run guest access over a separate physical network.</p>
</blockquote>
<p>Decades ago, VLAN implementations were buggy, and it was possible (using a carefully crafted stack of VLAN tags) to insert packets from one VLAN to another (see also: <a href="https://en.wikipedia.org/wiki/VLAN_hopping">VLAN hopping</a>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/separate-guest-vlan-infrastructure/'>Read more &hellip;</a></div>]]></content>
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Creating BGP Multipath Lab with netlab]]></title>
    <link href="https://blog.ipspace.net/2021/11/bgp-multipath-netsim-tools/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/bgp-multipath-netsim-tools/</id>
    <published>2021-11-09T07:03:00+00:00</published>
    <updated>2022-02-15T15:42:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I was editing the <em><a href="https://my.ipspace.net/bin/get/Net101/AR4.3%20-%20BGP%20Multipath%20Basics.mp4?download=yes">BGP Multipathing</a></em> video in the <em><a href="https://my.ipspace.net/bin/list?id=Net101#ADV_ROUTING">Advanced Routing Protocols</a></em> section of <em><a href="https://www.ipspace.net/How_Networks_Really_Work">How Networks Really Work</a></em> webinar, got to the diagram I used to explain the intricacies of IBGP multipathing and said to myself &ldquo;<em>that should be easy (and fun) to set up with netlab</em>&rdquo;.</p>

<figure><img src="/2021/11/BGP-Multipath-Diagram.png"/>
</figure>
<p>Fifteen minutes later<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> I had the lab up and running and could verify that BGP works exactly the way I explained it in the webinar.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/bgp-multipath-netsim-tools/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Business Aspects of Networking]]></title>
    <link href="https://blog.ipspace.net/2021/11/feedback-business-aspects-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/feedback-business-aspects-networking/</id>
    <published>2021-11-08T07:33:00+00:00</published>
    <updated>2021-11-08T07:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Every other blue moon someone asks me to do a not-so-technical presentation at an event, and being a firm believer in frugality I turn most of them into live webinar sessions collected under the <em><a href="https://www.ipspace.net/Business_Aspects_of_Networking_Technologies">Business Aspects of Networking</a></em> umbrella.</p>
<p>At least some networking engineers find that perspective useful. Here&rsquo;s what <a href="https://www.ipspace.net/Business_Aspects_of_Networking_Technologies#Happy_Campers">Adrian Giacometti had to say about that webinar</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/feedback-business-aspects-networking/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Managing Hierarchical Device Configurations]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-parsing-hierarchical-configs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-parsing-hierarchical-configs/</id>
    <published>2021-11-07T06:21:00+00:00</published>
    <updated>2021-11-07T06:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Parsing and modifying IOS-like hierarchical device configurations is an interesting challenge, more so if you have no idea what the configuration commands mean or whether their order is relevant (I&rsquo;m looking at you, Ansible ;).</p>
<p>Network to Code team decided to solve that problem for good, open-sourced <a href="https://github.com/netdevops/hier_config">Hierarchical Configuration Python library</a>, and published a
<a href="https://blog.networktocode.com/post/hier-config-up-and-running/">getting started</a> article on their blog.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Soap Opera: SRv6 Is Insecure]]></title>
    <link href="https://blog.ipspace.net/2021/11/worth-reading-srv6-insecure/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/worth-reading-srv6-insecure/</id>
    <published>2021-11-06T07:11:00+00:00</published>
    <updated>2021-11-06T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I heard about SRv6 when it was still on the drawing board, and my initial reaction was &ldquo;<em>Another attempt to implement source routing. We know how that ends.</em>&rdquo; The then-counter-argument by one of the proponents went along the lines of &ldquo;<em>but we&rsquo;ll use signed headers to prevent abuse</em>&rdquo; and I thought &ldquo;<em>yeah, that will work really well in silicon implementations</em>&rdquo;.</p>
<p>Years later, <a href="https://mailarchive.ietf.org/arch/msg/v6ops/GbWiie-bjQ_Bp1JKB1PlDh_fPdc/">Andrew Alston decided to document the state of the emperor&rsquo;s wardrobe</a> (TL&amp;DR: of course SRv6 is insecure and can be easily abused) and the counter-argument this time was &ldquo;<em>but that applies to any tunnel technology</em>&rdquo;. Thank you, we knew that all along, and that&rsquo;s not what was promised.</p>
<p>You might want to browse the rest of that email thread; it&rsquo;s fun reading unless you built your next-generation network design on SRv6 running across third-party networks&hellip; which was another PowerPoint case study used by SRv6 proponents.</p>
]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: How Can You Master Public Cloud Networking?]]></title>
    <link href="https://blog.ipspace.net/2021/11/video-mastering-public-cloud-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/video-mastering-public-cloud-networking/</id>
    <published>2021-11-05T07:22:00+00:00</published>
    <updated>2021-11-05T07:22:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>If you&rsquo;re a regular reader of this blog, you&rsquo;ve probably realized there&rsquo;s still need for networking in public clouds, and mastering it requires slightly different set of skills. What could you as a networking engineer to get fluent in this different world? I collected a few hints in the last video in <em><a href="https://www.ipspace.net/Introduction_to_Cloud_Computing">Introduction to Cloud Computing</a></em> webinar.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Cloud101/8.3%20-%20Adapting%20to%20the%20World%20of%20Cloud%20Networking.mp4?doccode=Cloud101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="cloud" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Does Internet Keep Breaking?]]></title>
    <link href="https://blog.ipspace.net/2021/11/internet-keeps-breaking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/internet-keeps-breaking/</id>
    <published>2021-11-04T06:58:00+00:00</published>
    <updated>2021-11-06T13:31:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>James Miles sent me a long list of really good questions along the lines of &ldquo;<em>why do we see so many Internet-related outages lately and is it due to BGP and DNS creaking of old age</em>&rdquo;. He started with:</p>
<blockquote>
<p>Over the last few years there are more &ldquo;high profile&rdquo; incidents relating to Internet connectivity. I raise the question, why?</p>
</blockquote>
<p>The most obvious reason: Internet became mission-critical infrastructure and well-publicized incidents attract eyeballs.</p>
<p>Ignoring the click baits, the underlying root cause is in many cases the <a href="https://en.wikipedia.org/wiki/Race_to_the_bottom">race to the bottom</a>. Large service providers brought that onto themselves when they thought they could undersell the early ISPs and compensate their losses with voice calls (only to discover that voice-over-Internet works too well).</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/internet-keeps-breaking/'>Read more &hellip;</a></div>]]></content>
    <category term="Internet" />
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Even Simple Data Models Are a Huge Win]]></title>
    <link href="https://blog.ipspace.net/2021/11/simple-data-models/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/simple-data-models/</id>
    <published>2021-11-03T07:04:00+00:00</published>
    <updated>2021-11-03T07:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em><a href="https://www.linkedin.com/in/dan-augustine/">Dan Augustine</a> sent me a wonderful example illustrating how even a very simple data model together with some automation templates can simplify a large-scale deployment.</em></p>
<hr>
<p>We have a 100 router installation coming up for our schools and both of our installation vendors do not use open source templating tools and they are not willing to share.</p>
<p>Having taken the <a href="https://my.ipspace.net/bin/list?id=AutConcepts#DATAMODELS">Data Models in Network Automation</a> part of your <a href="https://www.ipspace.net/Network_Automation_Concepts">Network Automation Concepts</a> webinar, I decided to install GitLab, make an Ansible project and invite our installation partners to the project.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/simple-data-models/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Where Would You Need DNS Anycast?]]></title>
    <link href="https://blog.ipspace.net/2021/11/dns-anycast/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/dns-anycast/</id>
    <published>2021-11-02T06:57:00+00:00</published>
    <updated>2021-11-02T06:57:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of the publicly observable artifacts of the <a href="/2021/10/circular-dependencies-considered-harmful/">October 2021 Facebook outage</a> was an intricate interaction between BGP routing and their DNS servers needed to support optimal anycast configuration. Not surprisingly, it was all networking engineers&rsquo; fault according to some opinions<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<blockquote>
<p>There&rsquo;s no need for anycast<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>/BGP advertisement for DNS servers. DNS is already highly available by design. Only network people never understand that, which leads to overengineering.</p>
</blockquote>
<p>It&rsquo;s not that hard to find a counter-argument<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>: while it looks like there are <a href="https://root-servers.org/">only 13 root name servers</a><sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>, each one of them is a large set of instances advertising the same IP prefix<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> to the Internet.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/11/dns-anycast/'>Read more &hellip;</a></div>]]></content>
    <category term="DNS" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netsim-tools Release 1.0]]></title>
    <link href="https://blog.ipspace.net/2021/11/netsim-tools-1.0/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/11/netsim-tools-1.0/</id>
    <published>2021-11-01T06:27:00+00:00</published>
    <updated>2021-11-01T06:27:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>It looks like <em>netsim-tools</em> reached a somewhat stable state, so it was time to do a cleanup and <a href="https://github.com/ipspace/netlab">publish release 1.0</a> (also available on PyPi, use <strong>pip3 install &ndash;upgrade netsim-tools</strong> to fetch it).</p>
<p>During the cleanup, I removed all references to the obsolete scripts, leaving only the <strong><a href="https://netlab.tools/netlab/cli/">netlab</a></strong> command. I also found an old bash script that <a href="/2020/12/linux-bridge-lldp/">enabled LLDP passthrough on Linux bridges</a> and made it part of <strong>netlab up</strong> process; your <em>libvirt</em>-based labs will have LLDP enabled by default.</p>
<p>Interested? <a href="https://netlab.tools/install/">Install the tools</a> and <a href="https://netlab.tools/tutorials/">follow the tutorials</a> to get started.</p>
]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Operators and the IETF]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-ietf-operators/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-ietf-operators/</id>
    <published>2021-10-31T08:01:00+00:00</published>
    <updated>2021-10-31T08:01:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Long long time ago (seven years to be precise), ISOC naively tried to bridge the gap between network operators and Internet <del>Vendor</del> Engineering Task Force<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. They started with a widespread survey asking operators why they&rsquo;re hesitant to participate in IETF mailing lists and meetings.</p>
<p>The result: <a href="https://datatracker.ietf.org/doc/html/draft-opsawg-operators-ietf-00"><em>Operators and the IETF</em></a> draft that never moved beyond -00 version. A quick glimpse into the <a href="https://datatracker.ietf.org/doc/html/draft-opsawg-operators-ietf-00#section-3">Potential Challenges</a> will tell you why IETF preferred to kill the messenger (and why I published this blog post on Halloween).</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/worth-reading-ietf-operators/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Programming Sucks]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-programming-sucks/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-programming-sucks/</id>
    <published>2021-10-30T07:21:00+00:00</published>
    <updated>2021-10-30T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Just FYI: if you&rsquo;re wondering about the wisdom of <em>every networking engineer should become a programmer</em> religion, you might benefit from the <em><a href="https://www.stilldrinking.org/programming-sucks">Programming Sucks</a></em> reality check. I had just enough exposure to programming to realize how spot-on it is  (and couldn&rsquo;t decide whether to laugh or cry).</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Nonlinear Effects of Optimization-Induced Complexity]]></title>
    <link href="https://blog.ipspace.net/2021/10/optimization-induced-complexity/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/optimization-induced-complexity/</id>
    <published>2021-10-29T07:33:00+00:00</published>
    <updated>2021-10-29T07:33:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>We have school holidays this week, so I&rsquo;m reposting wonderful comments that would otherwise be lost somewhere in the page margins. Today: Minh Ha on <a href="/2021/10/circular-dependencies-considered-harmful/#810">recent Facebook failure and overly complex systems</a> (slightly edited)</em>.</p>
<hr>
<p>I incidentally commented on your NSF post some 3 weeks before [&hellip;<em>the Facebook outage</em>&hellip;] happened, on the unpredictable nature of nonlinear effects resulting from optimization-induced complexity. Their outage just drives home the point that optimization is a dumb process and leads to combinations of circular dependency that no one can account for and test.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/optimization-induced-complexity/'>Read more &hellip;</a></div>]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Big Picture: BFD, Non-Stop Forwarding, and Graceful Restart]]></title>
    <link href="https://blog.ipspace.net/2021/10/big-picture-bfd-nsf-gr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/big-picture-bfd-nsf-gr/</id>
    <published>2021-10-28T07:25:00+00:00</published>
    <updated>2021-10-28T07:25:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>We have school holidays this week, so I&rsquo;m reposting wonderful comments that would otherwise be lost somewhere in the page margins. Today: Erik Auerswald&rsquo;s <a href="/2021/10/graceful-restart-bfd/#803">excellent summary of BFD, NSF, and GR</a></em>.</p>
<hr>
<p>I&rsquo;d suggest to step back a bit and consider the bigger picture: What is BFD good for? What is GR/NSF/NSR/SSO good for?</p>
<p>BFD and GR/NSF/NSR/SSO have different goals: one enables quick fail over, the other prevents fail over. Combining both promises to be interesting.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/big-picture-bfd-nsf-gr/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[EVPN/VXLAN Complexity]]></title>
    <link href="https://blog.ipspace.net/2021/10/repost-vxlan-evpn-complexity/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/repost-vxlan-evpn-complexity/</id>
    <published>2021-10-27T07:15:00+00:00</published>
    <updated>2021-10-27T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>We have school holidays this week, so I&rsquo;m reposting wonderful comments that would otherwise be lost somewhere in the page margins. Today: Minh Ha on <a href="/2021/10/worth-reading-arp-problems-evpn/#801">complexity of emulating layer-2 networks with VXLAN and EVPN</a></em>.</p>
<hr>
<p>Dmytro Shypovalov is a master networker who has a sophisticated grasp of some of the most advanced topics in networking. He doesn&rsquo;t write often, but when he does, he writes exceptional content, both deep and broad. Have to say I agree with him 300% on &ldquo;<em>If an L2 network doesn’t scale, design a proper L3 network. But if people want to step on rakes, why discourage them.</em>&rdquo;</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/repost-vxlan-evpn-complexity/'>Read more &hellip;</a></div>]]></content>
    <category term="VXLAN" />
    <category term="EVPN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interactions Between BFD and Graceful Restart]]></title>
    <link href="https://blog.ipspace.net/2021/10/repost-bfd-gr/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/repost-bfd-gr/</id>
    <published>2021-10-26T06:52:00+00:00</published>
    <updated>2021-10-26T06:52:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><em>We have school holidays this week, so I&rsquo;m reposting wonderful comments that would otherwise be lost somewhere in the page margins. Today: Dmitry Perets on the <a href="/2021/10/graceful-restart-bfd/#804">interactions between BFD and GR</a></em>.</p>
<hr>
<p>Well, assuming that the C-bit is set honestly (will be funny if not) and assuming that the Helper is using this bit correctly (and I think it&rsquo;s pretty well defined what &ldquo;correctly&rdquo; means - see section 4.3 in RFC 5882), the answer is pretty clear.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/repost-bfd-gr/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="high availability" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: How Networks Really Work]]></title>
    <link href="https://blog.ipspace.net/2021/10/feedback-how-networks-work/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/feedback-how-networks-work/</id>
    <published>2021-10-25T08:14:00+00:00</published>
    <updated>2021-10-25T08:14:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A few weeks ago, I asked my subscribers which webinar they&rsquo;d like to see in November (thanks a million to everyone who replied!). Not surprisingly, <a href="https://www.ipspace.net/Network_Automation_Concepts">network automation</a> got the top spot, but I was a bit sad to see my long-term pet project at the bottom of the list:</p>

<figure><img src="/2021/10/Webinar-November-2021.png"/>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/feedback-how-networks-work/'>Read more &hellip;</a></div>]]></content>
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Making a Case for Automation Architecture]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-automation-architecture/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-automation-architecture/</id>
    <published>2021-10-24T07:15:00+00:00</published>
    <updated>2021-10-24T07:15:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In case you&rsquo;re ever asked to justify an investment in network automation, read <em><a href="https://www.redhat.com/architect/automation-architecture">How to Make the Case for Automation Architecture</a></em> first. Not surprisingly, it includes the evergreen <em>what problem are you trying to solve?</em></p>
]]></content>
    <category term="automation" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Network Validation Evolution at Hostinger]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-network-validation-evolution/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-network-validation-evolution/</id>
    <published>2021-10-23T06:54:00+00:00</published>
    <updated>2021-10-23T06:54:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Network validation is becoming another overhyped buzzword with many opinionated pundits talking about it and few environments using it in practice (why am I not surprised?)</p>
<p>As always, there are exceptions. They don&rsquo;t have to be members of the FAANG club, and some of them get the job done with open-source tools <a href="/2021/10/democratizing-network-automation/">regardless of what vendor marketers would like you to believe</a>. For example, Donatas Abraitis <a href="https://www.hostinger.com/blog/network-validation-evolution-at-hostinger">described how the Hostinger networking team gradually implemented network validation</a> using Cumulus VX, Vagrant, SuzieQ, PyTest and Test Kitchen. Enjoy!</p>
]]></content>
    <category term="automation" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Introduction to AI/ML Hype]]></title>
    <link href="https://blog.ipspace.net/2021/10/video-ai-ml-introduction/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/video-ai-ml-introduction/</id>
    <published>2021-10-22T10:10:00+00:00</published>
    <updated>2021-10-22T10:10:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In May 2021, <a href="https://www.ipspace.net/Author:Javier_Antich">Javier Antich</a> ran a great webinar explaining the <a href="https://www.ipspace.net/AI_and_ML_in_Networking">principles of Artificial Intelligence and Machine learning and how they apply (or not) to networking</a>.</p>
<p>He started with a <a href="https://my.ipspace.net/bin/get/AI/1%20-%20Introduction.mp4?doccode=AI">brief overview of AI/ML hype</a> that should help you understand why there&rsquo;s a bit of a difference between self-driving cars (not that we got there) and self-driving networks.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/AI/1%20-%20Introduction.mp4?doccode=AI">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to access this webinar.
</div>
]]></content>
    <category term="AI" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Circular Dependencies Considered Harmful]]></title>
    <link href="https://blog.ipspace.net/2021/10/circular-dependencies-considered-harmful/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/circular-dependencies-considered-harmful/</id>
    <published>2021-10-21T06:48:00+00:00</published>
    <updated>2021-10-21T06:48:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A while ago, my friend Nicola Modena sent me another intriguing curveball:</p>
<blockquote>
<p>Imagine a CTO who has invested millions in a super-secure data center and wants to consolidate all compute workloads. If you were asked to run a BGP Route Reflector as a VM in that environment, and would like to bring OSPF or ISIS to that box to enable BGP ORR, would you use a GRE tunnel to avoid a dedicated VLAN or boring other hosts with routing protocol hello messages?</p>
</blockquote>
<p>While there might be good reasons for doing that, my first knee-jerk reaction was:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/circular-dependencies-considered-harmful/'>Read more &hellip;</a></div>]]></content>
    <category term="design" />
    <category term="BGP" />
    <category term="high availability" />
    <category term="virtualization" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Do We Need Multiple Global IPv6 Addresses Per Interface (RFC 7934)]]></title>
    <link href="https://blog.ipspace.net/2021/10/ipv6-multiple-addresses-per-interface/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/ipv6-multiple-addresses-per-interface/</id>
    <published>2021-10-20T06:21:00+00:00</published>
    <updated>2021-10-20T06:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I was happily munching popcorn while watching the latest season of <em><a href="https://mailarchive.ietf.org/arch/msg/v6ops/LsWLNn7jBuNkjKlLzeZOTCrnPN8/">Lack of DHCPv6 on Android</a></em> soap opera on <a href="https://mailarchive.ietf.org/arch/browse/v6ops/">v6ops mailing list</a> when one of the lead actors trying to justify the current state of affairs with a technical argument <a href="https://mailarchive.ietf.org/arch/msg/v6ops/7AihJ8u7RotHzOnT-gHrkTQY0RM/">quoted an RFC to prove his rightful indignation with DHCPv6</a> and the decision not to implement it in Android:</p>
<blockquote>
<p>[&hellip;not having multiple IPv6 addresses per interface&hellip;] is also harmful for a variety of reasons, and for general purpose devices, it&rsquo;s not recommended by the IETF. That&rsquo;s exactly what RFC 7934 is about - explaining why it&rsquo;s harmful.</p>
</blockquote>
<div  class="info">
If you&rsquo;re new to this discussion, you might want to start with <em><a href="/2021/10/dhcpv6-matters/">Why Does DHCPv6 Matter</a></em> blog post
</div><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/ipv6-multiple-addresses-per-interface/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
    <category term="DHCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Graceful Restart and BFD]]></title>
    <link href="https://blog.ipspace.net/2021/10/graceful-restart-bfd/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/graceful-restart-bfd/</id>
    <published>2021-10-19T06:51:00+00:00</published>
    <updated>2021-10-19T06:51:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>The whole <em>High Availability Switching</em> series started with a question along the lines of &ldquo;<em>does it make sense to run BFD together with Graceful Restart</em>&rdquo;. After <em><a href="/2021/09/non-stop-forwarding/">Non-Stop Forwarding 101</a></em>, <em><a href="/2021/09/graceful-restart/">Graceful Restart 101</a></em>, and <em><a href="/2021/10/graceful-restart-convergence/">Graceful Restart and Convergence Speed</a></em> we finally have enough information to answer that question.</p>
<p><strong>TL&amp;DR</strong>: Most probably not.</p>
<p>A more nuanced answer depends (as always) on a gazillion implementation details.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/graceful-restart-bfd/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="high availability" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Start a Virtual Lab with a Single Command]]></title>
    <link href="https://blog.ipspace.net/2021/10/netsim-up-down/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/netsim-up-down/</id>
    <published>2021-10-18T06:57:00+00:00</published>
    <updated>2021-10-18T06:57:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In mid-October I finally found time to add the icing to the <em>netlab</em> cake: <strong><a href="https://netlab.tools/netlab/up/">netlab up</a></strong> command takes a lab topology and does everything needed to have a running virtual lab:</p>
<ul>
<li>Create <em>Vagrantfile</em> or containerlab topology file</li>
<li>Create Ansible inventory</li>
<li>Start the lab with <strong>vagrant up</strong> or <strong>containerlab deploy</strong></li>
<li>Deploy device configurations, from LLDP and interface addressing to routing protocols and Segment Routing</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/netsim-up-down/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: The Software Industry IS STILL the Problem]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-professional-liability/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-professional-liability/</id>
    <published>2021-10-17T07:11:00+00:00</published>
    <updated>2021-10-17T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Every other blue moon someone writes (yet another) article along the lines of <em>professional liability would solve so many broken things in the IT industry</em>. This time it&rsquo;s <a href="https://en.wikipedia.org/wiki/Poul-Henning_Kamp">Poul-Henning Kamp</a> of the FreeBSD and Varnish fame with <em><a href="https://queue.acm.org/detail.cfm?ref=rss&amp;id=3489045">The Software Industry IS STILL the Problem</a></em>. Unfortunately it&rsquo;s just another stab at the windmills considering how much money that industry pours into lobbying.</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[MUST READ: ARP Problems in EVPN]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-arp-problems-evpn/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-arp-problems-evpn/</id>
    <published>2021-10-16T07:04:00+00:00</published>
    <updated>2021-10-16T07:04:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Decades ago there was a trick question on the CCIE exam exploring the intricate relationships between MAC and ARP table. I always understood the explanation for about 10 minutes and then I was back to <em>I knew why that&rsquo;s true, but now I lost it</em>.</p>
<p>Fast forward 20 years, and we&rsquo;re still seeing the same challenges, this time in EVPN networks using in-subnet proxy ARP. For more details, read the excellent <a href="https://routingcraft.net/arp-problems-in-evpn/"><em>ARP problems in EVPN</em></a> article by Dmytro Shypovalov (I understood the problem after reading the article, and now it&rsquo;s all a blur 🤷‍♂️).</p>
]]></content>
    <category term="ARP" />
    <category term="EVPN" />
    <category term="bridging" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Lessons Learned: Complexity Will Kill Your System]]></title>
    <link href="https://blog.ipspace.net/2021/10/lessons-learned-complexity-kills/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/lessons-learned-complexity-kills/</id>
    <published>2021-10-15T06:49:00+00:00</published>
    <updated>2021-10-15T06:49:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>You wouldn&rsquo;t believe the intricate network designs <a href="/2013/08/temper-your-macgyver-streak/">I created decades ago</a> until I learned that having uninterrupted sleep is worth more than proving I can get the impossible to work (see also: <a href="/2017/11/bgp-as-better-igp-when-and-where/">using EBGP instead of IGP in a 4-node data center fabric</a>).</p>
<p>Once I started valuing my free time, I tried to design things to be as simple as possible. However, as my friend Nicola Modena once said, &ldquo;<em>Consultants must propose new technologies because they must be seen as bringing innovation,</em>&rdquo; and we all know complexity sells. Go figure.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/NetBiz/L3%20-%20Complexity%20Will%20Kill%20You.mp4?doccode=NetBiz">Watch the video</a></div>
<div  class="free">
You&rsquo;ll need a <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[BGP Optimal Route Reflection 101]]></title>
    <link href="https://blog.ipspace.net/2021/10/bgp-optimal-route-reflection/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/bgp-optimal-route-reflection/</id>
    <published>2021-10-14T06:23:00+00:00</published>
    <updated>2021-10-14T06:23:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Almost a decade ago I described a scenario in which a <a href="/2013/10/can-bgp-route-reflectors-really/">perfectly valid IBGP topology could result in a permanent routing loop</a>. While one wouldn&rsquo;t expect to see such a scenario in a well designed network, it&rsquo;s been known for ages<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> that using BGP route reflectors could result in suboptimal forwarding.</p>
<p>Here&rsquo;s a simple description of how that could happen:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/bgp-optimal-route-reflection/'>Read more &hellip;</a></div>]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Why Does DHCPv6 Matter?]]></title>
    <link href="https://blog.ipspace.net/2021/10/dhcpv6-matters/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/dhcpv6-matters/</id>
    <published>2021-10-13T06:35:00+00:00</published>
    <updated>2021-10-13T06:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In case you missed it, there&rsquo;s a new season of <em><a href="https://mailarchive.ietf.org/arch/msg/v6ops/LsWLNn7jBuNkjKlLzeZOTCrnPN8/">Lack of DHCPv6 on Android</a></em> soap opera on <a href="https://mailarchive.ietf.org/arch/browse/v6ops/">v6ops mailing list</a>. Before going into the juicy details, I wanted to look at the big picture: why would anyone care about lack of DHCPv6 on Android?</p>
<div  class="info">
Please note that I&rsquo;m not a DHCPv6 fan. DHCPv6 is just a tool not unlike sink plunger &ndash; nobody loves it (I hope), but when you need it, you better have it handy.
</div>
<p>The requirements for DHCPv6-based address allocation come primarily from enterprise environments facing legal/compliance/other <a href="https://en.wikipedia.org/wiki/Layer_8">layer 8-10</a> reasons to implement policy (<em>are you allowed to use the network</em>), control (<em>we want to decide who uses the network</em>) and attribution (<em>if something bad happens, we want to know who did it</em>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/dhcpv6-matters/'>Read more &hellip;</a></div>]]></content>
    <category term="IPv6" />
    <category term="security" />
    <category term="DHCP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Graceful Restart and Routing Protocol Convergence]]></title>
    <link href="https://blog.ipspace.net/2021/10/graceful-restart-convergence/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/graceful-restart-convergence/</id>
    <published>2021-10-12T06:35:00+00:00</published>
    <updated>2021-10-12T06:35:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I&rsquo;m always amazed when I encounter networking engineers who want to have a fast-converging network using Non-Stop Forwarding (which implies Graceful Restart). It&rsquo;s even worse than asking for smooth-running heptagonal wheels.</p>
<p>As we <a href="/2020/11/detecting-network-failure/">discussed in the Fast Failover series</a>, any decent router uses a variety of mechanisms to detect adjacent device failure:</p>
<ul>
<li>Physical link failure;</li>
<li>Routing protocol timeouts;</li>
<li>Next-hop liveliness checks (BFD, CFM&hellip;)</li>
</ul><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/graceful-restart-convergence/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="high availability" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[New Content in AWS Networking Webinar]]></title>
    <link href="https://blog.ipspace.net/2021/10/new-aws-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/new-aws-networking/</id>
    <published>2021-10-11T06:34:00+00:00</published>
    <updated>2021-10-11T06:34:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week&rsquo;s update session of the <a href="https://www.ipspace.net/Amazon_Web_Services_Networking">AWS Networking</a> webinar covered two hours worth of new (or not-yet-covered) features, including:</p>
<ul>
<li>Transit Gateway Connect functionality (GRE tunnel+BGP between Transit Gateway and in-cloud SD-WAN appliances)</li>
<li>AWS Private Link</li>
<li>Intra-VPC static routes that you can use to send inter-subnet traffic to a BYOD security appliance</li>
<li>IGMPv2 support</li>
<li>Custom global accelerators</li>
<li>Assigning whole IP prefixes to VM interfaces</li>
</ul>
<p>The recordings have already been published, either as independent videos or integrated with the existing materials. Enjoy ;)</p>
]]></content>
    <category term="AWS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[OMG: Democratizing Network Automation]]></title>
    <link href="https://blog.ipspace.net/2021/10/democratizing-network-automation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/democratizing-network-automation/</id>
    <published>2021-10-10T06:45:00+00:00</published>
    <updated>2021-10-10T06:45:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I totally understand that entities relying on sponsors have to become creative while promoting whatever theirs sponsors want to sell, but in my opinion <a href="https://packetpushers.net/automation-for-the-people/">this</a> is a bridge too far:</p>
<blockquote>
<p>[&hellip;] explore how Gluware aims to democratize automation; that is, get you quick wins around common tasks such as configuration changes and OS updates.</p>
</blockquote>
<p>Democratizing automation? Because it&rsquo;s authoritarian now? By providing the abilities like configuration changes and OS updates that have been available in network management tools like CiscoWorks or SolarWinds for ages?</p>
<p>You know what&rsquo;s really hard when automating existing networks? Figuring out how to simplify them to the point where it makes sense to automate them. Will any shrink-wrapped GUI product solve that? Of course not.</p>
]]></content>
    <category term="automation" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Must Read: BGP Private AS Range]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-bgp-private-as-range/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-bgp-private-as-range/</id>
    <published>2021-10-09T06:55:00+00:00</published>
    <updated>2021-10-09T06:55:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>We all know that you have to use an AS number between 64512 and 65535 for private BGP autonomous systems, right? Well, we&rsquo;re all wrong &ndash; the high end of the range is 65534, and Chris Parker
<a href="https://www.networkfuntimes.com/why-is-65535-not-part-of-the-private-autonomous-system-range/">wrote a nice blog post explaining the reasons behind that change</a>.</p>
]]></content>
    <category term="BGP" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Theoretical View of Network Addressing]]></title>
    <link href="https://blog.ipspace.net/2021/10/network-addressing-theory/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/network-addressing-theory/</id>
    <published>2021-10-08T06:45:00+00:00</published>
    <updated>2021-10-08T06:45:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>After explaining the <a href="/2021/09/video-introduction-network-addressing/">basics of (network) names, addresses and routes</a>, I <a href="https://my.ipspace.net/bin/get/Net101/NA1.2%20-%20Theoretical%20View%20of%20Network%20Addressing.mp4?doccode=Net101">wasted a few minutes of everyone&rsquo;s time discussing the theoretical aspects of layered addressing</a>, and then got back to practical issues like address scopes, namespaces, and address provisioning.</p>
<p>The video ends with a simple (and unappreciated) truth: if you have a point-to-point link between two nodes you don&rsquo;t need data-link-layer addresses. The consequences of that fact are left as an exercise for the viewer (or you can wait till the next video ;)</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Net101/NA1.2%20-%20Theoretical%20View%20of%20Network%20Addressing.mp4?doccode=Net101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video, and the <a href="https://www.ipspace.net/Subscription/">Standard ipSpace.net Subscription</a> to register for upcoming live sessions.
</div>
]]></content>
    <category term="networking fundamentals" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Should You Build or Buy a Router?]]></title>
    <link href="https://blog.ipspace.net/2021/10/build-buy-router/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/build-buy-router/</id>
    <published>2021-10-07T07:11:00+00:00</published>
    <updated>2021-10-07T07:11:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.pocnet.net/">Patrik Schindler</a> sent me an interesting comment to my <em>Open-Source DMVPN Alternatives</em> blog post:</p>
<div class='long-quote'>
<p>I&rsquo;ve done searches myself some time ago about the readymade Linux distros supporting DMVPN and <a href="https://wiki.alpinelinux.org/wiki/Dynamic_Multipoint_VPN_(DMVPN)_Phase_3_with_Quagga_NHRPd">got exactly what I asked for</a>.</p>
<p>Glancing over that page appalled me: Different stuff with different configuration languages, probably the need to restart things, thus generating service outages for configuration changes&hellip;</p>
<p>Your blog is heavily biased towards big deployments with good opportunities for automation, and the diversity of different components can be easily hidden behind automation scripts of choice. Smaller deployments are almost never being able to compensate the initial overhead of creating all the automation fuzz, and from that perspective, I must admit that configuring a Cisco router feels way more smooth to me.</p>

</div>


<p>Welcome to the <em><a href="/2020/12/video-build-or-buy/">build-or-buy</a></em> dilemma, router edition.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/build-buy-router/'>Read more &hellip;</a></div>]]></content>
    <category term="SDN" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Do We Need Segment Routing?]]></title>
    <link href="https://blog.ipspace.net/2021/10/worth-reading-need-segment-routing/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/worth-reading-need-segment-routing/</id>
    <published>2021-10-06T06:59:00+00:00</published>
    <updated>2021-10-06T06:59:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.um.edu.mt/profile/etiennedepasquale">Etienne-Victor Depasquale</a> sent me a pointer to an interesting NANOG discussion: <a href="https://mailman.nanog.org/pipermail/nanog/2020-June/108345.html">why would we need Segment Routing</a>. It&rsquo;s well worth reading the whole thread (until it devolves into &ldquo;<em>that is not how MPLS works</em>&rdquo; arguments), which happens to be somewhat aligned with my thinking:</p>
<ul>
<li>SR-MPLS makes perfect sense (excluding the migration-from-LDP fun)</li>
<li>SRv6 (in whatever incantation) is mostly a vendor ploy to sell new chipsets.</li>
</ul>
<p>Enjoy!</p>
]]></content>
    <category term="segment routing" />
    <category term="IPv6" />
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Graceful Restart and Other Control Plane Protocols]]></title>
    <link href="https://blog.ipspace.net/2021/10/graceful-restart-control-plane-protocols/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/graceful-restart-control-plane-protocols/</id>
    <published>2021-10-05T06:39:00+00:00</published>
    <updated>2021-10-05T06:39:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <a href="/2021/09/graceful-restart/">Graceful Restart 101</a> blog post, I promised to discuss the ugly parts of this concept in a follow-up post. It turns out we&rsquo;ll need more than one; today, we&rsquo;ll focus on other control plane protocols in an access network scenario.</p>
<p>Imagine an access router with multiple uplinks serving a bunch of non-redundantly-connected customers:</p>

<figure><img src="/2021/09/GR-access-router.png"
   alt="Non-redundant access network"/><figcaption>
    <p>Non-redundant access network</p>
  </figcaption>
</figure><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/graceful-restart-control-plane-protocols/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="high availability" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Feedback: Mastering Cloud Networking]]></title>
    <link href="https://blog.ipspace.net/2021/10/feedback-cloud-networking/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/feedback-cloud-networking/</id>
    <published>2021-10-04T06:16:00+00:00</published>
    <updated>2021-10-04T06:16:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Most of the public cloud training seems focused on developers. No surprise there, they are the usual beachhead public cloud services need to get into large organizations. Unfortunately, once the production applications start getting deployed into public cloud infrastructure, someone has to take over operations, and that&rsquo;s <a href="/2020/11/renumbering-public-cloud-address-space/">where the fun starts</a>.</p>
<p>For whatever reason, there aren&rsquo;t that many resources helping the infrastructure operations teams understand how to deal with this <a href="/2020/11/why-public-cloud-networking-so-different/">weird new world</a>, at least according to the <a href="https://www.ipspace.net/Microsoft_Azure_Networking#Happy_Campers">feedback Jawed left on Azure Networking webinar</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/10/feedback-cloud-networking/'>Read more &hellip;</a></div>]]></content>
    <category term="cloud" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Video: Public Cloud Networking Is Different]]></title>
    <link href="https://blog.ipspace.net/2021/10/public-cloud-networking-different/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/10/public-cloud-networking-different/</id>
    <published>2021-10-01T06:20:00+00:00</published>
    <updated>2021-10-01T06:20:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Even though you need plenty of traditional networking constructs to deploy a complex application stack in a public cloud (packet filters, firewalls, load balancers, VPN, BGP&hellip;), once you start digging deep into the bowels of public cloud virtual networking, you&rsquo;ll find out it&rsquo;s significantly different from the traditional Ethernet+IP implementations common in enterprise data centers.</p>
<p>For an overview of the differences watch the <em><a href="https://my.ipspace.net/bin/get/Cloud101/8.2%20-%20Public%20Cloud%20Networking%20Is%20Different.mp4?doccode=Cloud101">Public Cloud Networking Is Different</a></em> video (part of <a href="https://www.ipspace.net/Introduction_to_Cloud_Computing">Introduction to Cloud Computing</a> webinar), for more details start with <a href="/2020/05/aws-networking-101/">AWS Networking 101</a> and <a href="/2020/05/azure-networking-101/">Azure Networking 101</a> blog posts, and continue with corresponding <a href="https://www.ipspace.net/Cloud">cloud networking</a> webinars.</p>
<div class='jump-link'><a href="https://my.ipspace.net/bin/get/Cloud101/8.2%20-%20Public%20Cloud%20Networking%20Is%20Different.mp4?doccode=Cloud101">Watch the video</a></div>
<div  class="free">
You need <a href="https://www.ipspace.net/Subscription/Free">Free ipSpace.net Subscription</a> to watch the video
</div>
]]></content>
    <category term="cloud" />
    <category term="IP routing" />
    <category term="video" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Reusing Underlay Network for Infrastructure Services]]></title>
    <link href="https://blog.ipspace.net/2021/09/overlay-underlay-reuse/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/overlay-underlay-reuse/</id>
    <published>2021-09-30T06:32:00+00:00</published>
    <updated>2021-09-30T16:19:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Boris Lazarov <a href="/2018/05/what-is-evpn/#691">sent me an excellent question</a>:</p>
<blockquote>
<p>Does it make sense and are there any inherent problems from design perspective to use the <em>underlay</em> not only for transport of <em>overlay</em> packets, but also for some services. For example: VMWare cluster, vMotion, VXLAN traffic, and some basic infrastructure services that are prerequisite for the rest (DNS).</p>
</blockquote>
<p>Before answering it, let&rsquo;s define some terminology which will inevitably lead us to the <em>it&rsquo;s tunnels all the way down</em> endstate.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/overlay-underlay-reuse/'>Read more &hellip;</a></div>]]></content>
    <category term="overlay networks" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Watch Out: ISR Performance License]]></title>
    <link href="https://blog.ipspace.net/2021/09/isr-performance/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/isr-performance/</id>
    <published>2021-09-29T07:03:00+00:00</published>
    <updated>2021-09-29T07:03:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Bill Dagy sent me an annoying ISR gotcha. In his own words:</p>
<blockquote>
<p>Since you have a large audience I thought I would throw this out here. Maybe it will help someone avoid spending 80 man hours troubleshooting network slowdowns.</p>
</blockquote>
<p>Here&rsquo;s the root cause of that behavior:</p>
<blockquote>
<p>Cisco is now shipping routers that have some specified maximum throughput, but you have to buy a &ldquo;boost license&rdquo; to run them unthrottled. Maybe everyone already knew this but it sure took us by surprise.</p>
</blockquote>
<p>Don&rsquo;t believe it? Here&rsquo;s a snapshot from <a href="https://www.cisco.com/c/en/us/products/collateral/routers/4000-series-integrated-services-routers-isr/data_sheet-c78-732542.html">Cisco 4000 Family Integrated Services Router Data Sheet</a>:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/isr-performance/'>Read more &hellip;</a></div>]]></content>
    <category term="performance" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Graceful Restart (GR) 101]]></title>
    <link href="https://blog.ipspace.net/2021/09/graceful-restart/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/graceful-restart/</id>
    <published>2021-09-28T06:30:00+00:00</published>
    <updated>2021-09-28T06:30:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>In the <em>Non-Stop Forwarding</em> (NSF) article, I mentioned that the routers adjacent to the device using NSF have to play along to make the idea work. That capability is called <em>Graceful Restart</em>. Today we&rsquo;ll explore its intricate details, be diplomatic, and leave the shortcomings and tradeoffs for <a href="/2021/10/graceful-restart-control-plane-protocols/">another blog post</a>.</p>
<h2 id="the-problem">The Problem</h2>
<p>Imagine an access (provider edge) router providing connectivity services to its clients and running a routing protocol with one or more upstream devices.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/graceful-restart/'>Read more &hellip;</a></div>]]></content>
    <category term="IP routing" />
    <category term="high availability" />
    <category term="networking fundamentals" />
  </entry>
  <entry>
    <title type="html"><![CDATA[State of IT Security in 2021]]></title>
    <link href="https://blog.ipspace.net/2021/09/security-2021/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/security-2021/</id>
    <published>2021-09-27T07:21:00+00:00</published>
    <updated>2021-09-27T07:21:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.pocnet.net/">Patrik Schindler</a> sent me his views on code quality and resulting security nightmares after reading the <a href="/2021/09/cisco-sdwan-security/">Cisco SD-WAN SQL Injection saga</a>. Enjoy!</p>
<hr>
<p>I think we have a global problem with code quality. Both from a security perspective, and from a less problematic but still annoying bugs-everywhere perspective. I&rsquo;m not sure if the issue is largely ignored, or we&rsquo;ve given up on it (see also: <a href="https://ea.rna.nl/2021/01/10/the-many-lies-about-reducing-complexity-part-2-cloud/">Cloud Complexity Lies</a> or <a href="/2021/03/rant-cisco-aci-complexity/">Cisco ACI Complexity</a>).</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/security-2021/'>Read more &hellip;</a></div>]]></content>
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Worth Reading: Breaking Down Silos]]></title>
    <link href="https://blog.ipspace.net/2021/09/worth-reading-breaking-down-silos/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/worth-reading-breaking-down-silos/</id>
    <published>2021-09-24T07:12:00+00:00</published>
    <updated>2021-09-24T07:12:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Here&rsquo;s another masterpiece by Charity Majors: <a href="https://charity.wtf/2021/08/27/why-i-hate-the-phrase-breaking-down-silos/">Why I hate the phrase &ldquo;breaking down silos&rdquo;</a>. A teaser in case you can&rsquo;t decide whether to click the link:</p>
<blockquote>
<p>When someone says they are “breaking down silos”, whether in an interview, a panel, or casual conversation, it tells me jack shit about what they actually did.</p>
</blockquote>
<p>Enjoy ;)</p>
]]></content>
    <category term="worth reading" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Building a Small Data Center Fabric with Four Switches]]></title>
    <link href="https://blog.ipspace.net/2021/09/4-switch-fabric/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/4-switch-fabric/</id>
    <published>2021-09-23T06:37:00+00:00</published>
    <updated>2021-09-23T06:37:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>One of my subscribers has to build a small data center fabric that&rsquo;s just a tad too big for <a href="https://www.ipspace.net/Optimize_Data_Center_Infrastructure/Build_an_Optimized_Fabric">two switch design</a>.</p>
<blockquote>
<p>For my datacenter I would need two 48 ports 10GBASE-T switches and two 48 port 10/25G fibber switches. So I was watching the <em><a href="https://my.ipspace.net/bin/get/Clos/2.1%20-%20Small%20Fabrics%20and%20Lower-Speed%20Interfaces.mp4?doccode=Clos">Small Fabrics and Lower-Speed Interfaces</a></em> part of <em><a href="https://my.ipspace.net/bin/list?id=Clos#PHY_TOPOLOGY">Physical Fabric Design</a></em> to make up my mind. There you talk about the possibility to do a leaf and spine with 4 switches and connect servers to the spine.</p>
</blockquote>
<p>A picture is worth a thousand words, so here&rsquo;s the diagram of what I had in mind:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/4-switch-fabric/'>Read more &hellip;</a></div>]]></content>
    <category term="data center" />
    <category term="fabric" />
    <category term="design" />
  </entry>
  <entry>
    <title type="html"><![CDATA[IS-IS Flooding Details]]></title>
    <link href="https://blog.ipspace.net/2021/09/is-is-flooding-details/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/is-is-flooding-details/</id>
    <published>2021-09-22T07:24:00+00:00</published>
    <updated>2021-09-22T07:24:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Last week I published an <a href="/2021/09/ospf-is-is-flooding/">unrolled version of Peter Paluch&rsquo;s explanation of flooding differences between OSPF and IS-IS</a>. Here&rsquo;s the second part of the saga: <a href="https://twitter.com/Peter_Paluch/status/1430270978207145991">IS-IS flooding details</a> (yet again, reposted in a more traditional format with Peter&rsquo;s permission).</p>
<hr>
<p>In IS-IS, DIS<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> is best described as a &ldquo;baseline benchmark&rdquo; &ndash; a reference point that other routers compare themselves to, but it does not sit in the middle of the flow of updates (Link State PDUs, LSPs).</p>
<p>A quick and simplified refresher on packet types in IS-IS: A LSP carries topological information about its originating router &ndash; its System ID, its links to other routers and its attached prefixes. It is similar to an OSPF LSU containing one or more LSAs of different types.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/is-is-flooding-details/'>Read more &hellip;</a></div>]]></content>
    <category term="IS-IS" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Another SD-WAN Security SNAFU: SQL Injections in Cisco SD-WAN Admin Interface]]></title>
    <link href="https://blog.ipspace.net/2021/09/cisco-sdwan-security/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/cisco-sdwan-security/</id>
    <published>2021-09-21T06:43:00+00:00</published>
    <updated>2021-09-24T07:05:00+00:00</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.ipspace.net/Author:Christoph_Jaggi">Christoph Jaggi</a> sent me a link to an interesting article describing <a href="https://www.sstic.org/media/SSTIC2021/SSTIC-actes/the_security_of_sd-wan_the_cisco_case/SSTIC2021-Article-the_security_of_sd-wan_the_cisco_case-legras.pdf">security vulnerabilities pentesters found in Cisco SD-WAN admin/management code</a>.</p>
<p>I&rsquo;m positive the bugs have been fixed in the meantime, but what riled me most was the root cause: <a href="https://xkcd.com/327/">Little Bobby Tables</a> (aka SQL injection) dropped by. Come on, it&rsquo;s 2021, SD-WAN is supposed to be about building secure replacements for MPLS/VPN networks, and they couldn&rsquo;t get someone who could write SQL-injection-safe code (the top <a href="https://owasp.org/www-project-top-ten/">web application security risk</a>)?</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/cisco-sdwan-security/'>Read more &hellip;</a></div>]]></content>
    <category term="SD-WAN" />
    <category term="security" />
  </entry>
  <entry>
    <title type="html"><![CDATA[netlab Network Topology Graphs]]></title>
    <link href="https://blog.ipspace.net/2021/09/netsim-tools-graphs/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/netsim-tools-graphs/</id>
    <published>2021-09-20T07:07:00+00:00</published>
    <updated>2021-09-20T07:07:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>A <a href="https://netlab.tools"><em>netlab</em></a> user sent me an intriguing question: &ldquo;<em>Would it be possible to get network topology graphs out of the tool?</em>&rdquo;</p>
<div  class="info">
Please note that we&rsquo;re talking about <em>creating graphs out of network topology described as a YAML data structure</em>, not a generic GUI or <em>draw my network</em> tool. If you&rsquo;re a GUI person, this is not what you&rsquo;re looking for.
</div>
<p>I <a href="https://my.ipspace.net/bin/list?id=Ansible#SAMPLES">did something similar a long while ago</a> for a simple network automation project (and <a href="https://www.ipspace.net/NetAutSol/Solutions#Network_Diagrams">numerous networking engineers built way more advanced stuff</a> while attending the <a href="https://www.ipspace.net/Building_Network_Automation_Solutions">Building Network Automation Solutions</a> course), so it seemed like a no-brainer. As always, things aren&rsquo;t as easy as they look.</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/netsim-tools-graphs/'>Read more &hellip;</a></div>]]></content>
    <category term="netlab" />
  </entry>
  <entry>
    <title type="html"><![CDATA[Interesting Concept: Time Dilation]]></title>
    <link href="https://blog.ipspace.net/2021/09/time-dilation/?utm_source=atom_feed" rel="alternate" type="text/html" />
    <id>https://blog.ipspace.net/2021/09/time-dilation/</id>
    <published>2021-09-17T06:59:00+00:00</published>
    <updated>2021-09-17T06:59:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>I loved the <em><a href="https://seths.blog/2021/08/time-dilation/">Time Dilation</a></em> blog post by Seth Godin. It explains so much, including why I won&rsquo;t accept a &ldquo;<em><a href="https://twitter.com/ioshints/status/1436649548064165889">quick conf call to touch base and hash out ideas</a></em>&rdquo; from someone coming out of the blue sky &ndash; why should I be interested if they can&rsquo;t invest the time to organize their thoughts and pour them into an email.</p>
<p>The concept of &ldquo;creation-to-consumption&rdquo; ratio is also interesting. Now I understand why I hate unedited opinionated chinwagging (many podcasts sadly fall into this category) or videos where someone blabbers into a camera while visibly trying to organize their thoughts.</p>
<p>Just FYI, these are some of the typical ratios I had to deal in the past:</p><div class='jump-link'><a href='https://blog.ipspace.net/2021/09/time-dilation/'>Read more &hellip;</a></div>]]></content>
    <category term="worth reading" />
  </entry>
</feed>
