tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Neighbor Discovery problem tracked down on FreeBSD

Hi folks,

Yesterday i was trying my setup i wrote the last mail about using a
combination of NetBSD and Linux and both worked, because somehow Linux
does not care so much about Neighbor Solicitation and he just takes the
MACaddr from what he can get. So it works in both ways, no matter if
you have NetBSD box as a source and Linux as a destination or vice

Now i tried the same setup with FreeBSD 8.3 RELEASE and looked up what
sysctl options it does have and it has about exactly one more compared
to NetBSD in his net.inet6.icmp6 series and that would be
nd6_onlink_ns_rfc4861. On NetBSD 6.0 this option seems not to exist.

Per default FreeBSD behaves like NetBSD and does put out these
nd6_ns_input: NS packet from non-neighbor error messages on the dmesg
(console) output. But after enabeling this option with rfc4861 to 1 it
does work.

I also discovered the ndp command, of which i did not know that it
existed, i just looked it up on route show -inet6 before, but on
FreeBSD i did not find it, so it came to my mind that it could be some
other command like on Linux you have it under ip -6 neigh list, so i
looked up apropos neighbor and i found that one. Then i found it on
NetBSD too.

The second idea that i got was to try my setup using a tunnel device
and giving the IPv6/128 address to the tunnel device and then route the
other things through LinkLocal. That should avoid the ND problem,
because the computer/operating system itself knows where the tunnel
device is and then all the rest would communicate using LL ipv6addrs.

Now I have not tried it yet so i can not say if it would work, but
there are two scenarios: 1.) it will work 2.) it will not work because
NetBSD just takes that same IP w/o caring on what NIC it is. (the most
likely scenario)

btw. OpenBSD has the same problem, as to my knowledge they also do not
have this rfc4861 option and OpenBSD behaves the same way NetBSD does
per default. So FreeBSD has a nice fix, do not know about DragonFlyBSD
but NetBSD and OpenBSD are clearly lacking some functionality here.

Home | Main Index | Thread Index | Old Index