Internet DRAFT - draft-sridharan-virtualization-nvgre-ext
draft-sridharan-virtualization-nvgre-ext
Network Working Group M. Sridharan
Internet Draft Y. Wang
Intended Category: Informational P. Garg
Expires: December 2015 P. Balasubramanian
June 2015
NVGRE-EXT: Network Virtualization using Generic Routing
Encapsulation Extensions
draft-sridharan-virtualization-nvgre-ext-04.txt
Status of this Memo
This memo provides information for the Internet Community. It does
not specify an Internet standard of any kind; instead it relies on a
proposed standard. Distribution of this memo is unlimited.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document.
Sridharan et al Informational [Page 1]
Internet-Draft NVGRE-EXT June 2015
This Internet-Draft will expire on December 23, 2015.
Abstract
This document describes the usage of "Network Virtualization using
Generic Routing Encapsulation (NVGRE)" Extensions (NVGRE-EXT). The
focus of this document is on specifying the control plane operations
done using NVGRE packets.
Table of Contents
1. Introduction...................................................2
1.1. Terminology...............................................2
2. Conventions used in this document..............................2
3. NVGRE Extensions...............................................3
3.1. NVGRE-EXT frame format....................................3
3.2. REDIRECT message format...................................3
3.3. UNREACHABLE message format................................5
4. Security Considerations........................................7
5. IANA Considerations............................................7
6. References.....................................................7
6.1. Normative References......................................7
6.2. Informative References....................................7
1. Introduction
The NVGRE specification defines the data channel to provide network
virtualization using general routing encapsulation. This document
defines the control messages that are used between two network
virtualization edges (NVEs) to accomplish tasks such as redirecting
traffic to a new NVE when a virtual machine (VM) moves to that NVE
and handling of missing policy at the NVEs.
1.1. Terminology
Please refer to [3][4][5] for more formal definition of terminology.
2. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [RFC2119].
Sridharan et al Informational [Page 2]
Internet-Draft NVGRE-EXT June 2015
In this document, these words will appear with that interpretation
only when in ALL CAPS. Lower case uses of these words are not to be
interpreted as carrying RFC-2119 significance.
3. NVGRE Extensions
This section describes NVGRE Extensions. NVGRE extensions are used
for control messages between two NVEs to accomplish tasks such as
redirection of traffic to a new NVE when a VM moves to that NVE.
The reserved VSID 0xFFFFFF is used to exchange control messages
between two NVEs using the NVGRE packet format.
The following sections detail the packet format for NVGRE-EXT
messages and describe the processing done by an NVE on reception of
these messages.
3.1. NVGRE-EXT frame format
NVGRE header format as specified in [3] is used for communication
between NVEs. NVGRE-EXT uses the reserved VSID 0xFFFFFF to send
control messages.
3.2. REDIRECT message format
Let us consider a setup with 3 NVEs: sender NVE, receiver NVE and
target NVE. The sender NVE is running a VM, which we will call the
sender VM. The receiver NVE is running a VM, which we will call the
receiver VM. The target NVE (or new NVE) is the NVE to which the
receiver VM would move as a result of a VM move operation such as
live migration.
Initially, the sender VM is sending packets to the receiver VM. The
sender NVE encapsulates these packets in NVGRE and sends them to the
receiver NVE. The receiver NVE decapsulates the packet and sends
these to the receiver VM.
At some point, the receiver VM is moved from the receiver NVE to the
target NVE. However, as the policy update may take time to reflect
this movement to the other NVE, the sender NVE may continue to send
the packets, from the sender VM to the receiver VM, to the receiver
NVE. This can cause a connectivity interruption between the sender
and receiver VMs until the policy is refreshed at the sender NVE.
The REDIRECT message is used by the receiver NVE to redirect traffic
for the receiver VM to the target NVE.
Sridharan et al Informational [Page 3]
Internet-Draft NVGRE-EXT June 2015
This message is sent by the receiver NVE when it receives an NVGRE
frame for a VM that is moved to a new NVE.
The inner Ethernet and IP frame for this message is shown in Figure
1.
Inner Ethernet Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender NVE MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination NVE MAC Address | Source NVE MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receiver NVE MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype 0x0800 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Inner IP Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv4 or IPv6 Header |
| Protocol = ICMP (1 for IPv4, 58 for IPv6) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = (5 for | Code = (1 for | |
| IPv4, 137 for | IPv4, 0 for | Header Checksum |
| IPv6) | IPv6 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Target Address = Target NVE Provider Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data = As much of the original NVGRE packet that triggered |
| this message. |
Figure 1 REDIRECT Message Format
The outer/delivery headers include the outer Ethernet header and the
outer IP header:
o Ethernet header: The Ethernet header is populated with the source
and destination NVE MAC addresses.
o IP header: The IP header is filled with source and destination NVE
provider address respectively. The protocol field is set to ICMPv4
or ICMPv6 depending upon the IP protocol in use at NVE.
Sridharan et al Informational [Page 4]
Internet-Draft NVGRE-EXT June 2015
o ICMP header: The type field in the ICMP header MUST be set to 5
for IPv4 and 137 for IPv6. The code field in ICMP header MUST be set
to 1 for IPv4 and 0 for IPv6.
o Target Address: The target address is set to provider address of
the target NVE where the VM has moved.
o Data: The data is filled with as much of the original NVGRE frame
as possible that caused this redirect message. This data MUST
include the outer NVGRE frame, the inner Ethernet and IP header.
This data is used by the sender NVE to identify the receiver VM that
has moved to the target NVE and send further messages for that
receiver VM to the target NVE.
3.3. UNREACHABLE message format
Let us consider a setup with 2 NVEs: sender NVE and receiver NVE.
The sender NVE is running a VM, which we will call sender VM. The
receiver NVE is running a VM, which we will call receiver VM.
Initially, the sender VM is sending packets to the receiver VM. The
sender NVE encapsulates these packets in NVGRE and sends them to the
receiver NVE. The receiver NVE decapsulates the packet and sends
these to the receiver VM.
At some point, a packet is sent by the sender NVE that does not
match NVGRE policy on the receiver NVE. This can cause a
connectivity interruption between the sender and receiver VMs until
the NVGRE policy is refreshed at the sender NVE.
The UNREACHABLE message is used by the receiver NVE to inform the
sender NVE that it needs a policy refresh. This message is sent by
the receiver NVE when it receives an NVGRE frame for which it has no
isolation policy.
The inner Ethernet and IP frame for this message is shown in Figure
2.
Sridharan et al Informational [Page 5]
Internet-Draft NVGRE-EXT June 2015
Inner Ethernet Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender NVE MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination NVE MAC Address | Source NVE MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receiver NVE MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype 0x0800 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Inner IP Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv4 or IPv6 Header |
| Protocol = ICMP (1 for IPv4, 58 for IPv6) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = (3 for | Code = (10 | |
| IPv4, 1 for | for IPv4, 1 | Header Checksum |
| IPv6) | for IPv6 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data = As much of the original NVGRE packet that triggered |
| this message. |
UNREACHABLE Message Format
The outer/delivery headers include the outer Ethernet header and the
outer IP header:
o Ethernet header: The Ethernet header is populated with the source
and destination NVE MAC addresses.
o IP header: The IP header is filled with source and destination NVE
provider address respectively. The protocol field is set to ICMPv4
or ICMPv6 depending upon the IP protocol in use at the NVE.
o ICMP header: The type field in the ICMP header MUST be set to 3
for IPv4 and 1 for IPv6. The code field in ICMP header MUST be set
to 10 for IPv4 and 1 for IPv6.
o Data: The data is filled with as much of the original NVGRE frame
as possible that caused this unreachable message. This data MUST
include the outer NVGRE frame, the inner Ethernet and IP header.
This data is used by the sender NVE to identify the receiver VM that
Sridharan et al Informational [Page 6]
Internet-Draft NVGRE-EXT June 2015
resulted in missing policy and refresh its NVGRE policy for the
receiver VM.
4. Security Considerations
This proposal allows a faster NVGRE policy update using a REDIRECT
message or an UNREACHABLE message. It can allow a compromised NVE to
redirect traffic for one or more VMs. Mitigations of such attacks
are possible with authentication/encryption using IPsec or any other
IP based mechanism or using control plane for validation of the
updated information. The control plane for NVGRE policy distribution
is expected to be secured by using any of the existing security
protocols and can be used to disable or override such traffic
redirection decisions.
5. IANA Considerations
This document has no actions for IANA.
6. References
6.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[2] Ethertypes, ftp://ftp.isi.edu/in-
notes/iana/assignments/ethernet-numbers
[3] [NVGRE] Sridharan, M., "NVGRE: Network Virtualization using
Generic Routing Encapsulation", draft-sridharan-
virtualization-nvgre-02, Feb 2013
6.2. Informative References
[4] M. Lasserre et al, "Framework for DC Network Virtualization",
draft-ietf-nov3-framework (work in progress), February 2013.
[5] T. Narten et al, "Problem Statement: Overlays for Network
Virtualization", draft-narten-nov3-overlay-problem-statement
(work in progress), February 2013.
Sridharan et al Informational [Page 7]
Internet-Draft NVGRE-EXT June 2015
Authors' Addresses
Murari Sridharan
Microsoft Corporation
1 Microsoft Way
Redmond, WA 98052
Email: muraris@microsoft.com
Yu-Shun Wang
Microsoft Corporation
1 Microsoft Way
Redmond, WA 98052
Email: yushwang@microsoft.com
Pankaj Garg
Microsoft Corporation
1 Microsoft Way
Redmond, WA 98052
Email: pankajg@microsoft.com
Praveen Balasubramanian
Microsoft Corporation
1 Microsoft Way
Redmond, WA 98052
Email: pravb@microsoft.com
Sridharan et al Informational [Page 8]