[FROG] difference quagga/frr multiple IPv6 default routes

Frank Kardel kardel at netbsd.org
Fri Oct 16 10:30:01 UTC 2020


I am just moving from Quagga 1.2.4 to FRR 7.4.

I noticed that FRR differs in behavior in case of multiple IPv6 default 
routes

with the interface line protocol being down.

The quagga static route configuration is:

   ipv6 route ::/0 carp3 100
   ipv6 route ::/0 <IPv6-PREFIX>::1 carp3 100
   ipv6 route ::/0 <IPv6-PREFIX>:2::192 200

And with carp3 line protocol being down following route is selected and 
installed:

S>* ::/0 [200/0] via <IPv6-PREFIX>:2::192, wm0          <=== quagga uses 
alternate route
S   ::/0 [100/0] is directly connected, carp3 inactive
                  via <IPv6-PREFIX>::1, carp3 inactive   <=== quagga 
detects inactive

This is what I am expecting from the aboe configuration.

Now FRR looks different in this regard.

The FRR staticd configuration is:

   ip route 0.0.0.0/0 carp3 100
   ip route 0.0.0.0/0 <IPv4-NET>.65 100
   ip route 0.0.0.0/0 10.0.2.192 200
   ipv6 route ::/0 carp3 100
   ipv6 route ::/0 <IPv6-PREFIX>::1 carp3 100
   ipv6 route ::/0 <IPv6-PREFIX>:2::192 200

And FRR slect following route:

S   ::/0 [200/0] via <IPv6-PREFIX>:2::192, wm0, weight 1, 00:01:01    
<== frr does not use alternate route
S>* ::/0 [100/0] is directly connected, carp3 inactive, weight 1, 
00:01:01<=== here frr knows thet carp3 is inactive
   *              via <IPv6-PREFIX>::1, carp3, weight 1, 00:01:01      
<=== frr does not document/notice line protocol down.
=== also a route to <IPv6-PREFIX>::1 is installed
=== via the wm0 interface, not carp3

FRR on IPv4 the mechanism does seem to work like in quagga:
S   0.0.0.0/0 [100/0] is directly connected, carp3 inactive, weight 1, 
00:00:48
                       via <IPv4-NET>.65, carp3 inactive, weight 1, 
00:00:48      <== inactive is noticed here
S>* 0.0.0.0/0 [200/0] via 10.0.2.192, wm0, weight 1, 
00:23:23                    <== alternate route is selected

This violates for me the principle of least astonishment.

Multiple variants of the statics route configuration did not cause

FRR to select the route with distance 200.

Is this a bug or a feature? If it is a feature how would I have

to configure staticd then?

Best regards,

   Frank Kardel




More information about the frog mailing list