mirror_frr/tests
Louis Scalbert 31fc89b230 bgpd, tests: fix route leaking from the default l3vrf
Leaked route from the l3VRF are installed with the loopback as the
nexthop interface instead of the real interface.

> B>* 10.0.0.0/30 [20/0] is directly connected, lo (vrf default), weight 1, 00:21:01

Routing of packet from a L3VRF to the default L3VRF destined to a leak
prefix fails because of the default routing rules on Linux.

> 0:      from all lookup local
> 1000:   from all lookup [l3mdev-table]
> 32766:  from all lookup main
> 32767:  from all lookup default

When the packet is received in the loopback interface, the local rules
are checked without match, then the l3mdev-table says to route to the
loopback. A routing loop occurs (TTL is decreasing).

> 12:26:27.928748 ens37 In  IP (tos 0x0, ttl 64, id 26402, offset 0, flags [DF], proto ICMP (1), length 84)
>     10.0.0.2 > 10.0.1.2: ICMP echo request, id 47463, seq 1, length 64
> 12:26:27.928784 red   Out IP (tos 0x0, ttl 63, id 26402, offset 0, flags [DF], proto ICMP (1), length 84)
>     10.0.0.2 > 10.0.1.2: ICMP echo request, id 47463, seq 1, length 64
> 12:26:27.928797 ens38 Out IP (tos 0x0, ttl 63, id 26402, offset 0, flags [DF], proto ICMP (1), length 84)
>     10.0.0.2 > 10.0.1.2: ICMP echo request, id 47463, seq 1, length 64

Do not set the lo interface as a nexthop interface. Keep the real
interface where possible.

Fixes: db7cf73a33 ("bgpd: fix interface on leaks from redistribute connected")
Fixes: 067fbab4e4 ("bgpd: fix interface on leaks from network statement")
Fixes: 8a02d9fe1e ("bgpd: Set nh ifindex to VRF's interface, not the real")
Fixes: https://github.com/FRRouting/frr/issues/15909
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-05-20 14:12:28 +02:00
..
bgpd bgpd: add [no]neighbor capability fqdn command 2024-02-02 11:31:47 +01:00
helpers *: remove sys/stat.h from zebra.h 2024-01-09 12:39:23 -05:00
isisd lib: add support for "features" when loading YANG modules 2024-01-28 23:28:40 +02:00
lib tests: embed YANG in mgmtd unit-test bin 2024-05-17 00:54:20 -04:00
ospf6d ospf6d: Convert ospf6_lsa_unlock to a better api 2023-07-12 17:56:29 -04:00
ospfd *: remove sys/stat.h from zebra.h 2024-01-09 12:39:23 -05:00
topotests bgpd, tests: fix route leaking from the default l3vrf 2024-05-20 14:12:28 +02:00
zebra zebra, test: mark mpls label chunks as dynamic or static 2023-10-18 09:41:02 +02:00
.gitignore tests: Ignore test_darr for git 2023-07-08 22:41:34 +03:00
Makefile build: non-recursive tests 2018-09-08 21:26:54 +02:00
pytest.ini tests: Exclude topotests from consideration 2018-11-27 20:22:10 -05:00
runtests.py *: reformat python files 2020-10-07 17:22:26 -04:00
subdir.am build: break up tests/subdir.am 2021-11-11 14:40:03 +01:00