# virtual machines

Virtual machines are isolated, software-defined systems with virtualized hardware resources and their own operating system, allowing multiple operating systems to run on one physical machine.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Security evaluations find traditional virtual machines inadequate for containing cyber-capable autonomous agents

DevFeed: [Security evaluations find traditional virtual machines inadequate for containing cyber-capable autonomous agents](<https://devfeed.tech/articles/repeated-vm-escapes-by-gpt-5-6-cyber-based-agents-prove-vms-and-os-require-better-maintenance-41295.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/agent-escape-vm/>)

Author: Olimpiu Pop

Published: 2026-09-17T07:07:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Security](<https://devfeed.tech/topics/security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Linux Kernel](<https://devfeed.tech/topics/linux-kernel.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [Firecracker](<https://devfeed.tech/topics/firecracker.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [agent-escape-vm](<https://devfeed.tech/tags/agent-escape-vm.md>), [ai-security](<https://devfeed.tech/tags/ai-security.md>), [development](<https://devfeed.tech/tags/development.md>), [devops](<https://devfeed.tech/tags/devops.md>), [firecracker](<https://devfeed.tech/tags/firecracker.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [news](<https://devfeed.tech/tags/news.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [security](<https://devfeed.tech/tags/security.md>), [security-breach](<https://devfeed.tech/tags/security-breach.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>), [vm](<https://devfeed.tech/tags/vm.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Security evaluations found that a cyber-capable autonomous agent escaped standard QEMU and KVM virtual machine configurations by exploiting kernel and library vulnerabilities. Firecracker contained the agent in testing, but the agent still hardlocked the host through Linux kernel flaws.

### Source excerpt

Traditional virtual machines are inadequate for isolating cyber-capable autonomous agents. Tests using GPT-5.6-Cyber indicated multiple escape attempts due to kernel flaws. While Firecracker provided some containment, vulnerabilities remained. The study underscores the need for minimal attack surface virtualisation technologies and rapid, proactive patching strategies to safeguard host systems. By Olimpiu Pop

## How vagrant-libvirt Plugin Deals with Duplicate Subnets

DevFeed: [How vagrant-libvirt Plugin Deals with Duplicate Subnets](<https://devfeed.tech/articles/how-vagrant-libvirt-plugin-deals-with-duplicate-subnets-26994.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2026/09/vagrant-libvirt-duplicate-subnets/>)

Published: 2026-09-16T06:27:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [linux](<https://devfeed.tech/tags/linux.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

The article explains that vagrant-libvirt can fail when an existing libvirt virtual network has the same IP subnet as the desired management network but a different name. It identifies the resulting network-name mismatch and reports that correcting the network definition in the Vagrantfile resolves the problem.

### Source excerpt

TL&DR: Badly. The vagrant-libvirt plugin mysteriously crashes when an existing virtual network (with a different libvirt name) uses the same IP subnet as the desired management network. Background: netlab is using the vagrant-libvirt plugin to manage libvirt/KVM virtual machines with Vagrant. As I already have that infrastructure, I use it to start standalone virtual machines (usually to test various Ubuntu releases) on my Linux server. Things work great... until they don't. Here's how I managed to waste half a day chasing imaginary gremlins caused by a simple error. Read more ...

## QEMU Google Summer of Code 2026 project report

DevFeed: [QEMU Google Summer of Code 2026 project report](<https://devfeed.tech/articles/qemu-google-summer-of-code-2026-project-report-41363.md>)

Original publisher: [Read original article](<https://www.qemu.org/2026/09/15/gsoc-2026-wrap-up/>)

Published: 2026-09-15T07:00:00Z

Content type: article

Language: en

Sources: [QEMU](<https://devfeed.tech/sources/qemu.md>)

Topics: [qemu](<https://devfeed.tech/topics/qemu.md>), [AdventureX 2025](<https://devfeed.tech/topics/adventurex2025.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [x86](<https://devfeed.tech/topics/x86.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Rust](<https://devfeed.tech/topics/rust.md>)

Tags: [cpu](<https://devfeed.tech/tags/cpu.md>), [development](<https://devfeed.tech/tags/development.md>), [google-summer-of-code](<https://devfeed.tech/tags/google-summer-of-code.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [internships](<https://devfeed.tech/tags/internships.md>), [observability](<https://devfeed.tech/tags/observability.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

QEMU's Google Summer of Code 2026 report covers four contributors' open-source projects from May through August, including lazy snapshot loading, x86 Process Context Identifier support in COCONUT-SVSM, and observability support for confidential virtual machines.

### Source excerpt

QEMU participated in Google Summer of Code 2026 with 4 contributors working on open source internships from May through August. The contributors gained experience in open source software development working on 12-week projects.

## AAOS SDV - Secure by Design

DevFeed: [AAOS SDV - Secure by Design](<https://devfeed.tech/articles/aaos-sdv-secure-by-design-22687.md>)

Original publisher: [Read original article](<http://android-developers.googleblog.com/2026/08/aaos-sdv-secure-by-design.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-08-24T16:00:31Z

Content type: article

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-3.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Security](<https://devfeed.tech/topics/security.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [SELinux](<https://devfeed.tech/topics/selinux.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-security](<https://devfeed.tech/tags/android-security.md>), [article](<https://devfeed.tech/tags/article.md>), [google](<https://devfeed.tech/tags/google.md>), [posix](<https://devfeed.tech/tags/posix.md>), [process](<https://devfeed.tech/tags/process.md>), [security](<https://devfeed.tech/tags/security.md>), [selinux](<https://devfeed.tech/tags/selinux.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

This article explains the security design of Android Automotive Operating System for Software Defined Vehicle (AAOS SDV). It describes virtualization for domain isolation, UID-based application and service sandboxing, POSIX capabilities, SELinux deny-by-default enforcement, and Android's vulnerability management and disclosure processes.

### Source excerpt

Posted by Markus Vill, Software Engineer, Sean Keys, Security Engineer, and Istvan Nador, Software Engineer, Android Auto At Google, we believe our products should be secure by design, which is why we built the Android Automotive Operating System for Software Defined Vehicle (AAOS SDV) on existing, market-proven platforms, leveraging virtualization technologies like Cuttlefish. While our release announcements focused on the features, this blog post outlines some of the security concepts. Foundation: Domain IsolationVirtualization to isolate co-hosted instances The current trend of consolidating Electronic Control Units (ECUs) into a single chip reduces isolation by running multiple domains side-by-side. While AAOS SDV instances provide internal isolation mechanisms, it is often preferable to run logical domains independently. For instance, a cluster and an infotainment system have distinct requirements. We use virtual machines to run multiple instances in parallel, ensuring that sharing remains explicit and isolation is the default behavior. Inherited Android Security AAOS SDV evolved from Microdroid, a minimalistic Android version optimized for privacy virtual machines (pVM). This lineage provides Android platform engineers with established security features they already know. Process Isolation & Deny by Default AAOS SDV follows Android's User ID (UID)-based isolation model to set up a sandbox for each application. Each service runs in a dedicated process with a unique UID to manage access rights, data directories, and other restrictions. We employ Portable Operating System Interface (POSIX) capabilities to strictly limit operations and pair this with Security-Enhanced Linux (SELinux) to enforce a "deny-by-default" posture. This approach restricts each service to the absolute minimum required, meaning missing configurations block access rather than creating an over-permissive system. We apply this same strategy to our communication permission system, as explained l

## Compiling to intermediate representation: Write yourself a compiler, Part III

DevFeed: [Compiling to intermediate representation: Write yourself a compiler, Part III](<https://devfeed.tech/articles/compiling-to-intermediate-representation-write-yourself-a-compiler-part-iii-38039.md>)

Original publisher: [Read original article](<https://nurkiewicz.com/2026/08/compiling-to-intermediate-representation-write-yourself-a-compiler.html>)

Published: 2026-08-16T22:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Nurkiewicz around Java and concurrency](<https://devfeed.tech/sources/tomasz-nurkiewicz-around-java-and-concurrency.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Code](<https://devfeed.tech/topics/code.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [bytecode](<https://devfeed.tech/tags/bytecode.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [go](<https://devfeed.tech/tags/go.md>), [interpreter](<https://devfeed.tech/tags/interpreter.md>), [ir](<https://devfeed.tech/tags/ir.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [python](<https://devfeed.tech/tags/python.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>), [writing-compiler](<https://devfeed.tech/tags/writing-compiler.md>)

### AI overview

This tutorial explains how a small interpreter project evolves into a compiler by emitting intermediate representation (IR). It contrasts interpreted and compiled languages, describes bytecode and virtual machines, and uses Java and WebAssembly examples to show how IR instructions are executed.

### Source excerpt

It's time to dive a bit deeper and abandon the naive realm of interpreters. Our tiny little project can finally call itself a compiler. In this part we'll emit so-called intermediate representation instead of just evaluating and running the source code as-is. OK, what does this all mean?

## The Pulse: Bending Spoons' Acquisition Strategy

DevFeed: [The Pulse: Bending Spoons' Acquisition Strategy](<https://devfeed.tech/articles/the-pulse-bending-spoons-acquisition-strategy-40922.md>)

Original publisher: [Read original article](<https://blog.pragmaticengineer.com/the-pulse-bending-spoons-acquisition-strategy/>)

Author: Gergely Orosz

Published: 2026-08-05T11:45:13Z

Content type: opinion

Language: en

Sources: [The Pragmatic Engineer](<https://devfeed.tech/sources/the-pragmatic-engineer-2.md>)

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Java](<https://devfeed.tech/topics/java.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [legacy application](<https://devfeed.tech/topics/legacy-application.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [backend](<https://devfeed.tech/tags/backend.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [java](<https://devfeed.tech/tags/java.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [migration](<https://devfeed.tech/tags/migration.md>), [performance](<https://devfeed.tech/tags/performance.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

The article examines Bending Spoons' acquisition strategy, including its announced $1.285 billion cash purchase of Airtable and its approach to operating struggling products with smaller teams. It also describes the company's reported modernization of Evernote from a Java 11 monolith running across 750 manually provisioned virtual machines on Google Cloud to a managed-database and microservices architecture in about six months, with reported improvements in performance, reliability, operating cost, and on-call load.

### Source excerpt

In only 5 years, Hopin went from zero to a $7.7B valuation, and back to zero again. Also: Bending Spoons' startup acquisition model.

## Changing Interfaces Connected to netlab Links

DevFeed: [Changing Interfaces Connected to netlab Links](<https://devfeed.tech/articles/changing-interfaces-connected-to-netlab-links-11348.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2026/03/netlab-ifindex/>)

Published: 2026-03-30T05:27:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [networking](<https://devfeed.tech/topics/networking.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>)

Tags: [cisco](<https://devfeed.tech/tags/cisco.md>), [containers](<https://devfeed.tech/tags/containers.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [network](<https://devfeed.tech/tags/network.md>), [node](<https://devfeed.tech/tags/node.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

This article explains how netlab uses interface ifindex values to connect virtual lab interfaces to specific links. It examines how interface names and mappings behave across Ethernet devices, containers, KVM virtual machines, vrnetlab, and Linux processes running in containers.

### Source excerpt

Some netlab users want to accurately replicate their physical network's topology in a virtual lab. Ignoring the obvious caveats for a moment, the first hiccup is usually the interface naming. All bets are off if you'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. netlab provided a solution for a long time - you can specify interface ifindex when attaching a node to a link. For example, use the following topology to connect Ethernet3 on R1 to Ethernet6 on R2: Read more ...

## two mechanisms for dynamic type checks

DevFeed: [two mechanisms for dynamic type checks](<https://devfeed.tech/articles/two-mechanisms-for-dynamic-type-checks-35030.md>)

Original publisher: [Read original article](<https://wingolog.org/archives/2026/02/18/two-mechanisms-for-dynamic-type-checks>)

Author: Andy Wingo

Published: 2026-02-18T16:21:10Z

Content type: tutorial

Language: en

Sources: [wingolog](<https://devfeed.tech/sources/wingolog.md>)

Topics: [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [JIT](<https://devfeed.tech/topics/jit.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>)

Tags: [cardelli](<https://devfeed.tech/tags/cardelli.md>), [cohen](<https://devfeed.tech/tags/cohen.md>), [dfs](<https://devfeed.tech/tags/dfs.md>), [display-hack](<https://devfeed.tech/tags/display-hack.md>), [dybvig](<https://devfeed.tech/tags/dybvig.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [vitek](<https://devfeed.tech/tags/vitek.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

This technical note explains two mechanisms for dynamic instance type checks in virtual machines with single inheritance. It describes DFS numbering when the type set is fixed and the display hack, based on per-type supertype arrays, when types can be added at run time.

### Source excerpt

Today, a very quick note on dynamic instance type checks in virtual machines with single inheritance. The problem is that given an object o whose type is t, you want to check if o actually is of some more specific type u. To my knowledge, there are two sensible ways to implement these type checks. if the set of types is fixed: dfs numbering Consider a set of types T := {t, u, ...} and a set of edges S := {<t|ε, u>, ...} indicating that t is the direct supertype of u, or ε if u is a top type. S should not contain cycles and is thus a direct acyclic graph rooted at ε. First, compute a pre-order and post-order numbering for each t in the graph by doing a depth-first search over S from ε. Something like this: def visit(t, counter): t.pre_order = counter counter = counter + 1 for u in S[t]: counter = visit(u, counter) t.post_order = counter return counter Then at run-time, when making an object of type t, you arrange to store the type's pre-order number (its tag) in the object itself. To test if the object is of type u, you extract the tag from the object and check if tag-u.pre_order mod 2n < u.post_order-u.pre_order. Two notes, probably obvious but anyway: one, you know the numbering for u at compile-time and so can embed those variables as immediates. Also, if the type has no subtypes, it can be a simple equality check. Note that this approach applies only if the set of types T is fixed. This is the case when statically compiling a WebAssembly module in a system that doesn't allow modules to be instantiated at run-time, like Wastrel. Interestingly, it can also be the case in JIT compilers, when modeling types inside the optimizer. if the set of types is unbounded: the display hack If types may be added to a system at run-time, maintaining a sorted set of type tags may be too much to ask. In that case, the standard solution is something I learned of as the display hack, but whose name is apparently ungooglable. It is described in a 4-page technical note by Norman H. Coh

## DigitalOcean Announces GPU Droplets Accelerated by NVIDIA HGX B300

DevFeed: [DigitalOcean Announces GPU Droplets Accelerated by NVIDIA HGX B300](<https://devfeed.tech/articles/powering-the-next-leap-in-ai-gpu-droplets-accelerated-by-nvidia-hgxtm-b300-are-now-available-on-digitalocean-19865.md>)

Original publisher: [Read original article](<https://www.digitalocean.com/blog/coming-soon-gpu-droplets-nvidia-b300s>)

Author: Waverly Swinton

Published: 2025-12-15T17:51:51Z

Content type: release

Language: en

Sources: [DigitalOcean](<https://devfeed.tech/sources/digitalocean.md>)

Topics: [Digital Ocean](<https://devfeed.tech/topics/digital-ocean.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Blackwell](<https://devfeed.tech/topics/blackwell.md>), [Nvidia](<https://devfeed.tech/topics/nvidia.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [High-Performance Computing](<https://devfeed.tech/topics/high-performance-computing.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Generative AI](<https://devfeed.tech/topics/generative-ai.md>), [data analytics](<https://devfeed.tech/topics/data-analytics.md>), [Multi-GPU](<https://devfeed.tech/topics/multi-gpu.md>), [long-context](<https://devfeed.tech/topics/long-context.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [blackwell](<https://devfeed.tech/tags/blackwell.md>), [compute](<https://devfeed.tech/tags/compute.md>), [digitalocean](<https://devfeed.tech/tags/digitalocean.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [high-performance-computing](<https://devfeed.tech/tags/high-performance-computing.md>), [inference](<https://devfeed.tech/tags/inference.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [long-context](<https://devfeed.tech/tags/long-context.md>), [multi-gpu](<https://devfeed.tech/tags/multi-gpu.md>), [nvidia](<https://devfeed.tech/tags/nvidia.md>), [product-updates](<https://devfeed.tech/tags/product-updates.md>), [real-time](<https://devfeed.tech/tags/real-time.md>)

### AI overview

DigitalOcean announces GPU Droplets accelerated by NVIDIA HGX B300, describing the platform's intended benefits for AI training, inference, generative AI, data analytics, and high-performance computing workloads.

### Source excerpt

AI continues to evolve at an unprecedented pace, with new models and demanding workloads pushing the boundaries of what's possible. From complex large language models (LLMs) to intricate scientific simulations, developers and businesses need access to the most powerful and efficient computing infrastructure. At DigitalOcean, we're committed to providing the cutting-edge tools you need to build, deploy, and scale your AI initiatives with simplicity and affordability. That's why we're excited to announce that GPU Droplets accelerated by NVIDIA HGX™ B300 are coming soon to DigitalOcean, marking a significant upgrade to our GPU offerings. Why NVIDIA HGX™ B300? The NVIDIA Blackwell Ultra accelerated computing platform represents a leap forward in AI reasoning. Designed for both training and inference, the NVIDIA HGX B300 offers substantial improvements in computational power, memory bandwidth, and energy efficiency compared to previous generations. The NVIDIA Blackwell architecture at the heart of the HGX B300 is not just about raw power; it's also about efficiency and innovation. With 1.5X more dense Tensor Core FLOPS, enhanced attention performance, and significantly expanded memory, the HGX B300 is optimized for the most demanding AI workloads including generative AI, data analytics, and high-performance computing (HPC). Featuring 7X more AI compute than NVIDIA Hopper platforms, 2.1TB of HBM3e memory, and high-performance networking integration with NVIDIA ConnectX-8 SuperNICs, Blackwell Ultra delivers breakthrough performance on the most complex workloads from agentic systems and reasoning, to real-time video generation. For AI-native enterprises running large reasoning models and long-context workloads, this enables: -Reduced model offloading and improved time-to-first-token -Higher sustained throughput under concurrency -More efficient multi-GPU scaling -Improved tokens-per-second per dollar Unlike GPU capacity providers, DigitalOcean integrates inference-optimized

## Sandbox Your AI Dev Tools: A Practical Guide for VMs and Lima

DevFeed: [Sandbox Your AI Dev Tools: A Practical Guide for VMs and Lima](<https://devfeed.tech/articles/sandbox-your-ai-dev-tools-a-practical-guide-for-vms-and-lima-31868.md>)

Original publisher: [Read original article](<https://www.metachris.dev/2025/11/sandbox-your-ai-dev-tools-a-practical-guide-for-vms-and-lima/>)

Author: Chris Hager

Published: 2025-11-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Chris Hager](<https://devfeed.tech/sources/chris-hager.md>)

Topics: [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [developer tooling](<https://devfeed.tech/topics/developer-tooling.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [sensitive data](<https://devfeed.tech/topics/sensitive-data.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [npm](<https://devfeed.tech/topics/npm.md>), [pip](<https://devfeed.tech/topics/pip.md>)

Tags: [ai-assisted-coding](<https://devfeed.tech/tags/ai-assisted-coding.md>), [api-keys](<https://devfeed.tech/tags/api-keys.md>), [dev-tools](<https://devfeed.tech/tags/dev-tools.md>), [npm](<https://devfeed.tech/tags/npm.md>), [python](<https://devfeed.tech/tags/python.md>), [sandbox](<https://devfeed.tech/tags/sandbox.md>), [sensitive-data](<https://devfeed.tech/tags/sensitive-data.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

A practical guide to sandboxing AI coding assistants and other development tools in isolated virtual machines using Lima. It explains how isolation helps protect SSH keys, API tokens, credentials, environment variables, and other sensitive data from arbitrary code, scripts, and package installation behavior.

### Source excerpt

AI coding assistants, npm, pip, and other development tools can run arbitrary code and scripts on your machine, potentially stealing SSH keys, API tokens, wallet keys, sensitive credentials and other private data without you noticing. This guide shows you how to sandbox these tools in isolated VMs using Lima, so you can experiment and develop freely without putting your sensitive data at risk. Jump straight to the guide, or read on for a bit of personal context.

## ansible-k3s-on-vms updated to Debian 13 (Trixie)

DevFeed: [ansible-k3s-on-vms updated to Debian 13 (Trixie)](<https://devfeed.tech/articles/ansible-k3s-on-vms-updated-to-debian-13-trixie-39538.md>)

Original publisher: [Read original article](<https://blog.wagemakers.be/blog/2025/11/13/ansible-k3s-trixie/>)

Author: Staf Wagemakers

Published: 2025-11-13T04:30:00Z

Content type: release

Language: en

Sources: [stafwag Blog](<https://devfeed.tech/sources/stafwag-blog.md>)

Topics: [Ansible](<https://devfeed.tech/topics/ansible.md>), [k3s](<https://devfeed.tech/topics/k3s.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloudinit](<https://devfeed.tech/tags/cloudinit.md>), [cluster](<https://devfeed.tech/tags/cluster.md>), [debian](<https://devfeed.tech/tags/debian.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [k3s](<https://devfeed.tech/tags/k3s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [linux](<https://devfeed.tech/tags/linux.md>), [pi](<https://devfeed.tech/tags/pi.md>), [pi-4](<https://devfeed.tech/tags/pi-4.md>), [release](<https://devfeed.tech/tags/release.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

The article announces updated Ansible roles for provisioning virtual machines and deploying k3s on a Raspberry Pi 4 cluster. The roles were updated for Debian 13 Trixie and include new templates, examples, and fixes across several roles.

### Source excerpt

I use the lightweight Kubernetes K3s on a 3-node Raspberry Pi 4 cluster. And created a few ansible roles to provision the virtual machines with cloud image with cloud-init and deploy k3s on it. I updated the roles below to be compatible with the latest Debian release: Debian 13 Trixie. With this release comes a new movie ;-)

## Announcing per-sec billing, new Droplet plans, BYOIP, and NAT gateway to reduce scaling costs

DevFeed: [Announcing per-sec billing, new Droplet plans, BYOIP, and NAT gateway to reduce scaling costs](<https://devfeed.tech/articles/announcing-per-sec-billing-new-droplet-plans-byoip-and-nat-gateway-to-reduce-scaling-costs-19876.md>)

Original publisher: [Read original article](<https://www.digitalocean.com/blog/dropletplans-persecbilling-byoip-natgateway>)

Author: Nihar Namjoshi

Published: 2025-10-02T08:03:13Z

Content type: release

Language: en

Sources: [DigitalOcean](<https://devfeed.tech/sources/digitalocean.md>)

Topics: [Digital Ocean](<https://devfeed.tech/topics/digital-ocean.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [VPC](<https://devfeed.tech/topics/vpc.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-infrastructure](<https://devfeed.tech/tags/cloud-infrastructure.md>), [digitalocean](<https://devfeed.tech/tags/digitalocean.md>), [droplets](<https://devfeed.tech/tags/droplets.md>), [network](<https://devfeed.tech/tags/network.md>), [product-updates](<https://devfeed.tech/tags/product-updates.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [vpc](<https://devfeed.tech/tags/vpc.md>)

### AI overview

DigitalOcean announces per-second billing for Droplets, new dedicated Droplet plans, generally available BYOIP, and a VPC NAT Gateway. The updates target more precise cost control, performance upgrades, IP reputation protection, and centralized egress management.

### Source excerpt

To help users cut down on cloud spending that's wasted due to over-provisioning and inflexible billing models, we're introducing tools that offer granular control without sacrificing simplicity or cost-effectiveness. We're excited to announce new product updates that offer granular cost control, improved performance, and a clear path to savings. TL;DR DigitalOcean has transitioned to per-second billing for Droplets. Starting from January 1, 2026, you only pay for the exact compute time you use, perfect for slashing costs on ephemeral tasks and CI/CD pipelines. Create Droplets for short-lived workloads. New dedicated Droplet plans are now generally available for a seamless performance upgrade. Visit your DigitalOcean console to create these new Droplets. Bring your own IP is now generally available to protect your IP reputation. Check out our documentation or visit your DigitalOcean console to bring your own ip. VPC NAT gateway is now generally available for centralized egress and static IPs. Join our webinar: Stop the manual struggle of managing NAT instances and bastion hosts or check out our documentation or visit your DigitalOcean console to set up your NAT gateway. Droplets per-second billing slashes costs for ephemeral workloads Traditional hourly billing models for virtual machines have resulted in customers paying for idle time, even for short-lived workloads. Starting from Jan 1, 2026, our billing model transitioned to a per-second basis for Droplets, with a minimum charge of 60 seconds or $0.01, whichever is higher. This new approach aims to optimize cost control by charging for exact usage over a minute, making it simple to get precise billing for your actual usage. For sustained workloads, the monthly cap of 672 hours (24 hours x 28 days) of usage remains in place, ensuring your bill never exceeds the predictable monthly price. Imagine your development team uses a CI/CD pipeline that uses $84/month CPU-Optimized Droplet to run automated tests taking 10 mi

## QEMU version 10.1.0 released

DevFeed: [QEMU version 10.1.0 released](<https://devfeed.tech/articles/qemu-version-10-1-0-released-32653.md>)

Original publisher: [Read original article](<https://www.qemu.org/2025/08/26/qemu-10-1-0/>)

Published: 2025-08-26T23:25:00Z

Content type: release

Language: en

Sources: [QEMU](<https://devfeed.tech/sources/qemu.md>)

Topics: [qemu](<https://devfeed.tech/topics/qemu.md>), [version](<https://devfeed.tech/topics/version.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [RISC-V](<https://devfeed.tech/topics/riscv.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Arm](<https://devfeed.tech/topics/arm.md>), [InfiniBand](<https://devfeed.tech/topics/infiniband.md>), [intel](<https://devfeed.tech/topics/intel.md>), [GB200](<https://devfeed.tech/topics/gb200.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [cxl](<https://devfeed.tech/tags/cxl.md>), [gb200](<https://devfeed.tech/tags/gb200.md>), [intel](<https://devfeed.tech/tags/intel.md>), [ipv6](<https://devfeed.tech/tags/ipv6.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [kvm](<https://devfeed.tech/tags/kvm.md>), [migration](<https://devfeed.tech/tags/migration.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [qemu-10-1](<https://devfeed.tech/tags/qemu-10-1.md>), [rdma](<https://devfeed.tech/tags/rdma.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [risc-v](<https://devfeed.tech/tags/risc-v.md>), [version](<https://devfeed.tech/tags/version.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

QEMU 10.1.0 has been released with more than 2,700 commits from 226 authors. Highlights include confidential-guest support, live-migration improvements, Windows guest load querying, new ARM and RISC-V capabilities, and expanded KVM and x86 virtualization support.

### Source excerpt

We'd like to announce the availability of the QEMU 10.1.0 release. This release contains 2700+ commits from 226 authors.

## Network Digital Twins: Between PowerPoint and Reality

DevFeed: [Network Digital Twins: Between PowerPoint and Reality](<https://devfeed.tech/articles/network-digital-twins-between-powerpoint-and-reality-11196.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/06/digital-twins-powerpoint-reality/>)

Published: 2025-06-19T07:16:00Z

Content type: opinion

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Network](<https://devfeed.tech/topics/network.md>), [networking](<https://devfeed.tech/topics/networking.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [examples](<https://devfeed.tech/tags/examples.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [network](<https://devfeed.tech/tags/network.md>), [networking](<https://devfeed.tech/tags/networking.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

The article discusses why networking digital twins have struggled to move beyond demonstrations. It identifies limitations involving supported interface technologies, interface-name mapping, chassis and line-card modeling, interface counts, resource requirements, clustered deployment, and the fidelity of virtual data-plane behavior.

### Source excerpt

A Network Artist left an interesting remark on one of my blog posts: It's kind of confusing sometimes to see the digital twin (being a really good idea) never really take off. 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. Read more ...

## ArubaCX VXLAN Routing Packets Have Invalid Lengths

DevFeed: [ArubaCX VXLAN Routing Packets Have Invalid Lengths](<https://devfeed.tech/articles/arubacx-cannot-count-when-dealing-with-vxlan-11193.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/06/aruba-vxlan-packet-length/>)

Published: 2025-06-12T05:08:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [VXLAN](<https://devfeed.tech/topics/vxlan.md>), [networking](<https://devfeed.tech/topics/networking.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>)

Tags: [capture](<https://devfeed.tech/tags/capture.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [tailscale](<https://devfeed.tech/tags/tailscale.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [vxlan](<https://devfeed.tech/tags/vxlan.md>)

### AI overview

A netlab IRB test exposed that VXLAN packets generated by ArubaCX's routing process reported IP and UDP lengths four bytes larger than the actual packet. The article uses packet captures to trace the issue to a VLAN tag removed during software VXLAN encapsulation without a corresponding length adjustment.

### Source excerpt

This blog post describes yet another bizarre example of how reliable digital twins are, but don't worry; they all work great in PowerPoint. After "fixing" the integration tests to deal with ArubaCX's notion of VXLAN VNI having 16 bits, the bridging test worked, but the IRB tests kept failing. In the IRB test, the lab has two layer-3 switches. Each of them should be able to bridge within a VLAN/VXLAN segment and route across the segments. Read more ...

## Capturing Traffic in Virtual Networking Labs

DevFeed: [Capturing Traffic in Virtual Networking Labs](<https://devfeed.tech/articles/capturing-traffic-in-virtual-networking-labs-11160.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/03/virtual-labs-traffic-capture/>)

Published: 2025-03-04T06:43:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [networking](<https://devfeed.tech/topics/networking.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Docker](<https://devfeed.tech/topics/docker.md>)

Tags: [capture](<https://devfeed.tech/tags/capture.md>), [container](<https://devfeed.tech/tags/container.md>), [containers](<https://devfeed.tech/tags/containers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [lan](<https://devfeed.tech/tags/lan.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [networking](<https://devfeed.tech/tags/networking.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

A tutorial on capturing traffic in virtual networking labs. It explains how to capture traffic from Linux bridges and QEMU-connected virtual machines, use netlab capture as a wrapper around virsh, brctl, and tcpdump, and approach traffic capture for containers attached to Docker networks or Linux bridges.

### Source excerpt

When I announced the Stub Networks in Virtual Labs blog post on LinkedIn, I claimed it was the last chapter in the "links in virtual labs" saga. I was wrong; here comes the fourth part of the virtual links trilogy - capturing "on the wire" traffic in virtual networking labs. While network devices provide traffic capture capabilities (usually tcpdump in disguise generating a .pcap file), it's often better to capture the traffic outside of the device to see what the root cause of the problems you're experiencing might be. Read more ...

## Taming A Voracious Rust Proxy

DevFeed: [Taming A Voracious Rust Proxy](<https://devfeed.tech/articles/taming-a-voracious-rust-proxy-1718.md>)

Original publisher: [Read original article](<https://fly.io/blog/taming-rust-proxy/>)

Published: 2025-02-26T00:00:00Z

Content type: article

Language: en

Sources: [The Fly Blog](<https://devfeed.tech/sources/the-fly-blog.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [fly](<https://devfeed.tech/topics/fly.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [incident](<https://devfeed.tech/topics/incident.md>), [Tokio](<https://devfeed.tech/topics/tokio.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Network](<https://devfeed.tech/topics/network.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [cdn](<https://devfeed.tech/tags/cdn.md>), [close-to-users](<https://devfeed.tech/tags/close-to-users.md>), [containers](<https://devfeed.tech/tags/containers.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [deploy-app-servers](<https://devfeed.tech/tags/deploy-app-servers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [elixir](<https://devfeed.tech/tags/elixir.md>), [fly](<https://devfeed.tech/tags/fly.md>), [fly-io](<https://devfeed.tech/tags/fly-io.md>), [heroku-alternative](<https://devfeed.tech/tags/heroku-alternative.md>), [heroku-competitor](<https://devfeed.tech/tags/heroku-competitor.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [http](<https://devfeed.tech/tags/http.md>), [i](<https://devfeed.tech/tags/i.md>), [incident](<https://devfeed.tech/tags/incident.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [network](<https://devfeed.tech/tags/network.md>), [networking](<https://devfeed.tech/tags/networking.md>), [postgresql-clusters](<https://devfeed.tech/tags/postgresql-clusters.md>), [rust](<https://devfeed.tech/tags/rust.md>), [servers](<https://devfeed.tech/tags/servers.md>), [tokio](<https://devfeed.tech/tags/tokio.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

The article investigates a recurring CPU and HTTP-error incident affecting Fly.io edge proxies. Profiling reveals unexpectedly high overhead in Rust tracing's Subscriber while the proxy handles largely idle asynchronous work, leading into a review of async Rust futures and Tokio execution.

### Source excerpt

Here's a fun bug. The basic idea of our service is that we run containers for our users, as hardware-isolated virtual machines (Fly Machines), on hardware we own around the world. What makes that interesting is that we also connect every Fly Machine to a global Anycast network. If your app is running in Hong Kong and Dallas, and a request for it arrives in Singapore, we'll route it to HKG. Our own hardware fleet is roughly divided into two kinds of servers: edges, which receive incoming requests from the Internet, and workers, which run Fly Machines. Edges exist almost solely to run a Rust program called fly-proxy, the router at the heart of our Anycast network. So: a week or so ago, we flag an incident. Lots of things generate incidents: synthetic monitoring failures, metric thresholds, health check failures. In this case two edge tripwires tripped: elevated fly-proxy HTTP errors, and skyrocketing CPU utilization, on a couple hosts in IAD. Our incident process is pretty ironed out at this point. We created an incident channel (we ❤ Rootly for this, seriously check out Rootly, an infra MVP here for years now), and incident responders quickly concluded that, while something hinky was definitely going on, the platform was fine. We have a lot of edges, and we've also recently converted many of our edge servers to significantly beefier hardware. Bouncing fly-proxy clears the problem up on an affected proxy. But this wouldn't be much of an interesting story if the problem didn't later come back. So, for some number of hours, we're in an annoying steady-state of getting paged and bouncing proxies. While this is happening, Pavel, on our proxy team, pulls a profile from an angry proxy. So, this is fuckin' weird: a huge chunk of the profile is dominated by Rust tracing's Subscriber. But that doesn't make sense. The entire point of Rust tracing, which generates fine-grained span records for program activity, is that entering and exiting a span is very, very fast. If the mere

## Stub Networks in Virtual Labs

DevFeed: [Stub Networks in Virtual Labs](<https://devfeed.tech/articles/stub-networks-in-virtual-labs-11141.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/02/virtual-dummy-interfaces/>)

Published: 2025-02-25T06:55:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [networking](<https://devfeed.tech/topics/networking.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [qemu](<https://devfeed.tech/topics/qemu.md>)

Tags: [containers](<https://devfeed.tech/tags/containers.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [networking](<https://devfeed.tech/tags/networking.md>), [networks](<https://devfeed.tech/tags/networks.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

This article explains how to create stub network segments connected to a single router or switch in virtual labs. It discusses QEMU UDP tunnels and Linux dummy interfaces in containerlab, including compatibility issues with VyOS and Arista cEOS.

### Source excerpt

The previous blog posts described how virtualization products create LAN segments and point-to-point links. However, sometimes we need stub segments - segments connected to a single router or switch - because we don'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. Read more ...

## How to run Firecracker without KVM on cloud VMs

DevFeed: [How to run Firecracker without KVM on cloud VMs](<https://devfeed.tech/articles/how-to-run-firecracker-without-kvm-on-cloud-vms-26643.md>)

Original publisher: [Read original article](<https://blog.alexellis.io/how-to-run-firecracker-without-kvm-on-regular-cloud-vms/>)

Author: Alex Ellis

Published: 2025-02-12T09:05:21Z

Content type: tutorial

Language: en

Sources: [Alex Ellis' Blog](<https://devfeed.tech/sources/alex-ellis-blog.md>)

Topics: [Firecracker](<https://devfeed.tech/topics/firecracker.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [bare-metal](<https://devfeed.tech/tags/bare-metal.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [firecracker](<https://devfeed.tech/tags/firecracker.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [kvm](<https://devfeed.tech/tags/kvm.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

This tutorial introduces a way to run microVMs on cloud virtual machines without KVM, using the PVM virtualization framework. It explains the limitations of nested virtualization and compares the cost of AWS bare-metal EC2 with alternatives.

### Source excerpt

MicroVMs need bare-metal or nested virtualisation with /dev/kvm. But what if that's not available? The PVM virtualisation framework may be the answer.

## Point-to-Point Links in Virtual Labs

DevFeed: [Point-to-Point Links in Virtual Labs](<https://devfeed.tech/articles/point-to-point-links-in-virtual-labs-11143.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/02/virtual-labs-p2p-links/>)

Published: 2025-02-12T06:55:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [cli](<https://devfeed.tech/tags/cli.md>), [container-networking](<https://devfeed.tech/tags/container-networking.md>), [containers](<https://devfeed.tech/tags/containers.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [networking](<https://devfeed.tech/tags/networking.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

This article explains how virtual labs connect virtual machines and Linux containers. It covers UDP tunnels used by KVM/QEMU/libvirt/Vagrant, point-to-point vEth links created by containerlab, and the packet-capture limitations of UDP tunnels.

### Source excerpt

In the previous blog post, 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. In this blog post, we'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. Read more ...

## Waiting for Network Device Interfaces During netlab Provisioning

DevFeed: [Waiting for Network Device Interfaces During netlab Provisioning](<https://devfeed.tech/articles/please-wait-while-we-re-preparing-your-interfaces-11144.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/02/wait-for-interfaces/>)

Published: 2025-02-05T06:59:00Z

Content type: article

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Network](<https://devfeed.tech/topics/network.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [Ansible](<https://devfeed.tech/topics/ansible.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [ssh](<https://devfeed.tech/topics/ssh.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [containers](<https://devfeed.tech/tags/containers.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [network](<https://devfeed.tech/tags/network.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

The article explains why netlab must wait for network device interfaces to become operational after virtual machines and containers start. It describes readiness checks for SSH and interfaces, including differences in Cisco Nexus OS and Junos, and outlines how Ansible profiling is used to measure startup delays.

### Source excerpt

Once a virtual machine running a network operating system boots, you'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 interfaces.1 I would love to figure out what takes them so long (a minute is an eternity on modern CPUs), but I guess we'll never know. Behind the Scenes netlab uses two device provisioning mechanisms: it can start virtual machines with Vagrant or containers with containerlab. Some of those containers might use KVM/QEMU to run a hidden virtual machine (see also: RFC 1925 rule 6a). Read more ...

## Links in Virtual Labs

DevFeed: [Links in Virtual Labs](<https://devfeed.tech/articles/links-in-virtual-labs-11142.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/02/virtual-lab-links/>)

Published: 2025-02-03T07:27:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [virtualization](<https://devfeed.tech/topics/virtualization.md>), [networking](<https://devfeed.tech/topics/networking.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Vagrant](<https://devfeed.tech/topics/vagrant.md>)

Tags: [containers](<https://devfeed.tech/tags/containers.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [links](<https://devfeed.tech/tags/links.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [network](<https://devfeed.tech/tags/network.md>), [networks](<https://devfeed.tech/tags/networks.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

This article explains how physical network links are represented in virtual labs. It examines virtual bridge switches, Linux bridges, Vagrant and libvirt networks, tap interfaces, and the veth-pair method for connecting containers to Linux bridges.

### Source excerpt

There are three major ways to connect network devices in the physical world: Point-to-point links between devices (usually using some variant of Ethernet) Multi-access layer-1 networks running some IEEE 802.x encapsulation on top of that (GPON, WiFi, Ethernet hubs) Multi-access switched layer-2 network (dumb switches, hopefully running some STP variant) 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. Read more ...

## How Does Netlab Deal with Server Reboots?

DevFeed: [How Does Netlab Deal with Server Reboots?](<https://devfeed.tech/articles/how-does-netlab-deal-with-server-reboots-11087.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2024/10/netlab-system-reboots/>)

Published: 2024-10-24T06:15:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [cli](<https://devfeed.tech/tags/cli.md>), [config](<https://devfeed.tech/tags/config.md>), [containers](<https://devfeed.tech/tags/containers.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [server](<https://devfeed.tech/tags/server.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

The article explains that netlab does not automatically recover labs after server reboots, power failures, or crashes because it runs as a CLI rather than a boot-time service. It describes clearing stale locks, restarting virtual-machine labs with snapshot and no-config options, and the more limited recovery options for containers.

### Source excerpt

Now and then, someone asks how netlab deals with reboots (or power failures or crashes) of the server it's running on. TL&DR: It doesn't. However... netlab 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. Read more ...

## One-Arm Hub-and-Spoke VPN with MPLS/VPN

DevFeed: [One-Arm Hub-and-Spoke VPN with MPLS/VPN](<https://devfeed.tech/articles/one-arm-hub-and-spoke-vpn-with-mpls-vpn-11067.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2024/09/hub-spoke-one-arm/>)

Published: 2024-09-24T06:15:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [MPLS VPN](<https://devfeed.tech/topics/mpls-vpn.md>), [Virtual Private Network](<https://devfeed.tech/topics/vpn.md>), [Network](<https://devfeed.tech/topics/network.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>), [evpn](<https://devfeed.tech/topics/evpn.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>)

Tags: [bgp](<https://devfeed.tech/tags/bgp.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [containers](<https://devfeed.tech/tags/containers.md>), [design](<https://devfeed.tech/tags/design.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [evpn](<https://devfeed.tech/tags/evpn.md>), [mpls-vpn](<https://devfeed.tech/tags/mpls-vpn.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [network](<https://devfeed.tech/tags/network.md>), [ospf](<https://devfeed.tech/tags/ospf.md>), [routing](<https://devfeed.tech/tags/routing.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [vpn](<https://devfeed.tech/tags/vpn.md>)

### AI overview

This tutorial explains how to build a one-arm hub-and-spoke VPN using MPLS/VPN. It describes a routing approach using common-services VRFs and a default route advertised by the hub, with examples involving Cisco IOS and FRRouting devices.

### Source excerpt

All our previous designs of the hub-and-spoke VPN (single PE, EVPN) 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? TL&DR: Yes, but only on some devices (for example, Cisco IOS or FRRouting) when using MPLS transport. Here's a high-level diagram of what we'd like to achieve: Read more ...

[Next page](<https://devfeed.tech/topics/virtual-machines.md?cursor=WyIyMDI0LTA5LTI0VDA2OjE1OjAwKzAwOjAwIiwgImNiZjk0OTZkLTRmN2YtNGVkZC05OTI4LTcyYmUzM2M5MTQ0ZiJd>)