Hi David,

No problem at all!  To be honest, I’d completely forgotten about this.

I was only setting up a test network for learning, and if what you say about 
interfaces bouncing is true then you are right not to mess with the systemd 
scripts.  If I try this again in future, I’ll go for loopback interfaces as you 
suggest.

Keep up the good work!

Kind regards,

Nick

> On 6 May 2024, at 15:16, David Lamparter <equinox-deb...@diac24.net> wrote:
> 
> Hi Nick,
> 
> 
> (first of all, sorry, I kinda blanked out this bug report for some time,
> see below for why)
> 
> On Mon, Mar 07, 2022 at 06:16:03PM +0000, Nick wrote:
> [...]
>>   Because of the above, I checked out 
>>   /etc/systemd/system/multi-user.target.wants/frr.service and found
>>   that it is set to start with 'After=network-pre.target'.  I replaced
>>   Wants= and After= with 'network-online.target' and removed Before=
>>   entirely.
>> 
>>   * What was the outcome of this action?
>> 
>>   Having modified the systemd start script, routes are always inserted
>>   on boot!
> [...]
> 
> The problem with this is that while this fixes your specific scenario,
> it also breaks other users' setups since network-online.target itself is
> on occasion made to depend on frr.service, which would now create a
> loop.
> 
> Further, the issue you're seeing is specific to your configuration with
> these two route-maps:
> 
> [...]
>> route-map RM_SET_SRC permit 10
>> set src 25.0.1.1
>> !
>> route-map RM_SET_SRC6 permit 10
>> set src <censored>:f0a1::1
> [...]
> 
> You're correct to observe that these require the interface that owns
> these IP addresses to be up and configured before they can take effect,
> and the kernel will reject them otherwise.  zebra's behavior on this
> is... call it "suboptimal" in not retrying the install;  however the
> behavior of FRR is designed against a limitation of "normal" policy
> setups.  route-maps, especially in zebra, are essentially code, and
> there are *lots* of possibilities to create edge cases or non-working
> setups.
> 
> In your specific setup, the "FRR recommended practice" would be: add
> both of these IP addresses (25.0.1.1 and XYZ:f0a1::1) as /32 / /128 to
> your loopback interface.  This will ensure they are always available.
> (This is generally recommended for a router's primary addresses.)
> 
> Alternatively, your fix in editing the dependency is also viable,
> assuming you don't need to deal with cases where the interface or
> addresses go away and come back.  I can't incorporate it into the
> package though because it is specific to your situation.
> 
> 
> Sorry, I'm not sure there is anything else I can do here,
> 
> 
> equi (David)

Reply via email to