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

UDP/TDP checksum offload does not work with some NIC vendors #1436

Closed
ss7pro opened this issue Jan 28, 2023 · 1 comment
Closed

UDP/TDP checksum offload does not work with some NIC vendors #1436

ss7pro opened this issue Jan 28, 2023 · 1 comment
Labels

Comments

@ss7pro
Copy link

ss7pro commented Jan 28, 2023

What happened?
Some NIC vendors like Intel/mellanox have challanges with implementing tcp/udp checksum offload for ipip tunnels. Other CNI vendors already implemented a workaround [1]. Kube-router should have an option to allow the same through configuration setting,.

[1] kubernetes-sigs/kubespray#8992

What did you expect to happen?
Implement a configuration option that would enable disabling outgoing checksum on tun interfaces during their creation.

How can we reproduce the behavior you experienced?
Steps to reproduce the behavior:

  1. Use MLX OFED 5.6 drivers with connect x-4 NIC.
  2. UDP traffic to dns would have wrong checksum.

**Screenshots / Architecture Diagrams / Network Topologies **
More details here: kubernetes-sigs/kubespray#8992

** System Information (please complete the following information):**

  • Kube-Router Version (kube-router --version): trunk
  • Kube-Router Parameters: -run-router --run-service-proxy --enable-overlay --overlay-type=full

** Logs, other output, metrics **

length 80)
10.180.17.207 > 10.180.16.203: IP (tos 0x0, ttl 63, id 2094, offset 0, flags [DF], proto UDP (17), length 60)
10.230.68.8.51072 > 10.230.14.151.53: [bad udp cksum 0x68a4 -> 0x8933!] 48320+ TXT

@ss7pro ss7pro added the bug label Jan 28, 2023
@aauren
Copy link
Collaborator

aauren commented Apr 2, 2023

I don't necessarily think that this is a kube-router problem. In the linked issues that you sent, it looks like it was fixed at the kube-spray (i.e. k8s orchestrator) level.

In any case, I think that this is really more of an OS / ethernet device issue. I would suggest that if users have that particular issue that part of their orchestration tooling should handle disabling packet offloading features of the driver / nic. To me, it feels like having kube-router do something like this on behalf of the user either through a configuration flag or automatically would be exceeding kube-router's functionality and potentially be too opinionated for a container networking tool.

@aauren aauren closed this as completed Apr 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants