On 8/1/16 4:21 PM, Alia Atlas wrote:


On Mon, Aug 1, 2016 at 6:35 PM, Tom Herbert <t...@herbertland.com <mailto:t...@herbertland.com>> wrote:

    On Mon, Aug 1, 2016 at 2:59 PM, Fabio Maino <fma...@cisco.com
    <mailto:fma...@cisco.com>> wrote:
    > On 7/29/16 6:38 PM, Jesse Gross wrote:
    >>>
    >>> On Jul 29, 2016, at 4:39 PM, Fabio Maino <fma...@cisco.com
    <mailto:fma...@cisco.com>> wrote:
    >>>
    >>> On 7/29/16 12:44 PM, Jesse Gross wrote:
    >>>>>
    >>>>> On Jul 29, 2016, at 12:17 PM, Fabio Maino <fma...@cisco.com
    <mailto:fma...@cisco.com>> wrote:
    >>>>>
    >>>>> On 7/29/16 11:45 AM, Tom Herbert wrote:
    >>>>>>
    >>>>>> On Jul 29, 2016 11:12 AM, "Fabio Maino" <fma...@cisco.com
    <mailto:fma...@cisco.com>> wrote:
    >>>>>>>
    >>>>>>> On 7/27/16 1:43 PM, Tom Herbert wrote:
    >>>>>>>>
    >>>>>>>> On Wed, Jul 27, 2016 at 1:15 PM, Fabio Maino
    <fma...@cisco.com <mailto:fma...@cisco.com>>
    >>>>>>>> wrote:
    >>>>>>>>>
    >>>>>>>>> On 7/27/16 12:27 PM, Tom Herbert wrote:
    >>>>>>>>>>
    >>>>>>>>>> On Wed, Jul 27, 2016 at 11:00 AM, Fabio Maino
    <fma...@cisco.com <mailto:fma...@cisco.com>>
    >>>>>>>>>> wrote:
    >>>>>>>>>>>
    >>>>>>>>>>> On 7/27/16 10:53 AM, Tom Herbert wrote:
    >>>>>>>>>>>>
    >>>>>>>>>>>> On Wed, Jul 27, 2016 at 10:44 AM, Dino Farinacci
    >>>>>>>>>>>> <farina...@gmail.com <mailto:farina...@gmail.com>>
    >>>>>>>>>>>> wrote:
    >>>>>>>>>>>>>>
    >>>>>>>>>>>>>> On Jul 26, 2016, at 3:11 PM, Fabio Maino (fmaino)
    >>>>>>>>>>>>>> <fma...@cisco.com <mailto:fma...@cisco.com>>
    >>>>>>>>>>>>>> wrote:
    >>>>>>>>>>>>>>>
    >>>>>>>>>>>>>>> On 7/26/16 12:08 PM, Dino Farinacci wrote:
    >>>>>>>>>>>>>>>>>
    >>>>>>>>>>>>>>>>> Having VXLAN as an Independent Stream RFC gives
    a document
    >>>>>>>>>>>>>>>>> to be
    >>>>>>>>>>>>>>>>> used
    >>>>>>>>>>>>>>>>> to
    >>>>>>>>>>>>>>>>> innovate from.   I believe that was the intent
    of VXLAN-GPE
    >>>>>>>>>>>>>>>>> - to
    >>>>>>>>>>>>>>>>> provide the ability
    >>>>>>>>>>>>>>>>> for needed extensions.
    >>>>>>>>>>>>>>>>
    >>>>>>>>>>>>>>>> The only new feature the VXLAN-GPE brings to the
    table is a
    >>>>>>>>>>>>>>>> way to
    >>>>>>>>>>>>>>>> identify that NSH is being encapsulated.
    >>>>>>>>>>>>>>>
    >>>>>>>>>>>>>>> or any other shim header, NSH just happens to be one.
    >>>>>>>>>>>>>>
    >>>>>>>>>>>>>> Precisely.  GPE addresses the limitation associated
    with
    >>>>>>>>>>>>>> VXLAN, namely
    >>>>>>>>>>>>>> the lack of multi-protocol support.  As we've seen
    on the
    >>>>>>>>>>>>>> list, other
    >>>>>>>>>>>>>> protocols have come up: MPLS for example.
    >>>>>>>>>>>>>
    >>>>>>>>>>>>> This is technically not true. As long as you are
    willing to
    >>>>>>>>>>>>> spend 14
    >>>>>>>>>>>>> bytes on a MAC header, then anything with an
    ethertype can be
    >>>>>>>>>>>>> encapsulated
    >>>>>>>>>>>>> with VXLAN.
    >>>>>>>>>>>>>
    >>>>>>>>>>>>> And I have working code that encapsulates both IPv4
    and IPv6 in
    >>>>>>>>>>>>> VXLAN
    >>>>>>>>>>>>> with ethertypes 0x0800 and 0x86dd, respectively.
    >>>>>>>>>>>>>
    >>>>>>>>>>>>>> There are some other technical benefits as well:
    version and
    >>>>>>>>>>>>>> OAM.
    >>>>>>>>>>>>
    >>>>>>>>>>>> As do Geneve and GUE. But this thread is not about
    touting the
    >>>>>>>>>>>> features of these protocols, it is about the technical
    >>>>>>>>>>>> objections to
    >>>>>>>>>>>> them. My major objections (from the list I posted) to
    VXLAN-GPE
    >>>>>>>>>>>> is
    >>>>>>>>>>>> that it has no extensibility and offers no security
    of the VNI.
    >>>>>>>>>>>> These
    >>>>>>>>>>>> are showstoppers in my deployment.
    >>>>>>>>>>>
    >>>>>>>>>>>
    >>>>>>>>>>> Tom,
    >>>>>>>>>>>
    >>>>>>>>>>> extensibility is achieved via shim header:
    >>>>>>>>>>>
    >>>>>>>>>>> - if you want to carry end to end metadata you can
    define the
    >>>>>>>>>>> appropriate
    >>>>>>>>>>> shim header
    >>>>>>>>>>>
    >>>>>>>>>>> - If you want to protect the integrity of the VNI, you can
    >>>>>>>>>>> include an
    >>>>>>>>>>> HMAC
    >>>>>>>>>>> of the VNI in the shim header
    >>>>>>>>>>>
    >>>>>>>>>> Please point me to the specification where this shim
    header with
    >>>>>>>>>> the
    >>>>>>>>>> HMAC is described and add a reference to it in the security
    >>>>>>>>>> considerations section of the VXLAN-GPE draft.
    >>>>>>>>>
    >>>>>>>>> Hi Tom,
    >>>>>>>>> there are a lot of use cases that can be addressed with shim
    >>>>>>>>> headers, and
    >>>>>>>>> each solution may look fairly different depending on the
    >>>>>>>>> requirements.
    >>>>>>>>>
    >>>>>>>> The security option including the specific header format is
    >>>>>>>> described
    >>>>>>>> in draft-herbert-gue-extensions. You can use the same
    data format.
    >>>>>>>>
    >>>>>>>>> Can you point me to an nvo3 specification of what are the
    >>>>>>>>> requirements that
    >>>>>>>>> need to be addressed to provide VNI integrity
    protection? If the
    >>>>>>>>> requirements are the same you used for GUE, the shim
    header could
    >>>>>>>>> use an
    >>>>>>>>> encoding similar to the GUE security option.
    >>>>>>>>>
    >>>>>>>> Section 6.2 of draft-ietf-nvo3-security-requirements
    describes the
    >>>>>>>> dataplane requirements. The most important requirement of
    nvo3 is to
    >>>>>>>> maintain strict isolation between tenant virtual
    networks. The
    >>>>>>>> problem
    >>>>>>>> is exacerbated in UDP encapsulation since any non privileged
    >>>>>>>> application can send a UDP packet to any port thereby
    making it
    >>>>>>>> easier
    >>>>>>>> to inject packets into a virtual network than in a
    non-UDP based
    >>>>>>>> encap
    >>>>>>>> protocol like nvgre. In our large scale network we need
    strong
    >>>>>>>> mechanisms to guarantee this isolation; Ethernet CRC and
    network
    >>>>>>>> mechanisms like firewalls or address spoofing are not
    sufficient for
    >>>>>>>> multi-tenant nv security.
    >>>>>>>
    >>>>>>> Tom,
    >>>>>>> I went back and re-read the draft. Requirement 10, that is
    the one
    >>>>>>> that seems relevant here, is not a MUST. From that
    standpoint VXLAN-GPE does
    >>>>>>> comply with that draft.
    >>>>>>>
    >>>>>>> I don't want to argue that there are use cases where
    authenticaton of
    >>>>>>> the VNI might be useful, but certainly there are others
    where it isn't.
    >>>>>>> Otherwise the WG would have settled for a MUST there.
    >>>>>>>
    >>>>>>> In the design of VXLAN-GPE we have choosen to not burden
    the cost of
    >>>>>>> ALL the implementations with a mandatory authentication
    field. However,
    >>>>>>> thanks to VXLAN-GPE flexibility and extensibility, this
    function can be
    >>>>>>> added via shim header.
    >>>>>>>
    >>>>>>>
    >>>>>>>>> Lacking the requirement document, I'm sure we can add a
    paragraph
    >>>>>>>>> in the
    >>>>>>>>> security section that describes how it can be done.
    >>>>>>>>>
    >>>>>>>> Please be specific in that. If you just say "use NSH"
    that is not
    >>>>>>>> helpful at all to your potential implementors or users.
    If we were
    >>>>>>>> to
    >>>>>>>> implement security we need to know the exact bits that
    are set in
    >>>>>>>> the
    >>>>>>>> packet.
    >>>>>>>>
    >>>>>>>> Tom
    >>>>>>>
    >>>>>>>
    >>>>>>> That should not go in the VXLAN-GPE draft. All that draft
    needs to
    >>>>>>> specify is that there might be a following shim header.
    The VXLAN-GPE draft
    >>>>>>> does that today.
    >>>>>>>
    >>>>>>> if I read your comment right, you seem to agree that it
    can be done.
    >>>>>>> Is this your MAJOR objection to VXLAN-GPE? If we were to
    specify such a
    >>>>>>> draft, would that change your opinion in supporting
    VXLAN-GPE for WG
    >>>>>>> adoption?
    >>>>>>>
    >>>>>> My major objections are lack of security and extensibility. The
    >>>>>> counter argument seems to be use a shim header for security
    or extensions,
    >>>>>> but there has never be any specifics offered (I have asked
    several times now
    >>>>>> how to implement a 64 bit security cookie in VXLAN-GPE).
    Also the security
    >>>>>> considerations section in the draft provides no useful
    guidance.
    >>>>>>
    >>>>>> In my data center if we are going to commit to using a
    protocol for
    >>>>>> the long term (like if we buy into HW support), I need to
    believe it is
    >>>>>> adaptable to face changing security risks and new
    technologies. I know how
    >>>>>> to extend GUE and in fact we have useful extensions
    defined. I believe I
    >>>>>> would know how to extend Geneve, although I still wish
    there were some
    >>>>>> standard TLVs spec'ed. However, I don't know how extend
    VXLAN-GPE. I can't
    >>>>>> afford to find out two years from now that I need switch
    protocols because
    >>>>>> we can't adapt the running protocol. This is particularly
    true in data
    >>>>>> center security, the demands for strong security mechanisms
    will only be
    >>>>>> increasing-- I need a protocol that can deal with that...
    >>>>>>
    >>>>>> This is all just my opinion of course :-)
    >>>>>>
    >>>>> I think that the point at hand here is that the AD is
    pushing the WG to
    >>>>> have a discussion on which encapsulations should be selected
    for standard
    >>>>> track. What should guide that decision are the requirements
    emerging from
    >>>>> the set of documents that are adopted by the WG.
    >>>>>
    >>>>> As I said in the previous message, IMO VXLAN-GPE does
    address the
    >>>>> security requirements as expressed in
    draft-ietf-nvo3-security-requirements.
    >>>>> I note that you have not objected to that point.
    >>>>>
    >>>>> Also, I pointed to NSH as ONE example of how VXLAN-GPE can
    be extended
    >>>>> using a shim header. NSH implements SFC and metadata
    transport. Looking at
    >>>>> what NSH + VXLAN-GPE achieves, it makes fairly hard to
    maintain that
    >>>>> VXLAN-GPE is not extensible. Extensibility is achieved via
    layering. It
    >>>>> might not be the same way extensibility is achieved by the
    other contenders,
    >>>>> but it's a fairly established way to design protocols.
    >>>>>
    >>>>> I think this should answer the objections to security and
    extensibility
    >>>>> for the purpose of the selection of an nvo3 encapsulation.
    >>>>
    >>>> The issue with shim headers is that introducing a new one
    breaks the
    >>>> ability of existing implementations to parse the packet.
    There are a lot of
    >>>> use cases where just being able to get to the packet data is
    hugely useful -
    >>>> a NIC steering incoming frames to a VM shouldn’t need to be
    modified for
    >>>> every use case. Even simple examples like tcpdump/Wireshark
    benefit from
    >>>> this - it’s really useful to be able to generally get a look
    at a packet
    >>>> even if it doesn’t understand everything. With both Geneve
    and GUE this is
    >>>> possible but not with the design that you are describing with
    VXLAN-GPE.
    >>>
    >>> That approach forces your customers to pay upfront for the cost of
    >>> buffering metadata that their devices don't know how to
    handle, and/or they
    >>> may never use. To implement a new feature, you'll need buffers
    AND logic.
    >>>
    >>> Even if you allocate buffer in advance (before the feature is
    specified),
    >>> you'll have to spin a new version of the HW to add the logic
    that addresses
    >>> that new feature.
    >>>
    >>> In this sense VXLAN-GPE allows an implementor to be sensible in
    >>> allocating resources, by using only the buffer space that is
    actually needed
    >>> by that specific implementation.
    >>>
    >>> I suspect that the result of the pressure of cost on
    implementations will
    >>> be such that, some HW implementations of Geneve, may implement
    only the
    >>> basic functions,  restricting to very few, if any, support for
    variable
    >>> length options. Packets with unknown options will be
    eventually punted to
    >>> the slow path, and vendors will claim support for the protocol.
    >>>
    >>> This is not very different from how an unknown shim header will be
    >>> handled. Flexibility and HW implementations might be a bit of
    a unicorn…
    >>
    >> I think that you are making some specific assumptions about the
    types of
    >> implementations here. In particular, you are assuming that the
    only device
    >> class is a fixed-function switching ASIC. The comments don’t
    really apply to
    >> software, NICs, or even the more programmable switching ASICs
    that are
    >> starting to come out.
    >>
    >> In that specific situation, I agree that it doesn’t make sense
    to include
    >> elements of an implementation that can’t be usefully deployed.
    However, in
    >> cases where the device would need to be respun to include new
    logic, I doubt
    >> that anyone would prematurely include vestigal pieces that
    would drive up
    >> the cost. They would simply implement the support as necessary
    and the cost
    >> would reflect what the device is capable of doing. This is
    similar to
    >> VXLAN-GPE in that regard.
    >>
    >> However, I don’t believe that networks consist exclusively of fixed
    >> switching ASICs. As I mentioned before, there are many other
    components that
    >> can take advantage of extensibility. I don’t see that it is
    necessary to
    >> deny them those benefits even if some devices may need to be
    incrementally
    >> respun.
    >
    >
    > This diverse base of implementation platforms is, IMO, what
    makes hard to
    > select a single encap for the nvo3 use case.  A feature of the
    protocol that
    > might be a benefit for one platform, introduces significant
    > costs/disadvantages when deployed in another one.
    >
    Can you give a specific example of a feature that demonstrates this?
    With regards to extensibility I am not seeing why using NSH has lower
    costs or fewer disadvantages to deploy compared to flag-fields in GUE
    or even TLVs in Geneve...


[Alia] Do recall that the question is around significant technical concerns that must be addressed. It isn't whether one approach is "better" or "easier" for a
particular deployment scenario as compared to another.

The major concern comes from selecting a single MUST implement encapsulation that has the option to include hundreds of bytes of unstructured, variable length metadata. Such a feature is fairly unfriendly to implement in fixed switching ASICs.

Considerations on implementability of an approach is, in my opinion, a very significant technical concern in selecting a standard.


Fabio


Regards,
Alia

    Tom

    > Fabio
    >
    >
    >
    >>
    >>>> What you are describing is essentially the same as IPv6 extension
    >>>> headers vs. IPv4 options. Anecdotally, I’ve seen a lot more
    bugs in
    >>>> implementations of IPv6 extension headers even in very common
    cases. The
    >>>> reason is that with IPv6, it’s necessary to traverse
    different shim headers,
    >>>> which themselves have different locations of next protocol
    field is, etc. At
    >>>> least with IPv4, getting to the data is very simple and
    consistent.
    >>>
    >>> This is actually a good example for the counter argument: many
    vendors
    >>> couldn't justify the cost of supporting IPv4 option in the
    fast path, and
    >>> packet with IP options, in many implementations, were punted
    to the slow
    >>> path. This quickly drove developers to abandon use of IP
    options in their
    >>> applications, as it was almost a guarantee to send their flows
    in the slow
    >>> path. Some time too much flexibility is bad (especially when
    cost is an
    >>> issue).
    >>>
    >>> For IPv6 extension headers, use cases will determine (are
    determining)
    >>> which ones are worth the extra cost in the fast path and
    vendors will act
    >>> accordingly. Fittest options will survive…
    >>
    >> Yes, I certainly agree that vendors will act according to the
    needs that
    >> they see in the market. I think it’s been said a number of
    times in the
    >> working group that extensibility is a “use it or lose it” type
    of thing.
    >> Since IP options didn’t have immediate important uses when it
    was first
    >> being implemented, there was little sense in handling them. In
    contrast, TCP
    >> options are alive and well these days because there are good
    uses for them.
    >> I know that TCP is generally implemented in software instead of
    hardware but
    >> I can assure you the desire to take shortcuts is plenty strong
    in the
    >> software industry.
    >>
    >> In the specific case of Geneve, I gave some information about
    some of the
    >> implementations I’ve personally seen and their capabilities a
    while back
    >>
    (https://mailarchive.ietf.org/arch/msg/nvo3/HTSXROpKwman1Bd4fAlmmfZF_P8).
    >> Since options are the core reason for Geneve existing (it’s the
    main thing
    >> that separates it from VXLAN), there’s been much more awareness
    that it is
    >> important and useful to implement them.
    >>
    >>>> To make this very concrete: I know that there a number of NIC
    vendors
    >>>> that have implemented support for VXLAN-GPE offloading
    already. If a shim
    >>>> header was introduced to add VNI security as you are
    describing, these
    >>>> offloads would suddenly become useless. That does not seem
    like a very good
    >>>> definition of extensibility to me.
    >>>
    >>>
    >>> Similarly to those vendors that might have implemented Geneve
    in the fast
    >>> path, and want to add support for a new optional extension.
    With the
    >>> difference that their customers will have paid already for the
    cost of extra
    >>> buffering even in the first release that had no support for
    that new option.
    >>
    >> In the specific example that I gave (NICs), that is not really
    true. As
    >> new Geneve options are introduced the existing cards will
    continue to work
    >> (GUE also has this property). This is because these offloads
    are primarily
    >> operating on the payload while the option logic is handled in
    the host CPU.
    >> For server-based tunnel termination this ability to continue to
    offload as
    >> the protocol evolves is a significant benefit.
    >
    >
    >

    _______________________________________________
    nvo3 mailing list
    nvo3@ietf.org <mailto:nvo3@ietf.org>
    https://www.ietf.org/mailman/listinfo/nvo3



_______________________________________________
nvo3 mailing list
nvo3@ietf.org
https://www.ietf.org/mailman/listinfo/nvo3

Reply via email to