-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
calico should properly route overlay traffic between regular and host networked pods #9751
Comments
Accoring to @frozenprocess it is not ebpf related/only issue. |
The only way to make it work atm is to have natOutgoing set on your ippools, Note that it would make any connections to/from host networked pods bypass wireguard. |
Makes sense, but we can wait until a better solution is available. Adding an extra IP range to the wg allowed ips would be good enough for us atm. But if there's a better way to make it work, we have no objections :) |
To me it's either let users adjust allowed ips on wireguard peers, or let calico automatically do that, or somehow implement somewhat of PBR (policy based routing) so that the traffic from host-network pods goes back the way it came and not via the wg iface per the routing table. Just a thought. |
Allowing some extra IPs on the wg device would only paper over the real issue similar to how natoutgoing does it. Routing is the real fix and that we surely want to look into. |
Expected Behavior
Traffic initiated by regular pods to in-cluster services backed by pods using host network (e.g. kube-apiserver) is allowed and flowing.
Current Behavior
Traffic initiated by regular pods to in-cluster services backed by pods using host network (e.g. kube-apiserver) is dropped by wireguard allowed IPs policies set by calico for each peer on wireguard.cali interface.
Possible Solution
Possible solution is to allow users adjust the allowed-ips for peers on the wireguard interface.
An optional field for FelixConfiguration (or maybe IPPool?), which would be concatenated with the list of computed CIDR blocks that calico configures peers with on the wireguard interface.
Steps to Reproduce (for bugs)
Note: @frozenprocess was able to reproduce this issue.
echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control
)Context
Once wireguard is enabled, no pods can talk to in-cluster kubernetes api service.
Your Environment
Felix Configuration:
IPPools configuration:
BGP is in use, DSR is on, vxlan is likely a no-go option.
The text was updated successfully, but these errors were encountered: