Discussion:
[nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Bocci, Matthew (Nokia - GB)
2018-10-09 09:08:15 UTC
Permalink
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
T. Sridhar
2018-10-09 15:11:09 UTC
Permalink
I am not aware of any relevant undisclosed IPR.

Thanks,
Sridhar


From: "Bocci, Matthew (Nokia - GB)" <***@nokia.com>
Date: Tuesday, October 9, 2018 at 2:08 AM
To: "***@ietf.org" <***@ietf.org>
Cc: "draft-ietf-nvo3-***@ietf.org" <draft-ietf-nvo3-***@ietf.org>
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Resent-From: <alias-***@ietf.org>
Resent-To: <***@kernel.org>, Ilango Ganga <***@intel.com>, "***@vmware.com" <***@vmware.com>
Resent-Date: Tuesday, October 9, 2018 at 2:08 AM

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
Jesse Gross
2018-10-09 20:53:04 UTC
Permalink
I'm not aware of any IPR related to draft-ietf-nvo3-geneve which has
not already been disclosed.

Jesse

On Tue, Oct 9, 2018 at 2:14 AM Bocci, Matthew (Nokia - GB)
Post by Bocci, Matthew (Nokia - GB)
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
Ganga, Ilango S
2018-10-09 23:31:03 UTC
Permalink
I am not aware of any undisclosed IPR related to draft-ietf-nvo3-geneve.

Regards,
Ilango


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org>
Cc: draft-ietf-nvo3-***@ietf.org
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
Ganga, Ilango S
2018-10-11 17:34:39 UTC
Permalink
As a co-author, I believe the document is ready for publication as a standards track RFC.

Thanks,
Ilango


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org>
Cc: draft-ietf-nvo3-***@ietf.org
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
Daniel Migault
2018-10-12 21:57:15 UTC
Permalink
Hi,

I reviewed the document. Please find my comments below.

Yours,
Daniel
3.4. Tunnel Header Fields

C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared
to the sum of option len. (see my comment next section). I guess that is a
clarification to be made next section.
</mglt>


3.5. Tunnel Options


Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.

The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
the location of the 'C' bit in the 'Type' field:

0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+

The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit
set would be clearer.
</mglt>

applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.

R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.

Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.
<mglt>
I understand the sentence below as a check between the sum of option length
and Opt len. This does not seems related to the treatment of one option,
and maybe should be moved up to the description of Opt Len in the Geneve
Header section.

I also have an issue on how to interpret that sentence. When receiving a
Geneve Packet, the following sentence prevent from jumping to Opt Len
skipping off options. It could be understood as a mandatory check in which
case (whether there is a C bit set in the Geneve Header or not) the
terminating node to go through all options, read the Length sum them and
them compare it to the Opt Len. If such check is mandatory, I am wondering
if Opt Len in the Geneve Header is then limited for internal use of the
terminating node. If that is something optional, maybe we should explicitly
say it, or maybe detail when such comparison is expect to happen.
</mglt>

Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.




Gross, et al. Expires April 10, 2019 [Page 15]

Internet-Draft Geneve Protocol October 2018


Variable Option Data: Option data interpreted according to 'Type'.


3.5.1. Options Processing

Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not
the fixed Geneve header. If that is correct, It may be clearer to use Genve
option instead of Geneve header as to avoid confusion on the scope of
transit device. From the text above, using Geneve header could mean the fix
header, in which case it may make easier to figure out the difference
between transit device and tunnel endpoint.
</mglt>

SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.

In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
process them:

o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.

o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.

o An option MUST NOT affect the parsing or interpretation of any
other option.
<mglt>
In case we have a option providing authentication, such option may affect
the interpretation of the other options. s/interpretation/ndependance may
not be better.... I think what we want to say is that option MUST be able
to be processed in any order or in parallel. I am fine with the text if we
do not find something better.
</mglt>




6. Security Considerations

As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.
<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>

Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.

<mglt>
I think Legitimate and malicious are not compatible. This is probably a
"corrupted legitimate tunnel endpoint. I think we should also add that
securing the geneve tunnel cannot prevent this type of threat.
</mglt>

Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.


When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.

<mglt>
I understand the first paragraph as the one where the service provider owns
the tenant, the geneve overlay as well as the infrastructure in which case,
isolation and separation is performed by VLAN. The second paragraph
mentions that the previously described data centers can be interconnected
using a secure link. I consider this case as the one building a trusted
environment to run Geneve overlay.

I believe the security considerations for Geneve may be more focused on
Genve itself, that is how the Geneve overlay network may remain secure
while not relying on the security provided by the infrastructure. In that
extent it help to consider the case where tenants, Geneve overlay provider,
infrastructure providers are different entities.
</mglt>

Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.



Gross, et al. Expires April 10, 2019 [Page 21]

Internet-Draft Geneve Protocol October 2018


6.1. Data Confidentiality

Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.

<mglt>
The text above seems to assume that the service overlay is always provided
by the cloud provider (i.e. infrastructure provider). I do not believe this
assumption is always true.

A company may sell a system based on Geneve and may be willing to provide
some protection against the infrastructure provider.
</mglt>

Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are
still some metadata that the Geneve overlay MAY protect - typically (IP,
ports).
</mglt>

If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.

6.1.1. Inter-data center traffic

A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.

<mglt>
I see that inter-data center traffic protection is more IP traffic
protection than specific to Geneve. I think we can also safely go for a
MUST be secured when the traffic is sent to the wild Internet.
</mglt>

6.2. Data Integrity

Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a



Gross, et al. Expires April 10, 2019 [Page 22]

Internet-Draft Geneve Protocol October 2018


passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.

<mglt>I believe that replayed traffic is also unauthorized in this case and
may be considered in the description.</mglt>
Post by Ganga, Ilango S
As a co-author, I believe the document is ready for publication as a standards track RFC.
Thanks,
Ilango
*Sent:* Tuesday, October 9, 2018 2:08 AM
*Subject:* Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to
this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please
respond to this email and indicate whether or not you are aware of any
relevant undisclosed IPR. The Document won't progress without answers from
all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Ganga, Ilango S
2018-10-17 05:44:35 UTC
Permalink
Hi Daniel,

Thanks for your review and comments. Please see my responses inline.

Regards,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Friday, October 12, 2018 2:57 PM
To: Ganga, Ilango S <***@intel.com>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com>; ***@ietf.org; draft-ietf-nvo3-***@ietf.org
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi,

I reviewed the document. Please find my comments below.

Yours,
Daniel
3.4. Tunnel Header Fields

C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared to the sum of option len. (see my comment next section). I guess that is a clarification to be made next section.
</mglt>

<Ilango> The text in this section reads fine; since the option header is defined in next section 3.5, it is appropriate to keep the text in that section. Also, please see response to next section.
</>

3.5. Tunnel Options


Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.

The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
the location of the 'C' bit in the 'Type' field:

0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+

The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit set would be clearer.
</mglt>

<Ilango> The term critical option is described in section 3.4 and used in 3.5, so use of this term here to refer to an unknown critical option reads fine. Though for consistency with the sentence in section 3.5.1, we could also say “unknown options with C-bit set”.
</>

applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.

R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.

Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.


<mglt>
I understand the sentence below as a check between the sum of option length and Opt len. This does not seems related to the treatment of one option, and maybe should be moved up to the description of Opt Len in the Geneve Header section.

<Ilango> This section is where the Tunnel Options are defined hence this is the most appropriate and right place for this text.
</>

I also have an issue on how to interpret that sentence. When receiving a Geneve Packet, the following sentence prevent from jumping to Opt Len skipping off options. It could be understood as a mandatory check in which case (whether there is a C bit set in the Geneve Header or not) the terminating node to go through all options, read the Length sum them and them compare it to the Opt Len. If such check is mandatory, I am wondering if Opt Len in the Geneve Header is then limited for internal use of the terminating node. If that is something optional, maybe we should explicitly say it, or maybe detail when such comparison is expect to happen.
</mglt>

<Ilango> No, it does not prevent the nodes from skipping the options to reach the start of encapsulated payload. For example a transit node that does not process the options can skip over the options by using the Option length field in the Geneve header. The endpoints that process the options are the ones that need to do this check as stated in this sentence.

For better clarity, we could add clarifying text to the sentence as follows:
“
. Invalid and MUST be silently dropped if received by an endpoint that process the options.”
</>

Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.




Gross, et al. Expires April 10, 2019 [Page 15]

Internet-Draft Geneve Protocol October 2018


Variable Option Data: Option data interpreted according to 'Type'.


3.5.1. Options Processing

Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not the fixed Geneve header. If that is correct, It may be clearer to use Genve option instead of Geneve header as to avoid confusion on the scope of transit device. From the text above, using Geneve header could mean the fix header, in which case it may make easier to figure out the difference between transit device and tunnel endpoint.
</mglt>

<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header includes fixed length headers and options. So in this statement, Geneve header includes options.
</>

SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.

In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
process them:

o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.

o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.

o An option MUST NOT affect the parsing or interpretation of any
other option.


<mglt>
In case we have a option providing authentication, such option may affect the interpretation of the other options. s/interpretation/ndependance may not be better.... I think what we want to say is that option MUST be able to be processed in any order or in parallel. I am fine with the text if we do not find something better.
</mglt>

<Ilango> This is a good point, however we believe that this text captures the intent.
</>


6. Security Considerations

As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.


<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>

<Ilango> Snooping covers the case of monitoring as well, so I don’t see a need for additional text.
</>

Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.

<mglt>
I think Legitimate and malicious are not compatible. This is probably a "corrupted legitimate tunnel endpoint. I think we should also add that securing the geneve tunnel cannot prevent this type of threat.
</mglt>

<Ilango> Yes, we could change this to “Compromised endpoints may also spoof 
.”.
The next paragraph states that tunnel endpoints should only be operated in environments controlled by the service provider, this could potentially mitigate the threat of endpoints from getting compromised.
</>

Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.


When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.

<mglt>
I understand the first paragraph as the one where the service provider owns the tenant, the geneve overlay as well as the infrastructure in which case, isolation and separation is performed by VLAN. The second paragraph mentions that the previously described data centers can be interconnected using a secure link. I consider this case as the one building a trusted environment to run Geneve overlay.

I believe the security considerations for Geneve may be more focused on Genve itself, that is how the Geneve overlay network may remain secure while not relying on the security provided by the infrastructure. In that extent it help to consider the case where tenants, Geneve overlay provider, infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could span across layers. For example, the operator could very well choose security mechanisms already provided by the underlay to secure their overlay networks.
</>

Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.



Gross, et al. Expires April 10, 2019 [Page 21]

Internet-Draft Geneve Protocol October 2018


6.1. Data Confidentiality

Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.

<mglt>
The text above seems to assume that the service overlay is always provided by the cloud provider (i.e. infrastructure provider). I do not believe this assumption is always true.

A company may sell a system based on Geneve and may be willing to provide some protection against the infrastructure provider.
</mglt>

<Ilango> Yes, “typically” means not always, but it is the most common use case.
</>

Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are still some metadata that the Geneve overlay MAY protect - typically (IP, ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data confidentiality mechanism to protect its data without relying on the service provider. This is irrespective of security mechanisms provided by the service provider.
</>

If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.

6.1.1. Inter-data center traffic

A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.

<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it could be dedicated secure links. In which case the operator may decide to rely on the underlying security of the dedicated links, so we believe “SHOULD” is more appropriate here.
</>

6.2. Data Integrity

Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a



Gross, et al. Expires April 10, 2019 [Page 22]

Internet-Draft Geneve Protocol October 2018


passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.

<mglt>I believe that replayed traffic is also unauthorized in this case and may be considered in the description.</mglt>

<Ilango> Unauthorized traffic should include all type of unauthorized traffic including traffic such as spoofing, replay, etc.,. This is minor editorial, if need be we could rephrase to provide clarity “unauthorized traffic such as spoofing, replay, etc.”
</>
<END>

On Thu, Oct 11, 2018 at 1:34 PM Ganga, Ilango S <***@intel.com<mailto:***@intel.com>> wrote:
As a co-author, I believe the document is ready for publication as a standards track RFC.

Thanks,
Ilango


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com<mailto:***@nokia.com>]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org<mailto:***@ietf.org>>
Cc: draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
Daniel Migault
2018-10-17 14:27:35 UTC
Permalink
Hi Illango,

Thanks for the response, please see my comments. I believe they can be easily addressed in the next version.

Yours,
Daniel

From: Ganga, Ilango S <***@intel.com>
Sent: Wednesday, October 17, 2018 1:45 AM
To: Daniel Migault <***@ericsson.com>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com>; ***@ietf.org; draft-ietf-nvo3-***@ietf.org; T. Sridhar <***@vmware.com>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Daniel,

Thanks for your review and comments. Please see my responses inline.

Regards,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Friday, October 12, 2018 2:57 PM
To: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi,

I reviewed the document. Please find my comments below.

Yours,
Daniel
3.4. Tunnel Header Fields

C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared to the sum of option len. (see my comment next section). I guess that is a clarification to be made next section.
</mglt>
<Ilango> The text in this section reads fine; since the option header is defined in next section 3.5, it is appropriate to keep the text in that section. Also, please see response to next section.
</>

<mglt2>I will see the next section. </mglt2>

3.5. Tunnel Options


Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.

The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
the location of the 'C' bit in the 'Type' field:

0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+

The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit set would be clearer.
</mglt>

<Ilango> The term critical option is described in section 3.4 and used in 3.5, so use of this term here to refer to an unknown critical option reads fine. Though for consistency with the sentence in section 3.5.1, we could also say “unknown options with C-bit set”.
</>
<mglt2> I am fine with your proposed change. </mglt>

applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.

R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.

Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.

<mglt>
I understand the sentence below as a check between the sum of option length and Opt len. This does not seems related to the treatment of one option, and maybe should be moved up to the description of Opt Len in the Geneve Header section.

<Ilango> This section is where the Tunnel Options are defined hence this is the most appropriate and right place for this text.
</>

<mglt2>I am fine with that as well, as long as you believe that is the right place.</mglt2>

I also have an issue on how to interpret that sentence. When receiving a Geneve Packet, the following sentence prevent from jumping to Opt Len skipping off options. It could be understood as a mandatory check in which case (whether there is a C bit set in the Geneve Header or not) the terminating node to go through all options, read the Length sum them and them compare it to the Opt Len. If such check is mandatory, I am wondering if Opt Len in the Geneve Header is then limited for internal use of the terminating node. If that is something optional, maybe we should explicitly say it, or maybe detail when such comparison is expect to happen.
</mglt>

<Ilango> No, it does not prevent the nodes from skipping the options to reach the start of encapsulated payload. For example a transit node that does not process the options can skip over the options by using the Option length field in the Geneve header. The endpoints that process the options are the ones that need to do this check as stated in this sentence.
For better clarity, we could add clarifying text to the sentence as follows:
“
. Invalid and MUST be silently dropped if received by an endpoint that process the options.”
</>
<mglt2>I believe that is clarifying to add the text you proposed.</mglt2>

Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.




Gross, et al. Expires April 10, 2019 [Page 15]

Internet-Draft Geneve Protocol October 2018


Variable Option Data: Option data interpreted according to 'Type'.


3.5.1. Options Processing

Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not the fixed Geneve header. If that is correct, It may be clearer to use Genve option instead of Geneve header as to avoid confusion on the scope of transit device. From the text above, using Geneve header could mean the fix header, in which case it may make easier to figure out the difference between transit device and tunnel endpoint.
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header includes fixed length headers and options. So in this statement, Geneve header includes options.
</>
<mglt2>
This is I believe English clarification and English is not my native language, so I am only providing my feed back, but differ to others on what to do.

The statement as I read it says that transit devices MAY interpret options. Which I interprete as the scope of transit device is limited to these options and transit device are not supposed to interprete the fix header.

The following sentence says transit devices not interpreting the Geneve Header
.” Which I read as fix header and option. While the statement is true, as header include option, I found it somehow confusing to introduce the fix header at that stage, as my understanding is that transit device are limited to the options.

Re-reading the text I also believe - if that is correct -, we should specify that transit devices MAY treat a subset of the options. </mglt2>

SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.

In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
process them:

o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.

o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.

o An option MUST NOT affect the parsing or interpretation of any
other option.


<mglt>
In case we have a option providing authentication, such option may affect the interpretation of the other options. s/interpretation/ndependance may not be better.... I think what we want to say is that option MUST be able to be processed in any order or in parallel. I am fine with the text if we do not find something better.
</mglt>

<Ilango> This is a good point, however we believe that this text captures the intent.
</>
<mglt2>The problem I have is that the current text prevents security options, so I guess some clarification should be brought to clarify the intent.</mglt2>

6. Security Considerations

As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.


<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see a need for additional text.
</>

<mglt2>I understood “snoop” as being more active than passive monitoring. I am fine with the text.</mglt2>


Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.

<mglt>
I think Legitimate and malicious are not compatible. This is probably a "corrupted legitimate tunnel endpoint. I think we should also add that securing the geneve tunnel cannot prevent this type of threat.
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also spoof 
.”.
The next paragraph states that tunnel endpoints should only be operated in environments controlled by the service provider, this could potentially mitigate the threat of endpoints from getting compromised.
</>


Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.


When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.

<mglt>
I understand the first paragraph as the one where the service provider owns the tenant, the geneve overlay as well as the infrastructure in which case, isolation and separation is performed by VLAN. The second paragraph mentions that the previously described data centers can be interconnected using a secure link. I consider this case as the one building a trusted environment to run Geneve overlay.

I believe the security considerations for Geneve may be more focused on Genve itself, that is how the Geneve overlay network may remain secure while not relying on the security provided by the infrastructure. In that extent it help to consider the case where tenants, Geneve overlay provider, infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could span across layers. For example, the operator could very well choose security mechanisms already provided by the underlay to secure their overlay networks. </>
<mglt2>I understand, but it seems to me that the important things here are :

* Corrupted legitimate tunnel endpoint is not expected to be addressed by Geneve security mechanisms.
* Geneve overlay deployment relies on reliable (trusted) tunnel endpoints. This later point may be achieved in one or the other ways. You provide one way to do it, another way could be simply trusting your infrastructure provider.
I believe that it may be more helpful to explicitly provide a trust model, illustrating it and leave the door open to other solutions. My current reading is that one way is proposed, but we may lack some information to evaluate if other ways can be acceptable as well.</mglt2>

Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.



Gross, et al. Expires April 10, 2019 [Page 21]

Internet-Draft Geneve Protocol October 2018


6.1. Data Confidentiality

Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.

<mglt>
The text above seems to assume that the service overlay is always provided by the cloud provider (i.e. infrastructure provider). I do not believe this assumption is always true.

A company may sell a system based on Geneve and may be willing to provide some protection against the infrastructure provider.
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common use case.</>
<mglt2> I believe it is good we mention a use case we envisioned as being the most common use case, but I also think the security consideration should not only be based on one deployment. </mglt2>

Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are still some metadata that the Geneve overlay MAY protect - typically (IP, ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data confidentiality mechanism to protect its data without relying on the service provider. This is irrespective of security mechanisms provided by the service provider.</>

<mglt2>I would suggest that we clearly state that data confidentiality provided by the tenant does not prevent the geneve overlay to provide it. From my reading of the text, it seems that tenant security is sufficient.I believe that is a bit misleading. </mglt2>

If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.

6.1.1. Inter-data center traffic

A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.

<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it could be dedicated secure links. In which case the operator may decide to rely on the underlying security of the dedicated links, so we believe “SHOULD” is more appropriate here.</>

<mglt2>I am reading this as two different implementations of a secure link between the data center. The requirement is that this link MUST be secured. One way to provide a secure link is to have a dedicated line in which case we SHOULD encrypt the traffic. Another way to establish a connection over the internet in which case the traffic MUST be encrypted.
I believe it would help to clarify why SHOULD is mentioned here. One reason of the confusion is that only the link over internet is mentioned. </mglt2>

6.2. Data Integrity

Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a



Gross, et al. Expires April 10, 2019 [Page 22]

Internet-Draft Geneve Protocol October 2018


passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.

<mglt>I believe that replayed traffic is also unauthorized in this case and may be considered in the description.</mglt>
<Ilango> Unauthorized traffic should include all type of unauthorized traffic including traffic such as spoofing, replay, etc.,. This is minor editorial, if need be we could rephrase to provide clarity “unauthorized traffic such as spoofing, replay, etc.”
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such attacks, so I think it is important this appears in the security consideration.</mglt2>
<END>

On Thu, Oct 11, 2018 at 1:34 PM Ganga, Ilango S <***@intel.com<mailto:***@intel.com>> wrote:
As a co-author, I believe the document is ready for publication as a standards track RFC.

Thanks,
Ilango


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com<mailto:***@nokia.com>]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org<mailto:***@ietf.org>>
Cc: draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
Ganga, Ilango S
2018-10-22 04:21:36 UTC
Permalink
Hi Daniel,

Please see my responses inline. I think this should address all your comments.

Thanks,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Wednesday, October 17, 2018 7:28 AM
To: Ganga, Ilango S <***@intel.com>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com>; ***@ietf.org; draft-ietf-nvo3-***@ietf.org; T. Sridhar <***@vmware.com>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Illango,

Thanks for the response, please see my comments. I believe they can be easily addressed in the next version.

Yours,
Daniel

From: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Sent: Wednesday, October 17, 2018 1:45 AM
To: Daniel Migault <***@ericsson.com<mailto:***@ericsson.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>; T. Sridhar <***@vmware.com<mailto:***@vmware.com>>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Daniel,

Thanks for your review and comments. Please see my responses inline.

Regards,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Friday, October 12, 2018 2:57 PM
To: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi,

I reviewed the document. Please find my comments below.

Yours,
Daniel
3.4. Tunnel Header Fields

C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared to the sum of option len. (see my comment next section). I guess that is a clarification to be made next section.
</mglt>
<Ilango> The text in this section reads fine; since the option header is defined in next section 3.5, it is appropriate to keep the text in that section. Also, please see response to next section.
</>
<mglt2>I will see the next section. </mglt2>

3.5. Tunnel Options


Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.

The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
the location of the 'C' bit in the 'Type' field:

0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+

The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit set would be clearer.
</mglt>

<Ilango> The term critical option is described in section 3.4 and used in 3.5, so use of this term here to refer to an unknown critical option reads fine. Though for consistency with the sentence in section 3.5.1, we could also say “unknown options with C-bit set”.
</>
<mglt2> I am fine with your proposed change. </mglt>

applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.

R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.

Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.

<mglt>
I understand the sentence below as a check between the sum of option length and Opt len. This does not seems related to the treatment of one option, and maybe should be moved up to the description of Opt Len in the Geneve Header section.

<Ilango> This section is where the Tunnel Options are defined hence this is the most appropriate and right place for this text.
</>

<mglt2>I am fine with that as well, as long as you believe that is the right place.</mglt2>

I also have an issue on how to interpret that sentence. When receiving a Geneve Packet, the following sentence prevent from jumping to Opt Len skipping off options. It could be understood as a mandatory check in which case (whether there is a C bit set in the Geneve Header or not) the terminating node to go through all options, read the Length sum them and them compare it to the Opt Len. If such check is mandatory, I am wondering if Opt Len in the Geneve Header is then limited for internal use of the terminating node. If that is something optional, maybe we should explicitly say it, or maybe detail when such comparison is expect to happen.
</mglt>

<Ilango> No, it does not prevent the nodes from skipping the options to reach the start of encapsulated payload. For example a transit node that does not process the options can skip over the options by using the Option length field in the Geneve header. The endpoints that process the options are the ones that need to do this check as stated in this sentence.
For better clarity, we could add clarifying text to the sentence as follows:
“
. invalid and MUST be silently dropped if received by an endpoint that processes the options.”
</>
<mglt2>I believe that is clarifying to add the text you proposed.</mglt2>

Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.




Gross, et al. Expires April 10, 2019 [Page 15]

Internet-Draft Geneve Protocol October 2018


Variable Option Data: Option data interpreted according to 'Type'.


3.5.1. Options Processing

Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not the fixed Geneve header. If that is correct, It may be clearer to use Genve option instead of Geneve header as to avoid confusion on the scope of transit device. From the text above, using Geneve header could mean the fix header, in which case it may make easier to figure out the difference between transit device and tunnel endpoint.
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header includes fixed length headers and options. So in this statement, Geneve header includes options.
</>
<mglt2>
This is I believe English clarification and English is not my native language, so I am only providing my feed back, but differ to others on what to do.

The statement as I read it says that transit devices MAY interpret options. Which I interprete as the scope of transit device is limited to these options and transit device are not supposed to interprete the fix header.

The following sentence says transit devices not interpreting the Geneve Header
.” Which I read as fix header and option. While the statement is true, as header include option, I found it somehow confusing to introduce the fix header at that stage, as my understanding is that transit device are limited to the options.

Re-reading the text I also believe - if that is correct -, we should specify that transit devices MAY treat a subset of the options. </mglt2>

<Ilango2> The header may include options, and a transit device has to interpret the header to get to the options. We will rephrase the text to the following for clarity.
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
</Ilango2>

SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.

In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
process them:

o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.

o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.

o An option MUST NOT affect the parsing or interpretation of any
other option.


<mglt>
In case we have a option providing authentication, such option may affect the interpretation of the other options. s/interpretation/ndependance may not be better.... I think what we want to say is that option MUST be able to be processed in any order or in parallel. I am fine with the text if we do not find something better.
</mglt>

<Ilango> This is a good point, however we believe that this text captures the intent.
</>
<mglt2>The problem I have is that the current text prevents security options, so I guess some clarification should be brought to clarify the intent.</mglt2>
<Ilango2> The intent of this statement is, parsing and interpretation of options is not dependent on one another. It does not preclude processing of any security option.
</Ilango2>

6. Security Considerations

As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.

<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see a need for additional text.
</>

<mglt2>I understood “snoop” as being more active than passive monitoring. I am fine with the text.</mglt2>


Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.

<mglt>
I think Legitimate and malicious are not compatible. This is probably a "corrupted legitimate tunnel endpoint. I think we should also add that securing the geneve tunnel cannot prevent this type of threat.
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also spoof 
.”.
The next paragraph states that tunnel endpoints should only be operated in environments controlled by the service provider, this could potentially mitigate the threat of endpoints from getting compromised.
</>


Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.


When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.

<mglt>
I understand the first paragraph as the one where the service provider owns the tenant, the geneve overlay as well as the infrastructure in which case, isolation and separation is performed by VLAN. The second paragraph mentions that the previously described data centers can be interconnected using a secure link. I consider this case as the one building a trusted environment to run Geneve overlay.

I believe the security considerations for Geneve may be more focused on Genve itself, that is how the Geneve overlay network may remain secure while not relying on the security provided by the infrastructure. In that extent it help to consider the case where tenants, Geneve overlay provider, infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could span across layers. For example, the operator could very well choose security mechanisms already provided by the underlay to secure their overlay networks. </>
<mglt2>I understand, but it seems to me that the important things here are :

* Corrupted legitimate tunnel endpoint is not expected to be addressed by Geneve security mechanisms.
* Geneve overlay deployment relies on reliable (trusted) tunnel endpoints. This later point may be achieved in one or the other ways. You provide one way to do it, another way could be simply trusting your infrastructure provider.
I believe that it may be more helpful to explicitly provide a trust model, illustrating it and leave the door open to other solutions. My current reading is that one way is proposed, but we may lack some information to evaluate if other ways can be acceptable as well.</mglt2>
<Ilango2> I am not sure where you are going with this. The intent is to highlight potential risks and outline how to mitigate such risks, this paragraph describes the best practices used to secure a tunnel endpoint. We believe that this is sufficiently illustrated in the description.
</Ilango2>


Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.



Gross, et al. Expires April 10, 2019 [Page 21]

Internet-Draft Geneve Protocol October 2018


6.1. Data Confidentiality

Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.

<mglt>
The text above seems to assume that the service overlay is always provided by the cloud provider (i.e. infrastructure provider). I do not believe this assumption is always true.

A company may sell a system based on Geneve and may be willing to provide some protection against the infrastructure provider.
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common use case.</>
<mglt2> I believe it is good we mention a use case we envisioned as being the most common use case, but I also think the security consideration should not only be based on one deployment. </mglt2>
<Ilango2> We will add the following statement to the end of this paragraph for clarification.
“This may or not may be the same provider as an underlay service provider”
</Ilango2>

Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are still some metadata that the Geneve overlay MAY protect - typically (IP, ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data confidentiality mechanism to protect its data without relying on the service provider. This is irrespective of security mechanisms provided by the service provider.</>

<mglt2>I would suggest that we clearly state that data confidentiality provided by the tenant does not prevent the geneve overlay to provide it. From my reading of the text, it seems that tenant security is sufficient.I believe that is a bit misleading. </mglt2>
<Ilango2>The text does not preclude a service provider to provide security mechanisms when the tenant brings its own security. I am not sure where you are getting this interpretation. If needed we can remove the last sentence of the second paragraph, if that addresses your concern.

<Delete the following sentence from the end of next paragraph>

The operator may choose not to enable the encryption if,

for example, the packet data is already encrypted by the tenant

system.

</Ilango2>

If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.

6.1.1. Inter-data center traffic

A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.

<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it could be dedicated secure links. In which case the operator may decide to rely on the underlying security of the dedicated links, so we believe “SHOULD” is more appropriate here.</>
<mglt2>I am reading this as two different implementations of a secure link between the data center. The requirement is that this link MUST be secured. One way to provide a secure link is to have a dedicated line in which case we SHOULD encrypt the traffic. Another way to establish a connection over the internet in which case the traffic MUST be encrypted.
I believe it would help to clarify why SHOULD is mentioned here. One reason of the confusion is that only the link over internet is mentioned. </mglt2>
<Ilango2>The operator based on their risk assessment should enable appropriate security mechanism.
We could remove “for example over public Internet” from this sentence and this should address your concern.
</Ilango2>

6.2. Data Integrity

Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a



Gross, et al. Expires April 10, 2019 [Page 22]

Internet-Draft Geneve Protocol October 2018


passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.

<mglt>I believe that replayed traffic is also unauthorized in this case and may be considered in the description.</mglt>
<Ilango> Unauthorized traffic should include all type of unauthorized traffic including traffic such as spoofing, replay, etc.,. This is minor editorial, if need be we could rephrase to provide clarity “unauthorized traffic such as spoofing, replay, etc.”
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such attacks, so I think it is important this appears in the security consideration.</mglt2>
<Ilango2> Ok, we will rephrase to provide clarity
“unauthorized traffic such as spoofing, replay, etc.”
</Ilango2>

<END>

On Thu, Oct 11, 2018 at 1:34 PM Ganga, Ilango S <***@intel.com<mailto:***@intel.com>> wrote:
As a co-author, I believe the document is ready for publication as a standards track RFC.

Thanks,
Ilango


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com<mailto:***@nokia.com>]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org<mailto:***@ietf.org>>
Cc: draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
Daniel Migault
2018-10-22 09:22:52 UTC
Permalink
Hi,

If everyone agrees, this seems fine to me. Thanks for addressing them.

From your response, I understand “a Transit device can process a geneve header with no option”. If that is correct, I suggest this is clearly mentioned in the document as my initial understanding was that only geneve option were concerned.

OLD:
Transit devices MAY be able to interpret the options, however, as
non-terminating devices, transit devices do not originate or
terminate the Geneve packet, hence MUST NOT insert or delete options,
which is the responsibility of Geneve endpoints. The participation
of transit devices in interpreting options is OPTIONAL.

NEW:
s/options/geneve header including geneve options /

It may also be needed to specify what is possible for the transit device to perform on the geneve header excluding the options.


I would also suggest that draft-ietf-nvo3-security-requirements and draft-mglt-nvo3-geneve-security-requirements be referenced in the security consideration section as they provide more details. As these are informational reference, they should not block the publication of the current draft.

Yours,
Daniel

From: Ganga, Ilango S <***@intel.com>
Sent: Monday, October 22, 2018 12:22 AM
To: Daniel Migault <***@ericsson.com>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com>; ***@ietf.org; draft-ietf-nvo3-***@ietf.org; T. Sridhar <***@vmware.com>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Daniel,

Please see my responses inline. I think this should address all your comments.

Thanks,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Wednesday, October 17, 2018 7:28 AM
To: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>; T. Sridhar <***@vmware.com<mailto:***@vmware.com>>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Illango,

Thanks for the response, please see my comments. I believe they can be easily addressed in the next version.

Yours,
Daniel

From: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Sent: Wednesday, October 17, 2018 1:45 AM
To: Daniel Migault <***@ericsson.com<mailto:***@ericsson.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>; T. Sridhar <***@vmware.com<mailto:***@vmware.com>>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Daniel,

Thanks for your review and comments. Please see my responses inline.

Regards,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Friday, October 12, 2018 2:57 PM
To: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi,

I reviewed the document. Please find my comments below.

Yours,
Daniel
3.4. Tunnel Header Fields

C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared to the sum of option len. (see my comment next section). I guess that is a clarification to be made next section.
</mglt>
<Ilango> The text in this section reads fine; since the option header is defined in next section 3.5, it is appropriate to keep the text in that section. Also, please see response to next section.
</>
<mglt2>I will see the next section. </mglt2>

3.5. Tunnel Options


Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.

The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
the location of the 'C' bit in the 'Type' field:

0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+

The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit set would be clearer.
</mglt>

<Ilango> The term critical option is described in section 3.4 and used in 3.5, so use of this term here to refer to an unknown critical option reads fine. Though for consistency with the sentence in section 3.5.1, we could also say “unknown options with C-bit set”.
</>
<mglt2> I am fine with your proposed change. </mglt>

applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.

R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.

Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.

<mglt>
I understand the sentence below as a check between the sum of option length and Opt len. This does not seems related to the treatment of one option, and maybe should be moved up to the description of Opt Len in the Geneve Header section.

<Ilango> This section is where the Tunnel Options are defined hence this is the most appropriate and right place for this text.
</>

<mglt2>I am fine with that as well, as long as you believe that is the right place.</mglt2>

I also have an issue on how to interpret that sentence. When receiving a Geneve Packet, the following sentence prevent from jumping to Opt Len skipping off options. It could be understood as a mandatory check in which case (whether there is a C bit set in the Geneve Header or not) the terminating node to go through all options, read the Length sum them and them compare it to the Opt Len. If such check is mandatory, I am wondering if Opt Len in the Geneve Header is then limited for internal use of the terminating node. If that is something optional, maybe we should explicitly say it, or maybe detail when such comparison is expect to happen.
</mglt>

<Ilango> No, it does not prevent the nodes from skipping the options to reach the start of encapsulated payload. For example a transit node that does not process the options can skip over the options by using the Option length field in the Geneve header. The endpoints that process the options are the ones that need to do this check as stated in this sentence.
For better clarity, we could add clarifying text to the sentence as follows:
“
. invalid and MUST be silently dropped if received by an endpoint that processes the options.”
</>
<mglt2>I believe that is clarifying to add the text you proposed.</mglt2>

Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.




Gross, et al. Expires April 10, 2019 [Page 15]

Internet-Draft Geneve Protocol October 2018


Variable Option Data: Option data interpreted according to 'Type'.


3.5.1. Options Processing

Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not the fixed Geneve header. If that is correct, It may be clearer to use Genve option instead of Geneve header as to avoid confusion on the scope of transit device. From the text above, using Geneve header could mean the fix header, in which case it may make easier to figure out the difference between transit device and tunnel endpoint.
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header includes fixed length headers and options. So in this statement, Geneve header includes options.
</>
<mglt2>
This is I believe English clarification and English is not my native language, so I am only providing my feed back, but differ to others on what to do.

The statement as I read it says that transit devices MAY interpret options. Which I interprete as the scope of transit device is limited to these options and transit device are not supposed to interprete the fix header.

The following sentence says transit devices not interpreting the Geneve Header
.” Which I read as fix header and option. While the statement is true, as header include option, I found it somehow confusing to introduce the fix header at that stage, as my understanding is that transit device are limited to the options.

Re-reading the text I also believe - if that is correct -, we should specify that transit devices MAY treat a subset of the options. </mglt2>

<Ilango2> The header may include options, and a transit device has to interpret the header to get to the options. We will rephrase the text to the following for clarity.
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
</Ilango2>

SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.

In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
process them:

o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.

o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.

o An option MUST NOT affect the parsing or interpretation of any
other option.


<mglt>
In case we have a option providing authentication, such option may affect the interpretation of the other options. s/interpretation/ndependance may not be better.... I think what we want to say is that option MUST be able to be processed in any order or in parallel. I am fine with the text if we do not find something better.
</mglt>

<Ilango> This is a good point, however we believe that this text captures the intent.
</>
<mglt2>The problem I have is that the current text prevents security options, so I guess some clarification should be brought to clarify the intent.</mglt2>
<Ilango2> The intent of this statement is, parsing and interpretation of options is not dependent on one another. It does not preclude processing of any security option.
</Ilango2>

6. Security Considerations

As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.

<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see a need for additional text.
</>

<mglt2>I understood “snoop” as being more active than passive monitoring. I am fine with the text.</mglt2>


Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.

<mglt>
I think Legitimate and malicious are not compatible. This is probably a "corrupted legitimate tunnel endpoint. I think we should also add that securing the geneve tunnel cannot prevent this type of threat.
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also spoof 
.”.
The next paragraph states that tunnel endpoints should only be operated in environments controlled by the service provider, this could potentially mitigate the threat of endpoints from getting compromised.
</>


Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.


When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.

<mglt>
I understand the first paragraph as the one where the service provider owns the tenant, the geneve overlay as well as the infrastructure in which case, isolation and separation is performed by VLAN. The second paragraph mentions that the previously described data centers can be interconnected using a secure link. I consider this case as the one building a trusted environment to run Geneve overlay.

I believe the security considerations for Geneve may be more focused on Genve itself, that is how the Geneve overlay network may remain secure while not relying on the security provided by the infrastructure. In that extent it help to consider the case where tenants, Geneve overlay provider, infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could span across layers. For example, the operator could very well choose security mechanisms already provided by the underlay to secure their overlay networks. </>
<mglt2>I understand, but it seems to me that the important things here are :

* Corrupted legitimate tunnel endpoint is not expected to be addressed by Geneve security mechanisms.
* Geneve overlay deployment relies on reliable (trusted) tunnel endpoints. This later point may be achieved in one or the other ways. You provide one way to do it, another way could be simply trusting your infrastructure provider.
I believe that it may be more helpful to explicitly provide a trust model, illustrating it and leave the door open to other solutions. My current reading is that one way is proposed, but we may lack some information to evaluate if other ways can be acceptable as well.</mglt2>
<Ilango2> I am not sure where you are going with this. The intent is to highlight potential risks and outline how to mitigate such risks, this paragraph describes the best practices used to secure a tunnel endpoint. We believe that this is sufficiently illustrated in the description.
</Ilango2>


Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.



Gross, et al. Expires April 10, 2019 [Page 21]

Internet-Draft Geneve Protocol October 2018


6.1. Data Confidentiality

Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.

<mglt>
The text above seems to assume that the service overlay is always provided by the cloud provider (i.e. infrastructure provider). I do not believe this assumption is always true.

A company may sell a system based on Geneve and may be willing to provide some protection against the infrastructure provider.
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common use case.</>
<mglt2> I believe it is good we mention a use case we envisioned as being the most common use case, but I also think the security consideration should not only be based on one deployment. </mglt2>
<Ilango2> We will add the following statement to the end of this paragraph for clarification.
“This may or not may be the same provider as an underlay service provider”
</Ilango2>

Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are still some metadata that the Geneve overlay MAY protect - typically (IP, ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data confidentiality mechanism to protect its data without relying on the service provider. This is irrespective of security mechanisms provided by the service provider.</>

<mglt2>I would suggest that we clearly state that data confidentiality provided by the tenant does not prevent the geneve overlay to provide it. From my reading of the text, it seems that tenant security is sufficient.I believe that is a bit misleading. </mglt2>
<Ilango2>The text does not preclude a service provider to provide security mechanisms when the tenant brings its own security. I am not sure where you are getting this interpretation. If needed we can remove the last sentence of the second paragraph, if that addresses your concern.

<Delete the following sentence from the end of next paragraph>

The operator may choose not to enable the encryption if,

for example, the packet data is already encrypted by the tenant

system.

</Ilango2>

If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.

6.1.1. Inter-data center traffic

A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.

<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it could be dedicated secure links. In which case the operator may decide to rely on the underlying security of the dedicated links, so we believe “SHOULD” is more appropriate here.</>
<mglt2>I am reading this as two different implementations of a secure link between the data center. The requirement is that this link MUST be secured. One way to provide a secure link is to have a dedicated line in which case we SHOULD encrypt the traffic. Another way to establish a connection over the internet in which case the traffic MUST be encrypted.
I believe it would help to clarify why SHOULD is mentioned here. One reason of the confusion is that only the link over internet is mentioned. </mglt2>
<Ilango2>The operator based on their risk assessment should enable appropriate security mechanism.
We could remove “for example over public Internet” from this sentence and this should address your concern.
</Ilango2>

6.2. Data Integrity

Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a



Gross, et al. Expires April 10, 2019 [Page 22]

Internet-Draft Geneve Protocol October 2018


passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.

<mglt>I believe that replayed traffic is also unauthorized in this case and may be considered in the description.</mglt>
<Ilango> Unauthorized traffic should include all type of unauthorized traffic including traffic such as spoofing, replay, etc.,. This is minor editorial, if need be we could rephrase to provide clarity “unauthorized traffic such as spoofing, replay, etc.”
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such attacks, so I think it is important this appears in the security consideration.</mglt2>
<Ilango2> Ok, we will rephrase to provide clarity
“unauthorized traffic such as spoofing, replay, etc.”
</Ilango2>

<END>

On Thu, Oct 11, 2018 at 1:34 PM Ganga, Ilango S <***@intel.com<mailto:***@intel.com>> wrote:
As a co-author, I believe the document is ready for publication as a standards track RFC.

Thanks,
Ilango


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com<mailto:***@nokia.com>]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org<mailto:***@ietf.org>>
Cc: draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
Ganga, Ilango S
2018-10-25 20:32:11 UTC
Permalink
Hi Daniel,

Please see my response below.
From your response, I understand “a Transit device can process a geneve header with no option”. If that is correct, I suggest this is clearly mentioned in the document as my initial >understanding was that only geneve option were concerned.
Transit devices MAY be able to interpret the options, however, as
non-terminating devices, transit devices do not originate or
terminate the Geneve packet, hence MUST NOT insert or delete options,
which is the responsibility of Geneve endpoints. The participation
of transit devices in interpreting options is OPTIONAL.
s/options/geneve header including geneve options /
It may also be needed to specify what is possible for the transit device to perform on the geneve header excluding the options.
<Ilango> We will add appropriate clarification to indicate that Geneve header includes options.


Thanks,
Ilango



From: Daniel Migault [mailto:***@ericsson.com]
Sent: Monday, October 22, 2018 2:23 AM
To: Ganga, Ilango S <***@intel.com>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com>; ***@ietf.org; draft-ietf-nvo3-***@ietf.org; T. Sridhar <***@vmware.com>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi,

If everyone agrees, this seems fine to me. Thanks for addressing them.

From your response, I understand “a Transit device can process a geneve header with no option”. If that is correct, I suggest this is clearly mentioned in the document as my initial understanding was that only geneve option were concerned.

OLD:
Transit devices MAY be able to interpret the options, however, as
non-terminating devices, transit devices do not originate or
terminate the Geneve packet, hence MUST NOT insert or delete options,
which is the responsibility of Geneve endpoints. The participation
of transit devices in interpreting options is OPTIONAL.

NEW:
s/options/geneve header including geneve options /

It may also be needed to specify what is possible for the transit device to perform on the geneve header excluding the options.


I would also suggest that draft-ietf-nvo3-security-requirements and draft-mglt-nvo3-geneve-security-requirements be referenced in the security consideration section as they provide more details. As these are informational reference, they should not block the publication of the current draft.

Yours,
Daniel

From: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Sent: Monday, October 22, 2018 12:22 AM
To: Daniel Migault <***@ericsson.com<mailto:***@ericsson.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>; T. Sridhar <***@vmware.com<mailto:***@vmware.com>>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Daniel,

Please see my responses inline. I think this should address all your comments.

Thanks,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Wednesday, October 17, 2018 7:28 AM
To: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>; T. Sridhar <***@vmware.com<mailto:***@vmware.com>>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Illango,

Thanks for the response, please see my comments. I believe they can be easily addressed in the next version.

Yours,
Daniel

From: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Sent: Wednesday, October 17, 2018 1:45 AM
To: Daniel Migault <***@ericsson.com<mailto:***@ericsson.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>; T. Sridhar <***@vmware.com<mailto:***@vmware.com>>
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Daniel,

Thanks for your review and comments. Please see my responses inline.

Regards,
Ilango


From: Daniel Migault [mailto:***@ericsson.com]
Sent: Friday, October 12, 2018 2:57 PM
To: Ganga, Ilango S <***@intel.com<mailto:***@intel.com>>
Cc: Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>>; ***@ietf.org<mailto:***@ietf.org>; draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi,

I reviewed the document. Please find my comments below.

Yours,
Daniel
3.4. Tunnel Header Fields

C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared to the sum of option len. (see my comment next section). I guess that is a clarification to be made next section.
</mglt>
<Ilango> The text in this section reads fine; since the option header is defined in next section 3.5, it is appropriate to keep the text in that section. Also, please see response to next section.
</>
<mglt2>I will see the next section. </mglt2>

3.5. Tunnel Options


Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.

The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
the location of the 'C' bit in the 'Type' field:

0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+

The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit set would be clearer.
</mglt>

<Ilango> The term critical option is described in section 3.4 and used in 3.5, so use of this term here to refer to an unknown critical option reads fine. Though for consistency with the sentence in section 3.5.1, we could also say “unknown options with C-bit set”.
</>
<mglt2> I am fine with your proposed change. </mglt>

applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.

R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.

Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.

<mglt>
I understand the sentence below as a check between the sum of option length and Opt len. This does not seems related to the treatment of one option, and maybe should be moved up to the description of Opt Len in the Geneve Header section.

<Ilango> This section is where the Tunnel Options are defined hence this is the most appropriate and right place for this text.
</>

<mglt2>I am fine with that as well, as long as you believe that is the right place.</mglt2>

I also have an issue on how to interpret that sentence. When receiving a Geneve Packet, the following sentence prevent from jumping to Opt Len skipping off options. It could be understood as a mandatory check in which case (whether there is a C bit set in the Geneve Header or not) the terminating node to go through all options, read the Length sum them and them compare it to the Opt Len. If such check is mandatory, I am wondering if Opt Len in the Geneve Header is then limited for internal use of the terminating node. If that is something optional, maybe we should explicitly say it, or maybe detail when such comparison is expect to happen.
</mglt>

<Ilango> No, it does not prevent the nodes from skipping the options to reach the start of encapsulated payload. For example a transit node that does not process the options can skip over the options by using the Option length field in the Geneve header. The endpoints that process the options are the ones that need to do this check as stated in this sentence.
For better clarity, we could add clarifying text to the sentence as follows:
“
. invalid and MUST be silently dropped if received by an endpoint that processes the options.”
</>
<mglt2>I believe that is clarifying to add the text you proposed.</mglt2>

Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.




Gross, et al. Expires April 10, 2019 [Page 15]

Internet-Draft Geneve Protocol October 2018


Variable Option Data: Option data interpreted according to 'Type'.


3.5.1. Options Processing

Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not the fixed Geneve header. If that is correct, It may be clearer to use Genve option instead of Geneve header as to avoid confusion on the scope of transit device. From the text above, using Geneve header could mean the fix header, in which case it may make easier to figure out the difference between transit device and tunnel endpoint.
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header includes fixed length headers and options. So in this statement, Geneve header includes options.
</>
<mglt2>
This is I believe English clarification and English is not my native language, so I am only providing my feed back, but differ to others on what to do.

The statement as I read it says that transit devices MAY interpret options. Which I interprete as the scope of transit device is limited to these options and transit device are not supposed to interprete the fix header.

The following sentence says transit devices not interpreting the Geneve Header
.” Which I read as fix header and option. While the statement is true, as header include option, I found it somehow confusing to introduce the fix header at that stage, as my understanding is that transit device are limited to the options.

Re-reading the text I also believe - if that is correct -, we should specify that transit devices MAY treat a subset of the options. </mglt2>

<Ilango2> The header may include options, and a transit device has to interpret the header to get to the options. We will rephrase the text to the following for clarity.
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
</Ilango2>

SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.

In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
process them:

o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.

o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.

o An option MUST NOT affect the parsing or interpretation of any
other option.


<mglt>
In case we have a option providing authentication, such option may affect the interpretation of the other options. s/interpretation/ndependance may not be better.... I think what we want to say is that option MUST be able to be processed in any order or in parallel. I am fine with the text if we do not find something better.
</mglt>

<Ilango> This is a good point, however we believe that this text captures the intent.
</>
<mglt2>The problem I have is that the current text prevents security options, so I guess some clarification should be brought to clarify the intent.</mglt2>
<Ilango2> The intent of this statement is, parsing and interpretation of options is not dependent on one another. It does not preclude processing of any security option.
</Ilango2>

6. Security Considerations

As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.

<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see a need for additional text.
</>

<mglt2>I understood “snoop” as being more active than passive monitoring. I am fine with the text.</mglt2>


Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.

<mglt>
I think Legitimate and malicious are not compatible. This is probably a "corrupted legitimate tunnel endpoint. I think we should also add that securing the geneve tunnel cannot prevent this type of threat.
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also spoof 
.”.
The next paragraph states that tunnel endpoints should only be operated in environments controlled by the service provider, this could potentially mitigate the threat of endpoints from getting compromised.
</>


Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.


When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.

<mglt>
I understand the first paragraph as the one where the service provider owns the tenant, the geneve overlay as well as the infrastructure in which case, isolation and separation is performed by VLAN. The second paragraph mentions that the previously described data centers can be interconnected using a secure link. I consider this case as the one building a trusted environment to run Geneve overlay.

I believe the security considerations for Geneve may be more focused on Genve itself, that is how the Geneve overlay network may remain secure while not relying on the security provided by the infrastructure. In that extent it help to consider the case where tenants, Geneve overlay provider, infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could span across layers. For example, the operator could very well choose security mechanisms already provided by the underlay to secure their overlay networks. </>
<mglt2>I understand, but it seems to me that the important things here are :

* Corrupted legitimate tunnel endpoint is not expected to be addressed by Geneve security mechanisms.
* Geneve overlay deployment relies on reliable (trusted) tunnel endpoints. This later point may be achieved in one or the other ways. You provide one way to do it, another way could be simply trusting your infrastructure provider.
I believe that it may be more helpful to explicitly provide a trust model, illustrating it and leave the door open to other solutions. My current reading is that one way is proposed, but we may lack some information to evaluate if other ways can be acceptable as well.</mglt2>
<Ilango2> I am not sure where you are going with this. The intent is to highlight potential risks and outline how to mitigate such risks, this paragraph describes the best practices used to secure a tunnel endpoint. We believe that this is sufficiently illustrated in the description.
</Ilango2>


Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.



Gross, et al. Expires April 10, 2019 [Page 21]

Internet-Draft Geneve Protocol October 2018


6.1. Data Confidentiality

Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.

<mglt>
The text above seems to assume that the service overlay is always provided by the cloud provider (i.e. infrastructure provider). I do not believe this assumption is always true.

A company may sell a system based on Geneve and may be willing to provide some protection against the infrastructure provider.
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common use case.</>
<mglt2> I believe it is good we mention a use case we envisioned as being the most common use case, but I also think the security consideration should not only be based on one deployment. </mglt2>
<Ilango2> We will add the following statement to the end of this paragraph for clarification.
“This may or not may be the same provider as an underlay service provider”
</Ilango2>

Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are still some metadata that the Geneve overlay MAY protect - typically (IP, ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data confidentiality mechanism to protect its data without relying on the service provider. This is irrespective of security mechanisms provided by the service provider.</>

<mglt2>I would suggest that we clearly state that data confidentiality provided by the tenant does not prevent the geneve overlay to provide it. From my reading of the text, it seems that tenant security is sufficient.I believe that is a bit misleading. </mglt2>
<Ilango2>The text does not preclude a service provider to provide security mechanisms when the tenant brings its own security. I am not sure where you are getting this interpretation. If needed we can remove the last sentence of the second paragraph, if that addresses your concern.

<Delete the following sentence from the end of next paragraph>

The operator may choose not to enable the encryption if,

for example, the packet data is already encrypted by the tenant

system.

</Ilango2>

If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.

6.1.1. Inter-data center traffic

A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.

<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it could be dedicated secure links. In which case the operator may decide to rely on the underlying security of the dedicated links, so we believe “SHOULD” is more appropriate here.</>
<mglt2>I am reading this as two different implementations of a secure link between the data center. The requirement is that this link MUST be secured. One way to provide a secure link is to have a dedicated line in which case we SHOULD encrypt the traffic. Another way to establish a connection over the internet in which case the traffic MUST be encrypted.
I believe it would help to clarify why SHOULD is mentioned here. One reason of the confusion is that only the link over internet is mentioned. </mglt2>
<Ilango2>The operator based on their risk assessment should enable appropriate security mechanism.
We could remove “for example over public Internet” from this sentence and this should address your concern.
</Ilango2>

6.2. Data Integrity

Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a



Gross, et al. Expires April 10, 2019 [Page 22]

Internet-Draft Geneve Protocol October 2018


passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.

<mglt>I believe that replayed traffic is also unauthorized in this case and may be considered in the description.</mglt>
<Ilango> Unauthorized traffic should include all type of unauthorized traffic including traffic such as spoofing, replay, etc.,. This is minor editorial, if need be we could rephrase to provide clarity “unauthorized traffic such as spoofing, replay, etc.”
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such attacks, so I think it is important this appears in the security consideration.</mglt2>
<Ilango2> Ok, we will rephrase to provide clarity
“unauthorized traffic such as spoofing, replay, etc.”
</Ilango2>

<END>

On Thu, Oct 11, 2018 at 1:34 PM Ganga, Ilango S <***@intel.com<mailto:***@intel.com>> wrote:
As a co-author, I believe the document is ready for publication as a standards track RFC.

Thanks,
Ilango


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com<mailto:***@nokia.com>]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org<mailto:***@ietf.org>>
Cc: draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
Greg Mirsky
2018-10-22 09:34:36 UTC
Permalink
Hi Ilango, et al.,
if I understand the text you're proposing:
Transit devices not interpreting Geneve headers (that may or may not
include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
a transit node MAY process Geneve packets using Geneve layer information.
What are scenarios that would require such an option? How that
functionality controlled, advertised, and traceable by OAM?

Regards,
Greg
Post by Ganga, Ilango S
Hi Daniel,
Please see my responses inline. I think this should address all your comments.
Thanks,
Ilango
*Sent:* Wednesday, October 17, 2018 7:28 AM
*Subject:* RE: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Hi Illango,
Thanks for the response, please see my comments. I believe they can be
easily addressed in the next version.
Yours,
Daniel
*Sent:* Wednesday, October 17, 2018 1:45 AM
*Subject:* RE: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Hi Daniel,
Thanks for your review and comments. Please see my responses inline.
Regards,
Ilango
*Sent:* Friday, October 12, 2018 2:57 PM
*Subject:* Re: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Hi,
I reviewed the document. Please find my comments below.
Yours,
Daniel
3.4. Tunnel Header Fields
C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared
to the sum of option len. (see my comment next section). I guess that is a
clarification to be made next section.
</mglt>
<Ilango> The text in this section reads fine; since the option header is
defined in next section 3.5, it is appropriate to keep the text in that
section. Also, please see response to next section.
</>
<mglt2>I will see the next section. </mglt2>
3.5. Tunnel Options
Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.
The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+
The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit
set would be clearer.
</mglt>
<Ilango> The term critical option is described in section 3.4 and used in
3.5, so use of this term here to refer to an unknown critical option reads
fine. Though for consistency with the sentence in section 3.5.1, we could
also say “unknown options with C-bit set”.
</>
<mglt2> I am fine with your proposed change. </mglt>
applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.
R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.
Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.
<mglt>
I understand the sentence below as a check between the sum of option
length and Opt len. This does not seems related to the treatment of one
option, and maybe should be moved up to the description of Opt Len in the
Geneve Header section.
<Ilango> This section is where the Tunnel Options are defined hence this
is the most appropriate and right place for this text.
</>
<mglt2>I am fine with that as well, as long as you believe that is the right place.</mglt2>
I also have an issue on how to interpret that sentence. When receiving a
Geneve Packet, the following sentence prevent from jumping to Opt Len
skipping off options. It could be understood as a mandatory check in which
case (whether there is a C bit set in the Geneve Header or not) the
terminating node to go through all options, read the Length sum them and
them compare it to the Opt Len. If such check is mandatory, I am wondering
if Opt Len in the Geneve Header is then limited for internal use of the
terminating node. If that is something optional, maybe we should explicitly
say it, or maybe detail when such comparison is expect to happen.
</mglt>
<Ilango> No, it does not prevent the nodes from skipping the options to
reach the start of encapsulated payload. For example a transit node that
does not process the options can skip over the options by using the Option
length field in the Geneve header. The endpoints that process the options
are the ones that need to do this check as stated in this sentence.
“
. invalid and MUST be silently dropped if received by an endpoint *that
processes the options*.”
</>
<mglt2>I believe that is clarifying to add the text you proposed.</mglt2>
Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.
Gross, et al. Expires April 10, 2019 [Page 15]
Internet-Draft Geneve Protocol October 2018
Variable Option Data: Option data interpreted according to 'Type'.
3.5.1. Options Processing
Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not
the fixed Geneve header. If that is correct, It may be clearer to use Genve
option instead of Geneve header as to avoid confusion on the scope of
transit device. From the text above, using Geneve header could mean the fix
header, in which case it may make easier to figure out the difference
between transit device and tunnel endpoint.
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header
includes fixed length headers and options. So in this statement, Geneve
header includes options.
</>
<mglt2>
This is I believe English clarification and English is not my native
language, so I am only providing my feed back, but differ to others on what
to do.
The statement as I read it says that transit devices MAY interpret
options. Which I interprete as the scope of transit device is limited to
these options and transit device are not supposed to interprete the fix
header.
The following sentence says transit devices not interpreting the Geneve
Header
.” Which I read as fix header and option. While the statement is
true, as header include option, I found it somehow confusing to introduce
the fix header at that stage, as my understanding is that transit device
are limited to the options.
Re-reading the text I also believe - if that is correct -, we should
specify that transit devices MAY treat a subset of the options. </mglt2>
<Ilango2> The header may include options, and a transit device has to
interpret the header to get to the options. We will rephrase the text to
the following for clarity.
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
</Ilango2>
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.
o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.
o An option MUST NOT affect the parsing or interpretation of any
other option.
<mglt>
In case we have a option providing authentication, such option may affect
the interpretation of the other options. s/interpretation/ndependance may
not be better.... I think what we want to say is that option MUST be able
to be processed in any order or in parallel. I am fine with the text if we
do not find something better.
</mglt>
<Ilango> This is a good point, however we believe that this text captures the intent.
</>
<mglt2>The problem I have is that the current text prevents security
options, so I guess some clarification should be brought to clarify the
intent.</mglt2>
<Ilango2> The intent of this statement is, parsing and interpretation of
options is not dependent on one another. It does not preclude processing of
any security option.
</Ilango2>
6. Security Considerations
As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.
<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see a
need for additional text.
</>
<mglt2>I understood “snoop” as being more active than passive
monitoring. I am fine with the text.</mglt2>
Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.
<mglt>
I think Legitimate and malicious are not compatible. This is probably a
"corrupted legitimate tunnel endpoint. I think we should also add that
securing the geneve tunnel cannot prevent this type of threat.
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also
spoof 
.”.
The next paragraph states that tunnel endpoints should only be operated in
environments controlled by the service provider, this could potentially
mitigate the threat of endpoints from getting compromised.
</>
Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.
When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.
<mglt>
I understand the first paragraph as the one where the service provider
owns the tenant, the geneve overlay as well as the infrastructure in which
case, isolation and separation is performed by VLAN. The second paragraph
mentions that the previously described data centers can be interconnected
using a secure link. I consider this case as the one building a trusted
environment to run Geneve overlay.
I believe the security considerations for Geneve may be more focused on
Genve itself, that is how the Geneve overlay network may remain secure
while not relying on the security provided by the infrastructure. In that
extent it help to consider the case where tenants, Geneve overlay provider,
infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could
span across layers. For example, the operator could very well choose
security mechanisms already provided by the underlay to secure their
overlay networks. </>
- Corrupted legitimate tunnel endpoint is not expected to be addressed
by Geneve security mechanisms.
- Geneve overlay deployment relies on reliable (trusted) tunnel
endpoints. This later point may be achieved in one or the other ways. You
provide one way to do it, another way could be simply trusting your
infrastructure provider.
I believe that it may be more helpful to explicitly provide a trust model,
illustrating it and leave the door open to other solutions. My current
reading is that one way is proposed, but we may lack some information to
evaluate if other ways can be acceptable as well.</mglt2>
<Ilango2> I am not sure where you are going with this. The intent is to
highlight potential risks and outline how to mitigate such risks, this
paragraph describes the best practices used to secure a tunnel endpoint. We
believe that this is sufficiently illustrated in the description.
</Ilango2>
Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.
Gross, et al. Expires April 10, 2019 [Page 21]
Internet-Draft Geneve Protocol October 2018
6.1. Data Confidentiality
Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.
<mglt>
The text above seems to assume that the service overlay is always provided
by the cloud provider (i.e. infrastructure provider). I do not believe this
assumption is always true.
A company may sell a system based on Geneve and may be willing to provide
some protection against the infrastructure provider.
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common use
case.</>
<mglt2> I believe it is good we mention a use case we envisioned as being
the most common use case, but I also think the security consideration
should not only be based on one deployment. </mglt2>
<Ilango2> We will add the following statement to the end of this
paragraph for clarification.
“This may or not may be the same provider as an underlay service provider”
</Ilango2>
Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are
still some metadata that the Geneve overlay MAY protect - typically (IP,
ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data
confidentiality mechanism to protect its data without relying on the
service provider. This is irrespective of security mechanisms provided by
the service provider.</>
<mglt2>I would suggest that we clearly state that data confidentiality
provided by the tenant does not prevent the geneve overlay to provide it.
From my reading of the text, it seems that tenant security is sufficient.I
believe that is a bit misleading. </mglt2>
<Ilango2>The text does not preclude a service provider to provide security
mechanisms when the tenant brings its own security. I am not sure where you
are getting this interpretation. If needed we can remove the last sentence
of the second paragraph, if that addresses your concern.
<Delete the following sentence from the end of next paragraph>
The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
</Ilango2>
If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
6.1.1. Inter-data center traffic
A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.
<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it
could be dedicated secure links. In which case the operator may decide to
rely on the underlying security of the dedicated links, so we believe
“SHOULD” is more appropriate here.</>
<mglt2>I am reading this as two different implementations of a secure link
between the data center. The requirement is that this link MUST be secured.
One way to provide a secure link is to have a dedicated line in which case
we SHOULD encrypt the traffic. Another way to establish a connection over
the internet in which case the traffic MUST be encrypted.
I believe it would help to clarify why SHOULD is mentioned here. One
reason of the confusion is that only the link over internet is mentioned.
</mglt2>
<Ilango2>The operator based on their risk assessment should enable
appropriate security mechanism.
We could remove “for example over public Internet” from this sentence and
this should address your concern.
</Ilango2>
6.2. Data Integrity
Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a
Gross, et al. Expires April 10, 2019 [Page 22]
Internet-Draft Geneve Protocol October 2018
passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.
<mglt>I believe that replayed traffic is also unauthorized in this case
and may be considered in the description.</mglt>
<Ilango> Unauthorized traffic should include all type of unauthorized
traffic including traffic such as spoofing, replay, etc.,. This is minor
editorial, if need be we could rephrase to provide clarity “unauthorized
traffic such as spoofing, replay, etc.”
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such
attacks, so I think it is important this appears in the security
consideration.</mglt2>
<Ilango2> Ok, we will rephrase to provide clarity
“unauthorized traffic such as spoofing, replay, etc.”
</Ilango2>
<END>
As a co-author, I believe the document is ready for publication as a standards track RFC.
Thanks,
Ilango
*Sent:* Tuesday, October 9, 2018 2:08 AM
*Subject:* Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to
this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please
respond to this email and indicate whether or not you are aware of any
relevant undisclosed IPR. The Document won't progress without answers from
all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Jesse Gross
2018-10-25 22:43:59 UTC
Permalink
Hi Greg,

One example of this use case is described in draft-brockners-ippm-ioam-geneve

Jesse
Post by Greg Mirsky
Hi Ilango, et al.,
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
a transit node MAY process Geneve packets using Geneve layer information. What are scenarios that would require such an option? How that functionality controlled, advertised, and traceable by OAM?
Regards,
Greg
Post by Ganga, Ilango S
Hi Daniel,
Please see my responses inline. I think this should address all your comments.
Thanks,
Ilango
Sent: Wednesday, October 17, 2018 7:28 AM
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi Illango,
Thanks for the response, please see my comments. I believe they can be easily addressed in the next version.
Yours,
Daniel
Sent: Wednesday, October 17, 2018 1:45 AM
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi Daniel,
Thanks for your review and comments. Please see my responses inline.
Regards,
Ilango
Sent: Friday, October 12, 2018 2:57 PM
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi,
I reviewed the document. Please find my comments below.
Yours,
Daniel
3.4. Tunnel Header Fields
C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared to the sum of option len. (see my comment next section). I guess that is a clarification to be made next section.
</mglt>
<Ilango> The text in this section reads fine; since the option header is defined in next section 3.5, it is appropriate to keep the text in that section. Also, please see response to next section.
</>
<mglt2>I will see the next section. </mglt2>
3.5. Tunnel Options
Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.
The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+
The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit set would be clearer.
</mglt>
<Ilango> The term critical option is described in section 3.4 and used in 3.5, so use of this term here to refer to an unknown critical option reads fine. Though for consistency with the sentence in section 3.5.1, we could also say “unknown options with C-bit set”.
</>
<mglt2> I am fine with your proposed change. </mglt>
applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.
R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.
Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.
<mglt>
I understand the sentence below as a check between the sum of option length and Opt len. This does not seems related to the treatment of one option, and maybe should be moved up to the description of Opt Len in the Geneve Header section.
<Ilango> This section is where the Tunnel Options are defined hence this is the most appropriate and right place for this text.
</>
<mglt2>I am fine with that as well, as long as you believe that is the right place.</mglt2>
I also have an issue on how to interpret that sentence. When receiving a Geneve Packet, the following sentence prevent from jumping to Opt Len skipping off options. It could be understood as a mandatory check in which case (whether there is a C bit set in the Geneve Header or not) the terminating node to go through all options, read the Length sum them and them compare it to the Opt Len. If such check is mandatory, I am wondering if Opt Len in the Geneve Header is then limited for internal use of the terminating node. If that is something optional, maybe we should explicitly say it, or maybe detail when such comparison is expect to happen.
</mglt>
<Ilango> No, it does not prevent the nodes from skipping the options to reach the start of encapsulated payload. For example a transit node that does not process the options can skip over the options by using the Option length field in the Geneve header. The endpoints that process the options are the ones that need to do this check as stated in this sentence.
“…. invalid and MUST be silently dropped if received by an endpoint that processes the options.”
</>
<mglt2>I believe that is clarifying to add the text you proposed.</mglt2>
Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.
Gross, et al. Expires April 10, 2019 [Page 15]
Internet-Draft Geneve Protocol October 2018
Variable Option Data: Option data interpreted according to 'Type'.
3.5.1. Options Processing
Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not the fixed Geneve header. If that is correct, It may be clearer to use Genve option instead of Geneve header as to avoid confusion on the scope of transit device. From the text above, using Geneve header could mean the fix header, in which case it may make easier to figure out the difference between transit device and tunnel endpoint.
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header includes fixed length headers and options. So in this statement, Geneve header includes options.
</>
<mglt2>
This is I believe English clarification and English is not my native language, so I am only providing my feed back, but differ to others on what to do.
The statement as I read it says that transit devices MAY interpret options. Which I interprete as the scope of transit device is limited to these options and transit device are not supposed to interprete the fix header.
The following sentence says transit devices not interpreting the Geneve Header….” Which I read as fix header and option. While the statement is true, as header include option, I found it somehow confusing to introduce the fix header at that stage, as my understanding is that transit device are limited to the options.
Re-reading the text I also believe - if that is correct -, we should specify that transit devices MAY treat a subset of the options. </mglt2>
<Ilango2> The header may include options, and a transit device has to interpret the header to get to the options. We will rephrase the text to the following for clarity.
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
</Ilango2>
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.
o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.
o An option MUST NOT affect the parsing or interpretation of any
other option.
<mglt>
In case we have a option providing authentication, such option may affect the interpretation of the other options. s/interpretation/ndependance may not be better.... I think what we want to say is that option MUST be able to be processed in any order or in parallel. I am fine with the text if we do not find something better.
</mglt>
<Ilango> This is a good point, however we believe that this text captures the intent.
</>
<mglt2>The problem I have is that the current text prevents security options, so I guess some clarification should be brought to clarify the intent.</mglt2>
<Ilango2> The intent of this statement is, parsing and interpretation of options is not dependent on one another. It does not preclude processing of any security option.
</Ilango2>
6. Security Considerations
As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.
<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see a need for additional text.
</>
<mglt2>I understood “snoop” as being more active than passive monitoring. I am fine with the text.</mglt2>
Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.
<mglt>
I think Legitimate and malicious are not compatible. This is probably a "corrupted legitimate tunnel endpoint. I think we should also add that securing the geneve tunnel cannot prevent this type of threat.
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also spoof ….”.
The next paragraph states that tunnel endpoints should only be operated in environments controlled by the service provider, this could potentially mitigate the threat of endpoints from getting compromised.
</>
Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.
When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.
<mglt>
I understand the first paragraph as the one where the service provider owns the tenant, the geneve overlay as well as the infrastructure in which case, isolation and separation is performed by VLAN. The second paragraph mentions that the previously described data centers can be interconnected using a secure link. I consider this case as the one building a trusted environment to run Geneve overlay.
I believe the security considerations for Geneve may be more focused on Genve itself, that is how the Geneve overlay network may remain secure while not relying on the security provided by the infrastructure. In that extent it help to consider the case where tenants, Geneve overlay provider, infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could span across layers. For example, the operator could very well choose security mechanisms already provided by the underlay to secure their overlay networks. </>
Corrupted legitimate tunnel endpoint is not expected to be addressed by Geneve security mechanisms.
Geneve overlay deployment relies on reliable (trusted) tunnel endpoints. This later point may be achieved in one or the other ways. You provide one way to do it, another way could be simply trusting your infrastructure provider.
I believe that it may be more helpful to explicitly provide a trust model, illustrating it and leave the door open to other solutions. My current reading is that one way is proposed, but we may lack some information to evaluate if other ways can be acceptable as well.</mglt2>
<Ilango2> I am not sure where you are going with this. The intent is to highlight potential risks and outline how to mitigate such risks, this paragraph describes the best practices used to secure a tunnel endpoint. We believe that this is sufficiently illustrated in the description.
</Ilango2>
Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.
Gross, et al. Expires April 10, 2019 [Page 21]
Internet-Draft Geneve Protocol October 2018
6.1. Data Confidentiality
Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.
<mglt>
The text above seems to assume that the service overlay is always provided by the cloud provider (i.e. infrastructure provider). I do not believe this assumption is always true.
A company may sell a system based on Geneve and may be willing to provide some protection against the infrastructure provider.
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common use case.</>
<mglt2> I believe it is good we mention a use case we envisioned as being the most common use case, but I also think the security consideration should not only be based on one deployment. </mglt2>
<Ilango2> We will add the following statement to the end of this paragraph for clarification.
“This may or not may be the same provider as an underlay service provider”
</Ilango2>
Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are still some metadata that the Geneve overlay MAY protect - typically (IP, ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data confidentiality mechanism to protect its data without relying on the service provider. This is irrespective of security mechanisms provided by the service provider.</>
<mglt2>I would suggest that we clearly state that data confidentiality provided by the tenant does not prevent the geneve overlay to provide it. From my reading of the text, it seems that tenant security is sufficient.I believe that is a bit misleading. </mglt2>
<Ilango2>The text does not preclude a service provider to provide security mechanisms when the tenant brings its own security. I am not sure where you are getting this interpretation. If needed we can remove the last sentence of the second paragraph, if that addresses your concern.
<Delete the following sentence from the end of next paragraph>
The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
</Ilango2>
If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
6.1.1. Inter-data center traffic
A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.
<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it could be dedicated secure links. In which case the operator may decide to rely on the underlying security of the dedicated links, so we believe “SHOULD” is more appropriate here.</>
<mglt2>I am reading this as two different implementations of a secure link between the data center. The requirement is that this link MUST be secured. One way to provide a secure link is to have a dedicated line in which case we SHOULD encrypt the traffic. Another way to establish a connection over the internet in which case the traffic MUST be encrypted.
I believe it would help to clarify why SHOULD is mentioned here. One reason of the confusion is that only the link over internet is mentioned. </mglt2>
<Ilango2>The operator based on their risk assessment should enable appropriate security mechanism.
We could remove “for example over public Internet” from this sentence and this should address your concern.
</Ilango2>
6.2. Data Integrity
Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a
Gross, et al. Expires April 10, 2019 [Page 22]
Internet-Draft Geneve Protocol October 2018
passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.
<mglt>I believe that replayed traffic is also unauthorized in this case and may be considered in the description.</mglt>
<Ilango> Unauthorized traffic should include all type of unauthorized traffic including traffic such as spoofing, replay, etc.,. This is minor editorial, if need be we could rephrase to provide clarity “unauthorized traffic such as spoofing, replay, etc.”
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such attacks, so I think it is important this appears in the security consideration.</mglt2>
<Ilango2> Ok, we will rephrase to provide clarity
“unauthorized traffic such as spoofing, replay, etc.”
</Ilango2>
<END>
As a co-author, I believe the document is ready for publication as a standards track RFC.
Thanks,
Ilango
Sent: Tuesday, October 9, 2018 2:08 AM
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Greg Mirsky
2018-10-26 03:26:11 UTC
Permalink
Hi Jesse,
I have some concerns with what is proposed in
draft-brockners-ippm-ioam-geneve. The main - it requires additional
capability negotiation to avoid the data packets being dropped because of
the egress Geneve node not supporting iOAM and fails to parse the iOAM
message. Second - inconsistency in the use of O-bit. The draft states
(though without proper use of the normative language):
Packets that carry IOAM
data fields in addition to regular data payload / customer traffic
must not set the O bit. Packets that carry only IOAM data fields
without any payload must set the O bit.
That, in my opinion, is confusing and inconsistent. iOAM requests
allocation of two Next Protocol values and that should be sufficient. Why
the value of O-bit depends on whether there is or there is no data payload
immediately following iOAM message? How does that help in processing?

Regards,
Greg
Post by Jesse Gross
Hi Greg,
One example of this use case is described in
draft-brockners-ippm-ioam-geneve
Jesse
Post by Greg Mirsky
Hi Ilango, et al.,
Transit devices not interpreting Geneve headers (that may or may not
include Options)
Post by Greg Mirsky
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
a transit node MAY process Geneve packets using Geneve layer
information. What are scenarios that would require such an option? How that
functionality controlled, advertised, and traceable by OAM?
Post by Greg Mirsky
Regards,
Greg
On Sun, Oct 21, 2018 at 9:22 PM Ganga, Ilango S <
Post by Ganga, Ilango S
Hi Daniel,
Please see my responses inline. I think this should address all your
comments.
Post by Greg Mirsky
Post by Ganga, Ilango S
Thanks,
Ilango
Sent: Wednesday, October 17, 2018 7:28 AM
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Post by Greg Mirsky
Post by Ganga, Ilango S
Hi Illango,
Thanks for the response, please see my comments. I believe they can be
easily addressed in the next version.
Post by Greg Mirsky
Post by Ganga, Ilango S
Yours,
Daniel
Sent: Wednesday, October 17, 2018 1:45 AM
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Post by Greg Mirsky
Post by Ganga, Ilango S
Hi Daniel,
Thanks for your review and comments. Please see my responses inline.
Regards,
Ilango
Sent: Friday, October 12, 2018 2:57 PM
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Post by Greg Mirsky
Post by Ganga, Ilango S
Hi,
I reviewed the document. Please find my comments below.
Yours,
Daniel
3.4. Tunnel Header Fields
C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is
compared to the sum of option len. (see my comment next section). I guess
that is a clarification to be made next section.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> The text in this section reads fine; since the option header
is defined in next section 3.5, it is appropriate to keep the text in that
section. Also, please see response to next section.
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2>I will see the next section. </mglt2>
3.5. Tunnel Options
Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.
The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+
The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical
bit set would be clearer.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> The term critical option is described in section 3.4 and used
in 3.5, so use of this term here to refer to an unknown critical option
reads fine. Though for consistency with the sentence in section 3.5.1, we
could also say “unknown options with C-bit set”.
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2> I am fine with your proposed change. </mglt>
applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.
R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.
Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.
<mglt>
I understand the sentence below as a check between the sum of option
length and Opt len. This does not seems related to the treatment of one
option, and maybe should be moved up to the description of Opt Len in the
Geneve Header section.
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango> This section is where the Tunnel Options are defined hence
this is the most appropriate and right place for this text.
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2>I am fine with that as well, as long as you believe that is the
right place.</mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
I also have an issue on how to interpret that sentence. When receiving
a Geneve Packet, the following sentence prevent from jumping to Opt Len
skipping off options. It could be understood as a mandatory check in which
case (whether there is a C bit set in the Geneve Header or not) the
terminating node to go through all options, read the Length sum them and
them compare it to the Opt Len. If such check is mandatory, I am wondering
if Opt Len in the Geneve Header is then limited for internal use of the
terminating node. If that is something optional, maybe we should explicitly
say it, or maybe detail when such comparison is expect to happen.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> No, it does not prevent the nodes from skipping the options to
reach the start of encapsulated payload. For example a transit node that
does not process the options can skip over the options by using the Option
length field in the Geneve header. The endpoints that process the options
are the ones that need to do this check as stated in this sentence.
Post by Greg Mirsky
Post by Ganga, Ilango S
For better clarity, we could add clarifying text to the sentence as
“
. invalid and MUST be silently dropped if received by an endpoint
that processes the options.”
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2>I believe that is clarifying to add the text you
proposed.</mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.
Gross, et al. Expires April 10, 2019 [Page 15]
Internet-Draft Geneve Protocol October 2018
Variable Option Data: Option data interpreted according to 'Type'.
3.5.1. Options Processing
Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but
not the fixed Geneve header. If that is correct, It may be clearer to use
Genve option instead of Geneve header as to avoid confusion on the scope of
transit device. From the text above, using Geneve header could mean the fix
header, in which case it may make easier to figure out the difference
between transit device and tunnel endpoint.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header
includes fixed length headers and options. So in this statement, Geneve
header includes options.
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2>
This is I believe English clarification and English is not my native
language, so I am only providing my feed back, but differ to others on what
to do.
Post by Greg Mirsky
Post by Ganga, Ilango S
The statement as I read it says that transit devices MAY interpret
options. Which I interprete as the scope of transit device is limited to
these options and transit device are not supposed to interprete the fix
header.
Post by Greg Mirsky
Post by Ganga, Ilango S
The following sentence says transit devices not interpreting the Geneve
Header
.” Which I read as fix header and option. While the statement is
true, as header include option, I found it somehow confusing to introduce
the fix header at that stage, as my understanding is that transit device
are limited to the options.
Post by Greg Mirsky
Post by Ganga, Ilango S
Re-reading the text I also believe - if that is correct -, we should
specify that transit devices MAY treat a subset of the options. </mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango2> The header may include options, and a transit device has to
interpret the header to get to the options. We will rephrase the text to
the following for clarity.
Post by Greg Mirsky
Post by Ganga, Ilango S
Transit devices not interpreting Geneve headers (that may or may not
include Options)
Post by Greg Mirsky
Post by Ganga, Ilango S
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
</Ilango2>
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.
o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.
o An option MUST NOT affect the parsing or interpretation of any
other option.
<mglt>
In case we have a option providing authentication, such option may
affect the interpretation of the other options.
s/interpretation/ndependance may not be better.... I think what we want to
say is that option MUST be able to be processed in any order or in
parallel. I am fine with the text if we do not find something better.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> This is a good point, however we believe that this text
captures the intent.
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2>The problem I have is that the current text prevents security
options, so I guess some clarification should be brought to clarify the
intent.</mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango2> The intent of this statement is, parsing and interpretation
of options is not dependent on one another. It does not preclude processing
of any security option.
Post by Greg Mirsky
Post by Ganga, Ilango S
</Ilango2>
6. Security Considerations
As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.
<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see
a need for additional text.
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2>I understood “snoop” as being more active than passive
monitoring. I am fine with the text.</mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.
<mglt>
I think Legitimate and malicious are not compatible. This is probably a
"corrupted legitimate tunnel endpoint. I think we should also add that
securing the geneve tunnel cannot prevent this type of threat.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also
spoof 
.”.
Post by Greg Mirsky
Post by Ganga, Ilango S
The next paragraph states that tunnel endpoints should only be operated
in environments controlled by the service provider, this could potentially
mitigate the threat of endpoints from getting compromised.
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.
When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.
<mglt>
I understand the first paragraph as the one where the service provider
owns the tenant, the geneve overlay as well as the infrastructure in which
case, isolation and separation is performed by VLAN. The second paragraph
mentions that the previously described data centers can be interconnected
using a secure link. I consider this case as the one building a trusted
environment to run Geneve overlay.
Post by Greg Mirsky
Post by Ganga, Ilango S
I believe the security considerations for Geneve may be more focused on
Genve itself, that is how the Geneve overlay network may remain secure
while not relying on the security provided by the infrastructure. In that
extent it help to consider the case where tenants, Geneve overlay provider,
infrastructure providers are different entities.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango>The operator could use multiple security mechanisms, which
could span across layers. For example, the operator could very well choose
security mechanisms already provided by the underlay to secure their
overlay networks. </>
Post by Greg Mirsky
Post by Ganga, Ilango S
<mglt2>I understand, but it seems to me that the important things here
Corrupted legitimate tunnel endpoint is not expected to be addressed by
Geneve security mechanisms.
Post by Greg Mirsky
Post by Ganga, Ilango S
Geneve overlay deployment relies on reliable (trusted) tunnel
endpoints. This later point may be achieved in one or the other ways. You
provide one way to do it, another way could be simply trusting your
infrastructure provider.
Post by Greg Mirsky
Post by Ganga, Ilango S
I believe that it may be more helpful to explicitly provide a trust
model, illustrating it and leave the door open to other solutions. My
current reading is that one way is proposed, but we may lack some
information to evaluate if other ways can be acceptable as well.</mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango2> I am not sure where you are going with this. The intent is to
highlight potential risks and outline how to mitigate such risks, this
paragraph describes the best practices used to secure a tunnel endpoint. We
believe that this is sufficiently illustrated in the description.
Post by Greg Mirsky
Post by Ganga, Ilango S
</Ilango2>
Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.
Gross, et al. Expires April 10, 2019 [Page 21]
Internet-Draft Geneve Protocol October 2018
6.1. Data Confidentiality
Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.
<mglt>
The text above seems to assume that the service overlay is always
provided by the cloud provider (i.e. infrastructure provider). I do not
believe this assumption is always true.
Post by Greg Mirsky
Post by Ganga, Ilango S
A company may sell a system based on Geneve and may be willing to
provide some protection against the infrastructure provider.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common
use case.</>
Post by Greg Mirsky
Post by Ganga, Ilango S
<mglt2> I believe it is good we mention a use case we envisioned as
being the most common use case, but I also think the security consideration
should not only be based on one deployment. </mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango2> We will add the following statement to the end of this
paragraph for clarification.
Post by Greg Mirsky
Post by Ganga, Ilango S
“This may or not may be the same provider as an underlay service
provider”
Post by Greg Mirsky
Post by Ganga, Ilango S
</Ilango2>
Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there
are still some metadata that the Geneve overlay MAY protect - typically
(IP, ports).
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own
data confidentiality mechanism to protect its data without relying on the
service provider. This is irrespective of security mechanisms provided by
the service provider.</>
Post by Greg Mirsky
Post by Ganga, Ilango S
<mglt2>I would suggest that we clearly state that data confidentiality
provided by the tenant does not prevent the geneve overlay to provide it.
From my reading of the text, it seems that tenant security is sufficient.I
believe that is a bit misleading. </mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango2>The text does not preclude a service provider to provide
security mechanisms when the tenant brings its own security. I am not sure
where you are getting this interpretation. If needed we can remove the last
sentence of the second paragraph, if that addresses your concern.
Post by Greg Mirsky
Post by Ganga, Ilango S
<Delete the following sentence from the end of next paragraph>
The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
</Ilango2>
If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
6.1.1. Inter-data center traffic
A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.
<mglt>
I see that inter-data center traffic protection is more IP traffic
protection than specific to Geneve. I think we can also safely go for a
MUST be secured when the traffic is sent to the wild Internet.
Post by Greg Mirsky
Post by Ganga, Ilango S
</mglt>
<Ilango> Inter-data center need not always mean internet, for example
it could be dedicated secure links. In which case the operator may decide
to rely on the underlying security of the dedicated links, so we believe
“SHOULD” is more appropriate here.</>
Post by Greg Mirsky
Post by Ganga, Ilango S
<mglt2>I am reading this as two different implementations of a secure
link between the data center. The requirement is that this link MUST be
secured. One way to provide a secure link is to have a dedicated line in
which case we SHOULD encrypt the traffic. Another way to establish a
connection over the internet in which case the traffic MUST be encrypted.
Post by Greg Mirsky
Post by Ganga, Ilango S
I believe it would help to clarify why SHOULD is mentioned here. One
reason of the confusion is that only the link over internet is mentioned.
</mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango2>The operator based on their risk assessment should enable
appropriate security mechanism.
Post by Greg Mirsky
Post by Ganga, Ilango S
We could remove “for example over public Internet” from this sentence
and this should address your concern.
Post by Greg Mirsky
Post by Ganga, Ilango S
</Ilango2>
6.2. Data Integrity
Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a
Gross, et al. Expires April 10, 2019 [Page 22]
Internet-Draft Geneve Protocol October 2018
passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.
<mglt>I believe that replayed traffic is also unauthorized in this case
and may be considered in the description.</mglt>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango> Unauthorized traffic should include all type of unauthorized
traffic including traffic such as spoofing, replay, etc.,. This is minor
editorial, if need be we could rephrase to provide clarity “unauthorized
traffic such as spoofing, replay, etc.”
Post by Greg Mirsky
Post by Ganga, Ilango S
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such
attacks, so I think it is important this appears in the security
consideration.</mglt2>
Post by Greg Mirsky
Post by Ganga, Ilango S
<Ilango2> Ok, we will rephrase to provide clarity
“unauthorized traffic such as spoofing, replay, etc.”
</Ilango2>
<END>
On Thu, Oct 11, 2018 at 1:34 PM Ganga, Ilango S <
As a co-author, I believe the document is ready for publication as a
standards track RFC.
Post by Greg Mirsky
Post by Ganga, Ilango S
Thanks,
Ilango
Sent: Tuesday, October 9, 2018 2:08 AM
Subject: Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Post by Greg Mirsky
Post by Ganga, Ilango S
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Post by Greg Mirsky
Post by Ganga, Ilango S
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
Post by Greg Mirsky
Post by Ganga, Ilango S
We are also polling for knowledge of any undisclosed IPR that applies
to this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
Post by Greg Mirsky
Post by Ganga, Ilango S
If you are listed as an Author or a Contributor of this document,
please respond to this email and indicate whether or not you are aware of
any relevant undisclosed IPR. The Document won't progress without answers
from all the Authors and Contributors.
Post by Greg Mirsky
Post by Ganga, Ilango S
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
Post by Greg Mirsky
Post by Ganga, Ilango S
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Jesse Gross
2018-10-26 18:52:29 UTC
Permalink
Hi Greg,

These comments seem to be mostly about the specifics of
draft-brockners-ippm-ioam-geneve rather than the infrastructure that
Geneve provides. I think the best way to address them might be to
direct the comments to the authors of that draft in a separate thread.
That should allow more people to see them rather than being buried in
this thread.

Several of your comments also do not align with my understanding of
draft-brockners-ippm-ioam-geneve - they appear to be referencing
properties of your OAM proposals rather than that which is in the
draft. I would suggest that you re-read the draft to make sure that it
matches what you believe. However, I will defer to the authors of that
draft for further comment.

Jesse
Post by Greg Mirsky
Hi Jesse,
Packets that carry IOAM
data fields in addition to regular data payload / customer traffic
must not set the O bit. Packets that carry only IOAM data fields
without any payload must set the O bit.
That, in my opinion, is confusing and inconsistent. iOAM requests allocation of two Next Protocol values and that should be sufficient. Why the value of O-bit depends on whether there is or there is no data payload immediately following iOAM message? How does that help in processing?
Regards,
Greg
Post by Jesse Gross
Hi Greg,
One example of this use case is described in draft-brockners-ippm-ioam-geneve
Jesse
Post by Greg Mirsky
Hi Ilango, et al.,
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
a transit node MAY process Geneve packets using Geneve layer information. What are scenarios that would require such an option? How that functionality controlled, advertised, and traceable by OAM?
Regards,
Greg
Post by Ganga, Ilango S
Hi Daniel,
Please see my responses inline. I think this should address all your comments.
Thanks,
Ilango
Sent: Wednesday, October 17, 2018 7:28 AM
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi Illango,
Thanks for the response, please see my comments. I believe they can be easily addressed in the next version.
Yours,
Daniel
Sent: Wednesday, October 17, 2018 1:45 AM
Subject: RE: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi Daniel,
Thanks for your review and comments. Please see my responses inline.
Regards,
Ilango
Sent: Friday, October 12, 2018 2:57 PM
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi,
I reviewed the document. Please find my comments below.
Yours,
Daniel
3.4. Tunnel Header Fields
C (1 bit): Critical options present. One or more options has the
critical bit set (see Section 3.5). If this bit is set then
tunnel endpoints MUST parse the options list to interpret any
critical options. On endpoints where option parsing is not
supported the packet MUST be dropped on the basis of the 'C' bit
in the base header. If the bit is not set tunnel endpoints MAY
strip all options using 'Opt Len' and forward the decapsulated
packet.
<mglt>
I am fine with the text, but this may contradict that Opt Len is compared to the sum of option len. (see my comment next section). I guess that is a clarification to be made next section.
</mglt>
<Ilango> The text in this section reads fine; since the option header is defined in next section 3.5, it is appropriate to keep the text in that section. Also, please see response to next section.
</>
<mglt2>I will see the next section. </mglt2>
3.5. Tunnel Options
Type (8 bits): Type indicating the format of the data contained in
this option. Options are primarily designed to encourage future
extensibility and innovation and so standardized forms of these
options will be defined in a separate document.
The high order bit of the option type indicates that this is a
critical option. If the receiving endpoint does not recognize
this option and this bit is set then the packet MUST be dropped.
If the critical bit is set in any option then the 'C' bit in the
Geneve base header MUST also be set. Transit devices MUST NOT
drop packets on the basis of this bit. The following figure shows
0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
|C| Type |
+-+-+-+-+-+-+-+-+
The requirement to drop a packet with an unknown critical option
<mglt>
maybe s/an unknown critical option/an unknown option with the critical bit set would be clearer.
</mglt>
<Ilango> The term critical option is described in section 3.4 and used in 3.5, so use of this term here to refer to an unknown critical option reads fine. Though for consistency with the sentence in section 3.5.1, we could also say “unknown options with C-bit set”.
</>
<mglt2> I am fine with your proposed change. </mglt>
applies to the entire tunnel endpoint system and not a particular
component of the implementation. For example, in a system
comprised of a forwarding ASIC and a general purpose CPU, this
does not mean that the packet must be dropped in the ASIC. An
implementation may send the packet to the CPU using a rate-limited
control channel for slow-path exception handling.
R (3 bits): Option control flags reserved for future use. MUST be
zero on transmission and ignored on receipt.
Length (5 bits): Length of the option, expressed in four byte
multiples excluding the option header. The total length of each
option may be between 4 and 128 bytes. A value of 0 in the Length
field implies an option with only the option header without the
variable option data.
<mglt>
I understand the sentence below as a check between the sum of option length and Opt len. This does not seems related to the treatment of one option, and maybe should be moved up to the description of Opt Len in the Geneve Header section.
<Ilango> This section is where the Tunnel Options are defined hence this is the most appropriate and right place for this text.
</>
<mglt2>I am fine with that as well, as long as you believe that is the right place.</mglt2>
I also have an issue on how to interpret that sentence. When receiving a Geneve Packet, the following sentence prevent from jumping to Opt Len skipping off options. It could be understood as a mandatory check in which case (whether there is a C bit set in the Geneve Header or not) the terminating node to go through all options, read the Length sum them and them compare it to the Opt Len. If such check is mandatory, I am wondering if Opt Len in the Geneve Header is then limited for internal use of the terminating node. If that is something optional, maybe we should explicitly say it, or maybe detail when such comparison is expect to happen.
</mglt>
<Ilango> No, it does not prevent the nodes from skipping the options to reach the start of encapsulated payload. For example a transit node that does not process the options can skip over the options by using the Option length field in the Geneve header. The endpoints that process the options are the ones that need to do this check as stated in this sentence.
“…. invalid and MUST be silently dropped if received by an endpoint that processes the options.”
</>
<mglt2>I believe that is clarifying to add the text you proposed.</mglt2>
Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.
Gross, et al. Expires April 10, 2019 [Page 15]
Internet-Draft Geneve Protocol October 2018
Variable Option Data: Option data interpreted according to 'Type'.
3.5.1. Options Processing
Geneve options are intended to be originated and processed by tunnel
endpoints. However, options MAY be interpreted by transit devices
along the tunnel path. Transit devices not processing Geneve headers
<mglt>
I am reading Genve header as a Geneve option of the Genve header, but not the fixed Geneve header. If that is correct, It may be clearer to use Genve option instead of Geneve header as to avoid confusion on the scope of transit device. From the text above, using Geneve header could mean the fix header, in which case it may make easier to figure out the difference between transit device and tunnel endpoint.
</mglt>
<Ilango> As illustrated clearly in sections 3.1 and 3.2 Geneve header includes fixed length headers and options. So in this statement, Geneve header includes options.
</>
<mglt2>
This is I believe English clarification and English is not my native language, so I am only providing my feed back, but differ to others on what to do.
The statement as I read it says that transit devices MAY interpret options. Which I interprete as the scope of transit device is limited to these options and transit device are not supposed to interprete the fix header.
The following sentence says transit devices not interpreting the Geneve Header….” Which I read as fix header and option. While the statement is true, as header include option, I found it somehow confusing to introduce the fix header at that stage, as my understanding is that transit device are limited to the options.
Re-reading the text I also believe - if that is correct -, we should specify that transit devices MAY treat a subset of the options. </mglt2>
<Ilango2> The header may include options, and a transit device has to interpret the header to get to the options. We will rephrase the text to the following for clarity.
Transit devices not interpreting Geneve headers (that may or may not include Options)
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
</Ilango2>
SHOULD process Geneve packets as any other UDP packet and maintain
consistent forwarding behavior.
In tunnel endpoints, the generation and interpretation of options is
determined by the control plane, which is out of the scope of this
document. However, to ensure interoperability between heterogeneous
devices some requirements are imposed on options and the devices that
o Receiving endpoints MUST drop packets containing unknown options
with the 'C' bit set in the option type. Conversely, transit
devices MUST NOT drop packets as a result of encountering unknown
options, including those with the 'C' bit set.
o Some options may be defined in such a way that the position in the
option list is significant. Options or their ordering, MUST NOT
be changed by transit devices.
o An option MUST NOT affect the parsing or interpretation of any
other option.
<mglt>
In case we have a option providing authentication, such option may affect the interpretation of the other options. s/interpretation/ndependance may not be better.... I think what we want to say is that option MUST be able to be processed in any order or in parallel. I am fine with the text if we do not find something better.
</mglt>
<Ilango> This is a good point, however we believe that this text captures the intent.
</>
<mglt2>The problem I have is that the current text prevents security options, so I guess some clarification should be brought to clarify the intent.</mglt2>
<Ilango2> The intent of this statement is, parsing and interpretation of options is not dependent on one another. It does not preclude processing of any security option.
</Ilango2>
6. Security Considerations
As encapsulated within an UDP/IP packet, Geneve does not have any
inherent security mechanisms. As a result, an attacker with access
to the underlay network transporting the IP packets has the ability
to snoop or inject packets.
<mglt>
I believe that monitoring is also an attack that should be mentioned.
</mglt>
<Ilango> Snooping covers the case of monitoring as well, so I don’t see a need for additional text.
</>
<mglt2>I understood “snoop” as being more active than passive monitoring. I am fine with the text.</mglt2>
Legitimate but malicious tunnel
endpoints may also spoof identifiers in the tunnel header to gain
access to networks owned by other tenants.
<mglt>
I think Legitimate and malicious are not compatible. This is probably a "corrupted legitimate tunnel endpoint. I think we should also add that securing the geneve tunnel cannot prevent this type of threat.
</mglt>
<Ilango> Yes, we could change this to “Compromised endpoints may also spoof ….”.
The next paragraph states that tunnel endpoints should only be operated in environments controlled by the service provider, this could potentially mitigate the threat of endpoints from getting compromised.
</>
Within a particular security domain, such as a data center operated
by a single service provider, the most common and highest performing
security mechanism is isolation of trusted components. Tunnel
traffic can be carried over a separate VLAN and filtered at any
untrusted boundaries. In addition, tunnel endpoints should only be
operated in environments controlled by the service provider, such as
the hypervisor itself rather than within a customer VM.
When crossing an untrusted link, such as the public Internet, IPsec
[RFC4301] may be used to provide authentication and/or encryption of
the IP packets formed as part of Geneve encapsulation.
<mglt>
I understand the first paragraph as the one where the service provider owns the tenant, the geneve overlay as well as the infrastructure in which case, isolation and separation is performed by VLAN. The second paragraph mentions that the previously described data centers can be interconnected using a secure link. I consider this case as the one building a trusted environment to run Geneve overlay.
I believe the security considerations for Geneve may be more focused on Genve itself, that is how the Geneve overlay network may remain secure while not relying on the security provided by the infrastructure. In that extent it help to consider the case where tenants, Geneve overlay provider, infrastructure providers are different entities.
</mglt>
<Ilango>The operator could use multiple security mechanisms, which could span across layers. For example, the operator could very well choose security mechanisms already provided by the underlay to secure their overlay networks. </>
Corrupted legitimate tunnel endpoint is not expected to be addressed by Geneve security mechanisms.
Geneve overlay deployment relies on reliable (trusted) tunnel endpoints. This later point may be achieved in one or the other ways. You provide one way to do it, another way could be simply trusting your infrastructure provider.
I believe that it may be more helpful to explicitly provide a trust model, illustrating it and leave the door open to other solutions. My current reading is that one way is proposed, but we may lack some information to evaluate if other ways can be acceptable as well.</mglt2>
<Ilango2> I am not sure where you are going with this. The intent is to highlight potential risks and outline how to mitigate such risks, this paragraph describes the best practices used to secure a tunnel endpoint. We believe that this is sufficiently illustrated in the description.
</Ilango2>
Geneve does not otherwise affect the security of the encapsulated
packets. As per the guidelines of BCP72 [RFC3552], the following
sections describe potential security risks that may be applicable to
Geneve deployments and approaches to mitigate such risks. It is also
noted that not all such risks are applicable to all Geneve deployment
scenarios, i.e., only a subset may be applicable to certain
deployments. So an operator has to make an assessment based on their
network environment and determine the risks that are applicable to
their specific environment and use appropriate mitigation approaches
as applicable.
Gross, et al. Expires April 10, 2019 [Page 21]
Internet-Draft Geneve Protocol October 2018
6.1. Data Confidentiality
Geneve is a network virtualization overlay encapsulation protocol
designed to establish tunnels between network virtualization end
points (NVE) over an existing IP network. It can be used to deploy
multi-tenant overlay networks over an existing IP underlay network in
a public or private data center. The overlay service is typically
provided by a service provider, for example a cloud services provider
or a private data center operator.
<mglt>
The text above seems to assume that the service overlay is always provided by the cloud provider (i.e. infrastructure provider). I do not believe this assumption is always true.
A company may sell a system based on Geneve and may be willing to provide some protection against the infrastructure provider.
</mglt>
<Ilango> Yes, “typically” means not always, but it is the most common use case.</>
<mglt2> I believe it is good we mention a use case we envisioned as being the most common use case, but I also think the security consideration should not only be based on one deployment. </mglt2>
<Ilango2> We will add the following statement to the end of this paragraph for clarification.
“This may or not may be the same provider as an underlay service provider”
</Ilango2>
Due to the nature of multi-
tenancy in such environments, a tenant system may expect data
confidentiality to ensure its packet data is not tampered with
(active attack) in transit or a target of unauthorized monitoring
(passive attack). A tenant may expect the overlay service provider
to provide data confidentiality as part of the service or a tenant
may bring its own data confidentiality mechanisms like IPsec or TLS
to protect the data end to end between its tenant systems.
<mglt>
When a tenant is securing its communication using TLS or IPsec, there are still some metadata that the Geneve overlay MAY protect - typically (IP, ports).
</mglt>
<Ilango> The intent of this statement is a tenant may bring its own data confidentiality mechanism to protect its data without relying on the service provider. This is irrespective of security mechanisms provided by the service provider.</>
<mglt2>I would suggest that we clearly state that data confidentiality provided by the tenant does not prevent the geneve overlay to provide it. From my reading of the text, it seems that tenant security is sufficient.I believe that is a bit misleading. </mglt2>
<Ilango2>The text does not preclude a service provider to provide security mechanisms when the tenant brings its own security. I am not sure where you are getting this interpretation. If needed we can remove the last sentence of the second paragraph, if that addresses your concern.
<Delete the following sentence from the end of next paragraph>
The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
</Ilango2>
If an operator determines data confidentiality is necessary in their
environment based on their risk analysis, for example as in multi-
tenant environments, then an encryption mechanism SHOULD be used to
encrypt the tenant data end to end between the NVEs. The NVEs may
use existing well established encryption mechanisms such as IPsec,
DTLs, etc., The operator may choose not to enable the encryption if,
for example, the packet data is already encrypted by the tenant
system.
6.1.1. Inter-data center traffic
A tenant system in a customer premises (private data center) may want
to connect to tenant systems on their tenant overlay network in a
public cloud data center or a tenant may want to have its tenant
systems located in multiple geographically separated data centers for
high availability. Geneve data traffic between tenant systems across
such separated networks should be protected from threats when
traversing public networks. Any Geneve overlay data leaving the data
center network beyond the operator's security domain, for example
over the public Internet, SHOULD be secured by encryption mechanisms
such as IPsec or other VPN mechanisms to protect the communications
between the NVEs when they are geographically separated over
untrusted network links. Implementation of specific data protection
mechanisms employed between data centers is beyond the scope of this
document.
<mglt>
I see that inter-data center traffic protection is more IP traffic protection than specific to Geneve. I think we can also safely go for a MUST be secured when the traffic is sent to the wild Internet.
</mglt>
<Ilango> Inter-data center need not always mean internet, for example it could be dedicated secure links. In which case the operator may decide to rely on the underlying security of the dedicated links, so we believe “SHOULD” is more appropriate here.</>
<mglt2>I am reading this as two different implementations of a secure link between the data center. The requirement is that this link MUST be secured. One way to provide a secure link is to have a dedicated line in which case we SHOULD encrypt the traffic. Another way to establish a connection over the internet in which case the traffic MUST be encrypted.
I believe it would help to clarify why SHOULD is mentioned here. One reason of the confusion is that only the link over internet is mentioned. </mglt2>
<Ilango2>The operator based on their risk assessment should enable appropriate security mechanism.
We could remove “for example over public Internet” from this sentence and this should address your concern.
</Ilango2>
6.2. Data Integrity
Geneve encapsulation is used between NVEs to establish overlay
tunnels over an existing IP underlay network. In a multi-tenant data
center, a rogue or compromised tenant system may try to launch a
Gross, et al. Expires April 10, 2019 [Page 22]
Internet-Draft Geneve Protocol October 2018
passive attack such as monitoring the traffic of other tenants, or an
active attack such as spoofing or trying to inject unauthorized
Geneve encapsulated traffic into the network. To prevent such
attacks, an NVE MUST not propagate Geneve packets beyond the NVE to
tenant systems and SHOULD employ packet filtering mechanisms so as
not to forward unauthorized traffic between TSs in different tenant
networks.
<mglt>I believe that replayed traffic is also unauthorized in this case and may be considered in the description.</mglt>
<Ilango> Unauthorized traffic should include all type of unauthorized traffic including traffic such as spoofing, replay, etc.,. This is minor editorial, if need be we could rephrase to provide clarity “unauthorized traffic such as spoofing, replay, etc.”
</>
<mglt2>I agree this is minor editorial, but the use of UDP eases such attacks, so I think it is important this appears in the security consideration.</mglt2>
<Ilango2> Ok, we will rephrase to provide clarity
“unauthorized traffic such as spoofing, replay, etc.”
</Ilango2>
<END>
As a co-author, I believe the document is ready for publication as a standards track RFC.
Thanks,
Ilango
Sent: Tuesday, October 9, 2018 2:08 AM
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
T. Sridhar
2018-10-12 23:15:37 UTC
Permalink
As a co-author, I believe that the draft is ready for publication as a standards track RFC.

Thanks,
Sridhar


From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org>
Cc: draft-ietf-nvo3-***@ietf.org
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
Jon Hudson
2018-10-13 00:46:30 UTC
Permalink
Hello,

I am not aware of any undisclosed IPR related to draft-ietf-nvo3-geneve.


Thanks
Jon

You may have mail
Post by T. Sridhar
As a co-author, I believe that the draft is ready for publication as a standards track RFC.
Thanks,
Sridhar
Sent: Tuesday, October 9, 2018 2:08 AM
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Anoop Ghanwani
2018-10-13 18:54:09 UTC
Permalink
I have a few comments.

Thanks,
Anoop

--

section 3.5
Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.
what if none of the options are critical and the implementation is choosing
to remove the options headers without even processing them? does this
still apply? if so, it would be good to call it out.

section 4.1
what is the guidance for ttl? like dscp, there is also a uniform and pipe
model for ttl.

section 4.1.3
may be helpful to add a reference to rfc 8293.

editorial
- endpoint, tunnel endpoint, geneve endpoint are used interchangeably.
also endpoint and end point. suggest change all to "tunnel endpoint" which
is the only term defined.
- in the definition of ECMP, change:
while avoiding reordering a single stream. ->
while avoiding reordering of packets within a flow.
(stream is not used or defined anywhere else.)
- transit and non-terminating are used interchangeably. suggest change to
transit which is defined.
- section 3.5.1
Options or their ordering, ... -> Options, or their ordering, ...
- section 5
"(VXLAN, NVGRE )" has an extra space
- section 6.1
DTLs -> DTLS
- section 6.2
change implementation to specification in the text below.
Implementation of such a mechanism is beyond the scope of this
document.
- section 6.3

Authentication mechanism -> authentication mechanism
Post by Ganga, Ilango S
*Sent:* Tuesday, October 9, 2018 2:08 AM
*Subject:* Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to
this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please
respond to this email and indicate whether or not you are aware of any
relevant undisclosed IPR. The Document won't progress without answers from
all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Ganga, Ilango S
2018-10-21 15:40:29 UTC
Permalink
Hi Anoop,

Thanks for your review and comments. Please see my responses inline.

Regards,
Ilango

From: nvo3 [mailto:nvo3-***@ietf.org] On Behalf Of Anoop Ghanwani
Sent: Saturday, October 13, 2018 11:54 AM
To: ***@ietf.org
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

I have a few comments.

Thanks,
Anoop
--
section 3.5
Packets in which the total length of all

options is not equal to the 'Opt Len' in the base header are

invalid and MUST be silently dropped if received by an endpoint.
what if none of the options are critical and the implementation is choosing to remove the options headers without even processing them? does this still apply? if so, it would be good to call it out.

<Ilango> The intent of this statement is for endpoints that processes the options to drop such packets, this is not applicable for endpoints that do not process the options. For better clarity, we will add clarifying text to the end of sentence as follows:

“invalid and MUST be silently dropped if received by an endpoint that processes the options.”
</>

section 4.1
what is the guidance for ttl? like dscp, there is also a uniform and pipe model for ttl.

<Ilango> You bring up a good point, we will add text outlining TTL behavior to the end of section 4.1.2 as follows:

4.1.2. DSCP, ECN and TTL
<Add the following paragraph at the end of section 4.1.2 >
Though Uniform or Pipe models could be used for TTL (or Hop Limit in case of IPv6) handling when tunneling IP packets, Pipe model is more aligned with network virtualization. [RFC 2003] provides guidance on handling TTL between inner IP header and outer IP tunnels; this model is more aligned with the Pipe model and is recommended for use with Geneve for network virtualization applications.
</>

section 4.1.3
may be helpful to add a reference to rfc 8293.

<Ilango> Yes, it could be useful to provide an informative reference to 8293, to the end of section 4.1.3 as follows:

“In addition, [RFC 8293] provides examples of various mechanisms that can be used for multicast handling in network virtualization overlay networks.”
</>


<Ilango> We will address the following Editorial items as appropriate to make it consistent.
</>
Editorial
- endpoint, tunnel endpoint, geneve endpoint are used interchangeably. also endpoint and end point. suggest change all to "tunnel endpoint" which is the only term defined.
- in the definition of ECMP, change:
while avoiding reordering a single stream. ->
while avoiding reordering of packets within a flow.
(stream is not used or defined anywhere else.)
- transit and non-terminating are used interchangeably. suggest change to transit which is defined.
- section 3.5.1
Options or their ordering, ... -> Options, or their ordering, ...
- section 5
"(VXLAN, NVGRE )" has an extra space
- section 6.1
DTLs -> DTLS
- section 6.2
change implementation to specification in the text below.
Implementation of such a mechanism is beyond the scope of this

document.
- section 6.3

Authentication mechanism -> authentication mechanism




From: Bocci, Matthew (Nokia - GB) [mailto:***@nokia.com]
Sent: Tuesday, October 9, 2018 2:08 AM
To: NVO3 <***@ietf.org<mailto:***@ietf.org>>
Cc: draft-ietf-nvo3-***@ietf.org<mailto:draft-ietf-nvo3-***@ietf.org>
Subject: Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.

Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.

Currently there are two IPR disclosures against this document.

If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
Anoop Ghanwani
2018-10-21 21:28:30 UTC
Permalink
Thanks Ilango. Your response below addresses all of my comments.

Anoop
Post by Ganga, Ilango S
Hi Anoop,
Thanks for your review and comments. Please see my responses inline.
Regards,
Ilango
*Sent:* Saturday, October 13, 2018 11:54 AM
*Subject:* Re: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
I have a few comments.
Thanks,
Anoop
--
section 3.5
Packets in which the total length of all
options is not equal to the 'Opt Len' in the base header are
invalid and MUST be silently dropped if received by an endpoint.
what if none of the options are critical and the implementation is
choosing to remove the options headers without even processing them? does
this still apply? if so, it would be good to call it out.
<Ilango> The intent of this statement is for endpoints that processes the
options to drop such packets, this is not applicable for endpoints that do
not process the options. For better clarity, we will add clarifying text to
“invalid and MUST be silently dropped if received by an endpoint *that
processes the options*.”
</>
section 4.1
what is the guidance for ttl? like dscp, there is also a uniform and pipe model for ttl.
<Ilango> You bring up a good point, we will add text outlining TTL
4.1.2. DSCP, ECN *and TTL*
<Add the following paragraph at the end of section 4.1.2 >
Though Uniform or Pipe models could be used for TTL (or Hop Limit in case
of IPv6) handling when tunneling IP packets, Pipe model is more aligned
with network virtualization. [RFC 2003] provides guidance on handling TTL
between inner IP header and outer IP tunnels; this model is more aligned
with the Pipe model and is recommended for use with Geneve for network
virtualization applications.
</>
section 4.1.3
may be helpful to add a reference to rfc 8293.
<Ilango> Yes, it could be useful to provide an informative reference to
“In addition, [RFC 8293] provides examples of various mechanisms that can
be used for multicast handling in network virtualization overlay
networks.”
</>
<Ilango> We will address the following Editorial items as appropriate to
make it consistent.
</>
Editorial
- endpoint, tunnel endpoint, geneve endpoint are used interchangeably.
also endpoint and end point. suggest change all to "tunnel endpoint" which
is the only term defined.
while avoiding reordering a single stream. ->
while avoiding reordering of packets within a flow.
(stream is not used or defined anywhere else.)
- transit and non-terminating are used interchangeably. suggest change to
transit which is defined.
- section 3.5.1
Options or their ordering, ... -> Options, or their ordering, ...
- section 5
"(VXLAN, NVGRE )" has an extra space
- section 6.1
DTLs -> DTLS
- section 6.2
change implementation to specification in the text below.
Implementation of such a mechanism is beyond the scope of this
document.
- section 6.3
Authentication mechanism -> authentication mechanism
*Sent:* Tuesday, October 9, 2018 2:08 AM
*Subject:* Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to
this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please
respond to this email and indicate whether or not you are aware of any
relevant undisclosed IPR. The Document won't progress without answers from
all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Greg Mirsky
2018-10-16 01:01:16 UTC
Permalink
Dear All,
I am concerned that the current definition of O-bit contradicts the
definition of the Protocol Type field. Consider that O-bit defined as:
O (1 bit): OAM packet. This packet contains a control message
instead of a data payload.
My interpretation, please correct me if it is wrong, is that the O-bit
indicates that a message that immediately follows the Geneve header is
OAM command or data. But that is what the Protocol Type field is for:
Protocol Type (16 bits): The type of the protocol data unit
appearing after the Geneve header.
What is the precedence processing O-bit and the Protocol Type values?
Should the specification explain how to interpret the value of the Protocol
type field when O-bit is set? If the value of the Protocol Type field is
equivalent to None, i.e., no message following the Geneve header, can O-bit
be set to indicate that one of TLVs includes OAM? If that is the valid
case, then the current definition of O-bit is not complete as it does not
mention OAM in TLV case.

And I have to point to an overall lack of discussion of OAM in the
specification.

Regards,
Greg

On Tue, Oct 9, 2018 at 2:08 AM Bocci, Matthew (Nokia - GB) <
Post by Bocci, Matthew (Nokia - GB)
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to
this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please
respond to this email and indicate whether or not you are aware of any
relevant undisclosed IPR. The Document won't progress without answers from
all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Jesse Gross
2018-10-17 18:31:17 UTC
Permalink
Greg,

The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.

In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
flagged packets is described in the draft:

Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.

The 'O' bit does not otherwise change the interpretation of the packet.

Jesse
Post by Greg Mirsky
Dear All,
O (1 bit): OAM packet. This packet contains a control message
instead of a data payload.
My interpretation, please correct me if it is wrong, is that the O-bit indicates that a message that immediately follows the Geneve header is
Protocol Type (16 bits): The type of the protocol data unit
appearing after the Geneve header.
What is the precedence processing O-bit and the Protocol Type values? Should the specification explain how to interpret the value of the Protocol type field when O-bit is set? If the value of the Protocol Type field is equivalent to None, i.e., no message following the Geneve header, can O-bit be set to indicate that one of TLVs includes OAM? If that is the valid case, then the current definition of O-bit is not complete as it does not mention OAM in TLV case.
And I have to point to an overall lack of discussion of OAM in the specification.
Regards,
Greg
Post by Bocci, Matthew (Nokia - GB)
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Greg Mirsky
2018-10-17 20:32:41 UTC
Permalink
Hi Jesse,
thank you for the very detailed explanation of how authors understand the
role of O-bit and its relationship with an OAM packet. Please find my notes
in-line tagged GIM>>.

Regards,
Greg
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
GIM>> If understand you correctly, O-bit indicates presence of OAM TLV(s)
not the type of the payload. But, in my opinion, that is not how the O-bit
is currently defined:
O (1 bit): OAM packet. This packet contains a control message instead of
a data payload.
The definition is the definition of a packet in active OAM per RFC 7799 but
your description suggests that the O-bit only characterizes the content of
TLVs, not of the payload of the Geneve packet. Would you agree?
GIM>> In addition, yes, TLV may be used to implement OAM but, as I believe,
it would not support all requirements usually set for OAM. For example,
because the length of the Value field is limited TLV could not support
testing with synthetic packets of large size. You can find more details in
draft-mirsky-rtgwg-oam-identify
<https://tools.ietf.org/html/draft-mirsky-rtgwg-oam-identify-00>.
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit devices"? Is
it node in Geneve layer or is it a node in the underlay network. If it is
the latter, then the requirement is just re-stating layer preservation. If
it is the former, then it appears to prohibit tracing OAM operation on
multi-segment Geneve tunnel.
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the packet.
GIMM> I disagree. At least as the curreent definition of the O-bit states -
O-bit defines the payload of the Geneve packet.
Post by Jesse Gross
Jesse
Post by Greg Mirsky
Dear All,
I am concerned that the current definition of O-bit contradicts the
O (1 bit): OAM packet. This packet contains a control message
instead of a data payload.
My interpretation, please correct me if it is wrong, is that the O-bit
indicates that a message that immediately follows the Geneve header is
Post by Greg Mirsky
Protocol Type (16 bits): The type of the protocol data unit
appearing after the Geneve header.
What is the precedence processing O-bit and the Protocol Type values?
Should the specification explain how to interpret the value of the Protocol
type field when O-bit is set? If the value of the Protocol Type field is
equivalent to None, i.e., no message following the Geneve header, can O-bit
be set to indicate that one of TLVs includes OAM? If that is the valid
case, then the current definition of O-bit is not complete as it does not
mention OAM in TLV case.
Post by Greg Mirsky
And I have to point to an overall lack of discussion of OAM in the
specification.
Post by Greg Mirsky
Regards,
Greg
On Tue, Oct 9, 2018 at 2:08 AM Bocci, Matthew (Nokia - GB) <
Post by Bocci, Matthew (Nokia - GB)
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
We are also polling for knowledge of any undisclosed IPR that applies
to this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
If you are listed as an Author or a Contributor of this document,
please respond to this email and indicate whether or not you are aware of
any relevant undisclosed IPR. The Document won't progress without answers
from all the Authors and Contributors.
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Jesse Gross
2018-10-17 21:13:53 UTC
Permalink
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
O (1 bit): OAM packet. This packet contains a control message instead of a data payload.
The definition is the definition of a packet in active OAM per RFC 7799 but your description suggests that the O-bit only characterizes the content of TLVs, not of the payload of the Geneve packet. Would you agree?
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.

I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
GIM>> In addition, yes, TLV may be used to implement OAM but, as I believe, it would not support all requirements usually set for OAM. For example, because the length of the Value field is limited TLV could not support testing with synthetic packets of large size. You can find more details in draft-mirsky-rtgwg-oam-identify.
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.

Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit devices"? Is it node in Geneve layer or is it a node in the underlay network. If it is the latter, then the requirement is just re-stating layer preservation. If it is the former, then it appears to prohibit tracing OAM operation on multi-segment Geneve tunnel.
The draft defines a transit device as:

Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.

i.e. it is a node in the underlay.
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the packet.
GIMM> I disagree. At least as the curreent definition of the O-bit states - O-bit defines the payload of the Geneve packet.
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Greg Mirsky
2018-10-18 15:21:06 UTC
Permalink
Hi Jesse,
thank you for kind consideration of my comments and I'm looking forward to
the updated definition of the O-bit flag. In the meantime, I'll note that
using the flag to indicate that the payload, e.g., Ethernet frame of IP
packet, contains OAM message, e.g., CCM or BFD, seems unnecessary to me.
Consider that Ethernet uses EtherTypeand IP uses port number to demultiplex
OAM. I imagine that the egress Geneve node will terminate a packet and
realize that the payload, the frame or the packet, is addressed to it. Then
the type will be properly identified and acted upon. In MPLS we use IP/UDP
encapsulation for BFD and Ping, and over VXLAN have to add Ethernet header
to IP/UDP encapsulated BFD control message. At the same time, MPLS label
stack may include GAL special label that indicates that the label stack is
followed by the Generic Associated Channel header, which includes the
Channel Type field to demultiplex the payload. In this case, IP/UDP
encapsulation is not used.
Apologies if my example came out too wordy. My point is that if Geneve
identifies the payload as OAM, there's no an apparent benefit in having the
payload encapsulated in one of the network layers.

Regards,
Greg
Post by Greg Mirsky
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
GIM>> If understand you correctly, O-bit indicates presence of OAM
TLV(s) not the type of the payload. But, in my opinion, that is not how the
Post by Greg Mirsky
O (1 bit): OAM packet. This packet contains a control message instead
of a data payload.
Post by Greg Mirsky
The definition is the definition of a packet in active OAM per RFC 7799
but your description suggests that the O-bit only characterizes the content
of TLVs, not of the payload of the Geneve packet. Would you agree?
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.
I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
Post by Greg Mirsky
GIM>> In addition, yes, TLV may be used to implement OAM but, as I
believe, it would not support all requirements usually set for OAM. For
example, because the length of the Value field is limited TLV could not
support testing with synthetic packets of large size. You can find more
details in draft-mirsky-rtgwg-oam-identify.
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.
Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Greg Mirsky
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit devices"?
Is it node in Geneve layer or is it a node in the underlay network. If it
is the latter, then the requirement is just re-stating layer preservation.
If it is the former, then it appears to prohibit tracing OAM operation on
multi-segment Geneve tunnel.
Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.
i.e. it is a node in the underlay.
Post by Greg Mirsky
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the packet.
GIMM> I disagree. At least as the curreent definition of the O-bit
states - O-bit defines the payload of the Geneve packet.
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Bocci, Matthew (Nokia - GB)
2018-10-19 10:26:33 UTC
Permalink
Greg, Jesse

Is there any value in renaming the O bit to something more generic to indicate that it is really acting as an exception mechanism to tell the terminating NVE to process the packet in its control plane, rather than forward it or imply something about the protocol. It seems that its function is more aligned with the GAL or ‘0001b’ nibble in the PW-ACH.

Matthew




From: Greg Mirsky <***@gmail.com>
Date: Thursday, 18 October 2018 at 16:21
To: "***@kernel.org" <***@kernel.org>
Cc: "Bocci, Matthew (Nokia - GB)" <***@nokia.com>, NVO3 <***@ietf.org>, "draft-ietf-nvo3-***@ietf.org" <draft-ietf-nvo3-***@ietf.org>
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt

Hi Jesse,
thank you for kind consideration of my comments and I'm looking forward to the updated definition of the O-bit flag. In the meantime, I'll note that using the flag to indicate that the payload, e.g., Ethernet frame of IP packet, contains OAM message, e.g., CCM or BFD, seems unnecessary to me. Consider that Ethernet uses EtherTypeand IP uses port number to demultiplex OAM. I imagine that the egress Geneve node will terminate a packet and realize that the payload, the frame or the packet, is addressed to it. Then the type will be properly identified and acted upon. In MPLS we use IP/UDP encapsulation for BFD and Ping, and over VXLAN have to add Ethernet header to IP/UDP encapsulated BFD control message. At the same time, MPLS label stack may include GAL special label that indicates that the label stack is followed by the Generic Associated Channel header, which includes the Channel Type field to demultiplex the payload. In this case, IP/UDP encapsulation is not used.
Apologies if my example came out too wordy. My point is that if Geneve identifies the payload as OAM, there's no an apparent benefit in having the payload encapsulated in one of the network layers.

Regards,
Greg
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
O (1 bit): OAM packet. This packet contains a control message instead of a data payload.
The definition is the definition of a packet in active OAM per RFC 7799 but your description suggests that the O-bit only characterizes the content of TLVs, not of the payload of the Geneve packet. Would you agree?
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.

I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
GIM>> In addition, yes, TLV may be used to implement OAM but, as I believe, it would not support all requirements usually set for OAM. For example, because the length of the Value field is limited TLV could not support testing with synthetic packets of large size. You can find more details in draft-mirsky-rtgwg-oam-identify.
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.

Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit devices"? Is it node in Geneve layer or is it a node in the underlay network. If it is the latter, then the requirement is just re-stating layer preservation. If it is the former, then it appears to prohibit tracing OAM operation on multi-segment Geneve tunnel.
The draft defines a transit device as:

Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.

i.e. it is a node in the underlay.
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the packet.
GIMM> I disagree. At least as the curreent definition of the O-bit states - O-bit defines the payload of the Geneve packet.
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Greg Mirsky
2018-10-19 20:52:56 UTC
Permalink
Hi Matthew,
a very promising idea, thank you. But I'll note that "not all OAM packets
created equal", i.e., some, like BFD, usually don't go to the control plane
and handled by a bump-in-a-wire of specialized ACIS altogether. If we are
entertaining the idea to re-purpose the O-bit, may I propose the following:

- remove references to OAM from the Geneve specification and handle OAM
in the separate document (I already have an idea to use EtherType OAM and
light Geneve OAM shim to demux OAM protocols);
- regarding the O-bit I see two options:
- either release it to the Reserved pool;
- or re-name as Mark and one of the possible users would be the
Alternate Marking method.

Regards,
Greg

On Fri, Oct 19, 2018 at 3:26 AM Bocci, Matthew (Nokia - GB) <
Post by Bocci, Matthew (Nokia - GB)
Greg, Jesse
Is there any value in renaming the O bit to something more generic to
indicate that it is really acting as an exception mechanism to tell the
terminating NVE to process the packet in its control plane, rather than
forward it or imply something about the protocol. It seems that its
function is more aligned with the GAL or ‘0001b’ nibble in the PW-ACH.
Matthew
*Date: *Thursday, 18 October 2018 at 16:21
*Subject: *Re: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Hi Jesse,
thank you for kind consideration of my comments and I'm looking forward to
the updated definition of the O-bit flag. In the meantime, I'll note that
using the flag to indicate that the payload, e.g., Ethernet frame of IP
packet, contains OAM message, e.g., CCM or BFD, seems unnecessary to me.
Consider that Ethernet uses EtherTypeand IP uses port number to demultiplex
OAM. I imagine that the egress Geneve node will terminate a packet and
realize that the payload, the frame or the packet, is addressed to it. Then
the type will be properly identified and acted upon. In MPLS we use IP/UDP
encapsulation for BFD and Ping, and over VXLAN have to add Ethernet header
to IP/UDP encapsulated BFD control message. At the same time, MPLS label
stack may include GAL special label that indicates that the label stack is
followed by the Generic Associated Channel header, which includes the
Channel Type field to demultiplex the payload. In this case, IP/UDP
encapsulation is not used.
Apologies if my example came out too wordy. My point is that if Geneve
identifies the payload as OAM, there's no an apparent benefit in having the
payload encapsulated in one of the network layers.
Regards,
Greg
Post by Greg Mirsky
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
GIM>> If understand you correctly, O-bit indicates presence of OAM
TLV(s) not the type of the payload. But, in my opinion, that is not how the
Post by Greg Mirsky
O (1 bit): OAM packet. This packet contains a control message instead
of a data payload.
Post by Greg Mirsky
The definition is the definition of a packet in active OAM per RFC 7799
but your description suggests that the O-bit only characterizes the content
of TLVs, not of the payload of the Geneve packet. Would you agree?
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.
I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
Post by Greg Mirsky
GIM>> In addition, yes, TLV may be used to implement OAM but, as I
believe, it would not support all requirements usually set for OAM. For
example, because the length of the Value field is limited TLV could not
support testing with synthetic packets of large size. You can find more
details in draft-mirsky-rtgwg-oam-identify.
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.
Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Greg Mirsky
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit devices"?
Is it node in Geneve layer or is it a node in the underlay network. If it
is the latter, then the requirement is just re-stating layer preservation..
If it is the former, then it appears to prohibit tracing OAM operation on
multi-segment Geneve tunnel.
Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.
i.e. it is a node in the underlay.
Post by Greg Mirsky
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the packet..
GIMM> I disagree. At least as the curreent definition of the O-bit
states - O-bit defines the payload of the Geneve packet.
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Jesse Gross
2018-10-25 22:24:42 UTC
Permalink
Hi Matthew,

Thank you for the suggestion. We've been thinking about it and believe
that this can address everyone's concerns. The description of this bit
already references control messages rather than OAM, so that name
seems like a more accurate reflection of its purpose. It also allows
the flexibility for OAM to be specified separately by not commingling
the two concepts, as Greg mentioned.

We will edit the text to read:

O (1 bit): Control packet. This packet contains a control message.
Control messages are sent between
Geneve endpoints. Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.

Jesse

On Fri, Oct 19, 2018 at 3:26 AM Bocci, Matthew (Nokia - GB)
Post by Bocci, Matthew (Nokia - GB)
Greg, Jesse
Is there any value in renaming the O bit to something more generic to indicate that it is really acting as an exception mechanism to tell the terminating NVE to process the packet in its control plane, rather than forward it or imply something about the protocol. It seems that its function is more aligned with the GAL or ‘0001b’ nibble in the PW-ACH.
Matthew
Date: Thursday, 18 October 2018 at 16:21
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi Jesse,
thank you for kind consideration of my comments and I'm looking forward to the updated definition of the O-bit flag. In the meantime, I'll note that using the flag to indicate that the payload, e.g., Ethernet frame of IP packet, contains OAM message, e.g., CCM or BFD, seems unnecessary to me. Consider that Ethernet uses EtherTypeand IP uses port number to demultiplex OAM. I imagine that the egress Geneve node will terminate a packet and realize that the payload, the frame or the packet, is addressed to it. Then the type will be properly identified and acted upon. In MPLS we use IP/UDP encapsulation for BFD and Ping, and over VXLAN have to add Ethernet header to IP/UDP encapsulated BFD control message. At the same time, MPLS label stack may include GAL special label that indicates that the label stack is followed by the Generic Associated Channel header, which includes the Channel Type field to demultiplex the payload. In this case, IP/UDP encapsulation is not used.
Apologies if my example came out too wordy. My point is that if Geneve identifies the payload as OAM, there's no an apparent benefit in having the payload encapsulated in one of the network layers.
Regards,
Greg
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
O (1 bit): OAM packet. This packet contains a control message instead of a data payload.
The definition is the definition of a packet in active OAM per RFC 7799 but your description suggests that the O-bit only characterizes the content of TLVs, not of the payload of the Geneve packet. Would you agree?
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.
I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
GIM>> In addition, yes, TLV may be used to implement OAM but, as I believe, it would not support all requirements usually set for OAM. For example, because the length of the Value field is limited TLV could not support testing with synthetic packets of large size. You can find more details in draft-mirsky-rtgwg-oam-identify.
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.
Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit devices"? Is it node in Geneve layer or is it a node in the underlay network. If it is the latter, then the requirement is just re-stating layer preservation. If it is the former, then it appears to prohibit tracing OAM operation on multi-segment Geneve tunnel.
Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.
i.e. it is a node in the underlay.
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the packet.
GIMM> I disagree. At least as the curreent definition of the O-bit states - O-bit defines the payload of the Geneve packet.
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Greg Mirsky
2018-10-26 03:35:43 UTC
Permalink
Hi Jesse,
I think that directing the O-bit to identify the presence of "a control
message" would require the definition of the control message or, at least,
some examples. Another question may arise to the interpretation of "packet
contains a control message". Can other, non-control messages, be present in
the packet with O-bit set? I can only re-state my proposal I've shared
earlier:

- release O-bit to Reserved pool
- defer discussion of OAM in Geneve to the future work.

Regards,
Greg
Post by Greg Mirsky
Hi Matthew,
Thank you for the suggestion. We've been thinking about it and believe
that this can address everyone's concerns. The description of this bit
already references control messages rather than OAM, so that name
seems like a more accurate reflection of its purpose. It also allows
the flexibility for OAM to be specified separately by not commingling
the two concepts, as Greg mentioned.
O (1 bit): Control packet. This packet contains a control message.
Control messages are sent between
Geneve endpoints. Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
Jesse
On Fri, Oct 19, 2018 at 3:26 AM Bocci, Matthew (Nokia - GB)
Post by Bocci, Matthew (Nokia - GB)
Greg, Jesse
Is there any value in renaming the O bit to something more generic to
indicate that it is really acting as an exception mechanism to tell the
terminating NVE to process the packet in its control plane, rather than
forward it or imply something about the protocol. It seems that its
function is more aligned with the GAL or ‘0001b’ nibble in the PW-ACH.
Post by Bocci, Matthew (Nokia - GB)
Matthew
Date: Thursday, 18 October 2018 at 16:21
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Post by Bocci, Matthew (Nokia - GB)
Hi Jesse,
thank you for kind consideration of my comments and I'm looking forward
to the updated definition of the O-bit flag. In the meantime, I'll note
that using the flag to indicate that the payload, e.g., Ethernet frame of
IP packet, contains OAM message, e.g., CCM or BFD, seems unnecessary to me.
Consider that Ethernet uses EtherTypeand IP uses port number to demultiplex
OAM. I imagine that the egress Geneve node will terminate a packet and
realize that the payload, the frame or the packet, is addressed to it. Then
the type will be properly identified and acted upon. In MPLS we use IP/UDP
encapsulation for BFD and Ping, and over VXLAN have to add Ethernet header
to IP/UDP encapsulated BFD control message. At the same time, MPLS label
stack may include GAL special label that indicates that the label stack is
followed by the Generic Associated Channel header, which includes the
Channel Type field to demultiplex the payload. In this case, IP/UDP
encapsulation is not used.
Post by Bocci, Matthew (Nokia - GB)
Apologies if my example came out too wordy. My point is that if Geneve
identifies the payload as OAM, there's no an apparent benefit in having the
payload encapsulated in one of the network layers.
Post by Bocci, Matthew (Nokia - GB)
Regards,
Greg
Post by Greg Mirsky
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
GIM>> If understand you correctly, O-bit indicates presence of OAM
TLV(s) not the type of the payload. But, in my opinion, that is not how the
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
O (1 bit): OAM packet. This packet contains a control message
instead of a data payload.
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
The definition is the definition of a packet in active OAM per RFC
7799 but your description suggests that the O-bit only characterizes the
content of TLVs, not of the payload of the Geneve packet. Would you agree?
Post by Bocci, Matthew (Nokia - GB)
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.
I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
Post by Greg Mirsky
GIM>> In addition, yes, TLV may be used to implement OAM but, as I
believe, it would not support all requirements usually set for OAM. For
example, because the length of the Value field is limited TLV could not
support testing with synthetic packets of large size. You can find more
details in draft-mirsky-rtgwg-oam-identify.
Post by Bocci, Matthew (Nokia - GB)
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.
Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Greg Mirsky
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose
CPU
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit
devices"? Is it node in Geneve layer or is it a node in the underlay
network. If it is the latter, then the requirement is just re-stating layer
preservation. If it is the former, then it appears to prohibit tracing OAM
operation on multi-segment Geneve tunnel.
Post by Bocci, Matthew (Nokia - GB)
Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.
i.e. it is a node in the underlay.
Post by Greg Mirsky
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the
packet.
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
GIMM> I disagree. At least as the curreent definition of the O-bit
states - O-bit defines the payload of the Geneve packet.
Post by Bocci, Matthew (Nokia - GB)
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Jesse Gross
2018-10-26 18:58:55 UTC
Permalink
Hi Greg,

I believe that the rewording of the text previously sent out addresses
the bulk of your concerns in a balanced way. It both clarifies the
role of the payload and leaves flexibility for specifying OAM to
additional drafts to flesh out. As far as going further and actually
removing the bit from the base specification, I'm not comfortable
making that change at this point in time. This bit has existed in the
protocol for quite some time and I personally don't see that there is
consensus within the working group for making the change that you are
proposing. I think we need to table this discussion for now unless
there is further support for modifying it.

Jesse
Post by Greg Mirsky
Hi Jesse,
release O-bit to Reserved pool
defer discussion of OAM in Geneve to the future work.
Regards,
Greg
Post by Greg Mirsky
Hi Matthew,
Thank you for the suggestion. We've been thinking about it and believe
that this can address everyone's concerns. The description of this bit
already references control messages rather than OAM, so that name
seems like a more accurate reflection of its purpose. It also allows
the flexibility for OAM to be specified separately by not commingling
the two concepts, as Greg mentioned.
O (1 bit): Control packet. This packet contains a control message.
Control messages are sent between
Geneve endpoints. Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
Jesse
On Fri, Oct 19, 2018 at 3:26 AM Bocci, Matthew (Nokia - GB)
Post by Bocci, Matthew (Nokia - GB)
Greg, Jesse
Is there any value in renaming the O bit to something more generic to indicate that it is really acting as an exception mechanism to tell the terminating NVE to process the packet in its control plane, rather than forward it or imply something about the protocol. It seems that its function is more aligned with the GAL or ‘0001b’ nibble in the PW-ACH.
Matthew
Date: Thursday, 18 October 2018 at 16:21
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt
Hi Jesse,
thank you for kind consideration of my comments and I'm looking forward to the updated definition of the O-bit flag. In the meantime, I'll note that using the flag to indicate that the payload, e.g., Ethernet frame of IP packet, contains OAM message, e.g., CCM or BFD, seems unnecessary to me. Consider that Ethernet uses EtherTypeand IP uses port number to demultiplex OAM. I imagine that the egress Geneve node will terminate a packet and realize that the payload, the frame or the packet, is addressed to it. Then the type will be properly identified and acted upon. In MPLS we use IP/UDP encapsulation for BFD and Ping, and over VXLAN have to add Ethernet header to IP/UDP encapsulated BFD control message. At the same time, MPLS label stack may include GAL special label that indicates that the label stack is followed by the Generic Associated Channel header, which includes the Channel Type field to demultiplex the payload. In this case, IP/UDP encapsulation is not used.
Apologies if my example came out too wordy. My point is that if Geneve identifies the payload as OAM, there's no an apparent benefit in having the payload encapsulated in one of the network layers.
Regards,
Greg
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload could
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this situation,
the Protocol Type would still indicate the type of the stub packet as
usual. It is also possible to implement OAM using the payload of the
packet as you describe and the Protocol Type would indicate that using
an EtherType assigned for this purpose.
O (1 bit): OAM packet. This packet contains a control message instead of a data payload.
The definition is the definition of a packet in active OAM per RFC 7799 but your description suggests that the O-bit only characterizes the content of TLVs, not of the payload of the Geneve packet. Would you agree?
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.
I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
GIM>> In addition, yes, TLV may be used to implement OAM but, as I believe, it would not support all requirements usually set for OAM. For example, because the length of the Value field is limited TLV could not support testing with synthetic packets of large size. You can find more details in draft-mirsky-rtgwg-oam-identify.
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.
Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most devices
are oblivious to this and will simply use the Protocol Type field to
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit devices"? Is it node in Geneve layer or is it a node in the underlay network. If it is the latter, then the requirement is just re-stating layer preservation. If it is the former, then it appears to prohibit tracing OAM operation on multi-segment Geneve tunnel.
Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.
i.e. it is a node in the underlay.
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the packet.
GIMM> I disagree. At least as the curreent definition of the O-bit states - O-bit defines the payload of the Geneve packet.
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Greg Mirsky
2018-10-31 16:28:53 UTC
Permalink
Hi Jesse,
I appreciate the work you've put into responding to my comments, but I
don't feel that the new proposed text regarding the O-bit addresses them.
Looking forward to the discussion in Bangkok.

Regards,
Greg
Post by Jesse Gross
Hi Greg,
I believe that the rewording of the text previously sent out addresses
the bulk of your concerns in a balanced way. It both clarifies the
role of the payload and leaves flexibility for specifying OAM to
additional drafts to flesh out. As far as going further and actually
removing the bit from the base specification, I'm not comfortable
making that change at this point in time. This bit has existed in the
protocol for quite some time and I personally don't see that there is
consensus within the working group for making the change that you are
proposing. I think we need to table this discussion for now unless
there is further support for modifying it.
Jesse
Post by Greg Mirsky
Hi Jesse,
I think that directing the O-bit to identify the presence of "a control
message" would require the definition of the control message or, at least,
some examples. Another question may arise to the interpretation of "packet
contains a control message". Can other, non-control messages, be present in
the packet with O-bit set? I can only re-state my proposal I've shared
Post by Greg Mirsky
release O-bit to Reserved pool
defer discussion of OAM in Geneve to the future work.
Regards,
Greg
Post by Greg Mirsky
Hi Matthew,
Thank you for the suggestion. We've been thinking about it and believe
that this can address everyone's concerns. The description of this bit
already references control messages rather than OAM, so that name
seems like a more accurate reflection of its purpose. It also allows
the flexibility for OAM to be specified separately by not commingling
the two concepts, as Greg mentioned.
O (1 bit): Control packet. This packet contains a control message..
Control messages are sent between
Geneve endpoints. Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it.
Since these are infrequent control messages, it is RECOMMENDED
that endpoints direct these packets to a high priority control
queue (for example, to direct the packet to a general purpose CPU
from a forwarding ASIC or to separate out control traffic on a
NIC). Transit devices MUST NOT alter forwarding behavior on the
basis of this bit, such as ECMP link selection.
Jesse
On Fri, Oct 19, 2018 at 3:26 AM Bocci, Matthew (Nokia - GB)
Post by Bocci, Matthew (Nokia - GB)
Greg, Jesse
Is there any value in renaming the O bit to something more generic to
indicate that it is really acting as an exception mechanism to tell the
terminating NVE to process the packet in its control plane, rather than
forward it or imply something about the protocol. It seems that its
function is more aligned with the GAL or ‘0001b’ nibble in the PW-ACH.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Matthew
Date: Thursday, 18 October 2018 at 16:21
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for
draft-ietf-nvo3-geneve-08.txt
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Hi Jesse,
thank you for kind consideration of my comments and I'm looking
forward to the updated definition of the O-bit flag. In the meantime, I'll
note that using the flag to indicate that the payload, e.g., Ethernet frame
of IP packet, contains OAM message, e.g., CCM or BFD, seems unnecessary to
me. Consider that Ethernet uses EtherTypeand IP uses port number to
demultiplex OAM. I imagine that the egress Geneve node will terminate a
packet and realize that the payload, the frame or the packet, is addressed
to it. Then the type will be properly identified and acted upon. In MPLS we
use IP/UDP encapsulation for BFD and Ping, and over VXLAN have to add
Ethernet header to IP/UDP encapsulated BFD control message. At the same
time, MPLS label stack may include GAL special label that indicates that
the label stack is followed by the Generic Associated Channel header, which
includes the Channel Type field to demultiplex the payload. In this case,
IP/UDP encapsulation is not used.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Apologies if my example came out too wordy. My point is that if
Geneve identifies the payload as OAM, there's no an apparent benefit in
having the payload encapsulated in one of the network layers.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Regards,
Greg
Post by Greg Mirsky
Post by Jesse Gross
Greg,
The 'O' bit does not override or interact with the Protocol Type
field, so there is no issue with precedence. It is possible to
implement OAM on Geneve using options, in which case the payload
could
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
be a stub of a packet to ensure consistent behavior between OAM and
data packets as has been done with other protocols. In this
situation,
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
the Protocol Type would still indicate the type of the stub packet
as
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
usual. It is also possible to implement OAM using the payload of
the
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
packet as you describe and the Protocol Type would indicate that
using
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
an EtherType assigned for this purpose.
GIM>> If understand you correctly, O-bit indicates presence of OAM
TLV(s) not the type of the payload. But, in my opinion, that is not how the
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
O (1 bit): OAM packet. This packet contains a control message
instead of a data payload.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
The definition is the definition of a packet in active OAM per RFC
7799 but your description suggests that the O-bit only characterizes the
content of TLVs, not of the payload of the Geneve packet. Would you agree?
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
No, I am not saying that the bit indicates the presence of OAM TLVs.
TLVs are always processed in the usual way by looking at the Opt Len
field and the individual TLV header fields. The 'O' bit does not
change this, similar to how it does not change the Protocol Type
field.
I think we can rework the first sentence to simply say something like
"This packet is a control message." As you point out, the text about
"instead of a data payload" is confusing because the bit does not
impact the processing of the payload.
Post by Greg Mirsky
GIM>> In addition, yes, TLV may be used to implement OAM but, as I
believe, it would not support all requirements usually set for OAM. For
example, because the length of the Value field is limited TLV could not
support testing with synthetic packets of large size. You can find more
details in draft-mirsky-rtgwg-oam-identify.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
This is a good example of a use for a stub of packet that I mentioned
earlier. However, that does not mean that the OAM instructions also
need to be in the payload. They can still be in a TLV and then a
synthetic payload is present. I believe that this is the cleanest
implementation because it keeps everything consistent between OAM and
non-OAM packets and active and passive OAM.
Although I prefer the use of TLVs for OAM, it is possible to implement
OAM using a shim layer in the payload as well - Geneve has the
flexibility to do it both ways and the behavior of the 'O' bit remains
the same.
Post by Greg Mirsky
Post by Jesse Gross
In either case, the meaning of the 'O' bit is the same and it only
affects the behavior of endpoint devices processing OAM. Most
devices
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
are oblivious to this and will simply use the Protocol Type field
to
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
process the payload as usual. The appropriate behavior for 'O' bit
Endpoints MUST NOT forward the payload and
transit devices MUST NOT attempt to interpret or process it..
Since these are infrequent control messages, it is
RECOMMENDED
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
that endpoints direct these packets to a high priority
control
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
queue (for example, to direct the packet to a general
purpose CPU
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
from a forwarding ASIC or to separate out control traffic on
a
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
NIC). Transit devices MUST NOT alter forwarding behavior on
the
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
Post by Jesse Gross
basis of this bit, such as ECMP link selection.
GIM>> Could you please clarify what is considered as "transit
devices"? Is it node in Geneve layer or is it a node in the underlay
network. If it is the latter, then the requirement is just re-stating layer
preservation. If it is the former, then it appears to prohibit tracing OAM
operation on multi-segment Geneve tunnel.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Transit device. A forwarding element along the path of the tunnel
making up part of the Underlay Network. A transit device MAY be
capable of understanding the Geneve packet format but does not
originate or terminate Geneve packets.
i.e. it is a node in the underlay.
Post by Greg Mirsky
Post by Jesse Gross
The 'O' bit does not otherwise change the interpretation of the
packet.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
Post by Greg Mirsky
GIMM> I disagree. At least as the curreent definition of the O-bit
states - O-bit defines the payload of the Geneve packet.
Post by Greg Mirsky
Post by Greg Mirsky
Post by Bocci, Matthew (Nokia - GB)
I think by changing the first sentence as I suggested above, we can
correct this. The intention is that the 'O' bit only has the effects
quoted above.
Jesse Gross
2018-10-17 19:05:11 UTC
Permalink
As a coauthor, I believe the document is ready for publication as a
standards track RFC after addressing the comments from Daniel and
Anoop (which should not cause significant change).

Jesse
On Tue, Oct 9, 2018 at 2:14 AM Bocci, Matthew (Nokia - GB)
Post by Bocci, Matthew (Nokia - GB)
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
Tal Mizrahi
2018-10-22 12:41:47 UTC
Permalink
Hi,


A couple of comments:


1. I want to thank the authors for addressing the comments about the
Security Considerations section of the previous version of the draft.

2. Regarding the IANA Considerations section:

a. [RFC5226] was obsoleted by [RFC8126].

b. I believe that requiring “IETF Review” is too stringent; “Expert
Review” would make more sense in my opinion.



Therefore, I would suggest the following change:

OLD:

The identifiers 0x0-0xFF are to be reserved for standardized options for
allocation by IETF Review [RFC5226]

NEW:

The identifiers 0x0-0xFF are to be allocated by Expert Review, according to
Section 4.5 of [RFC8126]

Cheers,
Tal.

On Tue, Oct 9, 2018, 12:08 Bocci, Matthew (Nokia - GB) <
Post by Bocci, Matthew (Nokia - GB)
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to
this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please
respond to this email and indicate whether or not you are aware of any
relevant undisclosed IPR. The Document won't progress without answers from
all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Ganga, Ilango S
2018-10-25 15:39:31 UTC
Permalink
Hi Tal,

Thanks for your review. Please see my responses inline.

Regards,
Ilango

From: Tal Mizrahi [mailto:***@gmail.com]
Sent: Monday, October 22, 2018 5:42 AM
To: Bocci, Matthew (Nokia - GB) <***@nokia.com>
Cc: NVO3 <***@ietf.org>; draft-ietf-nvo3-***@ietf.org
Subject: Re: [nvo3] Working Group Last Call and IPR Poll for draft-ietf-nvo3-geneve-08.txt


Hi,



A couple of comments:



1. I want to thank the authors for addressing the comments about the Security Considerations section of the previous version of the draft.



<Ilango> Glad to know that the new version addresses your previous comments on security considerations section.



2. Regarding the IANA Considerations section:

a. [RFC5226] was obsoleted by [RFC8126].



<Ilango> We will update the reference to [RFC8126]



b. I believe that requiring “IETF Review” is too stringent; “Expert Review” would make more sense in my opinion.

<Ilango> We don’t see a good reason to change this policy. Only the range 0x00-0xFF is reserved for standardized options under IETF Review. We already have a large range (0x0100- 0xFFEF) that is available under a very lenient policy (First Come First Served), so it is hard to see the overall policy as being too stringent.

Therefore, I would suggest the following change:

OLD:

The identifiers 0x0-0xFF are to be reserved for standardized options for allocation by IETF Review [RFC5226]

NEW:

The identifiers 0x0-0xFF are to be allocated by Expert Review, according to Section 4.5 of [RFC8126]

Cheers,
Tal.

On Tue, Oct 9, 2018, 12:08 Bocci, Matthew (Nokia - GB) <***@nokia.com<mailto:***@nokia.com>> wrote:
This email begins a two-week working group last call for draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group list. If you have read the latest version of the draft but have no comments and believe it is ready for publication as a standards track RFC, please also indicate so to the WG email list.

We are also polling for knowledge of any undisclosed IPR that applies to this document, to ensure that IPR has been disclosed in compliance with IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please explicitly respond only if you are aware of any IPR that has not yet been disclosed in conformance with IETF rules.

This poll will run until Friday 26th October.

Regards

Matthew and Sam
_______________________________________________
nvo3 mailing list
***@ietf.org<mailto:***@ietf.org>
https://www.ietf.org/mailman/listinfo/nvo3
Chris Wright
2018-10-22 19:43:02 UTC
Permalink
Post by Bocci, Matthew (Nokia - GB)
If you are listed as an Author or a Contributor of this document, please respond to this email and indicate whether or not you are aware of any relevant undisclosed IPR. The Document won't progress without answers from all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
I am unaware of any relevant undisclosed IPR.

thanks,
-chris
Dinesh Dutt
2018-10-22 18:23:25 UTC
Permalink
I'm not aware of any undisclosed IPR that's relevant,

Dinesh

On Tue, Oct 9, 2018 at 2:08 AM Bocci, Matthew (Nokia - GB) <
Post by Bocci, Matthew (Nokia - GB)
This email begins a two-week working group last call for
draft-ietf-nvo3-geneve-08.txt.
Please review the draft and post any comments to the NVO3 working group
list. If you have read the latest version of the draft but have no comments
and believe it is ready for publication as a standards track RFC, please
also indicate so to the WG email list.
We are also polling for knowledge of any undisclosed IPR that applies to
this document, to ensure that IPR has been disclosed in compliance with
IETF IPR rules (see RFCs 3979, 4879, 3669 and 5378 for more details).
If you are listed as an Author or a Contributor of this document, please
respond to this email and indicate whether or not you are aware of any
relevant undisclosed IPR. The Document won't progress without answers from
all the Authors and Contributors.
Currently there are two IPR disclosures against this document.
If you are not listed as an Author or a Contributor, then please
explicitly respond only if you are aware of any IPR that has not yet been
disclosed in conformance with IETF rules.
This poll will run until Friday 26th October.
Regards
Matthew and Sam
_______________________________________________
nvo3 mailing list
https://www.ietf.org/mailman/listinfo/nvo3
Loading...