root@cloud:~# ls /var/run/calico/bird.ctl /var/run/calico/bird.ctl root@cloud:~# nc -U /var/run/calico/bird.ctl 0001 BIRD v0.3.3+birdv1.6.8 ready. 9001 syntax error 9001 syntax error show protocols 2002-name proto table state since info 1002-static1 Static master up 07:21:21 kernel1 Kernel master up 07:21:21 device1 Device master up 07:21:21 direct1 Direct master up 07:21:21 0000
root@cloud:~# nc -U /var/run/calico/bird.ctl 0001 BIRD v0.3.3+birdv1.6.8 ready. show protocols 2002-name proto table state since info 1002-static1 Static master up 2021-06-23 kernel1 Kernel master up 2021-06-23 device1 Device master up 2021-06-23 direct1 Direct master up 2021-06-23 Node_10_10_16_251 BGP master up 04:06:20 Established Node_10_10_18_34 BGP master start 07:33:16 OpenSent BGP Error: Hold timer expired 0000 show protocols all ''^[[D 9001 Unknown character ^[[A 9001 Unknown character show protocols all 'Node_10_10_18_34' 2002-name proto table state since info 1002-Node_10_10_18_34 BGP master start 07:33:17 OpenSent BGP Error: Hold timer expired 1006- Description: Connection to BGP peer Preference: 100 Input filter: ACCEPT Output filter: calico_export_to_bgp_peers Routes: 0 imported, 0 exported, 0 preferred Route change stats: received rejected filtered ignored accepted Import updates: 0 0 0 0 0 Import withdraws: 0 0 --- 0 0 Export updates: 0 0 0 --- 0 Export withdraws: 0 --- --- --- 0 BGP state: OpenSent Neighbor address: 10.10.18.34 Neighbor AS: 64513 Last error: BGP Error: Hold timer expired 0000 debug 'Node_10_10_18_34' all 0000
birdctl 是 bird 的 client,可以用来查看 bird 的状态
root@cloud:~# nc -U /var/run/calico/bird.ctl 0001 BIRD v0.3.3+birdv1.6.8 ready. show route 1007-0.0.0.0/0 via 10.10.16.254 on enahisic2i0 [kernel1 07:21:22] * (10) 10.99.1.231/32 via 10.10.16.82 on enahisic2i0 [kernel1 07:21:22] * (10) 10.110.79.116/32 via 10.10.16.82 on enahisic2i0 [kernel1 07:21:22] * (10) 10.10.16.0/24 dev enahisic2i0 [direct1 07:21:22] * (240) 10.110.171.213/32 via 10.10.16.82 on enahisic2i0 [kernel1 07:21:22] * (10) 10.244.2.0/24 dev cni0 [direct1 07:21:22] * (240) 172.17.0.0/16 dev docker0 [direct1 07:21:22] * (240) 10.244.41.0/26 blackhole [static1 07:21:22] * (200) 10.244.41.1/32 dev cali027a65c4a41 [kernel1 07:21:22] * (10) 10.244.41.3/32 dev calib81bd12045e [kernel1 07:21:22] * (10) 0000
root@cloud:~# ls /var/log/calico/cni/cni.log /var/log/calico/cni/cni.log
[root@bogon ~]# docker exec f314fa16ddab 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.81; # 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/bogon/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.81; # The local address we use for the TCP connection } # For peer /host/bogon/peer_v4/10.10.16.47 protocol bgp Node_10_10_16_47 from bgp_template { neighbor 10.10.16.47 as 64512; source address 10.10.16.81; # The local address we use for the TCP connection } # For peer /host/bogon/peer_v4/10.10.16.82 protocol bgp Node_10_10_16_82 from bgp_template { neighbor 10.10.16.82 as 64512; source address 10.10.16.81; # The local address we use for the TCP connection } [root@bogon ~]# ./calicoctl node status Calico process is running. IPv4 BGP status +--------------+---------------+-------+----------+--------------------------------+ | PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO | +--------------+---------------+-------+----------+--------------------------------+ | 10.10.16.82 | node specific | up | 12:46:55 | Established | | 10.10.16.251 | node specific | start | 12:14:32 | Active Socket: Connection | | | | | | closed | | 10.10.16.47 | node specific | start | 12:14:32 | Active Socket: Connection | | | | | | closed | +--------------+---------------+-------+----------+--------------------------------+ IPv6 BGP status No IPv6 peers found. [root@bogon ~]#