Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
770e2e1
Pure Underlay using KubeOVN Provider Networks
rrajendran17 Jun 29, 2026
7ef4eb3
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 6, 2026
0a8d328
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 6, 2026
c53e349
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 6, 2026
f648538
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 6, 2026
528412e
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 6, 2026
c6cd4f5
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 6, 2026
8c1a57a
additional details for configuration
rrajendran17 Jul 6, 2026
2a79fbd
Merge branch 'main' into pure-underlay
rrajendran17 Jul 6, 2026
ef934b0
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
f0e4506
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
daf4f20
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
7cc0f5d
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
b3c807c
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
657a683
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
152b840
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
9323bd6
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
d974abb
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
2ba4abd
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
49cb1f2
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
c58ebdc
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
dde023b
Update docs/networking/kubeovn-pureunderlay.md
rrajendran17 Jul 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions docs/networking/kubeovn-pureunderlay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
sidebar_position: 12
sidebar_label: Pure Underlay Networking
title: "Pure Underlay Networking"
keywords:
- Harvester
- networking
- Kube-OVN
- overlay VMs
- underlay networking
---

<head>
<link rel="canonical" href="https://docs.harvesterhci.io/v1.9/networking/kubeovn-pureunderlay"/>
</head>

:::note

All features that use Kube-OVN are considered experimental. For more information about experimental features, see [Feature Labels](../getting-started/document-conventions.md#feature-labels).

:::

A pure underlay network allows virtual machines to connect directly to a physical Layer 2 network without overlay networking and the encapsulation overhead of technologies such as VXLAN or Geneve. Each virtual machine becomes a first-class member of the external network, communicating natively using standard Ethernet frames.

In Harvester, this direct connectivity is achieved by attaching virtual machines to a provider network, which maps a physical NIC or bonded interface on each host to the cluster. Traffic leaves the virtual machine through the host's physical interface and reaches the external network immediately, bypassing overlay tunnels completely.

![](/img/pureunderlay.png)

## Kube-OVN Underlay Mode

While traditional VLAN networking already enables virtual machines to communicate directly with the physical infrastructure, Kube-OVN's _Underlay_ mode extends this capability by embedding native Layer 2 connectivity directly into the OVN networking control plane. This deep integration allows workloads to leverage your existing physical underlay infrastructure while coexisting seamlessly with standard overlay networks inside the same Kubernetes cluster.

Furthermore, integrating Kube-OVN’s underlay capabilities into Harvester ensures that virtual machines connected to the physical network do not lose their cloud-native security features. Workloads can still benefit from advanced micro-segmentation capabilities, including [subnet ACLs and granular network policies](./kubeovn-vm-isolation.md), allowing you to maintain strict traffic control across both virtual and physical network boundaries.

## Underlay Installation

### Create a Provider Network

1. On the Harvester UI, go to **Underlay Networks > Provider Networks**.

1. Click **Create**.

![](/img/pn.png)

1. Specify a unique name for the network.

1. On the **Interfaces** tab, configure the following settings:

- **Default Interface**: Select a physical or bonded interface that is present on every host in your cluster. This interface acts as the main uplink connecting all nodes to the provider network.

- **Custom Interfaces**: (Optional) Configure a custom interface if your hosts do not have identical network interface names. You can manually map specific interface names to their corresponding nodes to ensure consistent network connectivity.

1. (Optional) On the **Excluded Nodes** tab, select nodes that should not participate in this provider network (for example, nodes that are isolated for dedicated tasks).

1. Click **Create**.

For more information, see [Create Provider Network](https://kubeovn.github.io/docs/v1.16.x/en/start/underlay/#create-providernetwork) in the Kube-OVN documentation.

### Create a VLAN Network

1. On the Harvester UI, go to **Underlay Networks > VLANs**.

![](/img/vlan2017.png)

1. Click **Create**.

1. Specify a unique name for the network.

1. On the **Basic** tab, configure the following settings:

- **VLAN ID**: Specify the VLAN tag number for this network. Traffic passing through this network will automatically be tagged with this ID. If you do not want traffic to be tagged, set the value to `0`.

- **Provider Network**: Select the underlying provider network. You can map multiple VLANs to the same provider network to segregate traffic over the same physical infrastructure.

1. Click **Create**.

For more information, see [Create VLAN](https://kubeovn.github.io/docs/v1.16.x/en/start/underlay/#create-vlan) in the Kube-OVN documentation.

### Create an Overlay Network

Follow the instructions in [Create an Overlay Network](./harvester-network.md#create-an-overlay-network).

![](/img/vswitchexternal.png)

:::info important

When setting up a pure underlay, the overlay network must use the following configuration:

- **Namespace**: Select `kube-system`.
- **Network Interface Card**: Select the identical physical or bonded network interfaces that you assigned when configuring the provider network.

:::

### Create a Subnet in a VPC

For descriptions of settings that you must configure, see [Subnet Settings](./kubeovn-vpc.md#subnet-settings).

![](/img/subnetexternal.png)

:::info important

When setting up a pure underlay, you must specify the name of the VLAN network that is mapped to the provider network.

:::


#### Create VMs attached to underlay network using `vswitchexternal`
Refer [Create a VM](https://docs.harvesterhci.io/v1.9/vm/index#how-to-create-a-vm)
Comment on lines +107 to +108

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this section necessary? The title of the parent section is "Underlay Installation". VM creation seems external to the installation process.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is better if users are aware that they could create VMs over the underlay.
The users after successful installation of underlay can spin up VMs and attach the VMs to the underlay network's VM Network/provider and VMs can communicate to other VMs or to external using the underlay network.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can add section or rephrase it based on your suggestion.

Binary file added static/img/pn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/pureunderlay.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/subnetexternal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/vlan2017.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/vswitchexternal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading