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

[BGP UDN pre-merge testing] in eBGP mode, L3 CUDN is not advertised when default network is already advertised, it can be advertised only if default network RA is deleted

XMLWordPrintable

    • Quality / Stability / Reliability
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • No
    • None
    • Rejected
    • None
    • Done
    • Release Note Not Required
    • N/A
    • None
    • None
    • None
    • None

      Description of problem: [BGP UDN pre-merge testing] in eBGP mode, UDN is not advertised 20 minutes after UDN RA was accepted 

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

      How reproducible:

      Steps to Reproduce:

      1. Configured BGP in eBGP mode, and with default network successfully advertised, created a UDN namespace, and L3 UDN in the namespace, label the UDN with label app=udn that used in ra-udn.yaml

      #oc get userdefinednetwork -A
      NAMESPACE                                NAME                AGE
      e2e-test-udn-networking-8w3qt3q0-kw4fm   udn-network-78349   56s

       

      #oc get userdefinednetwork udn-network-78349 -n e2e-test-udn-networking-8w3qt3q0-kw4fm --show-labels
      NAME                AGE   LABELS
      udn-network-78349   71s   app=udn

      #oc get userdefinednetwork udn-network-78349 -n e2e-test-udn-networking-8w3qt3q0-kw4fm -oyaml
      apiVersion: k8s.ovn.org/v1
      kind: UserDefinedNetwork
      metadata:
        annotations:
          kubectl.kubernetes.io/last-applied-configuration: |
            {"apiVersion":"k8s.ovn.org/v1","kind":"UserDefinedNetwork","metadata":{"annotations":{},"name":"udn-network-78349","namespace":"e2e-test-udn-networking-8w3qt3q0-kw4fm"},"spec":{"layer3":{"mtu":1400,"role":"Primary","subnets":[

      {"cidr":"10.150.0.0/16","hostSubnet":24}

      ]},"topology":"Layer3"}}
        creationTimestamp: "2025-03-08T23:28:55Z"
        finalizers:
        - k8s.ovn.org/user-defined-network-protection
        generation: 1
        labels:
          app: udn
        name: udn-network-78349
        namespace: e2e-test-udn-networking-8w3qt3q0-kw4fm
        resourceVersion: "232212"
        uid: a2697b46-725f-45e0-9eb8-fc8f86bc7c63
      spec:
        layer3:
          mtu: 1400
          role: Primary
          subnets:
          - cidr: 10.150.0.0/16
            hostSubnet: 24
        topology: Layer3
      status:
        conditions:
        - lastTransitionTime: "2025-03-08T23:28:55Z"
          message: NetworkAttachmentDefinition has been created
          reason: NetworkAttachmentDefinitionCreated
          status: "True"
          type: NetworkCreated
        - lastTransitionTime: "2025-03-08T23:28:55Z"
          message: Network allocation succeeded for all synced nodes.
          reason: NetworkAllocationSucceeded
          status: "True"
          type: NetworkAllocationSucceeded

       

      2. Applied a second ra-udn.yaml with networkSelector to select the UDN created in step 1


      kind: List
      apiVersion: v1
      metadata: {}
      items:

      • apiVersion: k8s.ovn.org/v1
          kind: RouteAdvertisements
          metadata:
            name: udn
          spec:
            advertisements:
            - PodNetwork
            - EgressIP
            networkSelector:
              matchLabels:
                app: udn

       

      3. UDN RA was accepted after waiting between 2-3 minutes

      #oc get ra -A
      NAME      STATUS
      default   Accepted
      ra-udn    Accepted

       

      4.  After UDN RA is accepted, waited another 12 minutes, UDN was not advertised

      #sudo podman exec -it aa60d26fc82b /bin/sh
      / # date; ip route show | grep bgp
      Sun Mar  9 16:40:55 UTC 2025
      10.128.0.0/23 via 192.168.111.22 dev offloadbm proto bgp metric 20 
      10.128.2.0/23 via 192.168.111.23 dev offloadbm proto bgp metric 20 
      10.129.0.0/23 via 192.168.111.20 dev offloadbm proto bgp metric 20 
      10.129.2.0/23 via 192.168.111.25 dev offloadbm proto bgp metric 20 
      10.130.0.0/23 via 192.168.111.21 dev offloadbm proto bgp metric 20 
      10.130.2.0/23 via 192.168.111.40 dev offloadbm proto bgp metric 20 
      10.131.0.0/23 via 192.168.111.24 dev offloadbm proto bgp metric 20 
      10.131.2.0/23 via 192.168.111.47 dev offloadbm proto bgp metric 20

      / # date; ip route show | grep bgp
      Sun Mar  9 16:51:26 UTC 2025
      10.128.0.0/23 via 192.168.111.22 dev offloadbm proto bgp metric 20 
      10.128.2.0/23 via 192.168.111.23 dev offloadbm proto bgp metric 20 
      10.129.0.0/23 via 192.168.111.20 dev offloadbm proto bgp metric 20 
      10.129.2.0/23 via 192.168.111.25 dev offloadbm proto bgp metric 20 
      10.130.0.0/23 via 192.168.111.21 dev offloadbm proto bgp metric 20 
      10.130.2.0/23 via 192.168.111.40 dev offloadbm proto bgp metric 20 
      10.131.0.0/23 via 192.168.111.24 dev offloadbm proto bgp metric 20 
      10.131.2.0/23 via 192.168.111.47 dev offloadbm proto bgp metric 20 

      Actual results:  UDN is not advertised with eBGP

      Expected results: UDN should be advertised with eBGP

      Additional info:

      Please fill in the following template while reporting a bug and provide as much relevant information as possible. Doing so will give us the best chance to find a prompt resolution.

      Affected Platforms:

      Is it an

      1. internal CI failure
      2. customer issue / SD
      3. internal RedHat testing failure

      If it is an internal RedHat testing failure:

      • Please share a kubeconfig or creds to a live cluster for the assignee to debug/troubleshoot along with reproducer steps (specially if it's a telco use case like ICNI, secondary bridges or BM+kubevirt).

      If it is a CI failure:

      • Did it happen in different CI lanes? If so please provide links to multiple failures with the same error instance
      • Did it happen in both sdn and ovn jobs? If so please provide links to multiple failures with the same error instance
      • Did it happen in other platforms (e.g. aws, azure, gcp, baremetal etc) ? If so please provide links to multiple failures with the same error instance
      • When did the failure start happening? Please provide the UTC timestamp of the networking outage window from a sample failure run
      • If it's a connectivity issue,
      • What is the srcNode, srcIP and srcNamespace and srcPodName?
      • What is the dstNode, dstIP and dstNamespace and dstPodName?
      • What is the traffic path? (examples: pod2pod? pod2external?, pod2svc? pod2Node? etc)

      If it is a customer / SD issue:

      • Provide enough information in the bug description that Engineering doesn’t need to read the entire case history.
      • Don’t presume that Engineering has access to Salesforce.
      • Do presume that Engineering will access attachments through supportshell.
      • Describe what each relevant attachment is intended to demonstrate (failed pods, log errors, OVS issues, etc).
      • Referring to the attached must-gather, sosreport or other attachment, please provide the following details:
        • If the issue is in a customer namespace then provide a namespace inspect.
        • If it is a connectivity issue:
          • What is the srcNode, srcNamespace, srcPodName and srcPodIP?
          • What is the dstNode, dstNamespace, dstPodName and dstPodIP?
          • What is the traffic path? (examples: pod2pod? pod2external?, pod2svc? pod2Node? etc)
          • Please provide the UTC timestamp networking outage window from must-gather
          • Please provide tcpdump pcaps taken during the outage filtered based on the above provided src/dst IPs
        • If it is not a connectivity issue:
          • Describe the steps taken so far to analyze the logs from networking components (cluster-network-operator, OVNK, SDN, openvswitch, ovs-configure etc) and the actual component where the issue was seen based on the attached must-gather. Please attach snippets of relevant logs around the window when problem has happened if any.
      • When showing the results from commands, include the entire command in the output.  
      • For OCPBUGS in which the issue has been identified, label with “sbr-triaged”
      • For OCPBUGS in which the issue has not been identified and needs Engineering help for root cause, label with “sbr-untriaged”
      • Do not set the priority, that is owned by Engineering and will be set when the bug is evaluated
      • Note: bugs that do not meet these minimum standards will be closed with label “SDN-Jira-template”
      • For guidance on using this template please see
        OCPBUGS Template Training for Networking  components

              sdn-team-bot sdn-team bot
              jechen@redhat.com Jean Chen
              None
              None
              Jean Chen Jean Chen
              None
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: