Hi,
I have not reviewed this draft before, but triggered by this email, and briefly scanning through a couple of sections, it is unclear to me how some of the mechanics work.
There are some major issues with the Mac usage and association, as Joel Halpern mentioned in his Rtg Dir review.
And, additionally, please consider the following comments and questions:
1. Underspecification for initialization and initial demultiplexing.
This document allows multiple BFD sessions between a single pair of VTEPs:
An
implementation that supports this specification MUST be able to
control the number of BFD sessions that can be created between the
same pair of VTEPs.
The implication of this is that BFD single-hop initialization procedures will not work. Instead, there is a need to map the initial demultiplexing.
This issue is explained in RFCs 5882 and 5883: https://tools.ietf.org/html/rfc5883#section-4 and https://tools.ietf.org/html/rfc5882#section-6
Section 5.1 says:
For such packets, the BFD session MUST be identified
using the inner headers, i.e., the source IP, the destination IP, and
the source UDP port number present in the IP header carried by the
payload of the VXLAN encapsulated packet. The VNI of the packet
SHOULD be used to derive interface-related information for
demultiplexing the packet.
But this does not really explain how to do the initial demultiplexing. Does each BFD session need to have a separate inner source IP address? Or source UDP port? And how ofter are they recycled or kept as state? How are these mapped?
Equally importantly, which side is Active?
And what if there’s a race condition with both sides being Active and setting up redundant sessions?
1.b. By the way, based on this, using S-BFD [RFC 7880] might be easier to demux.
2. Security
This document says that the TTL in the inner packet carrying BFD is set to 1. However, RFC 5880 says to use GTSM [RFC 5082], i.e., a value of 255.
Why is GTSM not used here?
3. ECMP and fate-sharing under-specification:
Section 4.1. says:
The Outer IP/UDP
and VXLAN headers MUST be encoded by the sender as defined in
[RFC7348].
- Source Port: It is recommended that the UDP source port number
be calculated using a hash of fields from the inner packet --
one example being a hash of the inner Ethernet frame's headers.
This is to enable a level of entropy for the ECMP/load-
balancing of the VM-to-VM traffic across the VXLAN overlay.
When calculating the UDP source port number in this manner, it
is RECOMMENDED that the value be in the dynamic/private port
range 49152-65535 [RFC6335].
Based on this, depending on the hashing calculation, the outer source UDP port can be different leading to different ECMP treatment. Does something else need to be specified here in regards to the outer UDP source port? 4. Section 7 says that “ Support for echo BFD is outside the scope of this document”.
Assuming this means “BFD Echo mode”, why is this out of scope? If this is a single logical hop underneath VXLAN, what’s preventing the use of Echo? Echo’s benefits are huge.
5. Terminology
Implementations SHOULD ensure that the BFD
packets follow the same lookup path as VXLAN data packets within the
sender system.
What is a “look up path within a sender system”?
6. Deployment scenarios
S3 says:
Figure 1 illustrates the scenario with two servers, each of them
hosting two VMs. The servers host VTEPs that terminate two VXLAN
[…] Figure 1: Reference VXLAN Domain
However, RFC 7348 Figure 3 lists that as one deployment scenario, not as “the scenario” and “The Reference VXLAN Domain”. Best,
Carlos.
|