Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    FRR 7.3 -> 7.5 - BGP not announcing routes

    Scheduled Pinned Locked Moved FRR
    13 Posts 4 Posters 7.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mfld LAYER 8
      last edited by

      Does anyone have experience with upgrading from 7.3 to 7.5 ?

      Mine stopped announcing the route even though session is established once I upgraded pfSense 2.4.5-p1 to 2.5.0-RC.

      Only clues in documentation I could find it are about RFC8212.

      M 1 Reply Last reply Reply Quote 0
      • M
        mfld LAYER 8 @mfld
        last edited by

        Update to anyone finding this by search:

        Between FRR versions 7.3 and 7.5 some things changed:

        frr defaults datacenter -> frr defaults traditional

        and bgp ebgp-requires-policy is now enabled by default as is bgp network import-check

        As a result and depending on your previous setup and peers you may need to manually set frr defaults datacenter and/or no bgp network import-check

        1 Reply Last reply Reply Quote 0
        • M
          mfld LAYER 8
          last edited by

          https://redmine.pfsense.org/issues/11392

          1 Reply Last reply Reply Quote 0
          • jimpJ
            jimp Rebel Alliance Developer Netgate
            last edited by

            The default changed to not accept or distribute routes to a neighboer without a policy in place. This would only affect those who don't already use a route map on their neighbors, so for most the main change will be adding an "Allow-All" route map and then setting that as the route map filter on each neighbor.

            Under FRR, go to Global Settings, Route Maps, add a new one that just has:

            • Name: Allow-All
            • Action: Permit
            • Sequence: 100 (or whatever)

            Then under BGP, edit each neighbor and set it as both entries (inbound and outbound) for Route Map Filter under Peer Filtering.

            It's a more secure default, but it may catch some by surprise.

            That can be added before upgrade, too, which would prevent this from ever being a problem.

            Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

            Need help fast? Netgate Global Support!

            Do not Chat/PM for help!

            M 1 Reply Last reply Reply Quote 2
            • M
              mfld LAYER 8 @jimp
              last edited by

              @jimp Awesome.

              On the prod machine I have prefix lists for the neighbor.

              On this test box there was no policy so it didn't announce the prefix after upgrade.

              I did try

              no bgp ebgp-requires-policy
              

              which is exposed in the GUI and the flag works as expected. But setting this alone and bouncing the session did not announce the prefix.

              Only when I set

              no bgp network import-check
              

              Does it announce the prefix. And the flag for bgp network import-check in the GUI is weird because there is no setting (checked or unchecked) that will result in

              no bgp network import-check
              

              being set in the config. Clearing the checkbox removes the statement from the config which since FRR 7.4 or 7.5 means the inherent default is yes. Setting the checkbox in the GUI creates

              bgp network import-check
              

              In the config which is superfluous because of the inherent default.

              1 Reply Last reply Reply Quote 0
              • jimpJ
                jimp Rebel Alliance Developer Netgate
                last edited by

                Have you tried not setting that at all, and instead setting the route map as I described?

                Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                Need help fast? Netgate Global Support!

                Do not Chat/PM for help!

                M 1 Reply Last reply Reply Quote 1
                • M
                  mfld LAYER 8 @jimp
                  last edited by

                  @jimp said in FRR 7.3 -> 7.5 - BGP not announcing routes:

                  Have you tried not setting that at all, and instead setting the route map as I described?

                  I will try restore the 2.4.5 snapshot of the test instance, set the route map as you described and upgrade to 2.5.0-RC anew.

                  Will get to it around 0200 UTC and report back.

                  1 Reply Last reply Reply Quote 0
                  • M
                    mfld LAYER 8
                    last edited by mfld

                    @jimp said in FRR 7.3 -> 7.5 - BGP not announcing routes:

                    Allow-All

                    So I restored 2.4.5-p1 snapshot on this demo install.

                    It had only filtered by way of prefix list. Announcing IPv6 prefix to one neighbor.

                    Prefix list filter for the neighbor was set to

                    inbound
                    order 100
                    accept ::/0
                    order 200
                    deny any

                    Outbound was to the
                    order 100 accept the prefix I want to announce
                    order 200 deny any

                    This worked and I assumed this counts as a policy for the purposes of RFC8212.

                    Now I added a route map as per your description and upgraded to 2.5.0-RC.

                    The prefix is no longer announced!

                    Something else I notice is that my prefix list is no longer selectable in the peer filter.

                    I will revert to the 2.4.5 snapshot, remove my prefix list filter, then add a route map and see how that goes.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      mfld LAYER 8 @mfld
                      last edited by mfld

                      Notice another thing.

                      In 2.4.5 a prefix list did not have an IP type.

                      Upgrading to 2.5.0 it imported my prefix list which was exclusively IPv6 but did not recognize so. The prefix list is there but cannot be selected. Editing it and pressing "save" I see for exery row:

                      Network in row 0 IP Type mismatch.
                      

                      I notice it now has an IP type selection in the GUI and it has imported / migrated my IPv6 prefix list but defaults to IPv4 in the GUI. After upgrading to 2.5.0-RC I need to go into the IPv6 prefix list, select IP Type IPv6 and save it in order to use it again.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        mfld LAYER 8 @mfld
                        last edited by mfld

                        I had a few things going on that caused my FRR issues after upgrading.

                        My understanding of what broke me:

                        First off, the RFC8212 enforcement in FRR 7.5 (which is a good thing!) will accept either a route map as @jimp suggested or a prefix list. I see that with either or both of them defined, there is no "(Policy)" filter indicated in BGP summary.

                        In my case I had prefix list for inbound and outbound filtering configured on my neighbor that worked well in 2.4.5-p1. Upon upgrading to 2.5.0-RC they were migrated across in a broken state.

                        I noticed by accident when my other test box that receives full routing table from the neighbor and only has 1GB of RAM started going OOM and failing as soon as I ugpraded.

                        This here:

                        fd1.PNG

                        when assigned to neighbor's Inbound Prefix List Filter will only accept default route and you can run a 1GB RAM instance where the neighbor is sending the whole table.

                        When upgrading to 2.5.0-RC there is a new "IP Type" field for prefix-lists and my IPv6-only prefix lists migrated across with the value empty, the lists were being ignored.

                        This ties into the outbound prefix not being announced because my outbound prefix list was equally broken. Absent an override flag this means we announce nothing and receive the full table if the peer sends one.

                        show bgp summary
                        

                        will show "(Policy)" under PfxRcd / PfxSnt to indicate that stuff is being withheld for lack of an explicit policy. An explicit policy can be a route map or a prefix list. My IPv6 prefix lists broke during upgrade thus I ran into trouble.

                        Second issue is that with FRR 7.5 the default behavior of FRR is to only announce prefixes already existing in the RIB. If this is not the case in your environment you need to set "no bgp network import-check" which 2.5.0-RC also exposes in the GUI but I feel it is not currently working and I have expressed that in this bug report.

                        I kept snapshots of these lab instances so can replicate or test other theories if needed.

                        Summary:

                        • RFC8212 is now enforced. You can disable it via the GUI which will set this flag but long term one probably wants to be a good neighbor and have a route map and/or prefix filter in place.

                        • If you announce prefixes not in RIB, you need another flag and the GUI implementation is currently not working as one would expect.

                        • If your peer filtering was relying on prefix lists in 2.4.5-p1 and is now broken, you may find that the IP Type was not detected and it migrated across with it blank so check BGP neighbor status to see if it claims the prefix lists are being applied.

                        1 Reply Last reply Reply Quote 0
                        • viktor_gV
                          viktor_g Netgate
                          last edited by viktor_g

                          @mfld said in FRR 7.3 -> 7.5 - BGP not announcing routes:

                          If your peer filtering was relying on prefix lists in 2.4.5-p1 and is now broken, you may find that the IP Type was not detected and it migrated across with it blank so check BGP neighbor status to see if it claims the prefix lists are being applied.

                          The same issue can happen with access lists, since 2.4.5 doesn't have an 'IP Type' either.

                          Issue created: https://redmine.pfsense.org/issues/11404

                          M 1 Reply Last reply Reply Quote 1
                          • M
                            mfld LAYER 8 @viktor_g
                            last edited by mfld

                            @viktor_g

                            Cool, I did another rollback to 2.4.5-p1 and upgrade to
                            2.5.0.r.20210214.0300.

                            All I need to do now is go into the prefix lists and set IP Type to IPv4/6 and save them to work around https://redmine.pfsense.org/issues/11404

                            But https://redmine.pfsense.org/issues/11392 remains a more troubling issue because checking or unchecking the box in the GUI does not change the FRR behaviour due to the new inherent default. The only way to work around it is to edit RAW config by adding "no bgp network import-check" and override the GUI.

                            Will rollback and re-test once the two bugs are in the update.

                            1 Reply Last reply Reply Quote 0
                            • M
                              manu
                              last edited by

                              Hi,
                              I have you correct your problem?

                              I migrate to 2.5.1 : I had ipv4 route but no ipv6 route with bgp
                              I had route maps and prefix lists on neighbors with no success

                              have you an configuration example ?

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.