<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hoi,<br>
    <br>
    <div class="moz-cite-prefix">On 3/27/24 10:08, Benoit Chesneau
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:ZC_-DF2Bh9JNLCDDWMpmMK_6oww1Qta60to0OZgq1DT6K0kl2Gyb0wptcu8oCiPlWT6WKeuSfMPq_q7IS3hU7gJes0t1-qJ4u7-5TLoVe2I=@enki-multimedia.eu">
      <pre>I was reading  the ospv3 spec and this link <a
      class="moz-txt-link-freetext"
      href="https://networklessons.com/ospf/ospfv3-for-ipv4"
      moz-do-not-send="true">https://networklessons.com/ospf/ospfv3-for-ipv4</a>-
 and  was wondering if such features is supported in bird 2. Can we 
announce loopbacks via OSPFv3 and remove the need to use OSPFv2 and ptp 
subnets ? 

I see it as a good opportunity to reduce the usage of the IPv4 addresses
 if we can just advertise loopbacks...</pre>
    </blockquote>
    I tried this today on two machines directly connected as vpp0-2:e1
    <-> vpp0-3:e0 (marked in <b><font color="#008000">green</font></b>)<br>
    <br>
    root@vpp0-2:~# ip -br a<br>
    lo               UNKNOWN        127.0.0.1/8 ::1/128 <br>
    loop0            UNKNOWN        192.168.10.2/32
    2001:678:d78:200::2/128 fe80::dcad:ff:fe00:0/64 <br>
    e0               UP             192.168.10.2/32
    2001:678:d78:200::2/128 fe80::5054:ff:fef0:1120/64 <br>
    <b><font color="#008000">e1               UP            
        192.168.10.2/32 2001:678:d78:200::2/128
        fe80::5054:ff:fef0:1121/64 </font></b><br>
    e2               DOWN           <br>
    e3               DOWN           <br>
    <br>
    root@vpp0-3:/etc/bird# ip -br a<br>
    lo               UNKNOWN        127.0.0.1/8 ::1/128 <br>
    loop0            UNKNOWN        192.168.10.3/32
    2001:678:d78:200::3/128 fe80::dcad:ff:fe00:0/64 <br>
    <b><font color="#008000">
        e0               UP             192.168.10.3/32
        2001:678:d78:200::3/128 fe80::5054:ff:fef0:1130/64 </font></b><br>
    e1               UP             192.168.10.3/32
    2001:678:d78:200::3/128 fe80::5054:ff:fef0:1131/64 <br>
    e2               DOWN           <br>
    e3               DOWN           <br>
    <br>
    <br>
    They both took the following OSPF configuration with Bird 2.14 --<br>
    <br>
    protocol ospf v3 ospf4 {<br>
      <b>ipv4</b> { export where (source = RTS_DEVICE || source =
    RTS_STATIC); import all; };<br>
      area 0 {<br>
        interface "loop0" { stub yes; };<br>
        interface "e0" { type pointopoint; cost 5; bfd off; };<br>
        interface "e1" { type pointopoint; cost 5; bfd off; };<br>
        interface "e2" { type pointopoint; cost 5; bfd off; };<br>
        interface "e3" { type pointopoint; cost 5; bfd off; };<br>
      };<br>
    }<br>
    <br>
    OSPFv3 adjacency did establish, but no routes were exchanged (also
    none with filter 'export all; import all;') --<br>
    <br>
    root@vpp0-3:/etc/bird# birdc show os ne<br>
    BIRD 2.14 ready.<br>
    ospf4:<br>
    Router ID       Pri          State      DTime   Interface  Router IP<br>
    192.168.10.2      1     Full/PtP        30.036  e0        
    fe80::5054:ff:fef0:1121<br>
    <br>
    root@vpp0-3:/etc/bird# birdc show route protocol ospf4<br>
    BIRD 2.14 ready.<br>
    Table master4:<br>
    192.168.10.3/32      unicast [ospf4 15:29:07.337] I (150/0)
    [192.168.10.3]<br>
            dev loop0<br>
            dev e0<br>
            dev e1<br>
    <br>
    <br>
    It would be really useful to let OSPF v3 learn and distribute IPv4
    routes with link local nexthops, like so:<br>
    <code><br>
      pim@vpp0-2:~$ sudo ip ro add 192.168.10.3/32 via inet6 <b><font
          color="#008000">fe80::5054:ff:fef0:1130</font></b> dev e1<br>
      pim@vpp0-3:/etc/bird$ sudo ip ro add 192.168.10.2/32 via inet6 </code><font
      face="monospace"><b><font color="#008000">fe80::5054:ff:fef0:1121</font></b><code>
        dev e0<br>
        pim@vpp0-3:/etc/bird$ ping </code></font><code>192.168.10.2</code><br>
    <font face="monospace"><code>PING 192.168.10.2 (192.168.10.2) 56(84)
        bytes of data.<br>
        64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=3.90 ms<br>
        64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=3.61 ms<br>
         </code></font><br>
    <br>
    However, I think this is not quite working. I've attached (a tiny
    tar of) config and logs from `vpp0-3` in case somebody wants to
    double check.<br>
    Can somebody confirm that the paragraph Benoit mentioned works for
    them?<br>
    <br>
    <blockquote>
      <p>OSPFv2 needs one IPv4 channel. OSPFv3 needs either one IPv6
        channel, or one
        IPv4 channel (<a href="http://www.rfc-editor.org/info/rfc5838">RFC
          5838</a>). Therefore, it is possible to use OSPFv3 for both
        IPv4 and Pv6 routing, but it is necessary to have two protocol
        instances anyway.
        If no channel is configured, appropriate channel is defined with
        default
        parameters.
      </p>
    </blockquote>
    <br>
    <br>
    groet,<br>
    Pim<br>
    --
    <pre class="moz-signature" cols="72">Pim van Pelt
PBVP1-RIPE - <a class="moz-txt-link-freetext" href="https://ipng.ch/">https://ipng.ch/</a></pre>
  </body>
</html>