blob: a0a46a957c21f4c8ec98cc598724c8e16b898bd1 (
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
|
:lastproofread: 2023-01-20
.. _geneve-interface:
######
GENEVE
######
:abbr:`GENEVE (Generic Network Virtualization Encapsulation)` supports all of
the capabilities of :abbr:`VXLAN (Virtual Extensible LAN)`, :abbr:`NVGRE
(Network Virtualization using Generic Routing Encapsulation)`, and :abbr:`STT
(Stateless Transport Tunneling)` and was designed to overcome their perceived
limitations. Many believe GENEVE could eventually replace these earlier formats
entirely.
GENEVE is designed to support network virtualization use cases, where tunnels
are typically established to act as a backplane between the virtual switches
residing in hypervisors, physical switches, or middleboxes or other appliances.
An arbitrary IP network can be used as an underlay through Clos networks - A
technique for composing network fabrics larger than a single switch while
maintaining non-blocking bandwidth across connection points. ECMP is used to
divide traffic across the multiple links and switches that constitute the
fabric. Sometimes termed "leaf and spine" or "fat tree" topologies.
Geneve Header:
.. code-block:: none
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver| Opt Len |O|C| Rsvd. | Protocol Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual Network Identifier (VNI) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Variable Length Options |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*************
Configuration
*************
Common interface configuration
==============================
.. cmdinclude:: /_include/interface-address.txt
:var0: geneve
:var1: gnv0
.. cmdinclude:: /_include/interface-description.txt
:var0: geneve
:var1: gnv0
.. cmdinclude:: /_include/interface-disable.txt
:var0: geneve
:var1: gnv0
.. cmdinclude:: /_include/interface-mac.txt
:var0: geneve
:var1: gnv0
.. cmdinclude:: /_include/interface-mtu.txt
:var0: geneve
:var1: gnv0
.. cmdinclude:: /_include/interface-ip.txt
:var0: geneve
:var1: gnv0
.. cmdinclude:: /_include/interface-ipv6.txt
:var0: geneve
:var1: gnv0
GENEVE options
==============
.. cfgcmd:: set interfaces geneve gnv0 remote <address>
Configure GENEVE tunnel far end/remote tunnel endpoint.
.. cfgcmd:: set interfaces geneve gnv0 vni <vni>
:abbr:`VNI (Virtual Network Identifier)` is an identifier for a unique
element of a virtual network. In many situations this may represent an L2
segment, however, the control plane defines the forwarding semantics of
decapsulated packets. The VNI MAY be used as part of ECMP forwarding
decisions or MAY be used as a mechanism to distinguish between overlapping
address spaces contained in the encapsulated packet when load balancing
across CPUs.
|