-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
4.19.z, 4.20
-
Quality / Stability / Reliability
-
False
-
-
None
-
Moderate
-
None
-
None
-
None
-
Rejected
-
CORENET Sprint 278
-
1
-
None
-
None
-
None
-
None
-
None
-
None
-
None
OVN-Kubernetes RouteAdvertisements feature does not support dual stack BGP sessions:
// If MultiProtocol is enabled (default) then a BGP session carries
// prefixes of both IPv4 and IPv6 families. Our problem is that with
// an IPv4 session, FRR can incorrectly pick the masquerade IPv6
// address (instead of the real address) as next hop for IPv6
// prefixes and that won't work. Note that with a dedicated IPv6
// session that can't happen since FRR will use the same address
// that was used to stablish the session. Let's enforce the use of
// DisableMP for now.
if !neighbor.DisableMP {
return nil, fmt.Errorf("%w: DisableMP==false not supported, seen on FRRConfiguration %s/%s neighbor %s",
errConfig,
source.Namespace,
source.Name,
neighbor.Address,
)
}
However it has been acknowledged by FRR-k8s project that defaulting to dualstack BGP sessions through DisableMP=false was mistake and DisableMP has been deprecated and replaced with dualStackAddressFamily that defaults to false and thus dualstack BGP sessions are disabled by default.
Through this bug we should:
For OCP 4.20+:
- Replace the check for DisableMP=false in favor of checking for dualStackAddressFamily=true
- Explicitly document the incompatibility of using RouteAdvertisements together with FRRConfiguration or BGPPeers that set dualStackAddressFamily=true
For OCP 4.19: - Explicitly document the incompatibility of using RouteAdvertisements together with FRRConfiguration or BGPPeers that set DisableMP=false or omit setting DisableMP , or what is equivalent, that do not set DisableMP=true