Skip to content

Commit d342894

Browse files
stephen hemmingerdavem330
stephen hemminger
authored andcommitted
vxlan: virtual extensible lan
This is an implementation of Virtual eXtensible Local Area Network as described in draft RFC: http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02 The driver integrates a Virtual Tunnel Endpoint (VTEP) functionality that learns MAC to IP address mapping. This implementation has not been tested only against the Linux userspace implementation using TAP, not against other vendor's equipment. Signed-off-by: Stephen Hemminger <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 193ba92 commit d342894

File tree

5 files changed

+1294
-0
lines changed

5 files changed

+1294
-0
lines changed

Documentation/networking/vxlan.txt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
Virtual eXtensible Local Area Networking documentation
2+
======================================================
3+
4+
The VXLAN protocol is a tunnelling protocol that is designed to
5+
solve the problem of limited number of available VLAN's (4096).
6+
With VXLAN identifier is expanded to 24 bits.
7+
8+
It is a draft RFC standard, that is implemented by Cisco Nexus,
9+
Vmware and Brocade. The protocol runs over UDP using a single
10+
destination port (still not standardized by IANA).
11+
This document describes the Linux kernel tunnel device,
12+
there is also an implantation of VXLAN for Openvswitch.
13+
14+
Unlike most tunnels, a VXLAN is a 1 to N network, not just point
15+
to point. A VXLAN device can either dynamically learn the IP address
16+
of the other end, in a manner similar to a learning bridge, or the
17+
forwarding entries can be configured statically.
18+
19+
The management of vxlan is done in a similar fashion to it's
20+
too closest neighbors GRE and VLAN. Configuring VXLAN requires
21+
the version of iproute2 that matches the kernel release
22+
where VXLAN was first merged upstream.
23+
24+
1. Create vxlan device
25+
# ip li add vxlan0 type vxlan id 42 group 239.1.1.1 dev eth1
26+
27+
This creates a new device (vxlan0). The device uses the
28+
the multicast group 239.1.1.1 over eth1 to handle packets where
29+
no entry is in the forwarding table.
30+
31+
2. Delete vxlan device
32+
# ip link delete vxlan0
33+
34+
3. Show vxlan info
35+
# ip -d show vxlan0
36+
37+
It is possible to create, destroy and display the vxlan
38+
forwarding table using the new bridge command.
39+
40+
1. Create forwarding table entry
41+
# bridge fdb add to 00:17:42:8a:b4:05 dst 192.19.0.2 dev vxlan0
42+
43+
2. Delete forwarding table entry
44+
# bridge fdb delete 00:17:42:8a:b4:05
45+
46+
3. Show forwarding table
47+
# bridge fdb show dev vxlan0

drivers/net/Kconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,19 @@ config MACVTAP
149149
To compile this driver as a module, choose M here: the module
150150
will be called macvtap.
151151

152+
config VXLAN
153+
tristate "Virtual eXtensible Local Area Network (VXLAN)"
154+
depends on EXPERIMENTAL
155+
---help---
156+
This allows one to create vxlan virtual interfaces that provide
157+
Layer 2 Networks over Layer 3 Networks. VXLAN is often used
158+
to tunnel virtual network infrastructure in virtualized environments.
159+
For more information see:
160+
http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
161+
162+
To compile this driver as a module, choose M here: the module
163+
will be called vxlan.
164+
152165
config NETCONSOLE
153166
tristate "Network console logging support"
154167
---help---

drivers/net/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ obj-$(CONFIG_NET_TEAM) += team/
2121
obj-$(CONFIG_TUN) += tun.o
2222
obj-$(CONFIG_VETH) += veth.o
2323
obj-$(CONFIG_VIRTIO_NET) += virtio_net.o
24+
obj-$(CONFIG_VXLAN) += vxlan.o
2425

2526
#
2627
# Networking Drivers

0 commit comments

Comments
 (0)