IPv6 NDP: source address selection in NS

Hi,

I also have a problem with the source IP selection in the neighbour solicitation packet. Here is my scenario:

FreeBSD Node1
EL0
2FFE:300:0:0:0:0:0:113/64
2FFE:900:0:0:0:0:0:113/64

FreeBSD Node2
EL0
2FFE:900:0:0:0:0:0:111/64
2FFE:400:0:0:0:0:0:115/64

Then I do ping from Node2 to Node1: ping 2FFE:300:0:0:0:0:0:113. Obviously ping could not get out because of no route to 2FFE:300:0:0/64 in Node2 and no route to host returned.

But if I do the following first on Node1 before pinging from Node2: ping 2FFE:900:0:0:0:0:0:111 src 2FFE:300:0:0:0:0:0:113 with Wireshark, I found the source IP address in neighbour solicitation derived from Node1 is 2FFE:300:0:0:0:0:0:113, then after receiving this, a link layer route item will be installed in Node2:
Code:
ndp,-a
Neighbor Linklayer Address Netif
2ffe:300::113 0:50:56:9d:4f:94 el0

netstat -nr
Internet6:
Destination Gateway
2ffe:300::113 00:50:56:9d:4f:94
Now, ping again from Node2 to Node1: ping 2FFE:300:0:0:0:0:0:113, ping works successfully.

I know little about OpenBSD, but in FreeBSD, link-layer route items are at the same radix tree as layer-3 route items, so with the above scenario, the route could be found even if there's still no layer-3 route to destination 2FFE:300:0:0:0:0/64.

Do you think this is reasonable or not?
 
Back
Top