Re: Multiple Fibs and INET6
- Reply: Zhenlei Huang : "Re: Multiple Fibs and INET6"
- In reply to: Zhenlei Huang : "Re: Multiple Fibs and INET6"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 18 Jul 2024 16:11:53 UTC
Interesting, I'm running 14.1p2. how does your routing table looks for fib1 ? Santi On 7/18/24 18:09, Zhenlei Huang wrote: > > >> 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 >> >> > > >