-
Notifications
You must be signed in to change notification settings - Fork 3.4k
cilium: encryption fixes for ipv6 and tear down #9649
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
Conversation
We do not currently remove the 'dir in' encryption rules when encryption is disabled. The original thinking is we could simply leave these xfrm policy/state around because they would only ever be triggered if the datapath marked packets for encryption which it wouldn't because encryption was disabled. Then if encryption was ever (re)enabled the rules would already be there. But, subtle detail if the cilium_host IP changes after encryption is disabled then it (re)enabled with a new IP the 'dir in' state/policy in the xfrm table will no longer be valid. And if the new cilium host IP is in the same CIDR we can end up with a collision in the table and possible use old out of date rules. Fix by removing any 'dir in' rules when encryption is disabled. Signed-off-by: John Fastabend <john.fastabend@gmail.com>
test-me-please |
When we added FIB support we only added it for IPv4. This adds support IPv6 and fixes an issue where IPv6 packets were being dropped due to fib lookup failing. Signed-off-by: John Fastabend <john.fastabend@gmail.com>
863c408
to
300bdd2
Compare
test-me-please |
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.
I looked over this, other than the extra debug statements around the place (which I think we should probably handle through monitor instead), it looks good.
300bdd2
to
77e7f17
Compare
test-me-please |
pushed update with printing dropped and some consolidation of |
Fixes fib lookup case for IPv6 and ensures when disabling encryption remaining state is remove.
This change is