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
OCPBUGS-31631: Deploy dual stack with IPv6 on top of bond/vlan fails #6149
Conversation
IPv6 L2 connectivity check uses nmap. nmap uses NDP (Network Discovery Protocol) to check L2 connectivty to IPv6 hosts. There are cases that NDP response does not arrive or it is not captured by nmap which means that the system assumes there is no connectivity to the host. However, there might be L3 connectivity (ping) to the same host. So change adds fallback for IPv6 L2 connectivity. In case there is failure in L2 connectivity to IPv6 host and success in L3 connecivity to the same host, the host is assumed connected on L2, providing that the remote address is part of the L2 subnet being checked.
@ori-amizur: This pull request references Jira Issue OCPBUGS-31631, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. In 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 openshift-eng/jira-lifecycle-plugin repository. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ori-amizur The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/jira refresh |
@ori-amizur: This pull request references Jira Issue OCPBUGS-31631, which is valid. 3 validation(s) were run on this bug
Requesting review from QA contact: In 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 openshift-eng/jira-lifecycle-plugin repository. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #6149 +/- ##
=======================================
Coverage 68.31% 68.32%
=======================================
Files 242 242
Lines 35817 35825 +8
=======================================
+ Hits 24470 24476 +6
Misses 9221 9221
- Partials 2126 2128 +2
|
// nmap uses NDP (Network Discovery Protocol) for IPv6 L2 discovery. There are cases that NDP responses do not | ||
// arrive and parsed by nmap, but still there is connectivity between the hosts. In this case we fallback to L3 | ||
// check and verify that the remote address is in the required subnet. | ||
for _, l3 := range rh.L3Connectivity { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe we can concatenate 2 lists before hand in case it is ipv6?
connectivity := rh.L2Connectivity
if l.isIPv6() {
connectivity = append(connectivity, rh.L3Connectivity)
}
WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
L2Connectivity and L3Connectivity are different types
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pity, code looks totally the same
/uncc @mhanss |
@ori-amizur: all tests passed! Full PR test history. Your PR dashboard. 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. I understand the commands that are listed here. |
/lgtm |
@ori-amizur: Jira Issue OCPBUGS-31631: All pull requests linked via external trackers have merged: Jira Issue OCPBUGS-31631 has been moved to the MODIFIED state. In 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 openshift-eng/jira-lifecycle-plugin repository. |
[ART PR BUILD NOTIFIER] This PR has been included in build ose-agent-installer-api-server-container-v4.16.0-202404041343.p0.gcf4ca2e.assembly.stream.el8 for distgit ose-agent-installer-api-server. |
Fix included in accepted release 4.16.0-0.nightly-2024-04-05-052913 |
/cherry-pick release-ocm-2.10 |
/cherry-pick release-ocm-2.9 |
@ori-amizur: new pull request created: #6235 In 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. |
@ori-amizur: new pull request created: #6236 In 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. |
/cherry-pick release-4.15 |
@bfournie: new pull request created: #6245 In 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. |
IPv6 L2 connectivity check uses nmap. nmap uses NDP (Network Discovery Protocol) to check L2 connectivty to IPv6 hosts. There are cases that NDP response does not arrive or it is not captured by nmap which means that the system assumes there is no connectivity to the host. However, there might be L3 connectivity (ping) to the same host. So change adds fallback for IPv6 L2 connectivity. In case there is failure in L2 connectivity to IPv6 host and success in L3 connecivity to the same host, the host is assumed connected on L2, providing that the remote address is part of the L2 subnet being checked.
List all the issues related to this PR
What environments does this code impact?
How was this code tested?
Checklist
docs
, README, etc)Reviewers Checklist
/cc @tsorya