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

VXLanCrossSubnet issue on v3.29 #9457

Open
valentin2105 opened this issue Nov 8, 2024 · 2 comments
Open

VXLanCrossSubnet issue on v3.29 #9457

valentin2105 opened this issue Nov 8, 2024 · 2 comments

Comments

@valentin2105
Copy link
Contributor

valentin2105 commented Nov 8, 2024

Hello,

I got an issue with Calico v3.29 and VXLanCrossSubnet :

I have a cluster (v1.31.2) with nodes in "admin" LAN et two nodes in "dmz" LAN (the ingresses nodes).

In the firewall between the LANs, due of the issue, we opened all network traffic (tcp/udp/icmp).

The issue is :

From the Ingress node, I can ping a pod on an admin node, but when I try to curl the TCP Port (of the pod), the packet doesn't reach the node.

With TCPDump, I see the ICMP, but the http packet doesn't arrive on the node.

  • On the Calico Node status, all BGP is Established,
  • On the Ingress node, I have the route to the node throught VXLAN, and the ping to the pod work.

My config :

  calicoNetwork:
    ipPools:
    - name: default-ipv4-ippool
      blockSize: 26
      cidr: 192.168.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()
    nodeAddressAutodetectionV4:
      canReach: 1.1.1.1
   bpfConnectTimeLoadBalancing: TCP                                                                                                                                                             
   bpfEnabled: false                                                                                                                                                                            
   bpfHostNetworkedNATWithoutCTLB: Enabled                                                                                                                                                      
   bpfLogLevel: ""                                                                                                                                                                              
   floatingIPs: Disabled                                                                                                                                                                        
   healthPort: 9099                                                                                                                                                                             
   logSeverityScreen: Info                                                                                                                                                                      
   nftablesMode: Disabled                                                                                                                                                                       
   reportingInterval: 0s                                                                                                                                                                        
   vxlanVNI: 4096  

On my ingress node :

root@ingress01-k8s:~# ip route |grep 192.168.3
192.168.3.64/26 via 192.168.3.65 dev vxlan.calico onlink 

root@ingress01-k8s:~# ping 192.168.3.65 -c 1
PING 192.168.3.65 (192.168.3.65) 56(84) bytes of data.
64 bytes from 192.168.3.65: icmp_seq=1 ttl=64 time=0.558 ms

root@ingress01-k8s:~# ping 192.168.3.79 -c 1  ( my POD)
PING 192.168.3.79 (192.168.3.79) 56(84) bytes of data.
64 bytes from 192.168.3.79: icmp_seq=1 ttl=63 time=0.437 ms

root@ingress01-k8s:~# curl -v 192.168.3.79:8080
*   Trying 192.168.3.79:8080...
(nothing happen)

------ FROM another worker on the "admin" LAN : 

root@master01-k8s:~# curl  192.168.3.79:8080 
default backend - 404

topology

The really strange thing, is that I have the same setup on a v1.30 cluster with Calico v3.28.1 and it work as expected.

It seem to be related to VXLan cause it happend only over Cross Subnets.

Any idea to help me out ?

Thanks 🙏

@tomastigera tomastigera added area/bpf eBPF Dataplane issues kind/support and removed area/bpf eBPF Dataplane issues labels Nov 8, 2024
@valentin2105
Copy link
Contributor Author

It work by replacing VXLan by IPinIP.

@caseydavenport
Copy link
Member

With TCPDump, I see the ICMP, but the http packet doesn't arrive on the node.

Hm, this is pretty strange because VXLAN doesn't handle ICMP vs TCP / HTTP traffic differently. I wonder if there is something else (like a policy rule or similar?) that might be blocking the TCP/HTTP traffic on the ingress node?

Do you see the TCP traffic egress the Ingress node using tcpdump?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants