Re: Multiple Fibs and INET6
- Reply: Santiago Martinez : "Re: Multiple Fibs and INET6"
- In reply to: Santiago Martinez : "Multiple Fibs and INET6"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 18 Jul 2024 16:09:51 UTC
> On Jul 13, 2024, at 1:06 AM, Santiago Martinez <sm@codenetworks.net> wrote: > > Hi Everyone. > > While adding -F ( fib as used in netstat ) to ping and ping6 I have found something that from my understanding is not correct. > Please can you advise? > I have the following setup : > > -- two fibs (0 and 1) > -- two loop-backs (lo0 and lo1). > -- Lo1 has been assigned to fib1 > -- net.add_addr_allfibs = 0 > My interface output looks like this: > > > ifconfig lo0 | grep inet6 > inet6 ::1 prefixlen 128 > inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 > > ifconfig lo1 | grep inet6 > inet6 fe80::1%lo1 prefixlen 64 scopeid 0x3 > > > If I do a netstat -rn -6 -F0 I get the following which is was i expected. > > Internet6: > Destination Gateway Flags Netif Expire > ::/96 link#2 URS lo0 > ::1 link#2 UHS lo0 > ::ffff:0.0.0.0/96 link#2 URS lo0 > fe80::%lo0/10 link#2 URS lo0 > fe80::%lo0/64 link#2 U lo0 > fe80::1%lo0 link#2 UHS lo0 > ff02::/16 link#2 URS lo0 > > > Now, netstat -rn -6 -F1 shows "fe80::1%lo0" which should not be there and "fe80::1%lo1" is missing which should be there. > > Internet6: > Destination Gateway Flags Netif Expire > fe80::%lo1/64 link#3 U lo1 > fe80::1%lo0 link#2 UHS lo0 > That seems wrong from my first glance. IIRC, there's HACK ( I'd prefer this ) for loopback route. For example ``` # sysctl net.fibs=3 net.fibs: 2 -> 3 # ifconfig epair create # epair0a # ifconfig epair0a fib 2 # ifconfig epair0a inet6 -ifdisabled up # netstat -6rnF 2 Routing tables (fib: 2) Internet6: Destination Gateway Flags Netif Expire fe80::%epair0a/64 link#5 U epair0a fe80::3b:b3ff:fe8f:9a0a%lo0 link#1 UHS lo0 ``` The loopback route always refer the first loop interface, aka lo0. > > > What output I was expecting was: > Internet6: > Destination Gateway Flags Netif Expire > fe80::%lo1/64 link#3 U lo1 > fe80::1%lo1 link#3 UHS lo1 > > > > This makes the ping -6 -F0 fe80::1%lo0 to work but ping -6 -F1 fe80::1%l01 to fail which I wanted to use as test case. > That is interesting. I can ping without failure. ``` # setfib 1 ping6 -c3 fe80::1%lo1 PING(56=40+8+8 bytes) fe80::1%lo1 --> fe80::1%lo1 16 bytes from fe80::1%lo1, icmp_seq=0 hlim=64 time=0.050 ms 16 bytes from fe80::1%lo1, icmp_seq=1 hlim=64 time=0.067 ms 16 bytes from fe80::1%lo1, icmp_seq=2 hlim=64 time=0.096 ms --- fe80::1%lo1 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.050/0.071/0.096/0.019 ms ``` Best regards, Zhenlei > Thanks in advance. > > Santiago > >