Page MenuHomeVyOS Platform

1.2-rc1 frr table default route bug
Closed, ResolvedPublicBUG

Description

When the default route is configured in the table, this route will be leaked to other tables.

vyos@SFOS-1# run show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,

O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR,
> - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 10.100.250.1, eth2.250, 00:12:12

                  via 10.100.250.1, eth2.250, 00:12:12
*                 via 10.100.250.2, eth2.250, 00:12:12

C>* 10.100.250.0/24 is directly connected, eth2.250, 00:12:16
C>* 103.84.136.25/32 is directly connected, lo, 00:12:18
C>* 192.168.122.0/24 is directly connected, eth0, 00:12:16
S>* 205.1.1.1/32 [1/0] via 10.100.250.1, eth2.250, 00:01:49
[edit]
vyos@SFOS-1# show protocols static
route 0.0.0.0/0 {

next-hop 10.100.250.2 {
}

}
route 205.1.1.1/32 {

next-hop 10.100.250.1 {
}

}
table 197 {

route 0.0.0.0/1 {
    next-hop 10.100.250.1 {
    }
}
route 128.0.0.0/1 {
    next-hop 10.100.250.1 {
    }
}

}
table 198 {

route 0.0.0.0/0 {
    next-hop 10.100.250.1 {
    }
}

}
table 199 {

route 0.0.0.0/0 {
    next-hop 10.100.250.1 {
    }
}

}
[edit]
vyos@SFOS-1# sudo ip route list table 198
default proto static metric 20

nexthop via 10.100.250.1 dev eth2.250 weight 1 
nexthop via 10.100.250.2 dev eth2.250 weight 1

[edit]
vyos@SFOS-1# sudo ip route list table 254
default proto static metric 20

nexthop via 10.100.250.1 dev eth2.250 weight 1 
nexthop via 10.100.250.2 dev eth2.250 weight 1

10.100.250.0/24 dev eth2.250 proto kernel scope link src 10.100.250.254
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.252
205.1.1.1 via 10.100.250.1 dev eth2.250 proto static metric 20
[edit]
vyos@SFOS-1# run show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,

O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR,
> - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 10.100.250.1, eth2.250, 00:12:45

                  via 10.100.250.1, eth2.250, 00:12:45
*                 via 10.100.250.2, eth2.250, 00:12:45

C>* 10.100.250.0/24 is directly connected, eth2.250, 00:12:49
C>* 103.84.136.25/32 is directly connected, lo, 00:12:51
C>* 192.168.122.0/24 is directly connected, eth0, 00:12:49
S>* 205.1.1.1/32 [1/0] via 10.100.250.1, eth2.250, 00:02:22
[edit]
vyos@SFOS-1# run show ip route table 198
Codes: K - kernel route, C - connected, S - static, R - RIP,

O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR,
> - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 10.100.250.1, eth2.250, 00:02:28

  • via 10.100.250.2, eth2.250, 00:02:28

[edit]
vyos@SFOS-1# run show ip route table 199
Codes: K - kernel route, C - connected, S - static, R - RIP,

O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR,
> - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 10.100.250.1, eth2.250, 00:02:30

                  via 10.100.250.1, eth2.250, 00:02:30
*                 via 10.100.250.2, eth2.250, 00:02:30

[edit]
vyos@SFOS-1# run show ip route table 197
Codes: K - kernel route, C - connected, S - static, R - RIP,

O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR,
> - selected route, * - FIB route

S>* 0.0.0.0/1 [1/0] via 10.100.250.1, eth2.250, 00:02:32
S>* 128.0.0.0/1 [1/0] via 10.100.250.1, eth2.250, 00:02:32
[edit]
vyos@SFOS-1#

Details

Version
VyOS 1.2.0-rc1

Event Timeline

This bug is in effect also without using dynamic routing.

I tested deleting my OSPF and just have this config:

set protocols static route 0.0.0.0/0 next-hop 172.18.161.42
set protocols static route 0.0.0.0/0 next-hop 172.18.254.77 distance '20'
set protocols static table 1 route 0.0.0.0/0 next-hop 172.18.161.60
set protocols static table 2 route 0.0.0.0/0 next-hop 172.18.161.68

And I get this:

arne@o6-ma-hub:~$ sh ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR,
       > - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 172.18.161.42, eth0.1737, 00:00:52
  *                 via 172.18.161.60, tun0, 00:00:52
  *                 via 172.18.161.68, tun1, 00:00:52
S   0.0.0.0/0 [20/0] via 172.18.254.77, eth2.183, 00:16:51
C>* 172.18.161.40/29 is directly connected, eth0.1737, 00:00:52
C>* 172.18.161.48/29 is directly connected, eth1.1738, 00:00:52
C>* 172.18.161.56/29 is directly connected, tun0, 00:16:53
C>* 172.18.161.64/29 is directly connected, tun1, 00:16:53
C>* 172.18.254.76/31 is directly connected, eth2.183, 00:16:54
C>* 172.18.255.76/32 is directly connected, lo, 00:16:55
C>* 172.30.201.130/31 is directly connected, eth0.1737, 00:16:54
C>* 172.30.201.132/31 is directly connected, eth1.1738, 00:16:53
arne@o6-ma-hub:~$ sh ip route table 1
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR,
       > - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 172.18.161.60, tun0, 00:17:45
arne@o6-ma-hub:~$ sh ip route table 2
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR,
       > - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 172.18.161.60, tun0, 00:18:13
  *                 via 172.18.161.68, tun1, 00:18:13
dmbaturin triaged this task as High priority.
dmbaturin edited projects, added VyOS 1.2 Crux (VyOS 1.2.0-rc2); removed VyOS 1.2 Crux.

Looks like this is working now on my two routers using this feature - good work!

Working with only static and OSPF + static route.