BitByteIntegration Cloud-Native Networking Architecture Series Part 3 of 6 — Tracking a Packet Through an OVN Localnet Network
Home / Learning / Networking / Localnet
📘 Cloud-Native Networking Architecture Series · Part 3 of 6

Tracking a Packet Through an OVN Localnet Network

Following a packet from a virtual machine through OVN Localnet and onto an existing enterprise VLAN — without Geneve encapsulation.

Reading Time19 min
Architecture LevelIntermediate
AuthorKashif Ali
UpdatedJuly 2026
OpenShiftOVN-KubernetesLocalnetOpen vSwitchMultusKubeVirt
Prerequisites
Read: Part 1 — Linux Bridge Read: Part 2 — OVN-Kubernetes Basic 802.1Q VLAN knowledge
⚡ Quick Facts
Network TypeOVN Localnet
LayerL2 (VLAN)
EncapsulationNone — native Ethernet
PerformanceHigh
Live MigrationSupported (shared VLAN)
Typical UseEnterprise VLAN Integration
The Series So Far
PartNetwork TypePacket Leaves Node As
Part 1Linux BridgeNative Ethernet
Part 2OVN-KubernetesGeneve Encapsulated
Part 3LocalnetNative Ethernet via br-ex

Why This Matters

Why Localnet Exists

Almost no enterprise adopts OpenShift Virtualization on a blank slate. The VLANs already exist. The firewalls already exist, with rules written against known subnets. The DHCP scopes already exist. The physical switches already exist, purchased and depreciated over a multi-year budget cycle nobody wants to reopen.

Part 2 showed how OVN solves cross-node networking beautifully — by hiding the physical topology entirely behind a Geneve overlay. But that's exactly the problem for a workload that needs to appear directly on VLAN 200, reachable by its real IP from an existing firewall rule, indistinguishable from the bare-metal server sitting in the next rack. An overlay IP living inside Geneve simply isn't visible to that infrastructure.

How can OVN connect a workload directly to that physical network, while still keeping the workload under OVN's control plane? That's Localnet — and it's the subject of this article.


Section 02 · Architecture Overview

The Building Blocks

Nine stages, no explanations yet — just the shape of the journey.

VM192.168.200.10virt-launcherpodOVSbr-intLogical SwitchL2Localnet Portbridge mappingbr-exexternal bridgePhysical NICens5f0Enterprise Switchtrunk portVLAN 200existing segment
Diagram 1 — Complete Localnet Architecture: VM → virt-launcher → OVS → Logical Switch → Localnet Port → br-ex → Physical NIC → Enterprise Switch → VLAN
Architecture Note: Notice this path is one stage shorter than OVN's default overlay journey — there's no Geneve encapsulation stage and no remote-node hop. The packet leaves the local node entirely as itself.

Section 03 · The Components

Meet the Components

ComponentPurpose
VMGenerates packets via its guest networking stack
OVSVirtual switching — same br-int used by default OVN networking
Logical SwitchThe logical L2 segment the VM's port belongs to
Localnet PortConnects the OVN logical switch to the physical network
br-exThe external OVS bridge, enslaved to a physical NIC
Physical NICSends the tagged frame to the enterprise switch
Enterprise SwitchExisting physical VLAN infrastructure — unchanged by OVN

Section 04 · Our Signature

The Packet Walk

Same discipline, same real addressing. This time the VM lives at 192.168.200.10 — a real address on the enterprise VLAN, not a cluster-internal one.

VM192.168.200.10virtio-netparavirttap0host handoffbr1virt-launcherbr-intOVSBridge Mappingphysnet-dcVLAN 200tag appliedbr-expatch portens5f0physical NICEnterprise SwitchVLAN 200 trunk
Diagram 2 — Packet Walk: 192.168.200.10 exits directly onto VLAN 200
1

VM generates untagged frame

Source 192.168.200.10, MAC 52:54:00:aa:bb:10 — a real, routable address on the enterprise VLAN, not a cluster-internal IP.

2

QEMU → tap0

The frame crosses the same virtual cable used in every article so far — no difference at this hop.

3

br1 → eth0 (veth)

The pod-local bridge learns the source MAC and forwards toward the veth pair, crossing into the host namespace.

4

br-int entry and OVN lookup

The frame hits the integration bridge. OVN's logical switch and logical port lookups identify this port as connected to a Localnet port, not a regular tenant port.

5

Bridge mapping resolution (physnet-dc)

OVN resolves the Localnet port against its configured bridge mapping — a named provider network (e.g. physnet-dc) that points to a specific external bridge.

6

802.1Q VLAN tagging

Before the frame leaves OVN's logical boundary, OVS injects the VLAN ID (200) into the frame header — this is the only header modification that occurs.

7

Patch port to br-ex

The tagged frame crosses an internal OVS patch port from br-int into the external bridge, br-ex.

8

Physical NIC (ens5f0)

The tagged Ethernet frame exits the host entirely through the physical interface enslaved to br-ex.

9

Enterprise switch trunk port

The upstream physical switch receives the frame, validates the VLAN 200 tag, and forwards it exactly as it would for any bare-metal server on that VLAN.

The Journey, Condensed

VM
tap0
br1
br-int
Bridge Mapping
VLAN 200 Tag
br-ex
ens5f0
Enterprise Switch
Architecture Note: Return traffic follows the exact same path in reverse: the trunk port delivers to ens5f0, br-int strips the VLAN 200 header, and the frame flows back through br1 and tap0 to the VM — with zero guest-visible difference from a bare-metal NIC.

Section 05

Localnet Internals

A Localnet port is a special OVN logical switch port type. Unlike a normal port that connects to a VM or pod, a Localnet port has no workload on the other end — it exists purely to tell OVN "this logical switch also has a door to the physical network."

OVN Logical Switchdatabase object Localnet Portspecial port type Bridge Mappingphysnet-dc → br-ex The Localnet Port is a database row, not a wire — the Bridge Mapping is what makes it real
Diagram 3 — Localnet Port: a database construct, made real by its Bridge Mapping

The connection between the logical world and br-ex is made by a bridge mapping — a named association (like physnet-dc) that OVN's local controller resolves on every node to a specific physical bridge. This is configured once per node, typically via a NodeNetworkConfigurationPolicy (NNCP) — the mechanics of which deserve their own dedicated article.

Architecture Note: A Localnet port is not a physical interface. It is a logical OVN construct that maps a logical switch to an external bridge (br-ex) through a bridge mapping, allowing packets to exit the overlay as native Ethernet frames.

Section 06 · Signature Section

The Physical Connection

This is the section that finally answers the question the whole article has been building toward: Localnet is not "another bridge" sitting beside Linux Bridge. It's OVN's own logical network reaching directly into the physical world.

OVN Logical NetworklogicalBridge Mappingphysnet-dcbr-exOVS bridgeNICens5f0Switchtrunk portEnterprise VLANVLAN 200
Diagram 4 — Bridge Mapping: the named link between OVN's logical world and physical infrastructure

Every other network type in this series either stays entirely inside the kernel (Linux Bridge) or stays entirely inside the overlay (OVN default). Localnet is the hybrid: the workload's port lives in OVN's logical switch, is governed by OVN's control plane, and yet the actual frame that reaches the wire has never been encapsulated at all.

Architecture Note: This is why Localnet integration is described as "clean" — the enterprise switch has no idea OVN, Kubernetes, or virtualization is involved. It just sees a normal 802.1Q trunk port with tagged Ethernet frames.
Common Misconception: Localnet is often described as "bypassing OVN." In reality, the packet still traverses OVN's logical networking in full — logical switch lookup, port binding, ACL evaluation all still happen. The difference is only in how the packet exits: through a Localnet port and bridge mapping instead of being encapsulated into a Geneve tunnel.

Section 07 · Our Signature

What Actually Hits the Wire

Just like the Linux Bridge article, what leaves the physical NIC here is a native Ethernet frame — with exactly one optional addition.

br-ex (OVS)VLAN 200 tag applied ens5f0tagged frame exits Trunk Portphysical switch VLAN 200enterprise segment Physical switch validates the 802.1Q VLAN 200 tag and forwards — no Kubernetes awareness required
Diagram 6 — Physical Switch Integration: the enterprise switch sees only a standard 802.1Q trunk port
Destination MAC6 bytes
Source MAC6 bytes
802.1Q VLAN TagVLAN 200
Payloadoriginal packet
CRC4 bytes
Diagram — Localnet frame on the wire: native Ethernet plus one optional VLAN tag
Network TypeWhat Hits the Wire
Linux BridgeNative Ethernet
LocalnetNative Ethernet (+ VLAN tag)
OVN DefaultGeneve-encapsulated
Architecture Note: This table is the single most important comparison in the entire series so far. Localnet and Linux Bridge agree on the wire format — the difference between them is entirely in the control plane, not the packet.

Section 08

Control Plane

Kept intentionally concise — the architecture, not the YAML.

NetworkAttach-\nmentDefinitionMultus CRDOVNcontrol planeBridge Mappingphysnet-dcOVSflow tablesbr-exexternal bridge
Diagram — Control plane chain: NetworkAttachmentDefinition → OVN → Bridge Mapping → OVS → br-ex

A Multus NetworkAttachmentDefinition tells Kubernetes which VMs should attach to the Localnet network. OVN reads that intent, resolves it against the node's configured bridge mapping, and programs OVS flows accordingly. From that point forward, every packet on that port is tagged and handed to br-ex automatically.


Section 09

Design Characteristics

FeatureLocalnet
OverlayNo
GeneveNo
VLAN SupportYes — native 802.1Q
Enterprise IntegrationExcellent
Multi-Tenant IsolationLimited — shared physical VLAN
Network PoliciesDepends — enforced only up to the localnet boundary
PerformanceHigh — no encapsulation overhead

Section 10

When Should You Use Localnet?

✅ Good Fit
  • Existing enterprise VLANs the workload must join directly
  • Brownfield migration from VMware or RHV onto shared physical infrastructure
  • Physical appliances (firewalls, load balancers) that expect real L2 adjacency
  • Legacy applications with hardcoded IP or subnet assumptions
  • Bare-metal integration scenarios
🚫 Avoid When
  • Strong overlay-based tenant isolation is required
  • Multi-tenant environments where workloads shouldn't share L2 broadcast domains
  • Dynamic SDN segmentation is the primary design goal
Architecture Note: Localnet's biggest trade-off is operational, not architectural: every node needs its bridge mapping manually configured to match physical switch wiring, and it lacks the multi-node overlay automation that lets OVN default networking route anywhere with zero physical prep.
✅ Operational Checklist — Before You Deploy
Bridge mapping present and identical on every node
br-ex correctly connected to the intended physical NIC
Physical switch VLAN configured on the corresponding trunk port
MTU aligned between the guest, br-ex, and the physical network
Consistent bridge names used across all nodes in the pool

Section 11

Localnet vs. Linux Bridge vs. OVN

Linux BridgeOVNLocalnet
Kernel BridgeOverlayPhysical Integration
Native L2GeneveNative L2
SimpleSDNHybrid

Architecture differences, not feature checklists. The full seven-way matrix lives in the Cloud-Native Networking Architecture Portal.


Section 12

Key Takeaways

VM192.168.200.10tap0br1br-intBridge MapVLAN 200ens5f0Switch
Diagram 7 — Packet Path Summary: VM → tap0 → br1 → br-int → Bridge Mapping → VLAN 200 → ens5f0 → Switch

Section 13

What's Next

Next in the Series — Part 4 of 6
Tracking a Packet Through User Defined Networks
Now that workloads can reach the physical network directly, a new question emerges: how do we isolate different applications from each other with their own dedicated logical networks — without giving up the flexibility we've built so far? In the next article, we'll follow a packet through a User Defined Network and see how OVN carves out per-namespace isolation on top of everything covered in Parts 1 through 3.
Read the Next Article