Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-58327

BGP routes not advertised - invalid allowed prefixes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Undefined Undefined
    • None
    • 4.20
    • Networking / Metal LB
    • None
    • Quality / Stability / Reliability
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None
    • None
    • CNF Network Sprint 273
    • 1
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Description of problem:

      BGP routes not advertised - in the speaker pods logs we can see messages about "invalid allowed prefixes"
          

      Version-Release number of selected component (if applicable):

      - Started to see this in OpenShift 4.20 nightly 2025-06-28 11:54 and newer.
      - MetalLB pre-ga operator: 4.19.0
          

      How reproducible:

      100%
          

      Steps to Reproduce:

      `
          

      Actual results:

      BGP routes not being advertised
          

      Expected results:

      BGP routes are advertised
          

      Additional info:

      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc get clusterversion
      NAME      VERSION                              AVAILABLE   PROGRESSING   SINCE   STATUS                                                                      
      version   4.20.0-0.nightly-2025-07-01-051543   True        False         10h     Cluster version is 4.20.0-0.nightly-2025-07-01-051543 
      
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get csv | grep metal                                                                           
      metallb-operator.v4.19.0                   MetalLB Operator                           4.19.0                Succeeded                                        
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get pods
      NAME                                                   READY   STATUS    RESTARTS   AGE                                                                      
      controller-7b688cf4db-xb7dx                            2/2     Running   0          8h                                                                       
      metallb-operator-controller-manager-6b98b445b8-qfw7f   1/1     Running   0          9h                                                                       
      metallb-operator-webhook-server-6d84c4bfd8-djxbm       1/1     Running   0          9h                                                                       
      speaker-k8g24                                          2/2     Running   0          8h                                                                       
      speaker-ks64v                                          2/2     Running   0          8h                                                                       
      speaker-q7qmq                                          2/2     Running   0          8h                                                                       
      speaker-tx95z                                          2/2     Running   0          8h
      
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system logs speaker-k8g24 | grep error | tail -1                                                      
      Defaulted container "speaker" out of: speaker, kube-rbac-proxy
      {"level":"error","ts":"2025-07-02T20:02:38Z","msg":"Reconciler error","controller":"frrconfiguration","controllerGroup":"frrk8s.metallb.io","controllerKind":"FRRConfiguration","FRRConfiguration":{"name":"reload","namespace":"metallbreload"},"namespace":"metallbreload","name":"reload","reconcileID":"89ee1bec-00b7-496c-8dbd-be45dd238fa6","error":"admission webhook \"frrconfigurationsvalidationwebhook.metallb.io\" denied the request: invalid allowed prefixes [10.100.1.50/32 fdb4:da34:100:1::5/128] for neighbor 65000@192.168.15.2, err: prefix fdb4:da34:100:1::5/128 is not compatible with the ipfamily ipv4\nresource is invalid for node worker-3","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/metallb/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:341\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/metallb/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:288\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2\n\t/metallb/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:249"}
      
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-app-vlan404 get pods
      NAME                               READY   STATUS    RESTARTS   AGE
      httpbin-vlan404-5dc856c46d-j97sp   1/1     Running   0          8h
      httpbin-vlan404-5dc856c46d-kk4v9   1/1     Running   0          8h
      
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-app-vlan404 get service
      NAME              TYPE           CLUSTER-IP     EXTERNAL-IP                      PORT(S)          AGE
      metallb-vlan404   LoadBalancer   172.30.19.14   10.100.1.50,fdb4:da34:100:1::5   8080:32267/TCP   8h
      
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-app-vlan404 get service metallb-vlan404 -o json | jq .spec
      {
        "allocateLoadBalancerNodePorts": true,
        "clusterIP": "172.30.19.14",
        "clusterIPs": [
          "172.30.19.14",
          "fd03::437"
        ],
        "externalTrafficPolicy": "Cluster",
        "internalTrafficPolicy": "Cluster",
        "ipFamilies": [
          "IPv4",
          "IPv6"
        ],
        "ipFamilyPolicy": "PreferDualStack",
        "ports": [
          {
            "nodePort": 32267,
            "port": 8080,
            "protocol": "TCP",
            "targetPort": 8080
          }
        ],
        "selector": {
          "app": "vlan404"
        },
        "sessionAffinity": "None",
        "type": "LoadBalancer"
      }
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get IPAddressPool
      NAME      AUTO ASSIGN   AVOID BUGGY IPS   ADDRESSES
      vlan404   true          false             ["10.100.1.50-10.100.1.70","fdb4:da34:100:1::5-fdb4:da34:100:1::10"]
      
      [kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get BGPAdvertisement vlan404 -o yaml                                                           
      apiVersion: metallb.io/v1beta1
      kind: BGPAdvertisement
      metadata:
        creationTimestamp: "2025-07-02T11:13:45Z"
        generation: 1
        name: vlan404
        namespace: metallb-system
        resourceVersion: "153443"
        uid: ff760a3f-269c-4625-aeea-88f9aa68fe2b
      spec:
        aggregationLength: 32
        aggregationLengthV6: 128
        ipAddressPools:
        - vlan404
        peers:
        - dfw01edge-sp01-cluster1-vlan404-ipv4
        - dfw01edge-sp02-cluster1-vlan404-ipv4
        - dfw01edge-sp01-cluster1-vlan404-ipv6
        - dfw01edge-sp02-cluster1-vlan404-ipv6
          

      CI-job: https://www.distributed-ci.io/jobs/fe561fb1-37b9-45e8-97a7-e4fbc276c345/jobStates?sort=date
      must-gather: must_gather.tar.gz 

              fpaoline@redhat.com Federico Paolinelli
              rhn-gps-manrodri Manuel Rodriguez
              None
              None
              Arti Sood Arti Sood
              None
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: