After a long journey, we finally we got to the final scenario in my ITNOG10 Segment Routing workshop: EVPN services over an SR-MPLS core.
I used the same lab topology as in the previous services-focused scenarios blog post, replacing two PE-to-host subnets with a stretched VLAN.

EVPN over SR-MPLS core
It has been over 5 years since I wasted far too much of my life on my Ansible build fabric pet project. I got it doing what I set out to do, but there was so much Python fudging under the hood I figured I may as well move away from Ansible and go all in on Python (and Nornir). I thought it was high time to give Ansible another go and see if it has got any less painful.
The previous chapter explained how to build
an IPv6-only multi-ASN Clos fabric where IPv4 prefixes can be advertised with
IPv6 link-local next hops.
In this chapter, we extend VLAN 10 between
Leaf-101 and Leaf-102 using BGP EVPN as the control plane and VXLAN as the data
plane.
Figure 7-1 shows the main building blocks
required to provide this functionality. The IP underlay, where leaf and spine
switches use IPv6 link-local addresses for eBGP peering, has already been
configured in the previous chapter. Loopback0 is used only as the BGP Router ID
and is not advertised to any peer.
The IP address of Loopback1, in turn, is used
as the VXLAN Tunnel Endpoint (VTEP) address. Each switch therefore advertises
its Loopback1 IP address using BGP IPv4 Unicast so that the VTEP addresses are
reachable across the fabric. This address identifies the local VTEP in the EVPN
control plane and is used as the BGP next hop for EVPN routes. A VXLAN packet
sent to a remote VTEP uses the remote VTEP address as the destination address
in the outer IP header.
Each extended VLAN is mapped to an L2VNI (Layer-2 VXLAN Network Identifier). In Figure 7-1, VLAN 10 Continue reading
netlab release 26.09 brings more network services goodies:
Other new features include:
Calculations:
The net result is that an sFlow analyzer will receive streaming telemetry describing an elephant flow within 100ms of the Continue reading
In 2016, I removed Google Analytics from this blog to avoid being complicit in feeding the biggest machine for harvesting personal data. Instead, I relied on GoAccess to analyze my server logs.1 For the past couple of years, the statistics have made no sense, despite my attempts to filter bots: AI scrapers inflate the number of visitors to around 2,000 per day. Eventually, I settled on GoatCounter, an open-source, privacy-friendly web analytics platform. I replaced the JavaScript client to filter bots more aggressively and added a CSS fallback. To improve reliability, I implemented a local proxy running on each of the five web servers serving this blog. The rest of this post details how these pieces fit together and how I deploy them on NixOS. ❄️
GoatCounter does not collect personal data: instead of storing the reader’s IP address or relying on cookies, it creates a session identifier valid for 8 hours from the user agent and the IP address. Its feature set is modest but sufficient for a blog. If Continue reading
I’ve been playing a bit with OFDM in software defined radio lately. And after watching a video that wasn’t even close to correct, I thought I’d write down my understanding in a blog post. I wouldn’t call myself an expert, so worst case someone will correct me, and I’m happy to be corrected.
In my experiments with OFDM my initial goal is understanding, so e.g. I won’t blindly use some hierarchical GNU Radio block.
I think that in order to internalize OFDM, we first need to remind ourselves how a purely “real” wave becomes a complex number, at a high level.
The real signal is a value that’s a function of time. Glossing over details, this is not feasible for most of our signals, as we would need to provide a new value to the transmitter at a rate twice as high as the highest frequency we care about. For 2.4GHz experiments, we’d need 4.8 billion samples per second.
Quadrature sampling allows us to represent a slice of bandwidth at a manageable rate. We can then provide the I/Q data to hardware, instructing it to hold that “until further notice”. Continue reading
AI is everywhere. While there are many questions about whether AI is a bubble, the ethics of AI, and the cultural impact of AI, in this episode of the Hedge Mike Bushong joins Eyvonne, Tom, and Russ to talk about how network engineers can use AI. Are some use cases better than others? Are there pitfalls network engineers should avoid? Listen in and find out.
download
This article discusses the necessity for rethinking data center networking in the context of AI. Traditional designs based on traffic averages and oversubscription do not apply, as AI workloads produce massive, synchronized "elephant" flows, necessitating non-blocking architectures and emphasizing metrics like job completion time and GPU utilization over conventional measures.
The post Why networking is different for AI Data Centers appeared first on /overlaid.
When I started the netlab project, Vagrant was the go-to tool if you wanted to build a virtual environment described in a text configuration file (an idea popularized as infrastructure-as-code). It wasn’t ideal for what we were doing, but a tool rarely does a great job when used far away from its intended use case.
netlab initially supported Vagrant with VirtualBox, quickly adding support for KVM/libvirt through the vagrant-libvirt plugin. Life was good… until it wasn’t.