<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="Gentium">Hello Robért,</font></p>
<p><font face="Gentium">BIRD basically doesn't set IP addresses to
interfaces. This is a design choice of the current team. Please
use external tooling for this.<br>
</font></p>
<p><font face="Gentium">To elaborate a bit more, because we get
these kinds of questions repeatedly → Implementing of this
feature would open a huge can of worms, or a very large
rabbithole (choose your best option) of features:</font></p>
<ul>
<li><font face="Gentium">setting tunnel endpoint IPs</font></li>
<li><font face="Gentium">implementing DHCP client</font></li>
<li><font face="Gentium">implementing VRRP</font></li>
<li><font face="Gentium">creating and destroying tunnel interfaces</font></li>
<li><font face="Gentium">setting interfaces up and down</font></li>
<li><font face="Gentium">setting up wireguard links<br>
</font></li>
<li><font face="Gentium">…</font></li>
</ul>
<p>Yes, we could become another NetworkManager … and to be honest, I
sometimes wish to go this way when seeing how badly NM is handling
some specific corner cases. Anyway, it's a lot of work. A LOT of
work. An absurdly huge pile of hard work to get there.<br>
</p>
<p>Of course, if there is demand for this, and we are closely
monitoring what the users think and wish, we may rethink this
design choice.<br>
</p>
<p><font face="Gentium">Thank you for your understanding<br>
Maria<br>
</font></p>
<div class="moz-cite-prefix">On 2023-10-24 17:29, Robért Guhr wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAE9ZLtFv6iViENe_uG5tBYMxGbV19Bu5SNAeTmm4YjYGMK5Jzw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Hi,
<div><br>
</div>
<div>is it possible to set an ipv4 address (e.g. "<a
href="http://10.186.100.11/32" target="_blank"
moz-do-not-send="true">10.186.100.11/32</a>" ) via bird on a
dummy interface called "anycast"?</div>
<div>I mean via the bird config not via bgp/ospf pushes.</div>
<div><br>
</div>
<div>Background:<br>
</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div>I have setup four DNS server in two sites. All these DNS
servers announces <a href="http://10.186.100.11/32"
target="_blank" moz-do-not-send="true">10.186.100.11/32</a>
(and <a href="http://10.186.100.12/32" target="_blank"
moz-do-not-send="true">10.186.100.12/32</a>) up to the
routers to create an anycast environment.</div>
<div>Currently <a href="http://10.186.100.11/32"
target="_blank" moz-do-not-send="true">10.186.100.11/32</a> (and <a
href="http://10.186.100.12/32" target="_blank"
moz-do-not-send="true">10.186.100.12/32</a>) are set fixed
on the dummy interface. Bird just imports these IP
addresses.</div>
<div><br>
</div>
<div>We would like to use <a href="http://10.186.100.11/32"
target="_blank" moz-do-not-send="true">10.186.100.11/32</a>
and <a href="http://10.186.100.12/32" target="_blank"
moz-do-not-send="true">10.186.100.12/32</a> as resolver in
/etc/resolv.conf</div>
<div>But if we stop the local DNS server then the dns
resolution is no longer possible because the addresses are
hardcoded on the local interface and the other three dns
server will not be used.</div>
</blockquote>
<div><br>
</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div>Idee was to set the ip addreses via bird so that when we
stop Bird and the local DNS server, we automatically forward
the DNS requests to the other three servers.</div>
</blockquote>
<div><br>
I was hoping the direct protocol converts a route also to an
ip address but this seems not to be the case.<br>
With the kernel protocol I can export the route to the kernel
routing table but that is not was I was want.<br>
<br>
pns-b2-ns02 ~ # cat /etc/bird.conf<br>
# Ansible managed<br>
<br>
router id 10.186.244.12;<br>
<br>
protocol device {<br>
scan time 10;<br>
}<br>
<br>
protocol direct {<br>
ipv4 {<br>
import none;<br>
export all;<br>
};<br>
interface "anycast";<br>
}<br>
<br>
protocol static {<br>
ipv4 {<br>
import all;<br>
export all;<br>
};<br>
route <a href="http://10.186.100.11/32"
moz-do-not-send="true">10.186.100.11/32</a> via "anycast";<br>
}<br>
<br>
protocol kernel {<br>
ipv4 {<br>
import none;<br>
export all;<br>
};<br>
}<br>
<br>
<br>
<br>
<br>
<br>
pns-b2-ns02 ~ # birdc show route; echo; ip a show dev anycast;
echo; ip r | grep 10.186.100<br>
<br>
BIRD 2.13.1 ready.<br>
Table master4:<br>
<a href="http://10.186.100.11/32" moz-do-not-send="true">10.186.100.11/32</a>
unicast [static1 17:22:18.282] * (200)<br>
dev anycast<br>
<br>
4: anycast: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UNKNOWN group default qlen 1000<br>
link/ether 8e:b5:2b:bf:0d:5e brd ff:ff:ff:ff:ff:ff<br>
inet <a href="http://10.186.100.9/32"
moz-do-not-send="true">10.186.100.9/32</a> scope global
noprefixroute anycast # <----- here should also be
the address <a href="http://10.186.100.11/32"
moz-do-not-send="true">10.186.100.11/32</a><br>
valid_lft forever preferred_lft forever<br>
<br>
10.186.100.11 dev anycast proto bird scope link metric 32 <br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Regards,<br>
Robért</div>
</div>
</blockquote>
<pre class="moz-signature" cols="72">--
Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.</pre>
</body>
</html>