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

Unable to access service/ingress to a offloaded pod: 504 Gateway Time-out #2909

Open
remmen-io opened this issue Jan 22, 2025 · 33 comments · Fixed by #2924
Open

Unable to access service/ingress to a offloaded pod: 504 Gateway Time-out #2909

remmen-io opened this issue Jan 22, 2025 · 33 comments · Fixed by #2924
Labels
fix Fixes a bug in the codebase.

Comments

@remmen-io
Copy link

What happened:

I've deployed a pod,svc and ingress on a cluster with network fabric and offloading enabled.
svc and ingress are excluded from the resource-reflection.

The pod is successfully started and I can see the logs, I can access the service or the pod direclty with kubectl port-forward

Accessing the ingress I get a 504

➜ curl https://vllm.e1-mfmm-lab-b.mm.ch/v1/models
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx</center>
</body>
</html>


⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) ~ on ☁️  (local) took 15s
➜ k port-forward svc/service 8000:8000 &
[1] 97549

⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) ~ on ☁️  (local)
✦ ➜ Forwarding from 127.0.0.1:8000 -> 8000
Forwarding from [::1]:8000 -> 8000
curl 127.0.0.1:8000/v1/models
Handling connection for 8000
{"object":"list","data":[{"id":"microsoft/Phi-3.5-mini-instruct","object":"model","created":1737552716,"owned_by":"vllm","root":"/models-cache/Phi-3.5-mini-instruct","parent":null,"max_model_len":20000,"permission":[{"id":"modelperm-1d8b39fd8eeb49c8ab9503778c4b5c47","object":"model_permission","created":1737552716,"allow_create_engine":false,"allow_sampling":true,"allow_logprobs":true,"allow_search_indices":false,"allow_view":true,"allow_fine_tuning":false,"organization":"*","group":null,"is_blocking":false}]}]}

What you expected to happen:

Access the service of the ingress

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

We are using cilium as CNI with native routing. There is no networkpolicy preventing any traffic

We have noticed, that the pod gets an IP in the range of 10.71.72.225 which is not in the 10.71.0.0/18 range.
Therefore we have seen that traffic from a pod to this ip gets routed over the default gateway, which we think is wrong

On the node where the debug pod was running (with curl on the the service/pod ip)

$ ip route show table 0
10.68.0.0/16 via 10.80.0.7 dev liqo.9v2lmk2jtf table 1878365176
10.71.0.0/18 via 10.80.0.7 dev liqo.9v2lmk2jtf table 1878365176
10.80.0.7 dev liqo.9v2lmk2jtf table 1878365176 scope link
default via 172.16.183.254 dev ens192 onlink

$ sudo tcpdump -ni any host 10.71.72.225
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
13:59:05.578297 lxcb8de2f30aae0 In  IP 10.127.65.220.40990 > 10.71.72.225.8000: Flags [S], seq 1002186232, win 62160, options [mss 8880,sackOK,TS val 632166751 ecr 0,nop,wscale 7], length 0
13:59:05.578337 ens192 Out IP 172.16.182.21.40990 > 10.71.72.225.8000: Flags [S], seq 1002186232, win 62160, options [mss 8880,sackOK,TS val 632166751 ecr 0,nop,wscale 7], length 0
13:59:07.370282 lxcb8de2f30aae0 In  IP 10.127.65.220.55646 > 10.71.72.225.8000: Flags [S], seq 447635172, win 62160, options [mss 8880,sackOK,TS val 632168543 ecr 0,nop,wscale 7], length 0
13:59:07.370313 ens192 Out IP 172.16.182.21.55646 > 10.71.72.225.8000: Flags [S], seq 447635172, win 62160, options [mss 8880,sackOK,TS val 632168543 ecr 0,nop,wscale 7], length 0

But even if adding manually a route, I still got no response. So we might be wrong

Additional Informations:

Provider: e1-k8s-mfmm-lab-t
Consumer: e1-k8s-mfmm-lab-b

Liqo Status
➜ liqoctl info -n kube-liqo peer
┌─ Peer cluster info ──────────────────────────────────────────────────────────────┐
|  Cluster ID: e1-k8s-mfmm-lab-t                                                  |
|  Role:       Provider                                                            |
└──────────────────────────────────────────────────────────────────────────────────┘
┌─ Network ────────────────────────────────────────────────────────────────────────┐
|  Status: Healthy                                                                 |
|  CIDR                                                                            |
|      Remote                                                                      |
|          Pod CIDR:      10.127.64.0/18 → Remapped to 10.71.0.0/18                |
|          External CIDR: 10.70.0.0/16 → Remapped to 10.68.0.0/16                  |
|  Gateway                                                                         |
|      Role:    Server                                                             |
|      Address: 172.16.182.238                                                     |
|      Port:    31311                                                              |
└──────────────────────────────────────────────────────────────────────────────────┘
┌─ Authentication ─────────────────────────────────────────────────────────────────┐
|  Status:     Healthy                                                             |
|  API server: https://e1-k8s-mfmm-lab-t-internal.mm.ch                         |
|  Resource slices                                                                 |
|      gpupool                                                                     |
|          Action: Consuming                                                       |
|          Resource slice accepted                                                 |
|          Resources                                                               |
|              cpu:               4                                                |
|              ephemeral-storage: 20Gi                                             |
|              memory:            10Gi                                             |
|              nvidia.com/gpu:    2                                                |
|              pods:              110                                              |
└──────────────────────────────────────────────────────────────────────────────────┘
┌─ Offloading ─────────────────────────────────────────────────────────────────────┐
|  Status: Healthy                                                                 |
|  Virtual nodes                                                                   |
|      gpupool                                                                     |
|          Status:         Healthy                                                 |
|          Secret:         kubeconfig-resourceslice-gpupool                        |
|          Resource slice: gpupool                                                 |
|          Resources                                                               |
|              cpu:               4                                                |
|              ephemeral-storage: 20Gi                                             |
|              memory:            10Gi                                             |
|              nvidia.com/gpu:    2                                                |
|              pods:              110                                              |
└──────────────────────────────────────────────────────────────────────────────────┘




⎈ e1-k8s-mfmm-lab-t-admin (talos-vllm) kube-liqo on  liqo-network on ☁️  (local)
➜ liqoctl info -n kube-liqo peer
┌─ Peer cluster info ──────────────────────────────────────────────────────────────┐
|  Cluster ID: e1-k8s-mfmm-lab-b                                                  |
|  Role:       Consumer                                                            |
└──────────────────────────────────────────────────────────────────────────────────┘
┌─ Network ────────────────────────────────────────────────────────────────────────┐
|  Status: Healthy                                                                 |
|  CIDR                                                                            |
|      Remote                                                                      |
|          Pod CIDR:      10.127.64.0/18 → Remapped to 10.71.0.0/18                |
|          External CIDR: 10.70.0.0/16 → Remapped to 10.68.0.0/16                  |
|  Gateway                                                                         |
|      Role:    Client                                                             |
|      Address: 172.16.182.238                                                     |
|      Port:    31311                                                              |
└──────────────────────────────────────────────────────────────────────────────────┘
┌─ Authentication ─────────────────────────────────────────────────────────────────┐
|  Status: Healthy                                                                 |
|  Resource slices                                                                 |
|      gpupool                                                                     |
|          Action: Providing                                                       |
|          Resource slice accepted                                                 |
|          Resources                                                               |
|              cpu:               4                                                |
|              ephemeral-storage: 20Gi                                             |
|              memory:            10Gi                                             |
|              nvidia.com/gpu:    2                                                |
|              pods:              110                                              |
└──────────────────────────────────────────────────────────────────────────────────┘
┌─ Offloading ─────────────────────────────────────────────────────────────────────┐
|  Status: Disabled                                                                |
└──────────────────────────────────────────────────────────────────────────────────┘
Deployment
⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) kube-liqo on  liqo-network on ☁️  (local)
➜ k describe deployments.apps vllm
Name:               vllm
Namespace:          liqo-demo
CreationTimestamp:  Wed, 22 Jan 2025 10:57:34 +0100
Labels:             <none>
Annotations:        deployment.kubernetes.io/revision: 1
Selector:           app=vllm
Replicas:           1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:       Recreate
MinReadySeconds:    0
Pod Template:
  Labels:       app=vllm
  Annotations:  prometheus.io/path: /metrics
                prometheus.io/port: 8000
                prometheus.io/scheme: http
                prometheus.io/scrape: true
  Init Containers:
   s3toolbox:
    Image:      linux-docker-local.repo.mm.ch/herrem/s3toolbox:0.0.1
    Port:       <none>
    Host Port:  <none>
    Command:
      sh
      -c
      aws s3 sync s3://appl-tgi-e1/microsoft/Phi-3.5-mini-instruct/ /models-cache/Phi-3.5-mini-instruct --endpoint-url https://s3-tpfhyst.mm.ch
    Environment:
      AWS_ACCESS_KEY_ID:      <set to the key 'access-key' in secret 's3-credentials'>  Optional: false
      AWS_SECRET_ACCESS_KEY:  <set to the key 'secret-key' in secret 's3-credentials'>  Optional: false
    Mounts:
      /models-cache from models-cache (rw)
  Containers:
   vllm:
    Image:      vllm/vllm-openai:v0.6.5
    Port:       8000/TCP
    Host Port:  0/TCP
    Args:
      --model
      /models-cache/Phi-3.5-mini-instruct
      --served-model-name
      microsoft/Phi-3.5-mini-instruct
      --gpu-memory-utilization
      0.95
      --max-model-len
      20000
      --enforce-eager
      --disable-log-requests
    Limits:
      memory:          8Gi
      nvidia.com/gpu:  1
    Requests:
      cpu:             1
      nvidia.com/gpu:  1
    Liveness:          http-get http://:8000/health delay=0s timeout=8s period=120s #success=1 #failure=3
    Readiness:         http-get http://:8000/health delay=0s timeout=5s period=120s #success=1 #failure=3
    Startup:           http-get http://:8000/health delay=0s timeout=1s period=120s #success=1 #failure=24
    Environment:       <none>
    Mounts:
      /dev/shm from shm (rw)
      /models-cache from models-cache (rw)
  Volumes:
   models-cache:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   shm:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     Memory
    SizeLimit:  1Gi
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  <none>
NewReplicaSet:   vllm-85f5dfdb49 (1/1 replicas created)
Events:          <none>

⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) kube-liqo on  liqo-network on ☁️  (local)
➜ k describe pod vllm-85f5dfdb49-584f5
Name:             vllm-85f5dfdb49-584f5
Namespace:        liqo-demo
Priority:         0
Service Account:  default
Node:             gpupool/10.127.65.176
Start Time:       Wed, 22 Jan 2025 13:22:31 +0100
Labels:           app=vllm
                  liqo.io/shadowPod=true
                  pod-template-hash=85f5dfdb49
Annotations:      prometheus.io/path: /metrics
                  prometheus.io/port: 8000
                  prometheus.io/scheme: http
                  prometheus.io/scrape: true
Status:           Running
IP:               10.71.72.225
IPs:
  IP:           10.71.72.225
Controlled By:  ReplicaSet/vllm-85f5dfdb49
Init Containers:
  s3toolbox:
    Container ID:  containerd://402423a117a8fea10669ec7a13710cc07affc431bb8a6fdb50a0cdf6bdee7e20
    Image:         linux-docker-local.repo.mm.ch/herrem/s3toolbox:0.0.1
    Image ID:      linux-docker-local.repo.mm.ch/herrem/s3toolbox@sha256:0c0cc08325c39f68bf1a04399e9f3f225472187b936df65098502a73b5776484
    Port:          <none>
    Host Port:     <none>
    Command:
      sh
      -c
      aws s3 sync s3://appl-tgi-e1/microsoft/Phi-3.5-mini-instruct/ /models-cache/Phi-3.5-mini-instruct --endpoint-url https://s3-tpfhyst.mm.ch
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Wed, 22 Jan 2025 13:22:35 +0100
      Finished:     Wed, 22 Jan 2025 13:24:14 +0100
    Ready:          True
    Restart Count:  0
    Environment:
      AWS_ACCESS_KEY_ID:      <set to the key 'access-key' in secret 's3-credentials'>  Optional: false
      AWS_SECRET_ACCESS_KEY:  <set to the key 'secret-key' in secret 's3-credentials'>  Optional: false
    Mounts:
      /models-cache from models-cache (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-l9w4q (ro)
Containers:
  vllm:
    Container ID:  containerd://597f320cb67244783638d1f994894c479aa3798460e44cfdecbde4294ef984cf
    Image:         vllm/vllm-openai:v0.6.5
    Image ID:      docker.io/vllm/vllm-openai@sha256:42f117dffe16e978f9567084e5cda18f85fdcfbc18568536a1208a69419c77cf
    Port:          8000/TCP
    Host Port:     0/TCP
    Args:
      --model
      /models-cache/Phi-3.5-mini-instruct
      --served-model-name
      microsoft/Phi-3.5-mini-instruct
      --gpu-memory-utilization
      0.95
      --max-model-len
      20000
      --enforce-eager
      --disable-log-requests
    State:          Running
      Started:      Wed, 22 Jan 2025 13:24:21 +0100
    Ready:          True
    Restart Count:  0
    Limits:
      memory:          8Gi
      nvidia.com/gpu:  1
    Requests:
      cpu:             1
      memory:          8Gi
      nvidia.com/gpu:  1
    Liveness:          http-get http://:8000/health delay=0s timeout=8s period=120s #success=1 #failure=3
    Readiness:         http-get http://:8000/health delay=0s timeout=5s period=120s #success=1 #failure=3
    Startup:           http-get http://:8000/health delay=0s timeout=1s period=120s #success=1 #failure=24
    Environment:       <none>
    Mounts:
      /dev/shm from shm (rw)
      /models-cache from models-cache (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-l9w4q (ro)
Conditions:
  Type                        Status
  PodReadyToStartContainers   True
  Initialized                 True
  Ready                       True
  ContainersReady             True
  PodScheduled                True
Volumes:
  models-cache:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  shm:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     Memory
    SizeLimit:  1Gi
  kube-api-access-l9w4q:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
                             nvidia.com/gpu:NoSchedule op=Exists
                             virtual-node.liqo.io/not-allowed:NoExecute op=Exists
Events:
  Type     Reason                        Age                   From                            Message
  ----     ------                        ----                  ----                            -------
  Normal   Scheduled                     7m7s                  default-scheduler               Successfully assigned liqo-demo/vllm-85f5dfdb49-584f5 to gpupool
  Warning  FailedScheduling              7m49s                 default-scheduler               0/7 nodes are available: 1 Insufficient memory, 3 Insufficient nvidia.com/gpu, 3 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }. preemption: 0/7 nodes are available: 3 Preemption is not helpful for scheduling, 4 No preemption victims found for incoming pod.
  Normal   Scheduled                     7m7s                   (remote)                       Successfully assigned liqo-demo-e1-k8s-mfmm-lab-b/vllm-85f5dfdb49-584f5
to e1-k8shpc-alzf001
  Normal   SuccessfulSATokensReflection  7m7s (x2 over 7m7s)   liqo-serviceaccount-reflection  Successfully reflected object to cluster "e1-k8s-mfmm-lab-t"
  Normal   Created                       7m3s                  kubelet (remote)                Created container s3toolbox
  Normal   Started                       7m3s                  kubelet (remote)                Started container s3toolbox
  Normal   Pulled                        7m3s                  kubelet (remote)                Container image "linux-docker-local.repo.mm.ch/herrem/s3toolbox:0.0.1"
already present on machine
  Normal   Pulled                        5m19s                 kubelet (remote)                Container image "vllm/vllm-openai:v0.6.5" already present on machine
  Normal   Created                       5m17s                 kubelet (remote)                Created container vllm
  Normal   Started                       5m17s                 kubelet (remote)                Started container vllm
  Warning  Unhealthy                     5m7s                  kubelet (remote)                Startup probe failed: Get "http://10.127.72.225:8000/health": dial tcp 10.127.72.225:8000: connect: connection refused
  Normal   SuccessfulReflection          3m7s (x8 over 7m7s)   liqo-pod-reflection             Successfully reflected object status back from cluster "e1-k8s-mfmm-lab-t"
  Normal   SuccessfulReflection          3m7s (x17 over 7m7s)  liqo-pod-reflection             Successfully reflected object to cluster "e1-k8s-mfmm-lab-t"

⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) kube-liqo on  liqo-network on ☁️  (local)
➜ k describe service service
Name:              service
Namespace:         liqo-demo
Labels:            app=vllm-service
Annotations:       liqo.io/skip-reflection: true
Selector:          app=vllm
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.127.21.32
IPs:               10.127.21.32
Port:              vllm-port  8000/TCP
TargetPort:        8000/TCP
Endpoints:         10.71.72.225:8000
Session Affinity:  None
Events:            <none>

⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) kube-liqo on  liqo-network on ☁️  (local)
➜ k describe ingress
Name:             phi3-ingress
Labels:           <none>
Namespace:        liqo-demo
Address:          172.16.178.18
Ingress Class:    nginx
Default backend:  <default>
TLS:
  SNI routes vllm.e1-mfmm-lab-b.mm.ch
Rules:
  Host                         Path  Backends
  ----                         ----  --------
  vllm.e1-mfmm-lab-b.mm.ch
                               /   service:8000 (10.71.72.225:8000)
Annotations:                   liqo.io/skip-reflection: true
Events:                        <none>

Environment:

  • Liqo version: v1.0.0-rc.3
  • Liqoctl version: v1.0.0-rc.2
  • Kubernetes version (use kubectl version): v1.30.4
  • Cloud provider or hardware configuration:
  • Node image:
  • Network plugin and version: cilium:v1.15.8-cee.1 replacing kube-proxy
  • Install tools: Helm
  • Others:
@remmen-io remmen-io added the fix Fixes a bug in the codebase. label Jan 22, 2025
@remmen-io
Copy link
Author

it seems the lable fix is automatically created

@cheina97
Copy link
Member

cheina97 commented Feb 6, 2025

Hi @remmen-io, can you give us more insight about how you configured your ingress?

@remmen-io
Copy link
Author

Hi @cheina97

Herer is the full deployment

apiVersion: v1
kind: Secret
metadata:
  name: s3-credentials
stringData:
  access-key: XXX
  secret-key: XXX
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    liqo.io/skip-reflection: "true"
  labels:
    app: vllm-service
  name: service
spec:
  ports:
  - name: vllm-port
    port: 8000
    protocol: TCP
    targetPort: 8000
  selector:
    app: vllm
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vllm
spec:
  selector:
    matchLabels:
      app: vllm
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        prometheus.io/path: /metrics
        prometheus.io/port: "8000"
        prometheus.io/scheme: http
        prometheus.io/scrape: "true"
      labels:
        app: vllm
    spec:
      containers:
      - args:
        - --model
        - /models-cache/Phi-3.5-mini-instruct
        - --served-model-name
        - microsoft/Phi-3.5-mini-instruct
        - --gpu-memory-utilization
        - "0.95"
        - --max-model-len
        - "20000"
        - --enforce-eager
        - --disable-log-requests
        image: vllm/vllm-openai:v0.6.5
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /health
            port: 8000
            scheme: HTTP
          periodSeconds: 120
          successThreshold: 1
          timeoutSeconds: 8
        name: vllm
        ports:
        - containerPort: 8000
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /health
            port: 8000
            scheme: HTTP
          periodSeconds: 120
          successThreshold: 1
          timeoutSeconds: 5
        resources:
          limits:
            memory: 8Gi
            nvidia.com/gpu: "1"
          requests:
            cpu: "1"
            nvidia.com/gpu: "1"
        startupProbe:
          failureThreshold: 24
          httpGet:
            path: /health
            port: 8000
            scheme: HTTP
          periodSeconds: 120
          successThreshold: 1
          timeoutSeconds: 1
        volumeMounts:
        - mountPath: /models-cache
          name: models-cache
        - mountPath: /dev/shm
          name: shm
      initContainers:
      - command:
        - sh
        - -c
        - aws s3 sync s3://appl-tgi-e1/microsoft/Phi-3.5-mini-instruct/ /models-cache/Phi-3.5-mini-instruct
          --endpoint-url https://s3-tpfhyst.mm.ch
        env:
        - name: AWS_ACCESS_KEY_ID
          valueFrom:
            secretKeyRef:
              key: access-key
              name: s3-credentials
        - name: AWS_SECRET_ACCESS_KEY
          valueFrom:
            secretKeyRef:
              key: secret-key
              name: s3-credentials
        image: linux-docker-local.repo.mm.ch/herrem/s3toolbox:0.0.1
        name: s3toolbox
        volumeMounts:
        - mountPath: /models-cache
          name: models-cache
      volumes:
      - name: models-cache
        emptyDir: {}
      - emptyDir:
          medium: Memory
          sizeLimit: 1Gi
        name: shm
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: phi3-ingress
  annotations:
    liqo.io/skip-reflection: "true"
spec:
  ingressClassName: nginx
  rules:
  - host: vllm.e1-mfmm-lab-b.mm.ch
    http:
      paths:
      - backend:
          service:
            name: service
            port:
              number: 8000
        path: /
        pathType: Prefix
  tls:
  - hosts:
    - vllm.e1-mfmm-lab-b.mm.ch

@cheina97 cheina97 linked a pull request Feb 7, 2025 that will close this issue
@cheina97
Copy link
Member

cheina97 commented Feb 7, 2025

Hi @remmen-io, I think we fixed your issue in this PR #2924. We found a bug in IPs remapping algorithm. Thanks for helping us to spot it.

@remmen-io
Copy link
Author

remmen-io commented Feb 12, 2025

Here are the IPs

⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) liqo on  master via 🐹 on ☁️  (local)
➜ k get pods -o wide
NAME                    READY   STATUS    RESTARTS   AGE   IP           NODE      NOMINATED NODE   READINESS GATES
vllm-85498c566d-n5s96   1/1     Running   0          51m   10.71.2.35   gpupool   <none>           <none>

⎈ e1-k8s-mfmm-lab-g-admin (liqo-demo-e1-k8s-mfmm-lab-b) liqo on  master via 🐹 on ☁️  (local)
➜ k get pods -o wide
NAME                    READY   STATUS    RESTARTS   AGE   IP              NODE                     NOMINATED NODE   READINESS GATES
vllm-85498c566d-n5s96   1/1     Running   0          51m   10.127.66.35    e1-k8s-alsu108.mm.ch   <none>           <none>

The config is
consumer

tag: c2f889a26d38a1785310b56290c28419b8892761
apiServer:
    address: https://e1-k8s-mfmm-lab-b-internal.mm.ch

controllerManager:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/liqo-controller-manager

crdReplicator:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/crd-replicator

metricAgent:
    enable: true

metrics:
    enabled: true

discovery:
    config:
        clusterID: e1-k8s-mfmm-lab-b
        clusterLabels:
            liqo.io/provider: kubeadm
ipam:
    internal:
        image:
            name: ghcr-docker-remote.repo.mm.ch/liqotech/ipam
    podCIDR: 10.127.64.0/18
    serviceCIDR: 10.127.0.0/18
networking:
    enabled: true
    fabric:
        image:
            name: ghcr-docker-remote.repo.mm.ch/liqotech/fabric
    gatewayTemplates:
        container:
            gateway:
                image:
                    name: ghcr-docker-remote.repo.mm.ch/liqotech/gateway
            geneve:
                image:
                    name: ghcr-docker-remote.repo.mm.ch/liqotech/gateway/geneve
            wireguard:
                image:
                    name: ghcr-docker-remote.repo.mm.ch/liqotech/gateway/wireguard
offloading:
    defaultNodeResources:
        cpu: "4"
        ephemeral-storage: 20Gi
        memory: 8Gi
        pods: "110"
    
proxy:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/proxy

storage:
    enable: false

telemetry:
    enabled: false

uninstaller:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/uninstaller

webhook:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/webhook
    patch:
        image: k8sgcr-docker-remote.repo.mm.ch/ingress-nginx/kube-webhook-certgen:v1.1.1

provider

tag: c2f889a26d38a1785310b56290c28419b8892761
apiServer:
    address: https://e1-k8s-mfmm-lab-g-internal.mm.ch

controllerManager:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/liqo-controller-manager
crdReplicator:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/crd-replicator

#There is an error
# endpoints for service/liqo-metric-agent in "kube-liqo" have no addresses with port name "https"
metricAgent:
    enable: true

metrics:
    enabled: true
discovery:
    config:
        clusterID: e1-k8s-mfmm-lab-g
        clusterLabels:
            liqo.io/provider: kubeadm
ipam:
    internal:
        image:
            name: ghcr-docker-remote.repo.mm.ch/liqotech/ipam
    podCIDR: 10.127.64.0/18
    serviceCIDR: 10.127.0.0/18
networking:
    enabled: true
    fabric:
        image:
            name: ghcr-docker-remote.repo.mm.ch/liqotech/fabric
    gatewayTemplates:
        container:
            gateway:
                image:
                    name: ghcr-docker-remote.repo.mm.ch/liqotech/gateway
            geneve:
                image:
                    name: ghcr-docker-remote.repo.mm.ch/liqotech/gateway/geneve
            wireguard:
                image:
                    name: ghcr-docker-remote.repo.mm.ch/liqotech/gateway/wireguard
offloading:
    defaultNodeResources:
        cpu: "4"
        ephemeral-storage: 20Gi
        memory: 8Gi
        pods: "110"
    
proxy:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/proxy

storage:
    enable: false

telemetry:
    enabled: false

uninstaller:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/uninstaller

webhook:
    image:
        name: ghcr-docker-remote.repo.mm.ch/liqotech/webhook
        image: k8sgcr-docker-remote.repo.mm.ch/ingress-nginx/kube-webhook-certgen:v1.1.1

Currently I have the following netpols inplace

consumer

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-vk-access-from-any
  namespace: kube-liqo-tenant-e1-k8s-mfmm-lab-g
spec:
  # podSelector:
  #   matchLabels:
  #     app: controller-manager
  ingress:
  - from: []
    ports:
      - port: 10250
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-liqo-access-from-any
spec:
  # podSelector:
  #   matchLabels:
  #     app: controller-manager
  ingress:
  - from: []
    ports:
      - port: 9443
      - port: 8443
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: liqo-wireguard
  namespace: kube-liqo-tenant-e1-k8s-mfmm-lab-g
spec:
  ingress:
  - ports:
    - port: 33333
      protocol: UDP
    - port: 51840
      protocol: UDP
  podSelector: {}
  policyTypes:

provider

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: liqo-wireguard
  namespace: kube-liqo-tenant-e1-k8s-mfmm-lab-b
spec:
  ingress:
  - ports:
    - port: 33333
      protocol: UDP
    - port: 51840
      protocol: UDP
  podSelector: {}
  policyTypes:
  - Ingress
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-liqo-access-from-any
spec:
  # podSelector:
  #   matchLabels:
  #     app: controller-manager
  ingress:
  - from: []
    ports:
      - port: 9443
      - port: 8443

I did not see a log of errors, one thing might be that the provider gw I see

│ gateway E0212 16:09:42.463963       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteCon │
│ figuration" RouteConfiguration="kube-liqo/e1-k8s-alsu109.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu109.mm.ch-gw-node" reconcileID="bc0602e2-d3a6-471e-9061-ca1c78396c6f"       │
│ geneve I0212 16:09:44.243822       1 internalnode_controller.go:97] The remote IP of internalnode e1-k8s-alsu107.mm.ch is not set yet.                                                       │
│ geneve I0212 16:09:44.243885       1 internalnode_controller.go:97] The remote IP of internalnode e1-k8s-alsu108.mm.ch is not set yet.                                                       │
│ geneve I0212 16:09:44.243923       1 internalnode_controller.go:97] The remote IP of internalnode e1-k8s-alsu109.mm.ch is not set yet.                                                       │
│ geneve I0212 16:09:46.244227       1 internalnode_controller.go:97] The remote IP of internalnode e1-k8s-alsu107.mm.ch is not set yet.                                                       │
│ geneve I0212 16:09:46.244274       1 internalnode_controller.go:97] The remote IP of internalnode e1-k8s-alsu108.mm.ch is not set yet.                                                       │
│ geneve I0212 16:09:46.244292       1 internalnode_controller.go:97] The remote IP of internalnode e1-k8s-alsu109.mm.ch is not set yet.

This looks good on the consumer gw

│ gateway I0212 16:11:02.257828       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-gw-node                                               │
│ gateway I0212 16:11:02.259069       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-gw-node                                                │
│ gateway I0212 16:11:02.270866       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-service-nodeport-routing                              │
│ gateway I0212 16:11:02.271135       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-service-nodeport-routing                               │
│ gateway I0212 16:11:02.277247       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr                                               │
│ gateway I0212 16:11:02.279273       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr                                                │
│ gateway I0212 16:11:02.286936       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-gw-node                                               │
│ gateway I0212 16:11:02.294907       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-gw-node

@cheina97
Copy link
Member

Can you share the configuration resource of the 2 clusters

kubectl get configuration -A -o wide

@remmen-io
Copy link
Author


⎈ provider
➜ k get configurations.networking.liqo.io -A -o wide
NAMESPACE                             NAME                 DESIRED POD CIDR     REMAPPED POD CIDR   AGE   DESIRED EXTERNAL CIDR   REMAPPED EXTERNAL CIDR   CLUSTERID
kube-liqo-tenant-e1-k8s-mfmm-lab-b   e1-k8s-mfmm-lab-b   ["10.127.64.0/18"]   ["10.71.0.0/18"]    19h   ["10.70.0.0/16"]        ["10.68.0.0/16"]         e1-k8s-mfmm-lab-b


⎈ consumer
➜ k get configurations.networking.liqo.io -A -o wide
NAMESPACE                             NAME                 DESIRED POD CIDR     REMAPPED POD CIDR   AGE   DESIRED EXTERNAL CIDR   REMAPPED EXTERNAL CIDR   CLUSTERID
kube-liqo-tenant-e1-k8s-mfmm-lab-g   e1-k8s-mfmm-lab-g   ["10.127.64.0/18"]   ["10.71.0.0/18"]    19h   ["10.70.0.0/16"]        ["10.68.0.0/16"]         e1-k8s-mfmm-lab-g

@cheina97
Copy link
Member

cheina97 commented Feb 25, 2025

Hi @remmen-io, i just checked your use case in environment which is similar to yours.

I'm using 3 clusters (1 consumer and 2 providers) made with Kind. The podcidr is "10.127.64.0/18" in every cluster with cilium.
The Liqo version is the last one on master branch

❯ k get no                     
NAME                            STATUS   ROLES           AGE    VERSION
cheina-cluster1-control-plane   Ready    control-plane   13m    v1.32.1
cheina-cluster1-worker          Ready    <none>          13m    v1.32.1
cheina-cluster2                 Ready    agent           106s   v1.32.1
cheina-cluster3                 Ready    agent           105s   v1.32.1

❯ k get foreignclusters.core.liqo.io -o wide                                              
NAME              ROLE       CLUSTERID         AGE
cheina-cluster2   Provider   cheina-cluster2   2m37s
cheina-cluster3   Provider   cheina-cluster3   2m16s

❯ k get configurations.networking.liqo.io -A
NAMESPACE                     NAME              DESIRED POD CIDR     REMAPPED POD CIDR   AGE
liqo-tenant-cheina-cluster2   cheina-cluster2   ["10.127.64.0/18"]   ["10.71.0.0/18"]    2m45s
liqo-tenant-cheina-cluster3   cheina-cluster3   ["10.127.64.0/18"]   ["10.69.0.0/18"]    2m24s

❯ k get po -n liqo-demo -o wide             
NAME                     READY   STATUS    RESTARTS   AGE    IP            NODE              NOMINATED NODE   READINESS GATES
nginx-5869d7778c-tc5jw   1/1     Running   0          106s   10.69.1.198   cheina-cluster3   <none>           <none>

❯ k get svc -n liqo-demo nginx              
NAME    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
nginx   ClusterIP   10.111.166.93   <none>        80/TCP    16s

❯ k get ingress -n liqo-demo 
NAME    CLASS   HOSTS        ADDRESS       PORTS   AGE
nginx   nginx   kind.local   172.19.0.16   80      5m34s

❯ curl -I kind.local
HTTP/1.1 200 OK
Date: Tue, 25 Feb 2025 09:29:38 GMT
Content-Type: text/html
Content-Length: 615
Connection: keep-alive
Last-Modified: Wed, 05 Feb 2025 11:06:32 GMT
ETag: "67a34638-267"
Accept-Ranges: bytes

Do you think there is some huge difference in my setup?

@remmen-io
Copy link
Author

remmen-io commented Feb 25, 2025

Are you using cilium as CNI?

We did a lot of debugging and finally we saw the following on the provider cluster

➜ hubble observe --follow --to-ip 10.127.66.106 --numeric
Feb 25 15:19:24.674: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:25.688: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:26.708: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:27.732: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:28.756: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:29.784: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:30.804: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:31.828: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)
Feb 25 15:19:32.856: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)

Where 10.127.66.173 is the ip of the pod on the consumer cluster and 10.127.66.106 is the pod on the provider cluster

I then stumbled across this article about IP Spoofing protection:
https://cilium.io/blog/2020/06/29/cilium-kubernetes-cni-vulnerability/

...we can see that since the source IP wasn’t provided by Cilium’s IPAM subsystem, we know it’s a spoofed IP address and Cilium automatically blocks the traffic.

So I'm wondering if this could be the root cause?

@remmen-io
Copy link
Author

Thought a bit more about it.

Image

➜ hubble observe --follow --to-ip 10.127.66.106 --numeric
Feb 25 15:19:24.674: 10.127.66.173 (ID:50526) <> 10.127.66.106 (ID:8224) Invalid source ip DROPPED (ICMPv4 EchoRequest)

Fixed with disabling SourceIPVerification

➜ hubble observe --follow --ip 10.127.66.106 --numeric
Feb 26 08:03:38.489: 10.127.66.173 (world) <- 10.127.66.106 (ID:8224) to-overlay FORWARDED (ICMPv4 EchoReply)
Feb 26 08:03:38.490: 10.127.66.106 (ID:8224) <> 10.127.66.173 (world) Stale or unroutable IP DROPPED (ICMPv4 EchoReply)

Could it be that the issue is due to not performing a source ip nat? When I observe the packet from the pod on the consumer cluster to the provider cluster I noticed the source IP did not change on the liqo gateway on the provider cluster, only the destination IP. Is this the correct behavior?

This would explain the SourceIPVerification and unroutable IP from cilium. This seems to be a know problem with KubeOVN as well
cilium/cilium#33889

@remmen-io
Copy link
Author

And just verified with my initial curl request. The request gets dropped as the source IP is of the ingress-nginx on the consumer cluster which is unknown on the provider cluster

Feb 26 08:36:54.087: 10.127.66.58:40196 (world) <- 10.127.66.106:8000 (ID:8224) to-stack FORWARDED (TCP Flags: SYN, ACK)
Feb 26 08:36:54.087: 10.127.66.106:8000 (ID:8224) <> 10.127.66.58:40196 (world) Stale or unroutable IP DROPPED (TCP Flags: SYN, ACK)

@cheina97
Copy link
Member

Hi @remmen-io, when you sniff the traffic on the receiving pod, the source IP should be remapped on this network 10.71.0.0/18. But it seems that the source IP of the coming packets has not been remapped, can you confirm?

@remmen-io
Copy link
Author

Yes, I can confirm. On the receiving pod I see the original IP of the pod on the consumer cluster and not a remapped one

@cheina97
Copy link
Member

Can you check all the firewallconfiguration resources status?

@remmen-io
Copy link
Author

They seem to been applied on both clusters. Should I check a specific one?

⎈provider cluster

➜ for ns in $(kubectl get firewallconfiguration -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}' | sort -u); do
  echo "Checking namespace: $ns"
  kubectl get firewallconfiguration -n $ns -o custom-columns="NAME:.metadata.name,STATUS:.status.conditions[*].type"
done
Checking namespace: kube-liqo
NAME                                  STATUS
api-server-proxy-remap-ipmapping-gw   Applied
api-server-remap-ipmapping-gw         Applied
remap-ipmapping-gw                    Applied
service-nodeport-routing              Applied
Checking namespace: kube-liqo-tenant-e1-k8s-mfmm-lab-b
NAME                                                   STATUS
e1-k8s-mfmm-lab-b-masquerade-bypass                   Applied,Applied,Applied,Applied,Applied
e1-k8s-mfmm-lab-b-remap-externalcidr                  Applied
e1-k8s-mfmm-lab-b-remap-podcidr                       Applied
e1-k8s-mfmm-lab-b-unknown-source-remap-ipmapping-gw   Applied

⎈ consumer

➜ for ns in $(kubectl get firewallconfiguration -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}' | sort -u); do
  echo "Checking namespace: $ns"
  kubectl get firewallconfiguration -n $ns -o custom-columns="NAME:.metadata.name,STATUS:.status.conditions[*].type"
done
Checking namespace: kube-liqo
NAME                                  STATUS
api-server-proxy-remap-ipmapping-gw   Applied
api-server-remap-ipmapping-gw         Applied
remap-ipmapping-gw                    Applied
service-nodeport-routing              Applied
Checking namespace: kube-liqo-tenant-e1-k8s-mfmm-lab-g
NAME                                                   STATUS
e1-k8s-mfmm-lab-g-masquerade-bypass                   Applied,Applied,Applied,Applied,Applied,Applied
e1-k8s-mfmm-lab-g-remap-externalcidr                  Applied
e1-k8s-mfmm-lab-g-remap-podcidr                       Applied
e1-k8s-mfmm-lab-g-unknown-source-remap-ipmapping-gw   Applied
Checking namespace: liqo-demo
NAME                                           STATUS
gpu-test-7cc86f5845-mnvs7-remap-ipmapping-gw   Applied
vllm-6dfc7bb864-gkkcw-remap-ipmapping-gw       Applied

@remmen-io
Copy link
Author

consumer

➜ k describe firewallconfiguration -n kube-liqo-tenant-e1-k8s-mfmm-lab-g e1-k8s-mfmm-lab-g-remap-podcidr
Name:         e1-k8s-mfmm-lab-g-remap-podcidr
Namespace:    kube-liqo-tenant-e1-k8s-mfmm-lab-g
Labels:       liqo.io/managed=true
              networking.liqo.io/firewall-category=gateway
              networking.liqo.io/firewall-unique=e1-k8s-mfmm-lab-g
Annotations:  <none>
API Version:  networking.liqo.io/v1beta1
Kind:         FirewallConfiguration
Metadata:
  Creation Timestamp:  2025-02-25T13:50:22Z
  Generation:          1
  Owner References:
    API Version:     networking.liqo.io/v1beta1
    Kind:            Configuration
    Name:            e1-k8s-mfmm-lab-g
    UID:             85c91b8c-2dd1-4552-b7c7-43dd6d7c8e4c
  Resource Version:  1320981
  UID:               4399f982-1be5-423c-8c08-3f12c816ae49
Spec:
  Table:
    Chains:
      Hook:      prerouting
      Name:      outgoing
      Policy:    accept
      Priority:  -100
      Rules:
        Nat Rules:
          Match:
            Ip:
              Position:  dst
              Value:     10.71.0.0/18
            Op:          eq
            Dev:
              Position:  in
              Value:     eth0
            Op:          neq
            Dev:
              Position:  in
              Value:     liqo-tunnel
            Op:          neq
          Name:          2afe3f88-0825-4242-ae8e-a19416bac278
          Nat Type:      dnat
          To:            10.127.64.0/18
      Type:              nat
      Hook:              postrouting
      Name:              incoming
      Policy:            accept
      Priority:          100
      Rules:
        Nat Rules:
          Match:
            Dev:
              Position:  out
              Value:     eth0
            Op:          neq
            Ip:
              Position:  src
              Value:     10.127.64.0/18
            Op:          eq
            Dev:
              Position:  in
              Value:     liqo-tunnel
            Op:          eq
          Name:          00d4ce1c-3007-4ff2-bad8-f7c57e396a09
          Nat Type:      snat
          To:            10.71.0.0/18
      Type:              nat
    Family:              IPV4
    Name:                remap-podcidr
Status:
  Conditions:
    Host:                  e1-k8s-mfmm-lab-g
    Last Transition Time:  2025-02-25T13:51:43Z
    Status:                True
    Type:                  Applied
Events:
  Type    Reason                       Age                  From                 Message
  ----    ------                       ----                 ----                 -------
  Normal  FirewallConfigurationUpdate  2m4s (x14 over 20h)  firewall-controller  FirewallConfiguration Applied: True

provider

➜ k describe firewallconfigurations.networking.liqo.io -n kube-liqo-tenant-e1-k8s-mfmm-lab-b e1-k8s-mfmm-lab-b-remap-podcidr
Name:         e1-k8s-mfmm-lab-b-remap-podcidr
Namespace:    kube-liqo-tenant-e1-k8s-mfmm-lab-b
Labels:       liqo.io/managed=true
              networking.liqo.io/firewall-category=gateway
              networking.liqo.io/firewall-unique=e1-k8s-mfmm-lab-b
Annotations:  <none>
API Version:  networking.liqo.io/v1beta1
Kind:         FirewallConfiguration
Metadata:
  Creation Timestamp:  2025-02-25T13:50:22Z
  Generation:          2
  Owner References:
    API Version:     networking.liqo.io/v1beta1
    Kind:            Configuration
    Name:            e1-k8s-mfmm-lab-b
    UID:             0016af02-5644-46e4-b5ea-ec1aefd1b3f8
  Resource Version:  1952177
  UID:               263fb630-2636-4546-a58a-8eece8fc2e7a
Spec:
  Table:
    Chains:
      Hook:      prerouting
      Name:      outgoing
      Policy:    accept
      Priority:  -100
      Rules:
        Nat Rules:
          Match:
            Ip:
              Position:  dst
              Value:     10.71.0.0/18
            Op:          eq
            Dev:
              Position:  in
              Value:     eth0
            Op:          neq
            Dev:
              Position:  in
              Value:     liqo-tunnel
            Op:          neq
          Name:          954262cb-27c7-43e3-8b0d-758eb1e4c7b6
          Nat Type:      dnat
          To:            10.127.64.0/18
      Type:              nat
      Hook:              postrouting
      Name:              incoming
      Policy:            accept
      Priority:          100
      Rules:
        Nat Rules:
          Match:
            Dev:
              Position:  out
              Value:     eth0
            Op:          neq
            Ip:
              Position:  src
              Value:     10.127.64.0/18
            Op:          eq
            Dev:
              Position:  in
              Value:     liqo-tunnel
            Op:          eq
          Name:          2521f531-0ad9-4df3-b9a7-7b1ae0732801
          Nat Type:      snat
          To:            10.71.0.0/18
      Type:              nat
    Family:              IPV4
    Name:                remap-podcidr
Status:
  Conditions:
    Host:                  e1-k8s-mfmm-lab-b
    Last Transition Time:  2025-02-25T13:51:17Z
    Status:                True
    Type:                  Applied
Events:                    <none>

From the events I see

consumer

➜ k get events -n kube-liqo-tenant-e1-k8s-mfmm-lab-g
LAST SEEN   TYPE     REASON                        OBJECT                                                                       MESSAGE
55s         Normal   RouteConfigurationUpdate      routeconfiguration/e1-k8s-mfmm-lab-g-gw-ext                                 RouteConfiguration Applied: True
30m         Normal   FirewallConfigurationUpdate   firewallconfiguration/e1-k8s-mfmm-lab-g-masquerade-bypass                   FirewallConfiguration Applied: True
34m         Normal   FirewallConfigurationUpdate   firewallconfiguration/e1-k8s-mfmm-lab-g-masquerade-bypass                   FirewallConfiguration Applied: True
5m39s       Normal   RouteConfigurationUpdate      routeconfiguration/e1-k8s-mfmm-lab-g-node-gw                                RouteConfiguration Applied: True
11m         Normal   RouteConfigurationUpdate      routeconfiguration/e1-k8s-mfmm-lab-g-node-gw                                RouteConfiguration Applied: True
6m50s       Normal   RouteConfigurationUpdate      routeconfiguration/e1-k8s-mfmm-lab-g-node-gw                                RouteConfiguration Applied: True
19s         Normal   FirewallConfigurationUpdate   firewallconfiguration/e1-k8s-mfmm-lab-g-remap-externalcidr                  FirewallConfiguration Applied: True
19s         Normal   FirewallConfigurationUpdate   firewallconfiguration/e1-k8s-mfmm-lab-g-remap-podcidr                       FirewallConfiguration Applied: True
19s         Normal   FirewallConfigurationUpdate   firewallconfiguration/e1-k8s-mfmm-lab-g-unknown-source-remap-ipmapping-gw   FirewallConfiguration Applied: True
19s         Normal   Processing                    configuration/e1-k8s-mfmm-lab-g                                             Processing configuration
19s         Normal   Processing                    configuration/e1-k8s-mfmm-lab-g                                             Configuration remapped
16m         Normal   Reconciled                    gatewayclient/e1-k8s-mfmm-lab-g                                             Reconciled GatewayClient "e1-k8s-mfmm-lab-g"
6m22s       Normal   KeysSecretEnforced            wggatewayclient/e1-k8s-mfmm-lab-g                                           Enforced keys secret
6m22s       Normal   Reconciled                    wggatewayclient/e1-k8s-mfmm-lab-g                                           WireGuard gateway client reconciled
6m22s       Normal   DeploymentEnforced            wggatewayclient/e1-k8s-mfmm-lab-g                                           Enforced deployment
6m22s       Normal   MetricsEnforced               wggatewayclient/e1-k8s-mfmm-lab-g                                           Enforced metrics
48m         Normal   IdentityEnsured               resourceslice/gpupool                                                        Identity ensured
11m         Normal   VirtualNodeCreated            resourceslice/gpupool                                                        VirtualNode created for resourceslice

provider

➜ k get events -n kube-liqo-tenant-e1-k8s-mfmm-lab-b
LAST SEEN   TYPE     REASON                     OBJECT                                          MESSAGE
5m57s       Normal   RouteConfigurationUpdate   routeconfiguration/e1-k8s-mfmm-lab-b-gw-ext    RouteConfiguration Applied: True
5m58s       Normal   RouteConfigurationUpdate   routeconfiguration/e1-k8s-mfmm-lab-b-node-gw   RouteConfiguration Applied: True

I the firewall configuration on the provider not applied?

@remmen-io
Copy link
Author

debug

<K9s-Shell>> Pod: kube-liqo-tenant-e1-k8s-mfmm-lab-b/gw-e1-k8s-mfmm-lab-b-7849c4d7d4-rfsmx | Container: gateway
gw-e1-k8s-mfmm-lab-b-7849c4d7d4-rfsmx:/# nft list ruleset
table ip remap-externalcidr {
        chain outgoing {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 10.68.0.0/16 iifname != "eth0" iifname != "liqo-tunnel" dnat prefix to 10.70.0.0/16 comment "a4125de6-dd45-4775-b48c-f211aa0f1789"
        }

        chain incoming {
                type nat hook postrouting priority srcnat; policy accept;
                oifname != "eth0" ip saddr 10.70.0.0/16 iifname "liqo-tunnel" snat prefix to 10.68.0.0/16 comment "a5fcf167-220b-4324-a23f-3f0e3f116e74"
        }
}
table ip remap-podcidr {
        chain outgoing {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 10.71.0.0/18 iifname != "eth0" iifname != "liqo-tunnel" dnat prefix to 10.127.64.0/18 comment "954262cb-27c7-43e3-8b0d-758eb1e4c7b6"
        }

        chain incoming {
                type nat hook postrouting priority srcnat; policy accept;
                oifname != "eth0" ip saddr 10.127.64.0/18 iifname "liqo-tunnel" snat prefix to 10.71.0.0/18 comment "2521f531-0ad9-4df3-b9a7-7b1ae0732801"
        }
}
table ip e1-k8s-mfmm-lab-b-unknown-source-remap-ipmapping-gw-kube-liqo-tenant-e1-k8s-mfmm-lab-b {
        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 10.70.0.3 dnat to 10.68.0.0 comment "e1-k8s-mfmm-lab-b-unknown-source"
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                ip saddr 10.70.0.3 snat to 10.68.0.0 comment "e1-k8s-mfmm-lab-b-unknown-source"
        }
}
table ip api-server-proxy-remap-ipmapping-gw-kube-liqo {
        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 10.70.0.2 dnat to 10.127.2.53 comment "api-server-proxy"
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                ip saddr 10.70.0.2 snat to 10.127.2.53 comment "api-server-proxy"
        }
}
table ip api-server-remap-ipmapping-gw-kube-liqo {
        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 10.70.0.1 dnat to 10.127.0.1 comment "api-server"
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                ip saddr 10.70.0.1 snat to 10.127.0.1 comment "api-server"
        }
}
table ip remap-ipmapping-gw-kube-liqo {
        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 10.70.0.1 dnat to 10.127.0.1 comment "api-server"
                ip daddr 10.70.0.2 dnat to 10.127.24.122 comment "api-server-proxy"
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                ip saddr 10.70.0.1 snat to 10.127.0.1 comment "api-server"
                ip saddr 10.70.0.2 snat to 10.127.24.122 comment "api-server-proxy"
        }
}
table ip service-nodeport-routing {
        chain mark-to-conntrack {
                type filter hook forward priority filter; policy accept;
                ip saddr 10.70.0.0 iifname "liqo.bnqh8vb75t" ct mark set 0x00000001 comment "e1-k8s-alsu109.mm.ch"
                ip saddr 10.70.0.0 iifname "liqo.fkltz6j7fm" ct mark set 0x00000002 comment "e1-k8s-alsu120.mm.ch"
                ip saddr 10.70.0.0 iifname "liqo.h7mdknq8vx" ct mark set 0x00000003 comment "e1-k8s-alsu121.mm.ch"
                ip saddr 10.70.0.0 iifname "liqo.w66q4zznff" ct mark set 0x00000004 comment "e1-k8s-mlsu013.mm.ch"
                ip saddr 10.70.0.0 iifname "liqo.nhx8sk7x7g" ct mark set 0x00000005 comment "e1-k8s-mlsu014.mm.ch"
                ip saddr 10.70.0.0 iifname "liqo.zvxww6qlxm" ct mark set 0x00000006 comment "e1-k8s-mlsu015.mm.ch"
                ip saddr 10.70.0.0 iifname "liqo.k6kfx8m6cl" ct mark set 0x00000007 comment "e1-k8s-alsu107.mm.ch"
                ip saddr 10.70.0.0 iifname "liqo.mngmvldlvc" ct mark set 0x00000008 comment "e1-k8s-alsu108.mm.ch"
        }

        chain conntrack-mark-to-meta-mark {
                type filter hook prerouting priority filter; policy accept;
                ip daddr 10.70.0.0 iifname "liqo-tunnel" meta mark set ct mark comment "conntrack-mark-to-meta-mark"
        }
}
gw-e1-k8s-mfmm-lab-b-7849c4d7d4-rfsmx:/#

@cheina97
Copy link
Member

Can you check sniffing traffic if the src nat is working and what outgoing interface is being used for traffic coming from the consumer cluster?

@remmen-io
Copy link
Author

tcpdump on gateway pod on provider cluster

gw-e1-k8s-mfmm-lab-b-7849c4d7d4-rfsmx:/# tcpdump -tnl -i any icmp
tcpdump: WARNING: any: That device doesn't support promiscuous mode
(Promiscuous mode not supported on the "any" device)
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
liqo-tunnel In  IP 10.127.66.182 > 10.127.66.106: ICMP echo request, id 7, seq 59, length 64
eth0  Out IP 10.127.66.182 > 10.127.66.106: ICMP echo request, id 7, seq 59, length 64
liqo-tunnel In  IP 10.127.66.182 > 10.127.66.106: ICMP echo request, id 7, seq 60, length 64
eth0  Out IP 10.127.66.182 > 10.127.66.106: ICMP echo request, id 7, seq 60, length 64
liqo-tunnel In  IP 10.127.66.182 > 10.127.66.106: ICMP echo request, id 7, seq 61, length 64
eth0  Out IP 10.127.66.182 > 10.127.66.106: ICMP echo request, id 7, seq 61, length 64

Pods on consumer

➜ k get pods -o wide
NAME                        READY   STATUS        RESTARTS   AGE    IP              NODE                     NOMINATED NODE   READINESS GATES
gpu-test-7cc86f5845-8frcz   0/1     Pending       0          5s     <none>          <none>                   <none>           <none>
gpu-test-7cc86f5845-czkp4   1/1     Terminating   0          5m5s   10.71.1.247     gpupool                  <none>           <none>
netshoot                    1/1     Running       0          2m     10.127.66.182   e1-k8s-alsu016.mm.ch   <none>           <none>
vllm-6dfc7bb864-gkkcw       1/1     Running       0          21h    10.71.2.106     gpupool                  <none>           <none>

Pods on provider

➜ k get pods -o wide
NAME                        READY   STATUS        RESTARTS   AGE   IP              NODE                     NOMINATED NODE   READINESS GATES
gpu-test-7cc86f5845-czkp4   1/1     Terminating   0          5m    10.127.65.247   e1-k8s-alsu107.mm.ch   <none>           <none>
vllm-6dfc7bb864-gkkcw       1/1     Running       0          21h   10.127.66.106   e1-k8s-alsu108.mm.ch   <none>           <none>

@cheina97
Copy link
Member

Ok, the problem is that the traffic is going out from the gateway using eth0, but it should use one of the geneve interfaces present on the gateway. Can you give me more information about your setup? Like kernel, linux distribution and kubernetes distribution? It seems that for some reason the policy routing is not working on your gateway, I had a similar issue with RHEL in the past.

@remmen-io
Copy link
Author

In this cluster we have:

  • Debian 12.9
  • Linux e1-k8s-alsu107 6.1.0-31-amd64 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux
  • Kubernetes v1.31.5
  • Cilium v1.16.6-cee.1

On the provider cluster I've seen the following events (the last 100)

E0226 12:00:59.230932       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu108.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu108.mm.ch-gw-node" reconcileID="0408ca4d-f388-4f19-8aff-4bb05ccc730e"
I0226 12:00:59.233970       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-gw-node
I0226 12:00:59.243010       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-gw-node
I0226 12:00:59.253904       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-service-nodeport-routing
I0226 12:00:59.254627       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-service-nodeport-routing
I0226 12:00:59.262570       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-gw-node
I0226 12:00:59.264647       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-gw-node
I0226 12:00:59.271219       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-service-nodeport-routing
I0226 12:00:59.271511       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-service-nodeport-routing
I0226 12:00:59.277126       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-service-nodeport-routing
I0226 12:00:59.277389       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-service-nodeport-routing
I0226 12:00:59.283168       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu107.mm.ch-service-nodeport-routing
E0226 12:00:59.288950       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu107.mm.ch-service-nodeport-routing" namespace="kube-liqo" name="e1-k8s-alsu107.mm.ch-service-nodeport-routing" reconcileID="4aec11e6-4859-4559-908c-381592645d86"
I0226 12:00:59.289331       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-service-nodeport-routing
I0226 12:00:59.289582       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-service-nodeport-routing
I0226 12:00:59.295111       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-extcidr
I0226 12:00:59.295869       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-extcidr
I0226 12:00:59.304953       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:00:59.325159       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:00:59.417432       1 netmonitor.go:235] Route removed: 10.127.67.47/32
I0226 12:00:59.419183       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:00:59.432480       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:00:59.450187       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-gw-ext
I0226 12:00:59.454030       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-gw-ext
I0226 12:00:59.465023       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-gw-node
I0226 12:00:59.474190       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-gw-node
I0226 12:00:59.493577       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-service-nodeport-routing
I0226 12:00:59.493852       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-service-nodeport-routing
I0226 12:00:59.499495       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-gw-node
I0226 12:00:59.502664       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-gw-node
I0226 12:00:59.508813       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-service-nodeport-routing
I0226 12:00:59.509090       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-service-nodeport-routing
I0226 12:00:59.514416       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-service-nodeport-routing
I0226 12:00:59.514699       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-service-nodeport-routing
I0226 12:00:59.558054       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu107.mm.ch-service-nodeport-routing
E0226 12:00:59.607855       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu107.mm.ch-service-nodeport-routing" namespace="kube-liqo" name="e1-k8s-alsu107.mm.ch-service-nodeport-routing" reconcileID="2615071f-d6a6-468a-b2fe-7aecb430c4a8"
I0226 12:00:59.608267       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-service-nodeport-routing
I0226 12:00:59.608527       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-service-nodeport-routing
I0226 12:00:59.657635       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-service-nodeport-routing
I0226 12:00:59.657931       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-service-nodeport-routing
I0226 12:00:59.709844       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-gw-node
I0226 12:00:59.711861       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-gw-node
I0226 12:00:59.757859       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu109.mm.ch-gw-node
E0226 12:00:59.810032       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu109.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu109.mm.ch-gw-node" reconcileID="37341e12-f7a6-49f5-92c3-462b9e361d78"
I0226 12:00:59.810785       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-gw-node
I0226 12:00:59.812591       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-gw-node
I0226 12:00:59.860111       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu107.mm.ch-gw-node
E0226 12:00:59.907521       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu107.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu107.mm.ch-gw-node" reconcileID="501c712c-f777-4f98-a10b-799aae41eb9a"
I0226 12:00:59.907859       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu108.mm.ch-service-nodeport-routing
E0226 12:00:59.956715       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu108.mm.ch-service-nodeport-routing" namespace="kube-liqo" name="e1-k8s-alsu108.mm.ch-service-nodeport-routing" reconcileID="eae6e0ce-2e2a-432e-abca-91456e43f493"
I0226 12:00:59.957062       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu109.mm.ch-service-nodeport-routing
E0226 12:01:00.007492       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu109.mm.ch-service-nodeport-routing" namespace="kube-liqo" name="e1-k8s-alsu109.mm.ch-service-nodeport-routing" reconcileID="e6b32cc5-67c9-4bb6-8095-e990215fa39e"
I0226 12:01:00.008128       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu108.mm.ch-gw-node
E0226 12:01:00.058446       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu108.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu108.mm.ch-gw-node" reconcileID="5fffc8ac-6e61-4c18-9257-48be2dd5a649"
I0226 12:01:00.059015       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-extcidr
I0226 12:01:00.059791       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-extcidr
I0226 12:01:00.110879       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:01:00.123011       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:01:02.016665       1 netmonitor.go:235] Route removed: 10.127.67.60/32
I0226 12:01:02.019217       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:01:02.031427       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:01:02.041832       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-gw-ext
I0226 12:01:02.045334       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-gw-ext
I0226 12:01:02.053328       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-service-nodeport-routing
I0226 12:01:02.053804       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-service-nodeport-routing
I0226 12:01:02.059829       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-gw-node
I0226 12:01:02.061636       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-gw-node
I0226 12:01:02.069128       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu109.mm.ch-gw-node
E0226 12:01:02.079121       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu109.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu109.mm.ch-gw-node" reconcileID="4e983ca6-7c3c-4f2c-9fc6-b5e2a7e4ede9"
I0226 12:01:02.079778       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-gw-node
I0226 12:01:02.083651       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-gw-node
I0226 12:01:02.090996       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu107.mm.ch-gw-node
E0226 12:01:02.097436       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu107.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu107.mm.ch-gw-node" reconcileID="3bc947f0-14ac-4e0b-9201-e8233fa5988a"
I0226 12:01:02.097792       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu108.mm.ch-service-nodeport-routing
E0226 12:01:02.103229       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu108.mm.ch-service-nodeport-routing" namespace="kube-liqo" name="e1-k8s-alsu108.mm.ch-service-nodeport-routing" reconcileID="2f7af0be-479a-43bf-9153-f40bb127cf34"
I0226 12:01:02.103586       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu109.mm.ch-service-nodeport-routing
E0226 12:01:02.108862       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu109.mm.ch-service-nodeport-routing" namespace="kube-liqo" name="e1-k8s-alsu109.mm.ch-service-nodeport-routing" reconcileID="fe7a04f2-3989-4420-a850-86bbfba3a2e5"
I0226 12:01:02.109214       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu108.mm.ch-gw-node
E0226 12:01:02.119697       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu108.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu108.mm.ch-gw-node" reconcileID="4c2884b0-676b-48e4-8814-0b33f9e6c628"
I0226 12:01:02.122682       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-gw-node
I0226 12:01:02.132479       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-gw-node
I0226 12:01:02.142018       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-service-nodeport-routing
I0226 12:01:02.142428       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu121.mm.ch-service-nodeport-routing
I0226 12:01:02.148775       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-gw-node
I0226 12:01:02.151609       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu013.mm.ch-gw-node
I0226 12:01:02.158475       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-service-nodeport-routing
I0226 12:01:02.158762       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu014.mm.ch-service-nodeport-routing
I0226 12:01:02.165368       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-service-nodeport-routing
I0226 12:01:02.165727       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu015.mm.ch-service-nodeport-routing
I0226 12:01:02.174720       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu107.mm.ch-service-nodeport-routing
E0226 12:01:02.181839       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu107.mm.ch-service-nodeport-routing" namespace="kube-liqo" name="e1-k8s-alsu107.mm.ch-service-nodeport-routing" reconcileID="f3fa5f1a-a378-4131-bb5e-52e60f444e23"
I0226 12:01:02.182244       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-service-nodeport-routing
I0226 12:01:02.182508       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-service-nodeport-routing
I0226 12:01:02.194878       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-extcidr
I0226 12:01:02.195787       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-extcidr
I0226 12:01:02.205782       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:01:02.218454       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu120.mm.ch-gw-node
I0226 12:01:17.579665       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu107.mm.ch-gw-node
E0226 12:01:17.585955       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu107.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu107.mm.ch-gw-node" reconcileID="c97e410e-6a27-40b9-b247-6db27ba0e9de"
I0226 12:01:19.576110       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu107.mm.ch-gw-node
E0226 12:01:19.583125       1 controller.go:316] "Reconciler error" err="Link not found" controller="routeconfiguration" controllerGroup="networking.liqo.io" controllerKind="RouteConfiguration" RouteConfiguration="kube-liqo/e1-k8s-alsu107.mm.ch-gw-node" namespace="kube-liqo" name="e1-k8s-alsu107.mm.ch-gw-node" reconcileID="67a4c917-7304-458c-bb0d-cb6dfa9f01c8"

on the consumer I see


I0226 12:00:59.629233       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu015.mm.ch-service-nodeport-routing
I0226 12:00:59.629490       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu015.mm.ch-service-nodeport-routing
I0226 12:00:59.641272       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-service-nodeport-routing
I0226 12:00:59.641522       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-service-nodeport-routing
I0226 12:00:59.647121       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-service-nodeport-routing
I0226 12:00:59.647340       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-service-nodeport-routing
I0226 12:00:59.652804       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-service-nodeport-routing
I0226 12:00:59.653089       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-service-nodeport-routing
I0226 12:00:59.658779       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-gw-node
I0226 12:00:59.662051       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-gw-node
I0226 12:00:59.668548       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu014.mm.ch-service-nodeport-routing
I0226 12:00:59.668782       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu014.mm.ch-service-nodeport-routing
I0226 12:00:59.674069       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-service-nodeport-routing
I0226 12:00:59.674297       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-service-nodeport-routing
I0226 12:00:59.680325       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-gw-node
I0226 12:00:59.682110       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-gw-node
I0226 12:00:59.693087       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-gw-node
I0226 12:00:59.695482       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-gw-node
I0226 12:00:59.704007       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr
I0226 12:00:59.705014       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr
I0226 12:00:59.711997       1 netmonitor.go:235] Route removed: 10.127.66.187/32
I0226 12:00:59.713987       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-gw-node
I0226 12:00:59.723662       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-gw-node
I0226 12:00:59.752980       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-gw-ext
I0226 12:00:59.755939       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-gw-ext
I0226 12:00:59.801766       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-gw-node
I0226 12:00:59.804219       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-gw-node
I0226 12:00:59.851138       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-gw-node
I0226 12:00:59.852872       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-gw-node
I0226 12:00:59.901355       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu014.mm.ch-gw-node
I0226 12:00:59.908768       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu014.mm.ch-gw-node
I0226 12:00:59.953542       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu015.mm.ch-gw-node
I0226 12:00:59.960998       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu015.mm.ch-gw-node
I0226 12:01:00.006328       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu015.mm.ch-service-nodeport-routing
I0226 12:01:00.006585       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu015.mm.ch-service-nodeport-routing
I0226 12:01:00.051723       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-service-nodeport-routing
I0226 12:01:00.051933       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu005.mm.ch-service-nodeport-routing
I0226 12:01:00.100516       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-service-nodeport-routing
I0226 12:01:00.100802       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu006.mm.ch-service-nodeport-routing
I0226 12:01:00.152083       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-service-nodeport-routing
I0226 12:01:00.152432       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-service-nodeport-routing
I0226 12:01:00.201430       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-gw-node
I0226 12:01:00.204914       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-gw-node
I0226 12:01:00.252072       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu014.mm.ch-service-nodeport-routing
I0226 12:01:00.252405       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu014.mm.ch-service-nodeport-routing
I0226 12:01:00.300041       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-service-nodeport-routing
I0226 12:01:00.300367       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-mlsu004.mm.ch-service-nodeport-routing
I0226 12:01:00.350037       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr
I0226 12:01:00.350913       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr
I0226 12:01:00.403583       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-gw-node
I0226 12:01:00.412108       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-gw-node
I0226 12:01:17.674271       1 routeconfiguration_controller.go:161] Applying routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr
I0226 12:01:17.675381       1 routeconfiguration_controller.go:176] Applied routeconfiguration kube-liqo/e1-k8s-alsu016.mm.ch-extcidr
I0226 12:01:17.700705       1 netmonitor.go:269] Nftables rule removed: 

@cheina97
Copy link
Member

In the provider gateway can you give me the output of ip route show table all, ip rule and ip a ?

@cheina97
Copy link
Member

Can you also send the output of these 2 commands?

kubectl get routeconfiguration -A -o json | jq -r '.items[] | "\(.metadata.namespace)/\(.metadata.name)"' | while read -r resource; do namespace=$(echo "$resource" | cut -d'/' -f1); name=$(echo "$resource" | cut -d'/' -f2); echo "$namespace/$name: $(kubectl get routeconfiguration -n "$namespace" "$name" -o yaml | wc -l) lines"; done
kubectl get firewallconfiguration -A -o json | jq -r '.items[] | "\(.metadata.namespace)/\(.metadata.name)"' | while read -r resource; do namespace=$(echo "$resource" | cut -d'/' -f1); name=$(echo "$resource" | cut -d'/' -f2); echo "$namespace/$name: $(kubectl get firewallconfiguration -n "$namespace" "$name" -o yaml | wc -l) lines"; done

@remmen-io
Copy link
Author

provider cluster

gw-e1-k8s-mfmm-lab-b-7849c4d7d4-rfsmx:/# ip route show table all

10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch scope link
10.127.65.2 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.24 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.25 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.28 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.35 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.54 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.55 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.67 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.91 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.120 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.127.65.122 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch
10.70.0.0 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch-service-nodeport-routing
10.70.0.0 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch-service-nodeport-routing
10.68.0.0 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch-extcidr
10.71.0.0/18 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch-extcidr
10.127.0.1 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch-extcidr
10.127.2.53 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch-extcidr
10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch scope link
10.127.64.11 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.17 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.21 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.24 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.43 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.46 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.54 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.68 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.71 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.72 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.76 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.95 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.127.64.104 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch
10.70.0.0 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch-service-nodeport-routing
10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch scope link
10.127.64.161 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.165 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.173 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.179 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.209 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.210 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.211 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.212 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.220 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.249 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.127.64.253 via 10.80.0.6 dev liqo.zvxww6qlxm table e1-k8s-mlsu015.mm.ch
10.70.0.0/16 via 169.254.18.2 dev liqo-tunnel table e1-k8s-mfmm-lab-b
10.127.64.0/18 via 169.254.18.2 dev liqo-tunnel table e1-k8s-mfmm-lab-b
10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch scope link
10.127.67.131 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.132 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.133 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.134 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.135 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.136 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.137 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.138 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.142 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.143 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.145 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.146 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.149 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.153 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.158 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.161 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.162 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.163 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.166 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.170 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.173 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.174 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.175 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.176 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.177 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.178 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.179 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.180 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.181 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.182 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.183 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.185 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.187 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.188 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.190 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.192 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.197 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.198 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.199 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.200 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.202 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.209 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.210 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.211 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.212 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.213 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.220 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.230 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.233 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.234 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.236 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.238 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.250 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.127.67.252 via 10.80.0.3 dev liqo.h7mdknq8vx table e1-k8s-alsu121.mm.ch
10.70.0.0 via 10.80.0.5 dev liqo.nhx8sk7x7g table e1-k8s-mlsu014.mm.ch-service-nodeport-routing
10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch scope link
10.127.67.3 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.4 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.6 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.12 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.14 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.16 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.17 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.19 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.20 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.22 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.23 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.24 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.25 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.26 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.28 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.29 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.30 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.31 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.32 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.33 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.34 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.35 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.38 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.39 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.40 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.41 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.42 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.43 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.46 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.48 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.49 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.51 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.52 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.54 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.55 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.56 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.58 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.59 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.61 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.62 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.63 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.64 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.65 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.66 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.67 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.68 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.69 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.70 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.71 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.72 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.73 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.75 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.76 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.77 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.80 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.81 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.82 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.86 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.90 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.91 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.92 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.94 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.95 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.96 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.98 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.102 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.103 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.104 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.105 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.106 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.107 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.108 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.112 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.114 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.115 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.116 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.122 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.127.67.124 via 10.80.0.2 dev liqo.fkltz6j7fm table e1-k8s-alsu120.mm.ch
10.70.0.0 via 10.80.0.4 dev liqo.w66q4zznff table e1-k8s-mlsu013.mm.ch-service-nodeport-routing
default via 10.127.67.50 dev eth0 mtu 8870
10.127.67.50 dev eth0 scope link
169.254.18.0/30 dev liqo-tunnel proto kernel scope link src 169.254.18.1
local 10.80.0.9 dev liqo.w66q4zznff table local proto kernel scope host src 10.80.0.9
local 10.80.0.9 dev liqo.nhx8sk7x7g table local proto kernel scope host src 10.80.0.9
local 10.80.0.9 dev liqo.zvxww6qlxm table local proto kernel scope host src 10.80.0.9
local 10.80.0.9 dev liqo.fkltz6j7fm table local proto kernel scope host src 10.80.0.9
local 10.80.0.9 dev liqo.h7mdknq8vx table local proto kernel scope host src 10.80.0.9
local 10.127.67.91 dev eth0 table local proto kernel scope host src 10.127.67.91
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
local 169.254.18.1 dev liqo-tunnel table local proto kernel scope host src 169.254.18.1
broadcast 169.254.18.3 dev liqo-tunnel table local proto kernel scope link src 169.254.18.1
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev liqo.w66q4zznff proto kernel metric 256 pref medium
fe80::/64 dev liqo.nhx8sk7x7g proto kernel metric 256 pref medium
fe80::/64 dev liqo.zvxww6qlxm proto kernel metric 256 pref medium
fe80::/64 dev liqo.fkltz6j7fm proto kernel metric 256 pref medium
fe80::/64 dev liqo.h7mdknq8vx proto kernel metric 256 pref medium
local ::1 dev lo table local proto kernel metric 0 pref medium
local fe80::833:e4ff:fe01:262e dev liqo.h7mdknq8vx table local proto kernel metric 0 pref medium
local fe80::3883:49ff:fe58:c907 dev liqo.zvxww6qlxm table local proto kernel metric 0 pref medium
local fe80::64af:e9ff:fe90:f9d2 dev liqo.fkltz6j7fm table local proto kernel metric 0 pref medium
local fe80::68af:57ff:fe45:2a5f dev liqo.w66q4zznff table local proto kernel metric 0 pref medium
local fe80::74e3:4cff:fe6e:47fe dev eth0 table local proto kernel metric 0 pref medium
local fe80::f805:1eff:fe49:d6f dev liqo.nhx8sk7x7g table local proto kernel metric 0 pref medium
multicast ff00::/8 dev eth0 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev liqo-tunnel table local proto kernel metric 256 pref medium
multicast ff00::/8 dev liqo.w66q4zznff table local proto kernel metric 256 pref medium
multicast ff00::/8 dev liqo.nhx8sk7x7g table local proto kernel metric 256 pref medium
multicast ff00::/8 dev liqo.zvxww6qlxm table local proto kernel metric 256 pref medium
multicast ff00::/8 dev liqo.fkltz6j7fm table local proto kernel metric 256 pref medium
multicast ff00::/8 dev liqo.h7mdknq8vx table local proto kernel metric 256 pref medium

gw-e1-k8s-mfmm-lab-b-7849c4d7d4-rfsmx:/# ip rule

0:      from all lookup local
32727:  from all iif liqo-tunnel lookup e1-k8s-mlsu015.mm.ch
32728:  from all iif liqo-tunnel lookup e1-k8s-mlsu014.mm.ch
32729:  from all iif liqo-tunnel lookup e1-k8s-alsu120.mm.ch-extcidr
32730:  from all iif liqo-tunnel lookup e1-k8s-mlsu013.mm.ch
32731:  from all iif liqo-tunnel lookup e1-k8s-alsu121.mm.ch
32732:  from all to 10.80.0.3 lookup e1-k8s-alsu121.mm.ch
32733:  from all iif liqo-tunnel lookup e1-k8s-alsu120.mm.ch
32734:  from all to 10.80.0.2 lookup e1-k8s-alsu120.mm.ch
32735:  from all to 10.80.0.8 lookup e1-k8s-alsu108.mm.ch
32736:  from all to 10.70.0.0 fwmark 0x1 lookup e1-k8s-alsu109.mm.ch-service-nodeport-routing
32737:  from all to 10.70.0.0 fwmark 0x8 lookup e1-k8s-alsu108.mm.ch-service-nodeport-routing
32738:  from all to 10.80.0.7 lookup e1-k8s-alsu107.mm.ch
32739:  from all to 10.70.0.0/16 iif liqo.w66q4zznff lookup e1-k8s-mfmm-lab-b
32740:  from all to 10.127.64.0/18 iif liqo.w66q4zznff lookup e1-k8s-mfmm-lab-b
32741:  from all to 10.70.0.0/16 iif liqo.h7mdknq8vx lookup e1-k8s-mfmm-lab-b
32742:  from all to 10.127.64.0/18 iif liqo.h7mdknq8vx lookup e1-k8s-mfmm-lab-b
32743:  from all to 10.70.0.0/16 iif liqo.fkltz6j7fm lookup e1-k8s-mfmm-lab-b
32744:  from all to 10.127.64.0/18 iif liqo.fkltz6j7fm lookup e1-k8s-mfmm-lab-b
32745:  from all to 10.70.0.0/16 iif liqo.bnqh8vb75t [detached] lookup e1-k8s-mfmm-lab-b
32746:  from all to 10.127.64.0/18 iif liqo.bnqh8vb75t [detached] lookup e1-k8s-mfmm-lab-b
32747:  from all to 10.70.0.0/16 iif liqo.mngmvldlvc [detached] lookup e1-k8s-mfmm-lab-b
32748:  from all to 10.127.64.0/18 iif liqo.mngmvldlvc [detached] lookup e1-k8s-mfmm-lab-b
32749:  from all to 10.70.0.0/16 iif liqo.k6kfx8m6cl [detached] lookup e1-k8s-mfmm-lab-b
32750:  from all to 10.127.64.0/18 iif liqo.k6kfx8m6cl [detached] lookup e1-k8s-mfmm-lab-b
32751:  from all to 10.70.0.0/16 iif liqo.zvxww6qlxm lookup e1-k8s-mfmm-lab-b
32752:  from all to 10.127.64.0/18 iif liqo.zvxww6qlxm lookup e1-k8s-mfmm-lab-b
32753:  from all to 10.70.0.0/16 iif liqo.nhx8sk7x7g lookup e1-k8s-mfmm-lab-b
32754:  from all to 10.127.64.0/18 iif liqo.nhx8sk7x7g lookup e1-k8s-mfmm-lab-b
32755:  from all to 10.80.0.6 lookup e1-k8s-mlsu015.mm.ch
32756:  from all to 10.80.0.1 lookup e1-k8s-alsu109.mm.ch
32757:  from all to 10.80.0.5 lookup e1-k8s-mlsu014.mm.ch
32758:  from all to 10.70.0.0 fwmark 0x4 lookup e1-k8s-mlsu013.mm.ch-service-nodeport-routing
32759:  from all to 10.70.0.0 fwmark 0x2 lookup e1-k8s-alsu120.mm.ch-service-nodeport-routing
32760:  from all to 10.71.0.0/18 iif liqo-tunnel lookup e1-k8s-alsu120.mm.ch-extcidr
32761:  from all to 10.70.0.0 fwmark 0x7 lookup e1-k8s-alsu107.mm.ch-service-nodeport-routing
32762:  from all to 10.70.0.0 fwmark 0x6 lookup e1-k8s-mlsu015.mm.ch-service-nodeport-routing
32763:  from all to 10.70.0.0 fwmark 0x5 lookup e1-k8s-mlsu014.mm.ch-service-nodeport-routing
32764:  from all to 10.80.0.4 lookup e1-k8s-mlsu013.mm.ch
32765:  from all to 10.70.0.0 fwmark 0x3 lookup e1-k8s-alsu121.mm.ch-service-nodeport-routing
32766:  from all lookup main
32767:  from all lookup default

gw-e1-k8s-mfmm-lab-b-7849c4d7d4-rfsmx:/# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host proto kernel_lo
       valid_lft forever preferred_lft forever
2: liqo-tunnel: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1340 qdisc noqueue state UNKNOWN group default
    link/none
    inet 169.254.18.1/30 brd 169.254.18.3 scope global liqo-tunnel
       valid_lft forever preferred_lft forever
3: liqo.w66q4zznff: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1340 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 6a:af:57:45:2a:5f brd ff:ff:ff:ff:ff:ff
    inet 10.80.0.9/32 scope global liqo.w66q4zznff
       valid_lft forever preferred_lft forever
    inet6 fe80::68af:57ff:fe45:2a5f/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
4: liqo.nhx8sk7x7g: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1340 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether fa:05:1e:49:0d:6f brd ff:ff:ff:ff:ff:ff
    inet 10.80.0.9/32 scope global liqo.nhx8sk7x7g
       valid_lft forever preferred_lft forever
    inet6 fe80::f805:1eff:fe49:d6f/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
5: liqo.zvxww6qlxm: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1340 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 3a:83:49:58:c9:07 brd ff:ff:ff:ff:ff:ff
    inet 10.80.0.9/32 scope global liqo.zvxww6qlxm
       valid_lft forever preferred_lft forever
    inet6 fe80::3883:49ff:fe58:c907/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
6: liqo.fkltz6j7fm: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1340 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 66:af:e9:90:f9:d2 brd ff:ff:ff:ff:ff:ff
    inet 10.80.0.9/32 scope global liqo.fkltz6j7fm
       valid_lft forever preferred_lft forever
    inet6 fe80::64af:e9ff:fe90:f9d2/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
7: liqo.h7mdknq8vx: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1340 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 0a:33:e4:01:26:2e brd ff:ff:ff:ff:ff:ff
    inet 10.80.0.9/32 scope global liqo.h7mdknq8vx
       valid_lft forever preferred_lft forever
    inet6 fe80::833:e4ff:fe01:262e/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
1312: eth0@if1313: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default qlen 1000
    link/ether 76:e3:4c:6e:47:fe brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.127.67.91/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::74e3:4cff:fe6e:47fe/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever

@remmen-io
Copy link
Author

provider cluster

➜ kubectl get routeconfiguration -A -o json | jq -r '.items[] | "\(.metadata.namespace)/\(.metadata.name)"' | while read -r resource; do namespace=$(echo "$resource" | cut -d'/' -f1); name=$(echo "$resource" | cut -d'/' -f2); echo "$namespace/$name: $(kubectl get routeconfiguration -n "$namespace" "$name" -o yaml | wc -l) lines"; done
kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-gw-ext: 108 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-node-gw: 60 lines
kube-liqo/e1-k8s-alsu107.mm.ch-extcidr: 40 lines
kube-liqo/e1-k8s-alsu107.mm.ch-gw-node: 140 lines
kube-liqo/e1-k8s-alsu107.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-alsu108.mm.ch-extcidr: 40 lines
kube-liqo/e1-k8s-alsu108.mm.ch-gw-node: 126 lines
kube-liqo/e1-k8s-alsu108.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-alsu109.mm.ch-extcidr: 40 lines
kube-liqo/e1-k8s-alsu109.mm.ch-gw-node: 126 lines
kube-liqo/e1-k8s-alsu109.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-alsu120.mm.ch-extcidr: 46 lines
kube-liqo/e1-k8s-alsu120.mm.ch-gw-node: 581 lines
kube-liqo/e1-k8s-alsu120.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-alsu121.mm.ch-extcidr: 40 lines
kube-liqo/e1-k8s-alsu121.mm.ch-gw-node: 413 lines
kube-liqo/e1-k8s-alsu121.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-mlsu013.mm.ch-extcidr: 40 lines
kube-liqo/e1-k8s-mlsu013.mm.ch-gw-node: 126 lines
kube-liqo/e1-k8s-mlsu013.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-mlsu014.mm.ch-extcidr: 40 lines
kube-liqo/e1-k8s-mlsu014.mm.ch-gw-node: 112 lines
kube-liqo/e1-k8s-mlsu014.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-mlsu015.mm.ch-extcidr: 40 lines
kube-liqo/e1-k8s-mlsu015.mm.ch-gw-node: 112 lines
kube-liqo/e1-k8s-mlsu015.mm.ch-service-nodeport-routing: 37 lines
➜ kubectl get firewallconfiguration -A -o json | jq -r '.items[] | "\(.metadata.namespace)/\(.metadata.name)"' | while read -r resource; do namespace=$(echo "$resource" | cut -d'/' -f1); name=$(echo "$resource" | cut -d'/' -f2); echo "$namespace/$name: $(kubectl get firewallconfiguration -n "$namespace" "$name" -o yaml | wc -l) lines"; done
kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-masquerade-bypass: 102 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-remap-externalcidr: 75 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-remap-podcidr: 75 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-b/e1-k8s-mfmm-lab-b-unknown-source-remap-ipmapping-gw: 54 lines
kube-liqo/api-server-proxy-remap-ipmapping-gw: 54 lines
kube-liqo/api-server-remap-ipmapping-gw: 54 lines
kube-liqo/remap-ipmapping-gw: 70 lines
kube-liqo/service-nodeport-routing: 145 lines

Consumer cluster

➜ kubectl get routeconfiguration -A -o json | jq -r '.items[] | "\(.metadata.namespace)/\(.metadata.name)"' | while read -r resource; do namespace=$(echo "$resource" | cut -d'/' -f1); name=$(echo "$resource" | cut -d'/' -f2); echo "$namespace/$name: $(kubectl get routeconfiguration -n "$namespace" "$name" -o yaml | wc -l) lines"; done
kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-gw-ext: 88 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-node-gw: 64 lines
kube-liqo/e1-k8s-alsu014.mm.ch-extcidr: 46 lines
kube-liqo/e1-k8s-alsu014.mm.ch-gw-node: 364 lines
kube-liqo/e1-k8s-alsu014.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-alsu015.mm.ch-extcidr: 46 lines
kube-liqo/e1-k8s-alsu015.mm.ch-gw-node: 329 lines
kube-liqo/e1-k8s-alsu015.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-alsu016.mm.ch-extcidr: 52 lines
kube-liqo/e1-k8s-alsu016.mm.ch-gw-node: 427 lines
kube-liqo/e1-k8s-alsu016.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-mlsu004.mm.ch-extcidr: 46 lines
kube-liqo/e1-k8s-mlsu004.mm.ch-gw-node: 119 lines
kube-liqo/e1-k8s-mlsu004.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-mlsu005.mm.ch-extcidr: 46 lines
kube-liqo/e1-k8s-mlsu005.mm.ch-gw-node: 112 lines
kube-liqo/e1-k8s-mlsu005.mm.ch-service-nodeport-routing: 37 lines
kube-liqo/e1-k8s-mlsu006.mm.ch-extcidr: 46 lines
kube-liqo/e1-k8s-mlsu006.mm.ch-gw-node: 105 lines
kube-liqo/e1-k8s-mlsu006.mm.ch-service-nodeport-routing: 37 lines
➜ kubectl get firewallconfiguration -A -o json | jq -r '.items[] | "\(.metadata.namespace)/\(.metadata.name)"' | while read -r resource; do namespace=$(echo "$resource" | cut -d'/' -f1); name=$(echo "$resource" | cut -d'/' -f2); echo "$namespace/$name: $(kubectl get firewallconfiguration -n "$namespace" "$name" -o yaml | wc -l) lines"; done
kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-masquerade-bypass: 106 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-remap-externalcidr: 75 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-remap-podcidr: 75 lines
kube-liqo-tenant-e1-k8s-mfmm-lab-g/e1-k8s-mfmm-lab-g-unknown-source-remap-ipmapping-gw: 54 lines
kube-liqo/api-server-proxy-remap-ipmapping-gw: 54 lines
kube-liqo/api-server-remap-ipmapping-gw: 54 lines
kube-liqo/remap-ipmapping-gw: 70 lines
kube-liqo/service-nodeport-routing: 121 lines
liqo-demo/gpu-test-7cc86f5845-rwtvr-remap-ipmapping-gw: 54 lines
liqo-demo/vllm-6dfc7bb864-gkkcw-remap-ipmapping-gw: 54 lines

@cheina97
Copy link
Member

You don't have a route in your gateway for 10.127.66.106. For example if you try to ping 10.127.67.54 does it work?

If you notice you don't have routes for pods in 10.127.66/24. I think your cluster is using a different /16 subnet for each node. Can you check if you have a routeconfiguration resource called -gw-node and check if 10.127.66.106 can be found inside of it?

Can you also check on the liqo-controller-manager logs if you are receiving errors from "pod_internalnet" controller? Just grep the logs using "pod_internalnet"

@cheina97
Copy link
Member

Can you also check if a resource called internalnode with the same name of the node where the pod is scheduled exists?

@remmen-io
Copy link
Author

Do you refer to the podCIDR?

Yes, it seems that we have different podCIDR per node on the cluster, but using the same range on all clusters

consumer

➜ kubectl get nodes -o custom-columns=NAME:.metadata.name,PODCIDR:.spec.podCIDR
NAME                     PODCIDR
e1-k8s-alsu014.mm.ch   10.127.65.128/25
e1-k8s-alsu015.mm.ch   10.127.66.0/25
e1-k8s-alsu016.mm.ch   10.127.66.128/25
e1-k8s-mlsu004.mm.ch   10.127.64.0/25
e1-k8s-mlsu005.mm.ch   10.127.65.0/25
e1-k8s-mlsu006.mm.ch   10.127.64.128/25
gpupool                  10.127.67.128/25

provider

NAME                     PODCIDR
e1-k8s-alsu107.mm.ch   10.127.65.128/25
e1-k8s-alsu108.mm.ch   10.127.66.0/25
e1-k8s-alsu109.mm.ch   10.127.66.128/25
e1-k8s-alsu120.mm.ch   10.127.67.0/25
e1-k8s-alsu121.mm.ch   10.127.67.128/25
e1-k8s-mlsu013.mm.ch   10.127.64.0/25
e1-k8s-mlsu014.mm.ch   10.127.65.0/25
e1-k8s-mlsu015.mm.ch   10.127.64.128/25

I'm not able to ping the ip 10.127.67.54 from the gw also I do not find any router inside the -gw-node on the provider

➜ for name in $(kubectl get routeconfigurations.networking.liqo.io -o name | grep gw-node); do echo "$name"; kubectl describe $name | grep 10.127.66.106; done
routeconfiguration.networking.liqo.io/e1-k8s-alsu107.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-alsu108.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-alsu109.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-alsu120.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-alsu121.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-mlsu013.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-mlsu014.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-mlsu015.mm.ch-gw-node

I do fin it on the consumer

➜ for name in $(kubectl get routeconfigurations.networking.liqo.io -o name | grep gw-node); do echo "$name"; kubectl describe $name | grep 10.127.66.106; done
routeconfiguration.networking.liqo.io/e1-k8s-alsu014.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-alsu015.mm.ch-gw-node
        Dst:          10.127.66.106/32
routeconfiguration.networking.liqo.io/e1-k8s-alsu016.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-mlsu004.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-mlsu005.mm.ch-gw-node
routeconfiguration.networking.liqo.io/e1-k8s-mlsu006.mm.ch-gw-node

On the consumer I find the following errors

E0227 12:21:29.325426       1 controller.go:316] "Reconciler error" err="RouteConfiguration.networking.liqo.io \"gpupool-gw-node\" not found" controller="pod_internalnet" controllerGroup="" controllerKind="Pod" Pod="liqo-demo/gpu-test-7cc86f5845-l2wgr" namespace="liqo-demo" name="gpu-test-7cc86f5845-l2wgr" reconcileID="303677c2-632f-474d-8ce3-5a548fc3616b"
E0227 12:21:29.325468       1 controller.go:316] "Reconciler error" err="RouteConfiguration.networking.liqo.io \"gpupool-gw-node\" not found" controller="pod_internalnet" controllerGroup="" controllerKind="Pod" Pod="liqo-demo/gpu-test-7cc86f5845-bdcgk" namespace="liqo-demo" name="gpu-test-7cc86f5845-bdcgk" reconcileID="c72fffb9-ae6f-4366-a316-39f7ece3d1a6"
E0227 12:21:29.337094       1 controller.go:316] "Reconciler error" err="RouteConfiguration.networking.liqo.io \"gpupool-gw-node\" not found" controller="pod_internalnet" controllerGroup="" controllerKind="Pod" Pod="liqo-demo/gpu-test-7cc86f5845-sqvg9" namespace="liqo-demo" name="gpu-test-7cc86f5845-sqvg9" reconcileID="712b8ebf-c578-41b5-8684-f4db74650002"
E0227 12:21:29.350545       1 controller.go:316] "Reconciler error" err="RouteConfiguration.networking.liqo.io \"gpupool-gw-node\" not found" controller="pod_internalnet" controllerGroup="" controllerKind="Pod" Pod="liqo-demo/gpu-test-7cc86f5845-k5mc8" namespace="liqo-demo" name="gpu-test-7cc86f5845-k5mc8" reconcileID="4df77f67-080b-4c52-807e-ba402e4ce948"
E0227 12:21:39.110916       1 controller.go:316] "Reconciler error" err="RouteConfiguration.networking.liqo.io \"gpupool-gw-node\" not found" controller="pod_internalnet" controllerGroup="" controllerKind="Pod" Pod="liqo-demo/gpu-test-7cc86f5845-vb6vm" namespace="liqo-demo" name="gpu-test-7cc86f5845-vb6vm" reconcileID="7c55e136-b85c-48a2-9c10-5bc280779d62"
E0227 12:21:45.341269       1 controller.go:316] "Reconciler error" err="RouteConfiguration.networking.liqo.io \"gpupool-gw-node\" not found" controller="pod_internalnet" controllerGroup="" controllerKind="Pod" Pod="liqo-demo/gpu-test-7cc86f5845-wqjsp" namespace="liqo-demo" name="gpu-test-7cc86f5845-wqjsp" reconcileID="5da7dd00-d762-4a53-9f9e-128bcf94ce40"
E0227 12:21:59.591692       1 controller.go:316] "Reconciler error" err="RouteConfiguration.networking.liqo.io \"gpupool-gw-node\" not found" controller="pod_internalnet" controllerGroup="" controllerKind="Pod" Pod="liqo-demo/gpu-test-7cc86f5845-vb6vm" namespace="liqo-demo" name="gpu-test-7cc86f5845-vb6vm" reconcileID="49bfa7fd-627f-4c65-8a34-816169062ed1"

I do not find a routerconfiguration for gpupool-gw-node

⎈ e1-k8s-mfmm-lab-b-admin (kube-liqo) liqo on  master [✘?] on ☁  (local) took 2s
➜ k get routeconfigurations.networking.liqo.io
NAME                                              AGE
e1-k8s-alsu014.mm.ch-extcidr                    3d7h
e1-k8s-alsu014.mm.ch-gw-node                    3d7h
e1-k8s-alsu014.mm.ch-service-nodeport-routing   3d7h
e1-k8s-alsu015.mm.ch-extcidr                    3d7h
e1-k8s-alsu015.mm.ch-gw-node                    3d7h
e1-k8s-alsu015.mm.ch-service-nodeport-routing   3d7h
e1-k8s-alsu016.mm.ch-extcidr                    3d7h
e1-k8s-alsu016.mm.ch-gw-node                    3d7h
e1-k8s-alsu016.mm.ch-service-nodeport-routing   3d7h
e1-k8s-mlsu004.mm.ch-extcidr                    3d7h
e1-k8s-mlsu004.mm.ch-gw-node                    3d7h
e1-k8s-mlsu004.mm.ch-service-nodeport-routing   3d7h
e1-k8s-mlsu005.mm.ch-extcidr                    3d7h
e1-k8s-mlsu005.mm.ch-gw-node                    3d7h
e1-k8s-mlsu005.mm.ch-service-nodeport-routing   3d7h
e1-k8s-mlsu006.mm.ch-extcidr                    3d7h
e1-k8s-mlsu006.mm.ch-gw-node                    3d7h
e1-k8s-mlsu006.mm.ch-service-nodeport-routing   3d7h

⎈ e1-k8s-mfmm-lab-b-admin (kube-liqo) liqo on  master [✘?] on ☁  (local)
➜ k get nodes
NAME                     STATUS   ROLES           AGE    VERSION
e1-k8s-alsu014.mm.ch   Ready    worker          3d8h   v1.31.5
e1-k8s-alsu015.mm.ch   Ready    worker          3d8h   v1.31.5
e1-k8s-alsu016.mm.ch   Ready    worker          3d8h   v1.31.5
e1-k8s-mlsu004.mm.ch   Ready    control-plane   3d8h   v1.31.5
e1-k8s-mlsu005.mm.ch   Ready    control-plane   3d8h   v1.31.5
e1-k8s-mlsu006.mm.ch   Ready    control-plane   3d8h   v1.31.5
gpupool                  Ready    agent           46h    v1.31.5

internalnode

consumer

➜ k get pods -o wide
NAME                        READY   STATUS    RESTARTS   AGE     IP            NODE      NOMINATED NODE   READINESS GATES
gpu-test-7cc86f5845-hblj5   1/1     Running   0          4m56s   10.71.1.165   gpupool   <none>           <none>
vllm-6dfc7bb864-mqrbd       1/1     Running   0          21m     10.71.2.17    gpupool   <none>           <none>

⎈ e1-k8s-mfmm-lab-b-admin (liqo-demo) liqo on  master [✘?] on ☁  (local)
➜ k get internalnodes.networking.liqo.io
NAME                     NODE IP LOCAL   NODE IP REMOTE   AGE
e1-k8s-alsu014.mm.ch                   10.127.65.155    3d8h
e1-k8s-alsu015.mm.ch                   10.127.66.113    3d8h
e1-k8s-alsu016.mm.ch   10.127.66.151                    3d8h
e1-k8s-mlsu004.mm.ch                   10.127.64.63     3d8h
e1-k8s-mlsu005.mm.ch                   10.127.65.61     3d8h
e1-k8s-mlsu006.mm.ch                   10.127.64.168    3d8h

provider

➜ k get pods -o wide
NAME                        READY   STATUS        RESTARTS   AGE     IP              NODE                     NOMINATED NODE   READINESS GATES
gpu-test-7cc86f5845-hblj5   1/1     Terminating   0          4m59s   10.127.65.165   e1-k8s-alsu107.mm.ch   <none>           <none>
vllm-6dfc7bb864-mqrbd       1/1     Running       0          22m     10.127.66.17    e1-k8s-alsu108.mm.ch   <none>           <none>

⎈ e1-k8s-mfmm-lab-g-admin (liqo-demo-e1-k8s-mfmm-lab-b) liqo on  master [✘?] on ☁  (local)
➜ k get internalnodes.networking.liqo.io
NAME                     NODE IP LOCAL   NODE IP REMOTE   AGE
e1-k8s-alsu107.mm.ch                                    3d7h
e1-k8s-alsu108.mm.ch                                    3d7h
e1-k8s-alsu109.mm.ch                                    3d7h
e1-k8s-alsu120.mm.ch   10.127.67.50                     3d7h
e1-k8s-alsu121.mm.ch                   10.127.67.160    3d7h
e1-k8s-mlsu013.mm.ch                   10.127.64.35     3d7h
e1-k8s-mlsu014.mm.ch                   10.127.65.23     3d7h
e1-k8s-mlsu015.mm.ch                   10.127.64.237    3d7h

@remmen-io
Copy link
Author

Just for my understanding

If I understood you correctly, there is no IP SRC remapping once the icmp packet arrvices on the GW pod on the provider cluster, only the IP DST is remapped to the effective pod IP. For the return path a direct host route must/should be applied pointing the consumer source IP to the provider gw pod.

Correct?
In this scenario I expect cilium to block the IP as it was not attributed from the cilium IPAM on this cluster (like with the KubeOVN issue I linked earlier)

Is there a specific reason why there is no bi-directional NAT? If the packet would also adjust the SRC IP to the GW pods IP this should work? Then IP spoofing won't occur and the return path would be known.

@cheina97
Copy link
Member

Do you refer to the podCIDR?

Yes, it seems that we have different podCIDR per node on the cluster, but using the same range on all clusters

consumer

➜ kubectl get nodes -o custom-columns=NAME:.metadata.name,PODCIDR:.spec.podCIDR
NAME                     PODCIDR
e1-k8s-alsu014.mm.ch   10.127.65.128/25
e1-k8s-alsu015.mm.ch   10.127.66.0/25
e1-k8s-alsu016.mm.ch   10.127.66.128/25
e1-k8s-mlsu004.mm.ch   10.127.64.0/25
e1-k8s-mlsu005.mm.ch   10.127.65.0/25
e1-k8s-mlsu006.mm.ch   10.127.64.128/25
gpupool                  10.127.67.128/25

provider

NAME                     PODCIDR
e1-k8s-alsu107.mm.ch   10.127.65.128/25
e1-k8s-alsu108.mm.ch   10.127.66.0/25
e1-k8s-alsu109.mm.ch   10.127.66.128/25
e1-k8s-alsu120.mm.ch   10.127.67.0/25
e1-k8s-alsu121.mm.ch   10.127.67.128/25
e1-k8s-mlsu013.mm.ch   10.127.64.0/25
e1-k8s-mlsu014.mm.ch   10.127.65.0/25
e1-k8s-mlsu015.mm.ch   10.127.64.128/25

The Pod you cannot reach is 10.127.66.106 so we need to focus on e1-k8s-alsu108.mm.ch on cluster provider

I'm not able to ping the ip 10.127.67.54 from the gw also I do not find any router inside the -gw-node on the provider

You need to do it from another pod scheduled on the consumer.

@cheina97
Copy link
Member

Can you share the content of e1-k8s-alsu108.mm.ch-gw-node routeconfiguration on provider cluster?

@cheina97
Copy link
Member

Just for my understanding

If I understood you correctly, there is no IP SRC remapping once the icmp packet arrvices on the GW pod on the provider cluster, only the IP DST is remapped to the effective pod IP. For the return path a direct host route must/should be applied pointing the consumer source IP to the provider gw pod.

Not correct, the src IP remapping must happen in your case, because you have the same podcidr in each cluster, so the gateway on the provider cluster should perform a src NAT using the remapped podcidr contained in the "configuration" resource on the provider.

The problem here is that the src NAT happens only if the gateway use a geneve interface to output the traffic, for some reasons the correct routing rules have not been applied and the traffic for pods scheduled on e1-k8s-alsu108.mm.ch uses the eth0 interface instead of our geneve tunnels.

@cheina97
Copy link
Member

cheina97 commented Feb 28, 2025

Is there a specific reason why there is no bi-directional NAT? If the packet would also adjust the SRC IP to the GW pods IP this should work? Then IP spoofing won't occur and the return path would be known.

Let's make an example, I'm a pod in the consumer cluster and I want to reach a pod in the provider. I need to use an IP that will be routed from the GW to the provider. This means that I will always need to receive returning traffic with a SRC IP which is not part of your CIlium IPAM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix Fixes a bug in the codebase.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants