summaryrefslogtreecommitdiff
path: root/docs/vpp/configuration/interfaces/vxlan.md
blob: 2139f1202fec4307682d65a80db705fb14ca614c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
---
lastproofread: '2026-03-13'
---

(vpp-config-interfaces-vxlan)=

```{include} /_include/need_improvement.txt
```


# VPP VXLAN Configuration

VPP VXLAN interfaces provide virtual extensible local area network (VXLAN)
tunneling with high-performance packet processing. VXLAN extends Layer 2
domains across Layer 3 networks using UDP encapsulation, enabling scalable
multi-tenant networking while leveraging VPP's optimized data plane.

## Basic Configuration

### Creating a VXLAN Interface

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\>

Create a VXLAN interface where ``<vppvxlanN>`` follows the naming
convention ``vppvxlan1``, ``vppvxlan2``, etc.
```

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\> vni \<vni\>

Set the Virtual Network Identifier (VNI) for the VXLAN tunnel. Valid range
is 0-16777214.
```

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\> remote \<address\>

Set the tunnel remote endpoint address. Supports both IPv4 and IPv6
addresses.
```

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\> source-address \<address\>

Set the tunnel source address. Must match an address configured on the
local system.
```

**Basic Example:**

```none
set interfaces vpp vxlan vppvxlan1
set interfaces vpp vxlan vppvxlan1 vni 100
set interfaces vpp vxlan vppvxlan1 remote 203.0.113.2
set interfaces vpp vxlan vppvxlan1 source-address 192.168.1.1
```

## Interface Configuration
### Description and Administrative Control

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\> description \<description\>

Set a descriptive name for the VXLAN interface.
```

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\> disable

Administratively disable the VXLAN interface.
```

### Kernel Interface Integration

The kernel interface is bound to the VXLAN tunnel for management and
application compatibility.

## IP Address Configuration

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\> address \<ip-address/prefix\>

Configure IPv4 or IPv6 addresses on the kernel interface. Multiple
addresses can be assigned.
```

**Examples:**

```none
set interfaces vpp vxlan vppvxlan1 address 192.168.1.10/24
set interfaces vpp vxlan vppvxlan1 address 2001:db8::10/64
```

## MTU Configuration

```{cfgcmd} set interfaces vpp vxlan \<vppvxlanN\> mtu \<size\>

Set the Maximum Transmission Unit (MTU) for the kernel interface. The MTU
must be compatible with the connected VPP interface.
```

## Configuration Examples
### Basic VXLAN Tunnel

```none
# IPv4 VXLAN tunnel
set interfaces vpp vxlan vppvxlan1
set interfaces vpp vxlan vppvxlan1 description "Tenant A network extension"
set interfaces vpp vxlan vppvxlan1 vni 1000
set interfaces vpp vxlan vppvxlan1 remote 203.0.113.10
set interfaces vpp vxlan vppvxlan1 source-address 192.168.1.1
```

### IPv6 VXLAN Tunnel

```none
# IPv6 endpoints
set interfaces vpp vxlan vppvxlan2
set interfaces vpp vxlan vppvxlan2 vni 2000
set interfaces vpp vxlan vppvxlan2 remote 2001:db8::2
set interfaces vpp vxlan vppvxlan2 source-address 2001:db8::1
```

### VXLAN with Kernel Interface

```none
# VXLAN tunnel with management interface
set interfaces vpp vxlan vppvxlan3
set interfaces vpp vxlan vppvxlan3 vni 3000
set interfaces vpp vxlan vppvxlan3 remote 203.0.113.30
set interfaces vpp vxlan vppvxlan3 source-address 192.168.1.1
set interfaces vpp vxlan vppvxlan3 address 10.0.3.1/24
```

## Bridge Integration

VXLAN interfaces are commonly used as members in VPP bridges for Layer 2
extension. See {doc}`bridge` for more information.

```none
# Add VXLAN tunnel to bridge
set interfaces vpp bridge vppbr1
set interfaces vpp bridge vppbr1 member interface vppvxlan1
set interfaces vpp bridge vppbr1 member interface eth1
set interfaces vpp bridge vppbr1 member interface vpplo1 bvi
```

### Multi-Tenant Configuration

```none
# Multiple VNIs for tenant separation
set interfaces vpp vxlan vppvxlan10
set interfaces vpp vxlan vppvxlan10 description "Tenant A - Production"
set interfaces vpp vxlan vppvxlan10 vni 1001
set interfaces vpp vxlan vppvxlan10 remote 203.0.113.20
set interfaces vpp vxlan vppvxlan10 source-address 192.168.1.1

set interfaces vpp vxlan vppvxlan11
set interfaces vpp vxlan vppvxlan11 description "Tenant A - Development"
set interfaces vpp vxlan vppvxlan11 vni 1002
set interfaces vpp vxlan vppvxlan11 remote 203.0.113.21
set interfaces vpp vxlan vppvxlan11 source-address 192.168.1.1
```