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

[BPF] clasiffy correctly forwarded traffic #7707

Conversation

tomastigera
Copy link
Contributor

@tomastigera tomastigera commented May 26, 2023

Previously, anything that had source the same as the host was considered as "from host" by the policy engine and global policies with applyOnForward=false would apply to such traffic. However, for instance SNATed traffic due to nat-outgoing would be also considered "from host" eventhough it originated in a workload.

This fixes it by first looking at a SEEN mark which indicates that the packet was seen by another endpoint and thus is forwarded with the exception of packets being routed via the bpf nat iface which is used by the host processes.

fixes #7717

Description

Related issues/PRs

Todos

  • Tests
  • Documentation
  • Release note

Release Note

ebpf: fix applyOnforward=false in global policies

Reminder for the reviewer

Make sure that this PR has the correct labels and milestone set.

Every PR needs one docs-* label.

  • docs-pr-required: This change requires a change to the documentation that has not been completed yet.
  • docs-completed: This change has all necessary documentation completed.
  • docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

  • release-note-required: This PR has user-facing changes. Most PRs should have this label.
  • release-note-not-required: This PR has no user-facing changes.

Other optional labels:

  • cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
  • needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

@tomastigera tomastigera requested a review from a team as a code owner May 26, 2023 19:45
@marvin-tigera marvin-tigera added this to the Calico v3.27.0 milestone May 26, 2023
@marvin-tigera marvin-tigera added release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented labels May 26, 2023
@tomastigera tomastigera added docs-not-required Docs not required for this change cherry-pick-candidate and removed docs-pr-required Change is not yet documented labels May 26, 2023
@tomastigera tomastigera force-pushed the tomas-bpf-fix-gp-on-forward-false branch from f6058fe to 401017e Compare May 29, 2023 19:28
Copy link
Member

@mazdakn mazdakn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just left some comments.

felix/bpf-gpl/tc.c Show resolved Hide resolved
felix/fv/bpf_test.go Show resolved Hide resolved
Previously, anything that had source the same as the host was considered
as "from host" by the policy engine and global policies with
applyOnForward=false would apply to such traffic. However, for instance
SNATed traffic due to nat-outgoing would be also considered "from host"
eventhough it originated in a workload.

This fixes it by first looking at a SEEN mark which indicates that the
packet was seen by another endpoint and thus is forwarded with the
exception of packets being routed via the bpf nat iface which is used by
the host processes.
Copy link
Member

@mazdakn mazdakn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@tomastigera tomastigera merged commit 61b3c98 into projectcalico:master May 31, 2023
@tomastigera tomastigera deleted the tomas-bpf-fix-gp-on-forward-false branch May 31, 2023 17:31
marvin-tigera added a commit that referenced this pull request May 31, 2023
…-release-v3.26

[release-v3.26] Auto pick #7707: clasiffy correctly forwarded traffic
marvin-tigera added a commit that referenced this pull request May 31, 2023
…-release-v3.25

[release-v3.25] Auto pick #7707: clasiffy correctly forwarded traffic
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cherry-pick-candidate docs-not-required Docs not required for this change release-note-required Change has user-facing impact (no matter how small)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

GlobalNetworkPolicy does not distinguish between locally originated and forwarded/natted traffic in ebpf mode
3 participants