title: calico/node is not ready: BIRD is not ready: BGP not established
body: <p>I'm running Kubernetes 1.13.2, setup using kubeadm and struggling with getting calico 3.5 up and running.  The cluster is run on top of KVM.</p>
  
  <p>Setup:</p>
  
  <ol>
  <li><code>kubeadm init --apiserver-advertise-address=10.255.253.20 --pod-network-cidr=192.168.0.0/16</code></li>
  <li><p>modified <code>calico.yaml</code> file to include:</p>
  
  <pre><code>    - name: IP_AUTODETECTION_METHOD
        value: "interface=ens.*"
  </code></pre></li>
  <li>applied <code>rbac.yaml</code>, <code>etcd.yaml</code>, <code>calico.yaml</code></li>
  </ol>
  
  <p>Output from <code>kubectl describe pods</code>:</p>
  
  <pre><code>Events:
  Type     Reason     Age                     From                    Message
  ----     ------     ----                    ----                    -------
  Normal   Scheduled  23m                     default-scheduler       Successfully assigned kube-system/calico-node-hjwrc to k8s-master-01
  Normal   Pulling    23m                     kubelet, k8s-master-01  pulling image "quay.io/calico/cni:v3.5.0"
  Normal   Pulled     23m                     kubelet, k8s-master-01  Successfully pulled image "quay.io/calico/cni:v3.5.0"
  Normal   Created    23m                     kubelet, k8s-master-01  Created container
  Normal   Started    23m                     kubelet, k8s-master-01  Started container
  Normal   Pulling    23m                     kubelet, k8s-master-01  pulling image "quay.io/calico/node:v3.5.0"
  Normal   Pulled     23m                     kubelet, k8s-master-01  Successfully pulled image "quay.io/calico/node:v3.5.0"
  Warning  Unhealthy  23m                     kubelet, k8s-master-01  Readiness probe failed: calico/node is not ready: felix is not ready: Get http://localhost:9099/readiness: dial tcp [::1]:9099: connect: connection refused
  Warning  Unhealthy  23m                     kubelet, k8s-master-01  Liveness probe failed: Get http://localhost:9099/liveness: dial tcp [::1]:9099: connect: connection refused
  Normal   Created    23m (x2 over 23m)       kubelet, k8s-master-01  Created container
  Normal   Started    23m (x2 over 23m)       kubelet, k8s-master-01  Started container
  Normal   Pulled     23m                     kubelet, k8s-master-01  Container image "quay.io/calico/node:v3.5.0" already present on machine
  Warning  Unhealthy  3m32s (x23 over 7m12s)  kubelet, k8s-master-01  Readiness probe failed: calico/node is not ready: BIRD is not ready: BGP not established with 10.255.253.22
  </code></pre>
  
  <p>Output from <code>calicoctl node status</code>:</p>
  
  <pre><code>Calico process is running.
  
  IPv4 BGP status
  +---------------+-------------------+-------+----------+---------+
  | PEER ADDRESS  |     PEER TYPE     | STATE |  SINCE   |  INFO   |
  +---------------+-------------------+-------+----------+---------+
  | 10.255.253.22 | node-to-node mesh | start | 16:24:44 | Passive |
  +---------------+-------------------+-------+----------+---------+
  
  IPv6 BGP status
  No IPv6 peers found.
  </code></pre>
  
  <p>Output from <code>ETCD_ENDPOINTS=http://localhost:6666 calicoctl get nodes -o yaml</code>:</p>
  
  <pre><code>    apiVersion: projectcalico.org/v3
  items:
  - apiVersion: projectcalico.org/v3
  kind: Node
  metadata:
      annotations:
      projectcalico.org/kube-labels: '{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/hostname":"k8s-master-01","node-role.kubernetes.io/master":""}'
      creationTimestamp: 2019-01-31T16:08:56Z
      labels:
      beta.kubernetes.io/arch: amd64
      beta.kubernetes.io/os: linux
      kubernetes.io/hostname: k8s-master-01
      node-role.kubernetes.io/master: ""
      name: k8s-master-01
      resourceVersion: "28"
      uid: 82fee4dc-2572-11e9-8ab7-5254002c725d
  spec:
      bgp:
      ipv4Address: 10.255.253.20/24
      ipv4IPIPTunnelAddr: 192.168.151.128
      orchRefs:
      - nodeName: k8s-master-01
      orchestrator: k8s
  - apiVersion: projectcalico.org/v3
  kind: Node
  metadata:
      annotations:
      projectcalico.org/kube-labels: '{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/hostname":"k8s-worker-01"}'
      creationTimestamp: 2019-01-31T16:24:44Z
      labels:
      beta.kubernetes.io/arch: amd64
      beta.kubernetes.io/os: linux
      kubernetes.io/hostname: k8s-worker-01
      name: k8s-worker-01
      resourceVersion: "170"
      uid: b7c2c5a6-2574-11e9-aaa4-5254007d5f6a
  spec:
      bgp:
      ipv4Address: 10.255.253.22/24
      ipv4IPIPTunnelAddr: 192.168.36.192
      orchRefs:
      - nodeName: k8s-worker-01
      orchestrator: k8s
  kind: NodeList
  metadata:
  resourceVersion: "395"
  </code></pre>
  
  <p>Output from <code>ETCD_ENDPOINTS=http://localhost:6666 calicoctl get bgppeers</code>:</p>
  
  <pre><code>NAME   PEERIP   NODE   ASN
  </code></pre>
  
  <p>Ouput from <code>kubectl logs</code>:</p>
  
  <pre><code>2019-01-31 17:01:20.519 [INFO][48] int_dataplane.go 751: Applying dataplane updates
  2019-01-31 17:01:20.519 [INFO][48] ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
  2019-01-31 17:01:20.519 [INFO][48] ipsets.go 254: Resyncing ipsets with dataplane. family="inet"
  2019-01-31 17:01:20.523 [INFO][48] ipsets.go 304: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=3.675284ms
  2019-01-31 17:01:20.523 [INFO][48] int_dataplane.go 765: Finished applying updates to dataplane. msecToApply=4.124166000000001
  bird: BGP: Unexpected connect from unknown address 10.255.253.14 (port 36329)
  bird: BGP: Unexpected connect from unknown address 10.255.253.14 (port 52383)
  2019-01-31 17:01:23.182 [INFO][48] health.go 150: Overall health summary=&amp;health.HealthReport{Live:true, Ready:true}
  bird: BGP: Unexpected connect from unknown address 10.255.253.14 (port 39661)
  2019-01-31 17:01:25.433 [INFO][48] health.go 150: Overall health summary=&amp;health.HealthReport{Live:true, Ready:true}
  bird: BGP: Unexpected connect from unknown address 10.255.253.14 (port 57359)
  bird: BGP: Unexpected connect from unknown address 10.255.253.14 (port 47151)
  bird: BGP: Unexpected connect from unknown address 10.255.253.14 (port 39243)
  2019-01-31 17:01:30.943 [INFO][48] int_dataplane.go 751: Applying dataplane updates
  2019-01-31 17:01:30.943 [INFO][48] ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
  2019-01-31 17:01:30.943 [INFO][48] ipsets.go 254: Resyncing ipsets with dataplane. family="inet"
  2019-01-31 17:01:30.945 [INFO][48] ipsets.go 304: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=2.369997ms
  2019-01-31 17:01:30.946 [INFO][48] int_dataplane.go 765: Finished applying updates to dataplane. msecToApply=2.8165820000000004
  bird: BGP: Unexpected connect from unknown address 10.255.253.14 (port 60641)
  2019-01-31 17:01:33.190 [INFO][48] health.go 150: Overall health summary=&amp;health.HealthReport{Live:true, Ready:true}
  </code></pre>
  
  <p>Note: the above unknown address (10.255.253.14) is the IP under <code>br0</code> on the KVM host, not too sure why it's made an appearance.</p>