[release-4.9] Bug 2014003: Fix gateway routers answer ARP/NDP requests for LoadBalancer/ExternalIP services#952
Conversation
Currently address resolution requests (ARP/Neighbor solicitation) for LoadBalancer/External IPs are answered by all of the gateway routers in the cluster. By forwarding these requests to the local port, a network load balancer implementation like MetalLB is able to be the only one replying to them - thus enabling it to be the only one announcing a specific LoadBalancer service IP. Signed-off-by: Ori Braunshtein <obraunsh@redhat.com> (cherry picked from commit 5d546a0)
load-balancers in addition to the node local IP for ExternalIP. ARP requests or IPv6 NS would receive <node number + 1> replies. This fix stops ARP requests and IPv6 NS for ExternalIPs from entering the OVN dataplane. Only the node with the actual local IP will now answer to the NS or ARP request. Signed-off-by: Andreas Karis <ak.karis@gmail.com> (cherry picked from commit 91d37a6) Conflicts: go-controller/pkg/node/gateway_shared_intf.go
|
@andreaskaris: This pull request references Bugzilla bug 2014003, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker. 6 validation(s) were run on this bug
Requesting review from QA contact: DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/retest |
1 similar comment
|
/retest |
|
Verification instructions for QE: |
|
@andreaskaris: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
@andreaskaris: This pull request references Bugzilla bug 2014003, which is valid. 6 validation(s) were run on this bug
Requesting review from QA contact: DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
1 similar comment
|
@andreaskaris: This pull request references Bugzilla bug 2014003, which is valid. 6 validation(s) were run on this bug
Requesting review from QA contact: DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/lgtm |
|
/cc @oribon |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: andreaskaris, trozet, tssurya The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
5 similar comments
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
18 similar comments
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/label cherry-pick-approved |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
6 similar comments
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
@andreaskaris: All pull requests linked via external trackers have merged: Bugzilla bug 2014003 has been moved to the MODIFIED state. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
- What this PR does and why is it needed
Backport of the first 2 out of this series of patches: https://github.com/openshift/ovn-kubernetes/pull/793/commits
See https://github.com/ovn-org/ovn-kubernetes/blob/master/docs/external-ip-and-loadbalancer-ingress.md
Commit Shared GW: Remove code duplication in updateServiceFlowCache was for readability only, to remove code duplication. It has no impact on the functionality and does not merge cleanly, thus I did not backport it.
- Special notes for reviewers
This PR backports 2 commits:
a) Output address resolution requests to LOCAL port (clean)
b) Neighbor solicitations and ARP requests used to hit all 3 OVN (conflict)
For a): Clean cherry-pick:
For b): Conflicting cherry-pick:
I think git went a bit crazy wrt the conflict, as it tried to pull unrelated stuff and failed there - see below for what it tried to do. So, when working around the conflict, I just removed the methods / functions that shouldn't have been there, in the first place:
You can compare:
1813ea5
and
91d37a6
to see that they are identical.
- How to verify it
- Description for the changelog