Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to advertise EVPN type 3 (multicast) routes when using a route-map #13792

Closed
1 of 2 tasks
DaniilHarun opened this issue Jun 13, 2023 · 10 comments
Closed
1 of 2 tasks
Assignees
Labels
triage Needs further investigation

Comments

@DaniilHarun
Copy link


Describe the bug
When using any route map, EVPN type 3 (multicast) routes are not advertised.

  • Did you check if this is a duplicate issue?
  • Did you test it on the latest FRRouting/frr master branch?

To Reproduce

  1. Create vxlan and bridge interface (vxlan 100).
  2. Apply this config:
router bgp 65023
 bgp router-id 10.32.0.41
 bgp log-neighbor-changes
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 neighbor RS-EVPN peer-group
 neighbor RS-EVPN remote-as 65020
 neighbor RS-EVPN bfd
 neighbor RS-EVPN ebgp-multihop 32
 neighbor RS-EVPN update-source dum0
 neighbor RS-EVPN capability extended-nexthop
 neighbor 10.32.1.2 peer-group RS-EVPN
 !
 address-family l2vpn evpn
  neighbor RS-EVPN activate
  neighbor RS-EVPN allowas-in 1
  neighbor RS-EVPN route-map RS-OUT out
  advertise-all-vni
  vni 100
   rd 65023:100000100
   route-target import 65000:100
   route-target export 65002:1
   advertise-svi-ip
  exit-vni
 exit-address-family
exit
!
route-map RS-OUT permit 10
  1. Checking the route:
# show bgp l2vpn evpn route rd 65023:100000100 type 3

EVPN type-1 prefix: [1]:[EthTag]:[ESI]:[IPlen]:[VTEP-IP]:[Frag-id]
EVPN type-2 prefix: [2]:[EthTag]:[MAClen]:[MAC]
EVPN type-3 prefix: [3]:[EthTag]:[IPlen]:[OrigIP]
EVPN type-4 prefix: [4]:[ESI]:[IPlen]:[OrigIP]
EVPN type-5 prefix: [5]:[EthTag]:[IPlen]:[IP]

BGP routing table entry for 65023:100000100:[3]:[0]:[32]:[10.32.0.43]
Paths: (1 available, best #1)
  Not advertised to any peer
  Route [3]:[0]:[32]:[10.32.0.43] VNI 100
  Local
    10.32.0.43 from 0.0.0.0 (10.32.0.41)
      Origin IGP, weight 32768, valid, sourced, local, best (First path received)
      Extended Community: ET:8 RT:65002:1
      Last update: Tue Jun 13 09:56:27 2023
      PMSI Tunnel Type: Ingress Replication, label: 100

This route is not advertised to any peer. As a result, any multicast and broadcast traffic is not routed.
If I turn off the route map, the problem with route advertising goes away:

  1. Disabling a route map
# conf
(config)# router bgp 65023
(config-router)#  address-family l2vpn evpn
(config-router-af)# no   neighbor RS-EVPN route-map RS-OUT out
(config-router-af)# end
  1. Checking the route:
# show bgp l2vpn evpn route rd 65023:100000100 type 3

EVPN type-1 prefix: [1]:[EthTag]:[ESI]:[IPlen]:[VTEP-IP]:[Frag-id]
EVPN type-2 prefix: [2]:[EthTag]:[MAClen]:[MAC]
EVPN type-3 prefix: [3]:[EthTag]:[IPlen]:[OrigIP]
EVPN type-4 prefix: [4]:[ESI]:[IPlen]:[OrigIP]
EVPN type-5 prefix: [5]:[EthTag]:[IPlen]:[IP]

BGP routing table entry for 65023:100000100:[3]:[0]:[32]:[10.32.0.43]
Paths: (1 available, best #1)
  Advertised to non peer-group peers:
  10.32.1.2
  Route [3]:[0]:[32]:[10.32.0.43] VNI 100
  Local
    10.32.0.43 from 0.0.0.0 (10.32.0.41)
      Origin IGP, weight 32768, valid, sourced, local, best (First path received)
      Extended Community: ET:8 RT:65002:1
      Last update: Tue Jun 13 14:33:37 2023
      PMSI Tunnel Type: Ingress Replication, label: 100

Displayed 1 prefixes (1 paths) with this RD (of requested type)

This route advertised.

Expected behavior

Screenshots

Versions

  • OS Version: Debian11
  • Kernel: 6.1.33
  • FRR Version: 8.5.1-43

Additional context

@DaniilHarun DaniilHarun added the triage Needs further investigation label Jun 13, 2023
@taspelund
Copy link

Can you get logs with detailed route-map debugs enabled?

debug route-map detail

@DaniilHarun
Copy link
Author

DaniilHarun commented Jun 13, 2023

Yes, I enabled debugging:

bgpd[867]: [KZK58-6T4Y6] No best match sequence for pfx: [3]:[0]:[32]:[10.32.0.43] in route-map: RS-OUT, result: no match
bgpd[867]: [H5AW4-JFYQC] Route-map: RS-OUT, prefix: [3]:[0]:[32]:[10.32.0.43], result: deny

But type 2 routes (mac-ip) are advertised:

bgpd[867]: [MT1SJ-WEJQ1] Best match route-map: RS-OUT, sequence: 10 for pfx: [2]:[0]:[48]:[26:28:b0:96:c0:ca]:[128]:[2001:db8::1], result: match
bgpd[867]: [H5AW4-JFYQC] Route-map: RS-OUT, prefix: [2]:[0]:[48]:[26:28:b0:96:c0:ca]:[128]:[2001:db8::1], result: permit
bgpd[867]: [MT1SJ-WEJQ1] Best match route-map: RS-OUT, sequence: 10 for pfx: [2]:[0]:[48]:[26:28:b0:96:c0:ca]:[128]:[fe80::2428:b0ff:fe96:c0ca], result: match
bgpd[867]: [H5AW4-JFYQC] Route-map: RS-OUT, prefix: [2]:[0]:[48]:[26:28:b0:96:c0:ca]:[128]:[fe80::2428:b0ff:fe96:c0ca], result: permit

@taspelund
Copy link

Can you try disabling route-map optimization for that route-map and seeing if that helps? no route-map RS-OUT optimization

Also, can you provide the full output of show version ?

@taspelund
Copy link

For context, the symptoms here look like something I fixed here: #12839

I want to confirm that your issue is specific to the route-map optimization + whether the version you're running has the fix.

@DaniilHarun
Copy link
Author

DaniilHarun commented Jun 13, 2023

Show version:
FRRouting 8.5.1 (debian) on Linux(6.1.33-amd64).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
configured with:
'--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-option-checking' '--disable-silent-rules' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--disable-maintainer-mode' '--localstatedir=/var/run/frr' '--sbindir=/usr/lib/frr' '--sysconfdir=/etc/frr' '--with-vtysh-pager=/usr/bin/pager' '--libdir=/usr/lib/x86_64-linux-gnu/frr' '--with-moduledir=/usr/lib/x86_64-linux-gnu/frr/modules' '--disable-dependency-tracking' '--enable-rpki' '--disable-scripting' '--enable-pim6d' '--with-libpam' '--enable-doc' '--enable-doc-html' '--enable-snmp' '--enable-fpm' '--disable-protobuf' '--disable-zeromq' '--enable-ospfapi' '--enable-bgp-vnc' '--enable-multipath=256' '--enable-user=frr' '--enable-group=frr' '--enable-vty-group=frrvty' '--enable-configfile-mask=0640' '--enable-logfile-mask=0640' 'build_alias=x86_64-linux-gnu' 'PYTHON=python3'

@DaniilHarun
Copy link
Author

Disabling route map optimization solves the issue.

@taspelund
Copy link

Sorry for the slow reply - life got very busy very quickly.

This looks like the same issue that I resolved in the aforementioned PR, and the fix is not in your build. However, the fix was backported to the stable/frr-8.5 branch after this conversation: #14094

I expect the fix will be included in 8.5.3 or in the next major release (9.0 iirc). Until then, disabling route-map optimization on route-maps used for the EVPN address-family should suffice as a workaround.

@DaniilHarun
Copy link
Author

DaniilHarun commented Aug 10, 2023

Hm, in stable/frr-8.5.2, I had no problems with optimizations disabled. In stable/frr-9.0, the problem recurred, disabling optimization does not solve the problem.

no route-map RS-OUT optimization
!
route-map RS-OUT permit 10
exit
show bgp l2vpn evpn neighbors 10.32.1.1 advertised-routes 

Total number of prefixes 0
# show version 
FRRouting 9.0 (debian) on Linux(6.1.0-10-amd64).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
configured with:
    '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-option-checking' '--disable-silent-rules' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--disable-maintainer-mode' '--localstatedir=/var/run/frr' '--sbindir=/usr/lib/frr' '--sysconfdir=/etc/frr' '--with-vtysh-pager=/usr/bin/pager' '--libdir=/usr/lib/x86_64-linux-gnu/frr' '--with-moduledir=/usr/lib/x86_64-linux-gnu/frr/modules' '--disable-dependency-tracking' '--enable-rpki' '--disable-scripting' '--enable-pim6d' '--with-libpam' '--enable-doc' '--enable-doc-html' '--enable-snmp' '--enable-fpm' '--disable-protobuf' '--disable-zeromq' '--enable-ospfapi' '--enable-bgp-vnc' '--enable-multipath=256' '--enable-user=frr' '--enable-group=frr' '--enable-vty-group=frrvty' '--enable-configfile-mask=0640' '--enable-logfile-mask=0640' 'build_alias=x86_64-linux-gnu' 'PYTHON=python3```

@aderumier
Copy link

aderumier commented Dec 2, 2023

Hi,
I have debug some similar bug here
#14419

but it's look like disabling optimization not working anymore (or do nothing) since 7603eca (introduce between 8.5.2 && 8.5.3)

lguohan pushed a commit to sonic-net/sonic-buildimage that referenced this issue Apr 23, 2024
Backport based on comment #18669 (comment)

Why I did it
Fix the below FRR issues
FRRouting/frr#14419
FRRouting/frr#13792
@ton31337 ton31337 self-assigned this Jul 3, 2024
@ton31337
Copy link
Member

ton31337 commented Jul 4, 2024

This is already fixed, closing.

@ton31337 ton31337 closed this as completed Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage Needs further investigation
Projects
None yet
Development

No branches or pull requests

4 participants