Skip to content

Converge cnat refactoring 3.26.2 #750

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

Draft
wants to merge 21 commits into
base: release/v3.26.0
Choose a base branch
from

Conversation

hedibouattour
Copy link
Collaborator

No description provided.

hedibouattour and others added 20 commits March 13, 2025 14:11
We snat when endpoint is not local, no need to do it when it is local.
This is for the returned traffic to pass by the node.
It can happen that service IPs are nil when the node
does not return an ip6 or an ip4. This patch prevents
these making it into the cnat.

Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
This
- Fixes #2
- Fixes #5

Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
A dns issue showed in kind cluster, due to specific iptables rules added by docker.
This commit addresses that by adding a feature allowing to redirect some traffic to host,
to get it pass through iptables.
This is applied to coredns pods.
We use some new user config to specify rulesfor this feature.
A tag "host" is added to cnat snat poliy feature and we use it for our vpptap0 to
disable snat on traffic outgoing through it.
This patch makes the prometheus reporter output
metrics for both memif and tuntap when both are configured
using PBL in a given pod.

Signed-off-by: Nathan Skrzypczak <[email protected]>
This patch adds the ability to configure the polling frequency
of prometheus and the port the prometheus server will be listening
on and serving metrics under `/metrics`.

Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
This patch adds a prometheusEnabled feature gate under
CALICOVPP_FEATURE_GATES to allow disabling the prometheus
exporter if needed.

Signed-off-by: Nathan Skrzypczak <[email protected]>
This patch enables IP neighbor aeging in VPP, defaulting to a 30sec
renewal. IP neighbors older than 30s will trigger an ARP request
or be retired.

This patch also marks the static neighbors we require as static so
that they are not subject to aeging.

This addresses an issue in Cloud environment where nodes or peer VMs
are recreated, keeping the same IP but changing the associated MAC
without triggering a gratuitous ARP. When this happens, VPP keeps the
old MAC entry indefinitely and traffic to said node is blackholed.

This can be configured using
```
CALICOVPP_INITIAL_CONFIG={
  "ip4NeighborsMaxNumber": 50000,
  "ip6NeighborsMaxNumber": 50000,
  "ip4NeighborsMaxAge": 30,
  "ip6NeighborsMaxAge": 30
}
```

Signed-off-by: Nathan Skrzypczak <[email protected]>
Signed-off-by: Nathan Skrzypczak <[email protected]>
@hedibouattour hedibouattour marked this pull request as draft July 21, 2025 10:12
@hedibouattour hedibouattour force-pushed the converge-cnat-refactoring-3.26.2 branch from 7f61fa5 to 2783aa7 Compare July 21, 2025 10:33
@sknat sknat added this to the 3.26.2 milestone Jul 24, 2025
Base automatically changed from release-v3.26.2-rc0 to release/v3.26.0 July 25, 2025 08:56
@sknat sknat modified the milestones: 3.26.3, 3.26.4 Jul 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants