<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><font face="Gentium">Hello Daniel,</font></p>
    <p><font face="Gentium">this looks fishy. I tried a trivial config
        like this on my laptop as follows and it works. Could you please
        disclose the full table? There are some details in the recursive
        nexthop resolution algorithm (preventing infinite resolution
        loops) which may apply to your case. BTW, is there really no
        message in the log?</font></p>
    <p><font face="Gentium">The config:</font></p>
    <p><font face="monospace">protocol device {}<br>
        protocol kernel {<br>
          ipv6 { import all; export none; };<br>
          learn;<br>
        }<br>
        <br>
        protocol static {<br>
          ipv6;<br>
          route fdca:db8::/32 recursive ::;<br>
        }<br>
      </font><font face="Gentium"><br>
      </font></p>
    <p><font face="Gentium">The table:</font></p>
    <p><font face="monospace">Table master6:<br>
        ::/0                 unicast [kernel1 21:42:38.893] * (10)<br>
            via fe80::<a class="moz-txt-link-freetext" href="feed:dee4:fe00:23d3">feed:dee4:fe00:23d3</a> on wlo1<br>
            Type: inherit univ<br>
            Kernel.source: 9<br>
            Kernel.metric: 600<br>
        2a00:1028:dead:beef::/64 unicast [kernel1 21:42:38.893] * (10)<br>
            dev wlo1<br>
            Type: inherit univ<br>
            Kernel.source: 9<br>
            Kernel.metric: 600<br>
        fdca:db8::/32        unicast [static1 21:42:38.891] * (200)<br>
            via fe80::</font><font face="Gentium"><font face="monospace"><a class="moz-txt-link-freetext" href="feed:dee4:fe00:23d3">feed:dee4:fe00:23d3</a>
          on wlo1<br>
              Type: static univ</font><br>
        <br>
      </font></p>
    <p><font face="Gentium">Have a nice evening or any other part of the
        day!<br>
        Maria<br>
      </font></p>
    <p></p>
    <div class="moz-cite-prefix">On 6/27/23 18:03, Daniel Gröber wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20230627160353.hpwzmgmgavrdsves@House.clients.dxld.at">
      <pre class="moz-quote-pre" wrap="">Hi Alexander,

On Tue, Jun 27, 2023 at 04:48:46PM +0200, Alexander Zubkov wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Not sure, but I would guess it can be related to the local address. It
might try to pick the first interface with such network.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Could you try your setup with some route that has the nexthop from a
unique subnet configured on the interface? At least to check if it will
become reachable or not.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Ok, if I add a route like `2000::/64 dev enp1s0 via
fe80::fc00:3ff:fec7:cd05` to the kernel and recurse through that it does
work.

    protocol static static_export_kernel2 {
        ipv6;
        igp table master6;
        route 2001:db8::/64 recursive 2000::1234;
    }

    $ ip -6 route add 2000::/64 dev enp1s0 via fe80::fc00:3ff:fec7:cd05
    $ birdc show route protocol static_export_kernel2 all
    2001:db8::/64        unicast [static_export_kernel2 16:01:20.131] * (200)
            via fe80::fc00:3ff:fec7:cd05 on enp1s0
            Type: static univ

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Or it might be that routes imported from the kernel are marked as
recursive, so it does not resolve because Bird does not allow double
recursion.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
If I remove the 2000::/64 route the recursive route goes back to
unreachable. So something seems to be preventing recursion through the
default route specifically, but it evidently doesn't have anything to do
with the route coming from the kernel.

    $ ip -6 route del 2000::/64 dev enp1s0 via fe80::fc00:3ff:fec7:cd05
    $ birdc show route protocol static_export_kernel2 all
    2001:db8::/64        unreachable [static_export_kernel2 16:01:20.131] * (200)
            Type: static univ

Weird.

Thanks for your suggestions,
--Daniel

</pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.</pre>
  </body>
</html>