• calico bgp rr


    bgp peer

    查看状态

    calicoctl node status
    

    配置全局 bgp peer(rr)

    cat << EOF | calicoctl create -f -
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: bgppeer-global-3040
    spec:
      peerIP: 172.26.6.1
      asNumber: 64567
    EOF
    
    # 删除
    $ calicoctl delete bgpPeer 172.26.6.1
    

    特定 BGP peer

    $ cat << EOF | calicoctl create -f -
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: bgppeer-node-aabbff
    spec:
      peerIP: aa:bb::ff
      node: node1
      asNumber: 64514
    EOF
    
    calicoctl delete bgpPeer aa:bb::ff --scope=node --node=node1
    calicoctl get bgpPeer

    1、 配置BGP Peer设置RR节点

    root@ubuntu:~# ./calicoctl get bgppeer
    NAME   PEERIP   NODE   ASN   
    
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME   PEERIP   NODE   ASN   
    
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    No IPv4 peers found.
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# 
    ./calicoctl apply -f bgpconfig.yaml
    root@ubuntu:~# cat bgpconfig.yaml
    apiVersion: projectcalico.org/v3
    kind: BGPConfiguration
    metadata:
      name: default
    spec:
      logSeverityScreen: Info
      nodeToNodeMeshEnabled: false 
      asNumber: 64512

     64512是全局as nu,node 默认as 是64512

    root@ubuntu:~# ./calicoctl get bgppeer
    NAME   PEERIP   NODE   ASN   
    
    root@ubuntu:~# 
    2、配置指定节点充当路由反射器

    从当前节点找两个节点充当路由反射器,作为路由反射器

    为方便让BGPPeer轻松选择节点,通过标签选择器匹配。给路由器反射器节点打标签:

    给选定的节点指定路由反射器ID

    复制代码
    root@ubuntu:~# ./calicoctl get node ubuntu  -o yaml > rr-node.yaml
    root@ubuntu:~# cat rr-node.yaml 
    apiVersion: projectcalico.org/v3
    kind: Node
    metadata:
      annotations:
        projectcalico.org/kube-labels: '{"beta.kubernetes.io/arch":"arm64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"arm64","kubernetes.io/hostname":"ubuntu","kubernetes.io/os":"linux","node-role.kubernetes.io/master":""}'
      creationTimestamp: "2021-06-18T11:12:32Z"
      labels:
        beta.kubernetes.io/arch: arm64
        beta.kubernetes.io/os: linux
        kubernetes.io/arch: arm64
        kubernetes.io/hostname: ubuntu
        kubernetes.io/os: linux
        node-role.kubernetes.io/master: ""
      name: ubuntu
      resourceVersion: "797539"
      uid: 369ae2bb-756d-446d-a044-9225d9849a13
    spec:
      addresses:
      - address: 10.10.16.82/24
        type: CalicoNodeIP
      - address: 10.10.16.82
        type: InternalIP
      bgp:
        ipv4Address: 10.10.16.82/24
      orchRefs:
      - nodeName: ubuntu
        orchestrator: k8s
    status:
      podCIDRs:
      - 10.244.0.0/24
    root@ubuntu:~# 
    复制代码
      增加  routeReflectorClusterID: 244.0.0.1
    复制代码
    root@ubuntu:~# ./calicoctl apply -f rr-node.yaml
    Successfully applied 1 'Node' resource(s)
    root@ubuntu:~# cat rr-node.yaml 
    apiVersion: projectcalico.org/v3
    kind: Node
    metadata:
      annotations:
        projectcalico.org/kube-labels: '{"beta.kubernetes.io/arch":"arm64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"arm64","kubernetes.io/hostname":"ubuntu","kubernetes.io/os":"linux","node-role.kubernetes.io/master":""}'
      creationTimestamp: "2021-06-18T11:12:32Z"
      labels:
        beta.kubernetes.io/arch: arm64
        beta.kubernetes.io/os: linux
        kubernetes.io/arch: arm64
        kubernetes.io/hostname: ubuntu
        kubernetes.io/os: linux
        node-role.kubernetes.io/master: ""
      name: ubuntu
      resourceVersion: "797539"
      uid: 369ae2bb-756d-446d-a044-9225d9849a13
    spec:
      addresses:
      - address: 10.10.16.82/24
        type: CalicoNodeIP
      - address: 10.10.16.82
        type: InternalIP
      bgp:
        ipv4Address: 10.10.16.82/24
        routeReflectorClusterID: 244.0.0.1
      orchRefs:
      - nodeName: ubuntu
        orchestrator: k8s
    status:
      podCIDRs:
      - 10.244.0.0/24
    3、 kubectl label node ubuntu route-reflector=true
    root@ubuntu:~# kubectl get node --show-labels
    NAME     STATUS   ROLES    AGE     VERSION   LABELS
    bogon    Ready    worker   3d21h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=bogon,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    cloud    Ready    worker   3d21h   v1.21.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=cloud,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    ubuntu   Ready    master   3d21h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=ubuntu,kubernetes.io/os=linux,node-role.kubernetes.io/master=,route-reflector=true
    root@ubuntu:~# 

    4、集群内RR模式

    开启集群内部RR模式

    此时已经选择并且配置完成节点信息,我们需要下发规则使BGP RR模式生效。

    开启集群内部RR模式

    #创建一个rr-rule.yaml文件,文件内容如下:
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: unbuntu #NodeName
    spec:
      nodeSelector: "all()"
      peerSelector: "has(route-reflector)"
    #应用规则开启集群内部RR模式
    calicoctl create -f rr-rule.yaml
    root@ubuntu:~# ./calicoctl create -f bgp-rr.yaml 
    Successfully created 1 'BGPPeer' resource(s)
    root@ubuntu:~# cat bgp-rr.yaml 
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: unbuntu
    spec:
      nodeSelector: all()
      peerSelector: route-reflector == 'true'
    root@ubuntu:~# 
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME      PEERIP   NODE    ASN   
    unbuntu            all()   0     
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.47  | node specific | up    | 08:45:50 | Established |
    | 10.10.16.81  | node specific | up    | 08:45:50 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# 

    cloud 也只有一个bpg peer

    root@cloud:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.82  | node specific | up    | 08:45:50 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@cloud:~# 

    bogon 只有一个bgp peer

    You have mail in /var/spool/mail/root
    [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    | 08:45:50 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    You have mail in /var/spool/mail/root
    [root@bogon ~]# 
     
    root@ubuntu:~# kubectl get pods -o wide
    NAME                         READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
    web-nginx-7bdc6b976b-7454h   1/1     Running   0          6h29m   10.244.29.4      bogon    <none>           <none>
    web-nginx-7bdc6b976b-cml8v   1/1     Running   0          6h29m   10.244.41.3      cloud    <none>           <none>
    web-nginx-7bdc6b976b-p7m2b   1/1     Running   0          6h29m   10.244.243.197   ubuntu   <none>           <none>
    root@ubuntu:~# 

    cloud pod 

    root@cloud:~# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
    4: eth0@if44: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
        link/ether f2:a1:42:ff:d4:86 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.244.41.3/32 brd 10.244.41.3 scope global eth0
           valid_lft forever preferred_lft forever
    root@cloud:~# ping 10.244.29.4
    PING 10.244.29.4 (10.244.29.4) 56(84) bytes of data.
    64 bytes from 10.244.29.4: icmp_seq=1 ttl=62 time=0.269 ms
    64 bytes from 10.244.29.4: icmp_seq=2 ttl=62 time=0.131 ms
    ^C
    --- 10.244.29.4 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1013ms
    rtt min/avg/max/mdev = 0.131/0.200/0.269/0.069 ms
    root@cloud:~# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=62 time=0.275 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=62 time=0.173 ms
    64 bytes from 10.244.243.197: icmp_seq=3 ttl=62 time=0.128 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2035ms
    rtt min/avg/max/mdev = 0.128/0.192/0.275/0.061 ms
    root@cloud:~# 
    

      bogon pod

    [root@bogon ~]# ping 10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=62 time=0.296 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=62 time=0.213 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1020ms
    rtt min/avg/max/mdev = 0.213/0.254/0.296/0.044 ms
    You have mail in /var/spool/mail/root
    [root@bogon ~]# ping 10.244.29.4
    PING 10.244.29.4 (10.244.29.4) 56(84) bytes of data.
    64 bytes from 10.244.29.4: icmp_seq=1 ttl=64 time=0.033 ms
    64 bytes from 10.244.29.4: icmp_seq=2 ttl=64 time=0.039 ms
    ^C
    --- 10.244.29.4 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1061ms
    rtt min/avg/max/mdev = 0.033/0.036/0.039/0.003 ms
    [root@bogon ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
    4: eth0@if103: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
        link/ether fa:34:76:a4:9d:f8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.244.29.4/32 brd 10.244.29.4 scope global eth0
           valid_lft forever preferred_lft forever
    [root@bogon ~]# 

    bogon 路由

    [root@bogon ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enahisic2i0
    10.2.0.1        0.0.0.0         255.255.255.255 UH    0      0        0 v-cali-peer
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i0
    10.10.34.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i2
    10.10.102.0     0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i1
    10.244.2.0      10.10.16.47     255.255.255.0   UG    0      0        0 enahisic2i0
    10.244.29.0     0.0.0.0         255.255.255.192 U     0      0        0 *
    10.244.29.1     0.0.0.0         255.255.255.255 UH    0      0        0 cali2e486421e22
    10.244.29.4     0.0.0.0         255.255.255.255 UH    0      0        0 calibe3388252a1
    10.244.41.0     10.10.16.47     255.255.255.192 UG    0      0        0 enahisic2i0
    10.244.243.192  10.10.16.82     255.255.255.192 UG    0      0        0 enahisic2i0
    14.14.18.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i3.310
    172.16.100.0    0.0.0.0         255.255.255.0   U     0      0        0 brqf1411bad-10
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    172.168.104.0   0.0.0.0         255.255.255.0   U     0      0        0 enah2i3.1022
    192.168.33.0    0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i1
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
    You have mail in /var/spool/mail/root
    [root@bogon ~]# 

    cloud 路由

    root@cloud:~# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enahisic2i0
    9.251.0.0       172.17.0.1      255.255.0.0     UG    0      0        0 docker0
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i0
    10.99.1.231     10.10.16.82     255.255.255.255 UGH   0      0        0 enahisic2i0
    10.110.79.116   10.10.16.82     255.255.255.255 UGH   0      0        0 enahisic2i0
    10.110.171.213  10.10.16.82     255.255.255.255 UGH   0      0        0 enahisic2i0
    10.244.2.0      0.0.0.0         255.255.255.0   U     0      0        0 cni0
    10.244.29.0     10.10.16.81     255.255.255.192 UG    0      0        0 enahisic2i0
    10.244.41.0     0.0.0.0         255.255.255.192 U     0      0        0 *
    10.244.41.1     0.0.0.0         255.255.255.255 UH    0      0        0 cali027a65c4a41
    10.244.41.3     0.0.0.0         255.255.255.255 UH    0      0        0 calib81bd12045e
    10.244.243.192  10.10.16.82     255.255.255.192 UG    0      0        0 enahisic2i0
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    root@cloud:~# 

     bogon 采用不同的as nu

    root@ubuntu:~# cat  bgp-peer-81.yaml 
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: bogon 
    spec:
      peerIP: 10.10.16.81
      asNumber: 64513
    root@ubuntu:~#
    root@ubuntu:~# ./calicoctl  apply -f bgp-peer-81.yaml 
    Successfully applied 1 'BGPPeer' resource(s)
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+--------------------------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |              INFO              |
    +--------------+---------------+-------+----------+--------------------------------+
    | 10.10.16.47  | node specific | up    | 08:45:50 | Established                    |
    | 10.10.16.81  | global        | start | 09:01:58 | Active Socket: Connection      |
    |              |               |       |          | closed                         |
    +--------------+---------------+-------+----------+--------------------------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+--------------------------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |              INFO              |
    +--------------+---------------+-------+----------+--------------------------------+
    | 10.10.16.47  | node specific | up    | 08:45:50 | Established                    |
    | 10.10.16.81  | global        | start | 09:01:58 | OpenSent Socket: Connection    |
    |              |               |       |          | closed                         |
    +--------------+---------------+-------+----------+--------------------------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+--------------------------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |              INFO              |
    +--------------+---------------+-------+----------+--------------------------------+
    | 10.10.16.47  | node specific | up    | 08:45:50 | Established                    |
    | 10.10.16.81  | global        | start | 09:01:58 | OpenSent Socket: Connection    |
    |              |               |       |          | closed                         |
    +--------------+---------------+-------+----------+--------------------------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-----------------------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |            INFO             |
    +--------------+---------------+-------+----------+-----------------------------+
    | 10.10.16.47  | node specific | up    | 08:45:50 | Established                 |
    | 10.10.16.81  | global        | start | 09:03:15 | Idle BGP Error: Bad peer AS |
    +--------------+---------------+-------+----------+-----------------------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# cat  bgp-peer-81.yaml 
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: bogon 
    spec:
      peerIP: 10.10.16.81
      asNumber: 64513
    root@ubuntu:~# 
    root@cloud:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+--------------------------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |              INFO              |
    +--------------+---------------+-------+----------+--------------------------------+
    | 10.10.16.82  | node specific | up    | 08:45:50 | Established                    |
    | 10.10.16.81  | global        | start | 09:06:03 | Active BGP Error: Hold timer   |
    |              |               |       |          | expired                        |
    +--------------+---------------+-------+----------+--------------------------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@cloud:~# 
    [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 | start | 09:05:45 | Idle Received: Bad peer AS |
    +--------------+---------------+-------+----------+----------------------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    You have mail in /var/spool/mail/root
    [root@bogon ~]# 

    bogon pod无法访问其他pod 

    [root@bogon ~]#  ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
    4: eth0@if103: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
        link/ether fa:34:76:a4:9d:f8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.244.29.4/32 brd 10.244.29.4 scope global eth0
           valid_lft forever preferred_lft forever
    [root@bogon ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    ^C
    --- 10.244.243.197 ping statistics ---
    1 packets transmitted, 0 received, 100% packet loss, time 0ms
    
    [root@bogon ~]# ping 10.244.41.3
    PING 10.244.41.3 (10.244.41.3) 56(84) bytes of data.
    ^C
    --- 10.244.41.3 ping statistics ---
    2 packets transmitted, 0 received, 100% packet loss, time 1020ms
    
    [root@bogon ~]# 

    cloud pod 可以访问 ubuntu pod

    root@cloud:~# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=62 time=0.271 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=62 time=0.145 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1017ms
    rtt min/avg/max/mdev = 0.145/0.208/0.271/0.063 ms
    root@cloud:~# ping 10.244.29.4
    PING 10.244.29.4 (10.244.29.4) 56(84) bytes of data.
    ^C
    --- 10.244.29.4 ping statistics ---
    57 packets transmitted, 0 received, 100% packet loss, time 57342ms
    
    root@cloud:~# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
    4: eth0@if44: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
        link/ether f2:a1:42:ff:d4:86 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.244.41.3/32 brd 10.244.41.3 scope global eth0
           valid_lft forever preferred_lft forever
    root@cloud:~# 

    恢复bogon的as num

    root@ubuntu:~# ./calicoctl  apply -f bgp-peer-81.yaml 
    Successfully applied 1 'BGPPeer' resource(s)
    root@ubuntu:~# cat bgp-peer-81.yaml 
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: bogon 
    spec:
      peerIP: 10.10.16.81
      asNumber: 64512
    root@ubuntu:~# 
    [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    | 09:09:09 | Established |
    | 10.10.16.47  | node specific | up    | 09:09:06 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    You have mail in /var/spool/mail/root
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.47  | node specific | up    | 08:45:50 | Established |
    | 10.10.16.81  | global        | up    | 09:09:08 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# 

    竟然都有两个peer

    root@cloud:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.82  | node specific | up    | 08:45:50 | Established |
    | 10.10.16.81  | global        | up    | 09:09:06 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@cloud:~# 
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME      PEERIP        NODE       ASN     
    bogon     10.10.16.81   (global)   64512   
    unbuntu                 all()      0       
    
    root@ubuntu:~# ./calicoctl get bgppeer

     删除 bgpeer

    root@ubuntu:~# ./calicoctl delete  bgppeer bogon
    Successfully deleted 1 'BGPPeer' resource(s)
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME      PEERIP   NODE    ASN   
    unbuntu            all()   0     
    
    root@ubuntu:~# 
    root@ubuntu:~# 

     bogon恢复了

    root@ubuntu:~# ./calicoctl get nodes --output=wide
    NAME     ASN       IPV4             IPV6   
    bogon    (64512)   10.10.16.81/24          
    cloud    (64512)   10.10.16.47/24          
    ubuntu   (64512)   10.10.16.82/24          
    
    root@ubuntu:~# ./calicoctl get nodes status
    resource does not exist: Node(status) with error: nodes "status" not found
    root@ubuntu:~# ./calicoctl get  status
    Failed to get resources: resource type 'status' is not supported
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.47  | node specific | up    | 08:45:50 | Established |
    | 10.10.16.81  | node specific | up    | 09:35:24 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    [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    | 09:35:24 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    You have mail in /var/spool/mail/root
    [root@bogon ~]# 

    bgpeer 恢复正常了

    root@cloud:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.82  | node specific | up    | 08:45:50 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@cloud:~# 
    [root@bogon ~]#  ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
    4: eth0@if103: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
        link/ether fa:34:76:a4:9d:f8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.244.29.4/32 brd 10.244.29.4 scope global eth0
           valid_lft forever preferred_lft forever
    [root@bogon ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    ^C
    --- 10.244.243.197 ping statistics ---
    1 packets transmitted, 0 received, 100% packet loss, time 0ms
    
    [root@bogon ~]# ping 10.244.41.3
    PING 10.244.41.3 (10.244.41.3) 56(84) bytes of data.
    ^C
    --- 10.244.41.3 ping statistics ---
    2 packets transmitted, 0 received, 100% packet loss, time 1020ms
    
    [root@bogon ~]# ping 10.244.41.3
    PING 10.244.41.3 (10.244.41.3) 56(84) bytes of data.
    64 bytes from 10.244.41.3: icmp_seq=1 ttl=62 time=0.241 ms
    ^C
    --- 10.244.41.3 ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.241/0.241/0.241/0.000 ms
    You have mail in /var/spool/mail/root
    [root@bogon ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=62 time=0.271 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=62 time=0.183 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1034ms
    rtt min/avg/max/mdev = 0.183/0.227/0.271/0.044 ms
    [root@bogon ~]# 

    为 node 节点进行分组(添加 label)

    root@ubuntu:~# kubectl get node --show-labels
    NAME     STATUS   ROLES    AGE     VERSION   LABELS
    bogon    Ready    worker   3d22h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=bogon,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    cloud    Ready    worker   3d22h   v1.21.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=cloud,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    ubuntu   Ready    master   3d22h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=ubuntu,kubernetes.io/os=linux,node-role.kubernetes.io/master=,route-reflector=true
    root@ubuntu:~# 
    root@ubuntu:~# kubectl label nodes ubuntu rr-id=rr1
    node/ubuntu labeled
    root@ubuntu:~# kubectl label nodes ubuntu rr-group=rr1
    node/ubuntu labeled
    root@ubuntu:~# vi  bgp-rr.yaml
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: unbuntu
    spec:
      nodeSelector: rr-group == 'rr1'
      peerSelector: rr-id  == 'rr1'
    ~
    root@ubuntu:~# ./calicoctl apply -f rr1-to-node-peer.yaml
    Successfully applied 1 'BGPPeer' resource(s)
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.47  | node specific | up    | 08:45:51 | Established |
    | 10.10.16.81  | node specific | up    | 09:35:25 | Established |
    +--------------+---------------+-------+----------+-------------+
    root@ubuntu:~# cat  rr1-to-node-peer.yaml 
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: rr1-to-node-peer              ## 给BGPPeer取一个名称,方便识别
    
    spec:
      nodeSelector: rr-group == 'rr1'     ## 通过节点选择器添加有rr-group == ‘rr1’标签的节点
    
      peerSelector: rr-id  == 'rr1'       ## 通过peer选择器添加有rr-id == ‘rr1’标签的路由反射器
    root@ubuntu:~# kubectl get node --show-labels
    NAME     STATUS   ROLES    AGE     VERSION   LABELS
    bogon    Ready    worker   3d22h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=bogon,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    cloud    Ready    worker   3d22h   v1.21.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=cloud,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    ubuntu   Ready    master   3d22h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=ubuntu,kubernetes.io/os=linux,node-role.kubernetes.io/master=,route-reflector=true,rr-group=rr1,rr-id=rr1
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.47  | node specific | up    | 08:45:51 | Established |
    | 10.10.16.81  | node specific | up    | 09:35:25 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME      PEERIP   NODE    ASN   
    unbuntu            all()   0     
    
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.47  | node specific | up    | 08:45:51 | Established |
    | 10.10.16.81  | node specific | up    | 09:35:25 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# 

    peer仍然存在

    [root@bogon ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=62 time=0.287 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=62 time=0.189 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1021ms
    rtt min/avg/max/mdev = 0.189/0.238/0.287/0.049 ms
    You have mail in /var/spool/mail/root
    [root@bogon ~]# ping 10.244.41.3
    PING 10.244.41.3 (10.244.41.3) 56(84) bytes of data.
    64 bytes from 10.244.41.3: icmp_seq=1 ttl=62 time=0.240 ms
    ^C
    --- 10.244.41.3 ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.240/0.240/0.240/0.000 ms
    [root@bogon ~]# 

    原来是有两个bgp peer删掉一个就可以了

    root@ubuntu:~# ./calicoctl get bgppeer
    NAME               PEERIP   NODE                ASN   
    rr1-to-node-peer            rr-group == 'rr1'   0     
    unbuntu                     all()               0     
    
    root@ubuntu:~# ./calicoctl delete  bgppeer  unbuntu 
    Successfully deleted 1 'BGPPeer' resource(s)
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME               PEERIP   NODE                ASN   
    rr1-to-node-peer            rr-group == 'rr1'   0     
    
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    No IPv4 peers found.
    
    IPv6 BGP status
    No IPv6 peers found.

    给bogon 添加label

    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    No IPv4 peers found.
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME               PEERIP   NODE                ASN   
    rr1-to-node-peer            rr-group == 'rr1'   0     
    
    root@ubuntu:~# kubectl get nodes --show-labels
    NAME     STATUS   ROLES    AGE     VERSION   LABELS
    bogon    Ready    worker   4d14h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=bogon,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    cloud    Ready    worker   4d14h   v1.21.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=cloud,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
    ubuntu   Ready    master   4d14h   v1.18.1   beta.kubernetes.io/arch=arm64,beta.kubernetes.io/os=linux,kubernetes.io/arch=arm64,kubernetes.io/hostname=ubuntu,kubernetes.io/os=linux,node-role.kubernetes.io/master=,route-reflector=true,rr-group=rr1,rr-id=rr1
    root@ubuntu:~# kubectl label nodes bogon rr-group=rr1
    node/bogon labeled
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME               PEERIP   NODE                ASN   
    rr1-to-node-peer            rr-group == 'rr1'   0     
    
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.81  | node specific | up    | 01:32:08 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# 
    root@ubuntu:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.81  | node specific | up    | 01:32:08 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# ./calicoctl get nodes --output=wide
    NAME     ASN       IPV4             IPV6   
    bogon    (64512)   10.10.16.81/24          
    cloud    (64512)   10.10.16.47/24          
    ubuntu   (64512)   10.10.16.82/24          
    
    root@ubuntu:~# 
    [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    | 01:32:07 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    You have new mail in /var/spool/mail/root
    [root@bogon ~]# 
    root@cloud:~# ./calicoctl  node status
    Calico process is running.
    
    IPv4 BGP status
    No IPv4 peers found.
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@cloud:~# 
    [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    | 01:32:07 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    [root@bogon ~]#

    bogon pod ping cloud pod 和ubuntu pod

    [root@bogon ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
    4: eth0@if103: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
        link/ether fa:34:76:a4:9d:f8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.244.29.4/32 brd 10.244.29.4 scope global eth0
           valid_lft forever preferred_lft forever
    [root@bogon ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=62 time=0.286 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.286/0.286/0.286/0.000 ms
    [root@bogon ~]# ping 10.244.41.3
    PING 10.244.41.3 (10.244.41.3) 56(84) bytes of data.
    ^C
    --- 10.244.41.3 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 2073ms
    
    [root@bogon ~]# 

     leaf节点

    用一条服务器模拟

    [root@localhost ~]# vtysh
    
    Hello, this is Quagga (version 0.99.22.4).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    localhost.localdomain# show running-config
    Building configuration...
    
    Current configuration:
    !
    hostname localhost.localdomain
    hostname bgpd
    log stdout
    !
    password zebra
    !
    interface enp6s0
     ipv6 nd suppress-ra
    !
    interface enp125s0f0
     ipv6 nd suppress-ra
    !
    interface enp125s0f1
     ipv6 nd suppress-ra
    !
    interface enp125s0f2
     ipv6 nd suppress-ra
    !
    interface enp125s0f3
     ipv6 nd suppress-ra
    !
    interface lo
    !
    router bgp 7675
     bgp router-id 10.10.16.251
     neighbor 10.10.16.82 remote-as 64512
    !
    line vty
    !
    end
    localhost.localdomain# show  ip  bgp  summary
    BGP router identifier 10.10.16.251, local AS number 7675
    RIB entries 0, using 0 bytes of memory
    Peers 1, using 4560 bytes of memory
    
    Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
    10.10.16.82     4 64512       0       9        0    0    0 never    Active     
    
    Total number of neighbors 1
    localhost.localdomain# 

    ubuntu配置leaf

    root@ubuntu:~# cat rr1-to-leaf1-peer.yaml
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: rr1-to-leaf1-peer        ## 给BGPPeer取一个名称,方便识别
    
    spec:
      nodeSelector: rr-id == 'rr1'   ## 通过节点选择器添加有rr-id == 'rr1'标签的节点
    
      peerIP: 10.10.16.251           ##  leaf01交换机的地址
      asNumber: 7675                ##  leaf01交换机的AS号
    root@ubuntu:~# ./calicoctl apply -f rr1-to-leaf1-peer.yaml
    Successfully applied 1 'BGPPeer' resource(s)
    root@ubuntu:~# ./calicoctl apply -f rr1-to-leaf1-peer.yaml
    Successfully applied 1 'BGPPeer' resource(s)

    配置完后,查看leaf

    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enp125s0f0
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enp125s0f0
    10.244.29.0     10.10.16.82     255.255.255.192 UG    0      0        0 enp125s0f0
    10.244.243.192  10.10.16.82     255.255.255.192 UG    0      0        0 enp125s0f0
    [root@localhost ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=63 time=0.188 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=63 time=0.137 ms
    64 bytes from 10.244.243.197: icmp_seq=3 ttl=63 time=0.109 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2054ms
    rtt min/avg/max/mdev = 0.109/0.144/0.188/0.035 ms
    [root@localhost ~]# 

    leaf节点ping bog   pod

    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enp125s0f0
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enp125s0f0
    10.244.29.0     10.10.16.82     255.255.255.192 UG    0      0        0 enp125s0f0
    10.244.243.192  10.10.16.82     255.255.255.192 UG    0      0        0 enp125s0f0
    [root@localhost ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=63 time=0.188 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=63 time=0.137 ms
    64 bytes from 10.244.243.197: icmp_seq=3 ttl=63 time=0.109 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2054ms
    rtt min/avg/max/mdev = 0.109/0.144/0.188/0.035 ms
    [root@localhost ~]# 

    leaf节点ping ubuntu  pod

    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enp125s0f0
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enp125s0f0
    10.244.29.0     10.10.16.82     255.255.255.192 UG    0      0        0 enp125s0f0  ----要经过10.10.16.82
    10.244.243.192  10.10.16.82     255.255.255.192 UG    0      0        0 enp125s0f0
    [root@localhost ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=63 time=0.188 ms
    64 bytes from 10.244.243.197: icmp_seq=2 ttl=63 time=0.137 ms
    64 bytes from 10.244.243.197: icmp_seq=3 ttl=63 time=0.109 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2054ms
    rtt min/avg/max/mdev = 0.109/0.144/0.188/0.035 ms
    [root@localhost ~]# ping  10.244.29.4
    PING 10.244.29.4 (10.244.29.4) 56(84) bytes of data.
    64 bytes from 10.244.29.4: icmp_seq=1 ttl=63 time=0.277 ms
    From 10.10.16.82: icmp_seq=2 Redirect Host(New nexthop: 10.10.16.81)
    64 bytes from 10.244.29.4: icmp_seq=2 ttl=63 time=0.226 ms
    ^C
    --- 10.244.29.4 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1019ms
    rtt min/avg/max/mdev = 0.226/0.251/0.277/0.030 ms
    [root@localhost ~]# 

    对于leaf节点ping bog   pod 进行tcpdump

    [root@localhost ~]# ping  10.244.29.4
    PING 10.244.29.4 (10.244.29.4) 56(84) bytes of data.
    64 bytes from 10.244.29.4: icmp_seq=1 ttl=63 time=0.287 ms
    From 10.10.16.82: icmp_seq=2 Redirect Host(New nexthop: 10.10.16.81)
    64 bytes from 10.244.29.4: icmp_seq=2 ttl=63 time=0.244 ms
    64 bytes from 10.244.29.4: icmp_seq=3 ttl=63 time=0.134 ms
    ^C
    --- 10.244.29.4 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2075ms
    rtt min/avg/max/mdev = 0.134/0.221/0.287/0.066 ms
    [root@localhost ~]# 

    ubunbtu

    root@ubuntu:~# tcpdump -i  enahisic2i0 icmp and host   10.244.29.4 -eenv
    tcpdump: listening on enahisic2i0, link-type EN10MB (Ethernet), capture size 262144 bytes

      从enahisic2i0进,
    10:49:30.999566 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 19734, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 1, length 64
    enahisic2i0出,
     10:49:30.999658 48:57:02:64:e7:ab > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 19734, offset 0, flags [DF], proto ICMP (1), length 84) 
    10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 1, length 64

    10:49:32.034781 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 19763, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 2, length 64

    10:49:32.034863 48:57:02:64:e7:ab > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 19763, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 2, length 64

    251 mac

    [root@localhost ~]# ip a sh  enp125s0f0
    2: enp125s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether b0:08:75:5f:b8:5b brd ff:ff:ff:ff:ff:ff
        inet 10.10.16.251/24 scope global enp125s0f0
           valid_lft forever preferred_lft forever
    [root@localhost ~]# 

    ubuntu mac 

    enahisic2i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 48:57:02:64:e7:ab brd ff:ff:ff:ff:ff:ff
        inet 10.10.16.82/24 brd 10.10.16.255 scope global enahisic2i0
           valid_lft forever preferred_lft forever
        inet 10.10.16.250/32 scope global enahisic2i0
           valid_lft forever preferred_lft forever
        inet6 fe80::4a57:2ff:fe64:e7ab/64 scope link 
           valid_lft forever preferred_lft forever

    81 mac

    [root@bogon ~]# ip a sh enahisic2i0
    2: enahisic2i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 48:57:02:64:ea:1b brd ff:ff:ff:ff:ff:ff
        inet 10.10.16.81/24 scope global enahisic2i0
           valid_lft forever preferred_lft forever
        inet 10.10.16.250/24 scope global secondary enahisic2i0
           valid_lft forever preferred_lft forever
    You have mail in /var/spool/mail/root
    [root@bogon ~]# 

    bogon pod 

    [root@bogon ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
    4: eth0@if103: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
        link/ether fa:34:76:a4:9d:f8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.244.29.4/32 brd 10.244.29.4 scope global eth0
           valid_lft forever preferred_lft forever
    [root@bogon ~]# ping  10.244.243.197
    PING 10.244.243.197 (10.244.243.197) 56(84) bytes of data.
    64 bytes from 10.244.243.197: icmp_seq=1 ttl=62 time=0.286 ms
    ^C
    --- 10.244.243.197 ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.286/0.286/0.286/0.000 ms
    [root@bogon ~]# ping 10.244.41.3
    PING 10.244.41.3 (10.244.41.3) 56(84) bytes of data.
    ^C
    --- 10.244.41.3 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 2073ms
    
    [root@bogon ~]# tcpdump -i  eth0 icmp and host   10.10.16.251  -eenv  --没有snat
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    10:49:31.006872 ee:ee:ee:ee:ee:ee > fa:34:76:a4:9d:f8, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 62, id 19734, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 1, length 64
    10:49:31.006906 fa:34:76:a4:9d:f8 > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 13073, offset 0, flags [none], proto ICMP (1), length 84)
        10.244.29.4 > 10.10.16.251: ICMP echo reply, id 4929, seq 1, length 64
    10:49:32.042047 ee:ee:ee:ee:ee:ee > fa:34:76:a4:9d:f8, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 62, id 19763, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 2, length 64
    10:49:32.042073 fa:34:76:a4:9d:f8 > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 13123, offset 0, flags [none], proto ICMP (1), length 84)
        10.244.29.4 > 10.10.16.251: ICMP echo reply, id 4929, seq 2, length 64
    10:49:33.081916 ee:ee:ee:ee:ee:ee > fa:34:76:a4:9d:f8, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 19767, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 3, length 64
    10:49:33.081945 fa:34:76:a4:9d:f8 > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 13153, offset 0, flags [none], proto ICMP (1), length 84)
        10.244.29.4 > 10.10.16.251: ICMP echo reply, id 4929, seq 3, length 64

    251 tcpdump 

    [root@localhost ~]# tcpdump -i enp125s0f0 icmp and host 10.244.29.4 -eennvv
    tcpdump: listening on enp125s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes
    22:57:20.268299 b0:08:75:5f:b8:5b > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 37937, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4954, seq 1, length 64
    22:57:20.268462 48:57:02:64:ea:1b > b0:08:75:5f:b8:5b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 31657, offset 0, flags [none], proto ICMP (1), length 84)
        10.244.29.4 > 10.10.16.251: ICMP echo reply, id 4954, seq 1, length 64
    22:57:21.322067 b0:08:75:5f:b8:5b > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 37948, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4954, seq 2, length 64
    22:57:21.322198 48:57:02:64:ea:1b > b0:08:75:5f:b8:5b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 31669, offset 0, flags [none], proto ICMP (1), length 84)
        10.244.29.4 > 10.10.16.251: ICMP echo reply, id 4954, seq 2, length 64

    ubuntu只有 icmp request ,reply 不经过ubuntu

    root@ubuntu:~# tcpdump -i  enahisic2i0 icmp and host   10.244.29.4 -eenv
    tcpdump: listening on enahisic2i0, link-type EN10MB (Ethernet), capture size 262144 bytes
    10:49:30.999566 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 19734, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 1, length 64
    10:49:30.999658 48:57:02:64:e7:ab > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 19734, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 1, length 64
    10:49:32.034781 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 19763, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 2, length 64
    10:49:32.034863 48:57:02:64:e7:ab > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 19763, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4929, seq 2, length 64
    10:56:05.307169 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 32478, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4936, seq 1, length 64
    10:56:05.307308 48:57:02:64:e7:ab > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 32478, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4936, seq 1, length 64
    10:56:06.354681 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 32536, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4936, seq 2, length 64
    10:56:06.354747 48:57:02:64:e7:ab > 48:57:02:64:ea:1b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 32536, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.251 > 10.244.29.4: ICMP echo request, id 4936, seq 2, length 64
    ^C
    [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    | 01:32:07 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.

    给251新增一个网段

    [root@localhost ~]# ip a add 172.168.19.251/24 dev  enp125s0f1
    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: enp125s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether b0:08:75:5f:b8:5b brd ff:ff:ff:ff:ff:ff
        inet 10.10.16.251/24 scope global enp125s0f0
           valid_lft forever preferred_lft forever

    ubuntu还无法访问这个网段

    root@ubuntu:~# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enahisic2i0
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i0
    10.244.29.0     10.10.16.81     255.255.255.192 UG    0      0        0 enahisic2i0
    10.244.243.192  0.0.0.0         255.255.255.192 U     0      0        0 *
    10.244.243.194  0.0.0.0         255.255.255.255 UH    0      0        0 cali0d27bc8b0f7
    10.244.243.197  0.0.0.0         255.255.255.255 UH    0      0        0 cali090a0c3c4a2
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
    root@ubuntu:~# 

    251节点上把172.168.19.251/24这个网段发送出去

    localhost.localdomain# conf t
    localhost.localdomain(config)# router bgp  7675
    localhost.localdomain(config-router)#  network 172.168.19.251/24
    localhost.localdomain(config-router)# exit
    localhost.localdomain(config)# wr
    % Unknown command.
    localhost.localdomain(config)# exit
    localhost.localdomain# wr
    Building Configuration...
    Can't open configuration file /etc/quagga/zebra.conf.SbhiyG.
    Can't open configuration file /etc/quagga/bgpd.conf.omycEG.
    [OK]
    localhost.localdomain# 

    ubuntu路由信息

    root@ubuntu:~# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 10.10.16.254 0.0.0.0 UG 0 0 0 enahisic2i0
    10.10.16.0 0.0.0.0 255.255.255.0 U 0 0 0 enahisic2i0
    10.244.29.0 10.10.16.81 255.255.255.192 UG 0 0 0 enahisic2i0
    10.244.243.192 0.0.0.0 255.255.255.192 U 0 0 0 *
    10.244.243.194 0.0.0.0 255.255.255.255 UH 0 0 0 cali0d27bc8b0f7
    10.244.243.197 0.0.0.0 255.255.255.255 UH 0 0 0 cali090a0c3c4a2
    172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
    172.168.19.0 10.10.16.251 255.255.255.0 UG 0 0 0 enahisic2i0
    192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
    root@ubuntu:~#

    ubuntu  ping   172.168.19.251

    root@ubuntu:~#  ping 172.168.19.251
    PING 172.168.19.251 (172.168.19.251) 56(84) bytes of data.
    64 bytes from 172.168.19.251: icmp_seq=1 ttl=64 time=0.124 ms
    64 bytes from 172.168.19.251: icmp_seq=2 ttl=64 time=0.083 ms
    64 bytes from 172.168.19.251: icmp_seq=3 ttl=64 time=0.074 ms
    ^C
    --- 172.168.19.251 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2051ms
    rtt min/avg/max/mdev = 0.074/0.093/0.124/0.024 ms
    root@ubuntu:~# 
    [root@localhost ~]# tcpdump -i enp125s0f0 icmp and host 172.168.19.251 -eennvv
    tcpdump: listening on enp125s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes
    23:31:13.314954 48:57:02:64:e7:ab > b0:08:75:5f:b8:5b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 20566, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.82 > 172.168.19.251: ICMP echo request, id 45785, seq 1, length 64
    23:31:13.314964 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 23367, offset 0, flags [none], proto ICMP (1), length 84)
        172.168.19.251 > 10.10.16.82: ICMP echo reply, id 45785, seq 1, length 64
    23:31:14.319749 48:57:02:64:e7:ab > b0:08:75:5f:b8:5b, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 20813, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.82 > 172.168.19.251: ICMP echo request, id 45785, seq 2, length 64
    23:31:14.319756 b0:08:75:5f:b8:5b > 48:57:02:64:e7:ab, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 23438, offset 0, flags [none], proto ICMP (1), length 84)
        172.168.19.251 > 10.10.16.82: ICMP echo reply, id 45785, seq 2, length 64

    bogon 访问172.168.19.251 仍然不通,因为ubuntu没有把路由同步给bogon

    [root@bogon ~]# ping 172.168.19.251
    PING 172.168.19.251 (172.168.19.251) 56(84) bytes of data.
    ^C
    --- 172.168.19.251 ping statistics ---
    2 packets transmitted, 0 received, 100% packet loss, time 1056ms
    
    [root@bogon ~]#
    [root@bogon ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enahisic2i0
    10.2.0.1        0.0.0.0         255.255.255.255 UH    0      0        0 v-cali-peer
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i0
    10.10.34.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i2
    10.10.102.0     0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i1
    10.244.29.0     0.0.0.0         255.255.255.192 U     0      0        0 *
    10.244.29.1     0.0.0.0         255.255.255.255 UH    0      0        0 cali2e486421e22
    10.244.29.4     0.0.0.0         255.255.255.255 UH    0      0        0 calibe3388252a1
    10.244.243.192  10.10.16.82     255.255.255.192 UG    0      0        0 enahisic2i0
    14.14.18.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i3.310
    172.16.100.0    0.0.0.0         255.255.255.0   U     0      0        0 brqf1411bad-10
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    172.168.104.0   0.0.0.0         255.255.255.0   U     0      0        0 enah2i3.1022
    192.168.33.0    0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i1
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
    You have mail in /var/spool/mail/root
    [root@bogon ~]# route -n | grep  172.168.19
    [root@bogon ~]# tcpdump -i enahisic2i0 icmp and  host 172.168.19.251 -eennvv
    tcpdump: listening on enahisic2i0, link-type EN10MB (Ethernet), capture size 262144 bytes
    11:31:08.028856 48:57:02:64:ea:1b > f4:1d:6b:87:53:2a, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 44135, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.81 > 172.168.19.251: ICMP echo request, id 0, seq 1, length 64
    11:31:09.092515 48:57:02:64:ea:1b > f4:1d:6b:87:53:2a, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 44165, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.81 > 172.168.19.251: ICMP echo request, id 0, seq 2, length 64
    ^C
    2 packets captured
    2 packets received by filter
    0 packets dropped by kernel
    You have mail in /var/spool/mail/root
    [root@bogon ~]# tcpdump -i enahisic2i0 icmp and  host 172.168.19.251 -eennvv
    tcpdump: listening on enahisic2i0, link-type EN10MB (Ethernet), capture size 262144 bytes
    11:33:01.475621 48:57:02:64:ea:1b > f4:1d:6b:87:53:2a, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 15976, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.81 > 172.168.19.251: ICMP echo request, id 45862, seq 1, length 64
    11:33:02.532507 48:57:02:64:ea:1b > f4:1d:6b:87:53:2a, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 16021, offset 0, flags [DF], proto ICMP (1), length 84)
        10.10.16.81 > 172.168.19.251: ICMP echo request, id 45862, seq 2, length 64
    ^C
    2 packets captured
    2 packets received by filter
    0 packets dropped by kernel
    [root@bogon ~]# 

    将251节点的as number 改成 64512

    localhost.localdomain# show running-config
    Building configuration...
    
    Current configuration:
    !
    hostname localhost.localdomain
    hostname bgpd
    log stdout
    !
    password zebra
    !
    interface enp6s0
     ipv6 nd suppress-ra
    !
    interface enp125s0f0
     ipv6 nd suppress-ra
    !
    interface enp125s0f1
     ipv6 nd suppress-ra
    !
    interface enp125s0f2
     ipv6 nd suppress-ra
    !
    interface enp125s0f3
     ipv6 nd suppress-ra
    !
    interface lo
    !
    router bgp 7675
     bgp router-id 10.10.16.251
     network 172.168.19.0/24
     neighbor 10.10.16.82 remote-as 64512
    !
    line vty
    !
    end
    localhost.localdomain# conf t
    localhost.localdomain(config)# no router bgp 7675 
    localhost.localdomain(config)# router bgp 64512
    localhost.localdomain(config-router)# exit
    localhost.localdomain(config)# wr
    % Unknown command.
    localhost.localdomain(config)# exit
    localhost.localdomain# wr
    Building Configuration...
    Can't open configuration file /etc/quagga/zebra.conf.ofjRYH.
    Can't open configuration file /etc/quagga/bgpd.conf.e0jI8H.
    [OK]
    localhost.localdomain#  show running-config
    Building configuration...
    
    Current configuration:
    !
    hostname localhost.localdomain
    hostname bgpd
    log stdout
    !
    password zebra
    !
    interface enp6s0
     ipv6 nd suppress-ra
    !
    interface enp125s0f0
     ipv6 nd suppress-ra
    !
    interface enp125s0f1
     ipv6 nd suppress-ra
    !
    interface enp125s0f2
     ipv6 nd suppress-ra
    !
    interface enp125s0f3
     ipv6 nd suppress-ra
    !
    interface lo
    !
    router bgp 64512
     bgp router-id 10.10.16.251
    !
    line vty
    !
    end
    localhost.localdomain#

     改完之后ubuntu没有172.168.19.251/24的路由了

    root@ubuntu:~# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enahisic2i0
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i0
    10.244.29.0     10.10.16.81     255.255.255.192 UG    0      0        0 enahisic2i0
    10.244.243.192  0.0.0.0         255.255.255.192 U     0      0        0 *
    10.244.243.194  0.0.0.0         255.255.255.255 UH    0      0        0 cali0d27bc8b0f7
    10.244.243.197  0.0.0.0         255.255.255.255 UH    0      0        0 cali090a0c3c4a2
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME                PEERIP         NODE                ASN    
    rr1-to-leaf1-peer   10.10.16.251   rr-id == 'rr1'      7675   
    rr1-to-node-peer                   rr-group == 'rr1'   0      
    
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME                PEERIP         NODE                ASN    
    rr1-to-leaf1-peer   10.10.16.251   rr-id == 'rr1'      7675   
    rr1-to-node-peer                   rr-group == 'rr1'   0      
    
    root@ubuntu:~# 

    原因是251没有邻居了

    localhost.localdomain# show  ip  bgp  summary
    No IPv4 neighbor is configured
    localhost.localdomain# 

    给251 配置bgp邻居

    localhost.localdomain# show  ip  bgp  summary
    No IPv4 neighbor is configured
    localhost.localdomain# conf t
    localhost.localdomain(config)# router bgp 64512
    localhost.localdomain(config-router)# neighbor 10.10.16.82 remote-as 64512
    localhost.localdomain(config-router)# network 172.168.19.251/24
    localhost.localdomain(config-router)# exit
    localhost.localdomain(config)# exit
    localhost.localdomain# wr
    Building Configuration...
    Can't open configuration file /etc/quagga/zebra.conf.9iI9n9.
    Can't open configuration file /etc/quagga/bgpd.conf.xLFCy9.
    [OK]
    localhost.localdomain# 

    更改交换机as

    root@ubuntu:~# cat  rr1-to-leaf1-peer.yaml 
    apiVersion: projectcalico.org/v3
    kind: BGPPeer
    metadata:
      name: rr1-to-leaf1-peer        ## 给BGPPeer取一个名称,方便识别
    
    spec:
      nodeSelector: rr-id == 'rr1'   ## 通过节点选择器添加有rr-id == 'rr1'标签的节点
    
      peerIP: 10.10.16.251           ##  leaf01交换机的地址
      asNumber:  64512                ##  leaf01交换机的AS号
    root@ubuntu:~# 
    root@ubuntu:~# ./calicoctl apply -f rr1-to-leaf1-peer.yaml 
    Successfully applied 1 'BGPPeer' resource(s)
    root@ubuntu:~# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.10.16.254    0.0.0.0         UG    0      0        0 enahisic2i0
    10.10.16.0      0.0.0.0         255.255.255.0   U     0      0        0 enahisic2i0
    10.244.29.0     10.10.16.81     255.255.255.192 UG    0      0        0 enahisic2i0
    10.244.243.192  0.0.0.0         255.255.255.192 U     0      0        0 *
    10.244.243.194  0.0.0.0         255.255.255.255 UH    0      0        0 cali0d27bc8b0f7
    10.244.243.197  0.0.0.0         255.255.255.255 UH    0      0        0 cali090a0c3c4a2
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    172.168.19.0    10.10.16.251    255.255.255.0   UG    0      0        0 enahisic2i0
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
    root@ubuntu:~#  ping 172.168.19.251
    PING 172.168.19.251 (172.168.19.251) 56(84) bytes of data.
    64 bytes from 172.168.19.251: icmp_seq=1 ttl=64 time=0.292 ms
    64 bytes from 172.168.19.251: icmp_seq=2 ttl=64 time=0.079 ms
    ^C
    --- 172.168.19.251 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1011ms
    rtt min/avg/max/mdev = 0.079/0.185/0.292/0.107 ms
    root@ubuntu:~# ./calicoctl get bgppeer
    NAME                PEERIP         NODE                ASN     
    rr1-to-leaf1-peer   10.10.16.251   rr-id == 'rr1'      64512   
    rr1-to-node-peer                   rr-group == 'rr1'   0       

    bogon仍然没有172.168.19的路由

    [root@bogon ~]# route -n | grep 172.168.19
    [root@bogon ~]# route -n | grep 172.168.19
    [root@bogon ~]# 

    251改造成k8s node

    root@ubuntu:~# kubectl get nodes -o wide
    NAME      STATUS   ROLES    AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                   KERNEL-VERSION                CONTAINER-RUNTIME
    bogon     Ready    worker   4d19h   v1.18.1   10.10.16.81    <none>        CentOS Linux 7 (AltArch)   4.14.0-115.8.1.el7a.aarch64   docker://20.10.7
    centos7   Ready    <none>   20m     v1.18.1   10.10.16.251   <none>        CentOS Linux 7 (AltArch)   4.14.0-115.el7a.0.1.aarch64   docker://1.13.1
    cloud     Ready    worker   4d20h   v1.21.1   10.10.16.47    <none>        Ubuntu 18.04.3 LTS         5.5.19-050519-generic         docker://19.3.13
    ubuntu    Ready    master   4d20h   v1.18.1   10.10.16.82    <none>        Ubuntu 18.04.3 LTS         5.0.0-23-generic              containerd://1.3.7
    root@ubuntu:~# 
    root@ubuntu:~# ./calicoctl node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+--------------------------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |              INFO              |
    +--------------+---------------+-------+----------+--------------------------------+
    | 10.10.16.251 | node specific | start | 07:14:44 | Idle Socket: Connection        |
    |              |               |       |          | refused                        |
    | 14.14.18.89  | node specific | start | 07:14:44 | Connect                        |
    +--------------+---------------+-------+----------+--------------------------------+
    root@ubuntu:~# ./calicoctl get  bgppeer
    NAME                PEERIP         NODE                ASN     
    rr1-to-leaf1-peer   10.10.16.251   rr-id == 'rr1'      64512   
    rr1-to-node-peer                   rr-group == 'rr1'   0    

    删掉bgp pper

    root@ubuntu:~# ./calicoctl delete bgppeer rr1-to-leaf1-peer
    Successfully deleted 1 'BGPPeer' resource(s)
    root@ubuntu:~# kubectl get nodes -o wide
    NAME      STATUS   ROLES    AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                   KERNEL-VERSION                CONTAINER-RUNTIME
    bogon     Ready    worker   4d20h   v1.18.1   10.10.16.81    <none>        CentOS Linux 7 (AltArch)   4.14.0-115.8.1.el7a.aarch64   docker://20.10.7
    centos7   Ready    <none>   21m     v1.18.1   10.10.16.251   <none>        CentOS Linux 7 (AltArch)   4.14.0-115.el7a.0.1.aarch64   docker://1.13.1
    cloud     Ready    worker   4d20h   v1.21.1   10.10.16.47    <none>        Ubuntu 18.04.3 LTS         5.5.19-050519-generic         docker://19.3.13
    ubuntu    Ready    master   4d20h   v1.18.1   10.10.16.82    <none>        Ubuntu 18.04.3 LTS         5.0.0-23-generic              containerd://1.3.7
    root@ubuntu:~# ./calicoctl get  bgppeer
    NAME               PEERIP   NODE                ASN   
    rr1-to-node-peer            rr-group == 'rr1'   0     
    
    root@ubuntu:~# 
    root@ubuntu:~# kubectl get pods -o wide   -n kube-system
    NAME                                       READY   STATUS    RESTARTS   AGE     IP               NODE      NOMINATED NODE   READINESS GATES
    calico-kube-controllers-5978c5f6b5-tk6pg   1/1     Running   0          4d20h   10.244.243.194   ubuntu    <none>           <none>
    calico-node-gnp9x                          0/1     Running   0          59m     10.10.16.82      ubuntu    <none>           <none>
    calico-node-jcvsf                          1/1     Running   0          59m     10.10.16.251     centos7   <none>           <none>
    calico-node-pq756                          0/1     Running   0          59m     10.10.16.81      bogon     <none>           <none>
    calico-node-pxr58                          1/1     Running   0          52m     10.10.16.47      cloud     <none>           <none>
    bird: Reconfiguration requested by SIGHUP
    bird: Reconfiguring
    bird: device1: Reconfigured
    bird: direct1: Reconfigured
    bird: Adding protocol Node_14_14_18_89
    bird: Node_14_14_18_89: Initializing
    bird: Node_14_14_18_89: Starting
    bird: Node_14_14_18_89: State changed to start
    bird: Reconfigured
    2021-06-23 08:03:04.084 [INFO][90] felix/summary.go 100: Summarising 9 dataplane reconciliation loops over 1m2.3s: avg=5ms longest=11ms (resync-nat-v4,resync-raw-v4)
    2021-06-23 08:03:12.698 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:03:42.548 [INFO][91] monitor-addresses/startup.go 788: Using autodetected IPv4 address 10.10.16.82/24 on matching interface enahisic2i0
    2021-06-23 08:03:42.699 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:04:07.433 [INFO][90] felix/summary.go 100: Summarising 11 dataplane reconciliation loops over 1m3.3s: avg=5ms longest=16ms ()
    2021-06-23 08:04:12.702 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:04:42.549 [INFO][91] monitor-addresses/startup.go 788: Using autodetected IPv4 address 10.10.16.82/24 on matching interface enahisic2i0
    2021-06-23 08:04:42.703 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:05:09.720 [INFO][90] felix/summary.go 100: Summarising 8 dataplane reconciliation loops over 1m2.3s: avg=4ms longest=19ms ()
    2021-06-23 08:05:12.705 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:05:42.552 [INFO][91] monitor-addresses/startup.go 788: Using autodetected IPv4 address 10.10.16.82/24 on matching interface enahisic2i0
    2021-06-23 08:05:42.706 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:06:11.983 [INFO][90] felix/summary.go 100: Summarising 9 dataplane reconciliation loops over 1m2.3s: avg=4ms longest=12ms (resync-nat-v4,resync-raw-v4)
    2021-06-23 08:06:12.708 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:06:36.324 [INFO][93] confd/watchercache.go 96: Watch channel closed by remote - recreate watcher ListRoot="/calico/ipam/v2/host/ubuntu"
    2021-06-23 08:06:42.554 [INFO][91] monitor-addresses/startup.go 788: Using autodetected IPv4 address 10.10.16.82/24 on matching interface enahisic2i0
    2021-06-23 08:06:42.709 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:07:09.406 [INFO][90] felix/watchercache.go 96: Watch channel closed by remote - recreate watcher ListRoot="/calico/resources/v3/projectcalico.org/profiles"
    2021-06-23 08:07:12.710 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:07:15.071 [INFO][90] felix/summary.go 100: Summarising 11 dataplane reconciliation loops over 1m3.1s: avg=5ms longest=20ms ()
    2021-06-23 08:07:42.557 [INFO][91] monitor-addresses/startup.go 788: Using autodetected IPv4 address 10.10.16.82/24 on matching interface enahisic2i0
    2021-06-23 08:07:42.711 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:08:06.739 [INFO][93] confd/watchercache.go 96: Watch channel closed by remote - recreate watcher ListRoot="/calico/resources/v3/projectcalico.org/bgppeers"
    2021-06-23 08:08:12.712 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    2021-06-23 08:08:18.442 [INFO][90] felix/summary.go 100: Summarising 8 dataplane reconciliation loops over 1m3.4s: avg=4ms longest=16ms ()
    2021-06-23 08:08:42.558 [INFO][91] monitor-addresses/startup.go 788: Using autodetected IPv4 address 10.10.16.82/24 on matching interface enahisic2i0
    2021-06-23 08:08:42.713 [WARNING][90] felix/int_dataplane.go 878: Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuIfacePattern to match your host's interfaces
    ^C
    root@ubuntu:~# kubectl logs  -f  calico-node-gnp9x  -n kube-system

    编辑kubectl edit ds calico-node -n kube-system

            - name: IP_AUTODETECTION_METHOD
              value: "can-reach=10.10.16.254"
              #value: interface=en.*

    成功了

    root@ubuntu:~# ./calicoctl node status
    Calico process is running.
    
    IPv4 BGP status
    +--------------+---------------+-------+----------+-------------+
    | PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
    +--------------+---------------+-------+----------+-------------+
    | 10.10.16.81  | node specific | up    | 08:25:14 | Established |
    +--------------+---------------+-------+----------+-------------+
    
    IPv6 BGP status
    No IPv6 peers found.
    
    root@ubuntu:~# 

    Calico配置及原理

     

    Kubernetes-Calico百度云实践:集群外RR模式(微信)




  • 相关阅读:
    Java基础技术多线程与并发面试【笔记】
    Java GC【笔记】
    Java JVM【笔记】
    Java基础技术JVM面试【笔记】
    Java HashSet和TreeSet【笔记】
    Java TreeMap 和 LinkedHashMap【笔记】
    Java HashMap【笔记】
    Java LinkedList【笔记】
    Java ArrayList【笔记】
    java基础技术集合面试【笔记】
  • 原文地址:https://www.cnblogs.com/dream397/p/14919315.html
Copyright © 2020-2023  润新知