> On Jul 13, 2024, at 1:06 AM, Santiago Martinez <s...@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
> 
> 



Reply via email to