On Sat, 10 Feb 2018 19:34:08 +0100 Clemens Schrimpe <clemens.schrimpe@gmail.com> wrote:
Yes, it's a cludge, I agree - but I really have to jump through many (fiery) hoops to prevent my Linux interfaces loose their IPv6 addresses each time the link-state bounces (which Bird also already notices, btw.)
Are you aware of the net.ipv6.conf.${IF}.keep_addr_on_down sysctl knob?
What I mean is a socket-based interface to $script with a well-defined, yet simple protocol (ASCII/UTF8-based?) with the few primitives needed by Bird, like query/list/learn, set, add, delete, flush. Bird could connect to an existing daemon via Unix-Domain- or IP-Sockets or (cooler) spawn a sub-process with a given script/program and interact with it via STDIN and STDOUT (STDERR → logging) - similar to how "FCGI" used to work. This could become the Swiss-Army-Knife to interact with Bird in oh-so-many ways, among which to implement my initial idea with ipsets.
Interesting idea! I'd prefer an external daemon over a child spawned by bird, though; in particular because it makes privilege separation and supervision much easier. Regards, Luis