Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LB removes invalid Target neighbor entries #549

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

zolug
Copy link
Collaborator

@zolug zolug commented Dec 11, 2024

Description

LB applies cluster-wide monitoring of NSM connection Delete events between TAPA and Proxy, to remove invalid Target entries from its Linux neighbor cache preventing connection disturbances.

When TAPA experiences a NSM Heal event for example due to an unexpected connection refresh failure, the NSM connection is first closed and the associated interface is removed. Thus, the MAC address associated with the Target IP(s)
is no longer valid. Even if the same Target IP(s) will get re-assigned when the Heal process concludes, it's unlikely that the same MAC address will be assigned to the new NSM interface.

Feature can be disabled via stateless-lb env variable: TARGET_DISCONNECT_MONITORING
Also, stateless-lb requires the k8s namespace it's running in to figure out the NSM Network Service name the Conduit (proxy) provides for TAPAs to connect.

Note: Because NSM heal by default (i.e. without datapath monitoring) cleans up the old interface, even with the improvements proposed in this PR some disturbance might be expected (depends both on traffic and on how fast NSM heal could recover the connection).

Issue link

#548

Checklist

  • Purpose
    • Bug fix
    • New functionality
    • Documentation
    • Refactoring
    • CI
  • Test
    • Unit test
    • E2E Test
    • Tested manually
  • Introduce a breaking change
    • Yes (description required)
    • No

@zolug zolug changed the title LB to remove invalid Target neighbor entries LB removes invalid Target neighbor entries Dec 11, 2024
@zolug

This comment was marked as resolved.

@zolug zolug force-pushed the lb-del-target-neigh branch from 2fb97cf to 4b89e0c Compare January 13, 2025 13:55
@zolug
Copy link
Collaborator Author

zolug commented Jan 13, 2025

/reverify

@zolug zolug force-pushed the lb-del-target-neigh branch 2 times, most recently from ad345c0 to 1f9e762 Compare January 14, 2025 13:51
zolug added 3 commits January 14, 2025 14:56
Monitor TAPA->Proxy NSM connections and update neighbor
cache upon connection close events by removing neighbor
entries associated with TAPA side IP addresses.

Currently, the connection monitor uses a wildcard filter,
matching all connections.

New stateless-lb container env variables:
- NAMESPACE
- TARGET_DISCONNECT_MONITORING (enabling the feature by default)
Use network service based scope selector limiting the
scope of the cluster connection monitor functionality
in stateless-lb. Thus, only NSM connection events that
are associated with TAPA->Proxy conns are forwarded to
stateless-lb in order to update its linux neighbor cache.

Go version had to be updated to 1.23 because of NSM.
Some linters got inactivated leading to an error
when running the linter. Thus, they are now removed
from the config file's enable list.
Also, deadline is not a valid linter run option based
on config verify.
@zolug zolug force-pushed the lb-del-target-neigh branch from 1f9e762 to 7ada824 Compare January 14, 2025 14:10
@zolug
Copy link
Collaborator Author

zolug commented Jan 14, 2025

rebased on master

@zolug zolug requested a review from LionelJouin January 14, 2025 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🏗 In progress
Development

Successfully merging this pull request may close these issues.

1 participant