Cannot ping pods from the gateway peered over BGP with Calico nodes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Calico Charm |
Incomplete
|
Undecided
|
Unassigned |
Bug Description
Hi all,
I have a Calico deployment on top of OpenStack, the bundle used to deploy the cluster is attached.
The bundle has service and external service CIDRs advertisement enabled as per [1].
The tenant networking topology is described in the network-topo.txt (ASCII diagram).
Calico is configured without overlay, with BGP full-mesh and with external peer being my Linux box router that is running BIRD v2 on Ubuntu 20.04. 192.168.101.1 is the router, the others are kubernetes-worker nodes, see also the attached juju_status.log:
$ juju ssh kubernetes-master/0 sudo calicoctl node status
Calico process is running.
IPv4 BGP status
+------
| PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO |
+------
| 192.168.101.62 | node-to-node mesh | up | 03:15:08 | Established |
| 192.168.101.251 | node-to-node mesh | up | 03:15:07 | Established |
| 192.168.101.172 | node-to-node mesh | up | 03:15:07 | Established |
| 192.168.101.1 | node specific | up | 08:57:57 | Established |
+------
IPv6 BGP status
No IPv6 peers found.
Connection to 192.168.101.184 closed.
The problem is when I try to access the pod CIDR from the router I get random issues depending on if the packet first hits the node that is actually running the pod or the neighbor calico node.
Calico advertises the following routes to my BGP router: birdc_show_
As you can notice in the routes output, /26 pod prefixes are advertised from all calico nodes, which means that a calico node should forward the packets to the correct node should it receive a packet not intended for it, but I don't see this while 'tcpdump'ing the interfaces on the node that is supposed to forward.
[1] https:/
Adding diagram as an image in case of the fonts problems in the browser.