From: Chanyeol Yoon <[email protected]>
A distributed dnat_and_snat NAT entry (an OpenStack-style floating IP,
with both 'external_mac' and 'logical_port' set) is not advertised over
BGP-EVPN: only ports attached to the EVPN-enabled provider Logical
Switch are covered, so floating IPs stay unreachable from EVPN peers.
This series advertises those floating IPs as EVPN Type-2 MAC+IP routes.
ovn-northd publishes the NAT's external IP/MAC into the SB
Advertised_MAC_Binding table of the provider Logical Switch that carries
the NAT's distributed gateway port, gated by a new 'nat' token of the
switch 'dynamic-routing-redistribute' option (independent of 'ip').
ovn-controller then programs those into the EVPN advertise interface.
v6 -> v7:
- Dropped the Advertised_MAC_Binding 'type' column entirely. As Ales
pointed out, ovn-northd already only populates a row when the
datapath opted into advertising it (via the 'ip'/'nat' tokens), so
ovn-controller can advertise every row it finds and only needs to
gate the FDB on the 'fdb' token -- no per-row token re-check. This
removes the SB schema change from the series.
- Simplified the controller side accordingly: a single pass over the
Advertised_MAC_Binding rows, advertised as Type-2 MAC+IP neighbors,
additionally programmed into the FDB when 'fdb' is set.
- Split the en-advertised-mac-binding-sync northd change handler into
its own patch (2/3) with a test exercising the distributed NAT path
through incremental processing.
- Rebased onto current main.
v5 -> v6:
- Rebased onto main (resolved ovn-sb.ovsschema and NEWS conflicts with
the EVPN ARP/ND suppression series).
Earlier revisions addressed Ales' v4 review (NAT advertise documentation
on the 'dynamic-routing-advertise' option, dropping comments on
NULL/handler inputs, and gating the recompute on the northd tracked
data instead of a full recompute).
Chanyeol Yoon (3):
northd: Advertise distributed NAT IPs over EVPN.
northd: Handle advertised MAC binding sync incrementally.
controller: Advertise EVPN MAC bindings.
.../topics/dynamic-routing/architecture.rst | 12 ++
NEWS | 6 +
controller/neighbor.c | 52 ++++--
lib/ovn-util.c | 3 +
lib/ovn-util.h | 3 +-
northd/en-advertised-route-sync.c | 132 ++++++++++++++-
northd/en-advertised-route-sync.h | 3 +
northd/inc-proc-northd.c | 7 +-
ovn-nb.xml | 27 +++
tests/ovn-inc-proc-graph-dump.at | 3 +-
tests/ovn-northd.at | 154 ++++++++++++++++++
11 files changed, 374 insertions(+), 28 deletions(-)
base-commit: d34f9316b2076f0a55b141a7434a3a66eac9a630
--
2.54.0 (Apple Git-157)
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev