You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support IPIP termination from the Cilium L4LB against a regular Cilium
cluster. This work covers the termination as well as DSR aspect, so that
replies go directly back to clients instead of the Cilium L4LB.
Given the VIP:port of an external L4LB is not known in our K8s cluster,
we also cannot hold them in the revNat map. Therefore, add the tuple
info in the CT map.
Guard this under a compilation flag given this is only relevant for users
who really want to terminate the external L4LB in the workload cluster,
others don't need to take the additional cycles.
From agent side, the --enable-external-dsr={true,false} flag controls this
setting. The default is on false.
Example with IPIP termination :
Cilium L4LB node:
# ./cilium-dbg/cilium-dbg service list
ID Frontend Service Type Backend
[...]
11 1.1.1.1:80 ExternalIPs 1 => 192.168.2.12:80 (active)
Cilium regular cluster with --enable-external-dsr=true:
# ./cilium-dbg/cilium-dbg service list
ID Frontend Service Type Backend
[...]
11 192.168.2.12:80 ExternalIPs 1 => 193.99.144.80:80 (active)
tcpdump on Cilium regular node:
[...]
09:36:17.421507 IP 192.168.2.11 > 192.168.2.12: IP 192.168.2.13.43196 > 1.1.1.1.80: Flags [S], seq 3976047959, win 42340, options [mss 1460,sackOK,TS val 4083238462 ecr 0,nop,wscale 9], length 0
09:36:17.421529 IP 192.168.2.12.43196 > 193.99.144.80.80: Flags [S], seq 3976047959, win 42340, options [mss 1460,sackOK,TS val 4083238462 ecr 0,nop,wscale 9], length 0
09:36:17.428443 IP 193.99.144.80.80 > 192.168.2.12.43196: Flags [S.], seq 1717159938, ack 3976047960, win 14600, options [mss 1460,nop,wscale 0,sackOK,TS val 1591760912 ecr 4083238462], length 0
09:36:17.428680 IP 1.1.1.1.80 > 192.168.2.13.43196: Flags [S.], seq 1717159938, ack 3976047960, win 14600, options [mss 1460,nop,wscale 0,sackOK,TS val 1591760912 ecr 4083238462], length 0
[...]
What can be seen is the IPIP termination, the Cilium regular node then
performing the service request to the backend, and upon reply reversing
everything along with the DSR (1.1.1.1.80) to the client directly.
Signed-off-by: Daniel Borkmann <[email protected]>
flags.Bool(option.EnableLocalNodeRoute, defaults.EnableLocalNodeRoute, "Enable installation of the route which points the allocation prefix of the local node")
254
254
option.BindEnv(vp, option.EnableLocalNodeRoute)
255
255
256
+
flags.Bool(option.EnableExternalDSR, false, "Enable termination and DSR handling of external L4LBs")
0 commit comments