Idle BGP Error: Hold timer expired

root@cloud:~# ./calicoctl  node status
Calico process is running.

IPv4 BGP status
+--------------+---------------+-------+----------+--------------------------------+
| PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |              INFO              |
+--------------+---------------+-------+----------+--------------------------------+
| 10.10.16.251 | node specific | up    | 04:06:20 | Established                    |
| 10.10.18.34  | node specific | start | 07:12:38 | Idle BGP Error: Hold timer     |
|              |               |       |          | expired                        |
+--------------+---------------+-------+----------+--------------------------------+

IPv6 BGP status
No IPv6 peers found.
root@cloud:~# docker exec  e9d82dcec82f  cat /etc/calico/confd/config/bird.cfg
function apply_communities ()
{
}

# Generated by confd
include "bird_aggr.cfg";
include "bird_ipam.cfg";

router id 10.10.16.47;

# Configure synchronization between routing tables and kernel.
protocol kernel {
  learn;             # Learn all alien routes from the kernel
  persist;           # Don't remove routes on bird shutdown
  scan time 2;       # Scan kernel routing table every 2 seconds
  import all;
  export filter calico_kernel_programming; # Default is export none
  graceful restart;  # Turn on graceful restart to reduce potential flaps in
                     # routes when reloading BIRD configuration.  With a full
                     # automatic mesh, there is no way to prevent BGP from
                     # flapping since multiple nodes update their BGP
                     # configuration at the same time, GR is not guaranteed to
                     # work correctly in this scenario.
  merge paths on;    # Allow export multipath routes (ECMP)
}

# Watch interface up/down events.
protocol device {
  debug { states };
  scan time 2;    # Scan interfaces every 2 seconds
}

protocol direct {
  debug { states };
  interface -"cali*", -"kube-ipvs*", "*"; # Exclude cali* and kube-ipvs* but
                                          # include everything else.  In
                                          # IPVS-mode, kube-proxy creates a
                                          # kube-ipvs0 interface. We exclude
                                          # kube-ipvs0 because this interface
                                          # gets an address for every in use
                                          # cluster IP. We use static routes
                                          # for when we legitimately want to
                                          # export cluster IPs.
}


# Template for all BGP clients
template bgp bgp_template {
  debug { states };
  description "Connection to BGP peer";
  local as 64512;
  multihop;
  gateway recursive; # This should be the default, but just in case.
  import all;        # Import all routes, since we don't know what the upstream
                     # topology is and therefore have to trust the ToR/RR.
  export filter calico_export_to_bgp_peers;  # Only want to export routes for workloads.
  add paths on;
  graceful restart;  # See comment in kernel section about graceful restart.
  connect delay time 2;
  connect retry time 5;
  error wait time 5,30;
}

# ------------- Node-to-node mesh -------------

# Node-to-node mesh disabled



# ------------- Global peers -------------
# No global peers configured.


# ------------- Node-specific peers -------------




# For peer /host/cloud/peer_v4/10.10.16.251
protocol bgp Node_10_10_16_251 from bgp_template {
  neighbor 10.10.16.251 as 64512;
  source address 10.10.16.47;  # The local address we use for the TCP connection
  rr client;
  rr cluster id 10.10.16.47;
}


# For peer /host/cloud/peer_v4/10.10.16.47
# Skipping ourselves (10.10.16.47)


# For peer /host/cloud/peer_v4/10.10.18.34
protocol bgp Node_10_10_18_34 from bgp_template {
  neighbor 10.10.18.34 as 64513;
  source address 10.10.16.47;  # The local address we use for the TCP connection
}
原文地址:https://www.cnblogs.com/dream397/p/14927126.html