Skip to content

OSPF: Incorrect RFC2328 implementation: lost default #20770

@dl001

Description

@dl001

Description

Accepting an external route (default) and router (ASBR-Summary) via RFC2328 (without compatible RFC1583) wrongly programmed.

When the number of Areas is more than 1, the External routes is selected solely based on the not BackBone area (Area 0). The priority route should be chosen from the no BackBone, but in case of failure, it should be used from the BackBone. This is not happening.

I am attaching the correction patch below.

Version

All version!

# show version
FRRouting 10.5.0 (m9.rmt.ru) on FreeBSD(12.3-STABLE).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
configured with:
    '--prefix=/usr/local/frr-10.5.0' '--localstatedir=/usr/local/frr-10.5.0/var' '--disable-doc' '--enable-multipath=0' '--enable-configfile-mask=0640' '--enable-logfile-mask=0640' '--enable-rpki' '--enable-vty-group=frrvty' '--with-vtysh-pager=more -e' '--enable-protobuf' 'PKG_CONFIG_PATH=/usr/libdata/pkgconfig:/usr/local/protobuf-21.12/lib/pkgconfig:/usr/local/protobuf-c-1.4.1/lib/pkgconfig:/usr/local/libyang-3.7.8/lib/pkgconfig:/usr/local/pcre2-10.40/lib/pkgconfig:/usr/local/rtrlib-0.8.0/lib/pkgconfig' 'CFLAGS=-pipe -g' 'LDFLAGS=-L/usr/local/gettext-0.19.8.1/lib -L/usr/local/readline-8.0/lib -lcurses -L/usr/local/json-c-0.14-20200419/lib -L/usr/local/libyang-3.7.8/lib' 'CPPFLAGS=-I/usr/local/gettext-0.19.8.1/include -I/usr/local/readline-8.0/include -I/usr/local/json-c-0.14-20200419/include -I/usr/local/rtrlib-0.8.0/include/ -I/usr/local/libyang-3.7.8/include/ -I/usr/local/protobuf-c-1.4.1/include/'

How to reproduce

Two routers with parallel areas (BackBone + stub). BackBone not proirity cost. Redistribute the external route on the one router.

Expected behavior

The priority route should be chosen from the no BackBone, but in case of failure, it should be used from the BackBone.

Actual behavior

On the second router, the route is in the OSPF database (sh ip ospf da exter), but not in the route table (sh ip ospf
route).

Have default:

sh ip ospf database external 0.0.0.0

       OSPF Router with ID (10.169.240.56)

                AS External Link States

  LS age: 1167
  Options: 0x20 : *|-|DC|-|-|-|-|-
  LS Flags: 0x6
  LS Type: AS-external-LSA
  Link State ID: 0.0.0.0 (External Network Number)
  Advertising Router: 10.169.240.2
  LS Seq Number: 800025b8
  Checksum: 0xc6c0
  Length: 36

  Network Mask: /0
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 1
        Forward Address: 0.0.0.0
        External Route Tag: 5523

With compatible RFC1583 - have route in RIB table

sh ip ospf route
============ OSPF external routing table ===========
N E2 0.0.0.0/0             [101/1] tag: 5523
                           via 10.169.182.2, vlan3921

Without compatible RFC1583 - There is no route in RIB table.

Additional context

The patch solves the problem

frr-10.5.0.RFC2328_ASE.patch

Checklist

  • I have searched the open issues for this bug.
  • I have not included sensitive information in this report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    triageNeeds further investigation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions