ipv6 routing, problem with neighbour solicitation
Hello,
I have a problem with routing and ipv6.
Consider the following senario: i have three PCs setup in a chain (A - B -
C ). All PCs do only have one NIC.
A has Ipv6-Address 2001::1
B has Ipv6-Address 2001::2
C has Ipv6-Address 2001::3
The following routes exist on PC A:
2001::2 via eth0
2001::3 via gateway 2001::2
On PC B i have the this routes:
2001::1 via eth0
2001::3 via eth0
On PC C:
2001::2 via eth0
2001::1 via gateway 2001::2
PC A can talk to PC B and PC B can talk to PC C. No direct communikation
between PC A and PC C is possible (i am simulating wireless connections).
I can send a ping6 from A->B, B->A, B->C, C->B. My problem now is, that i
cannot send a ping6 from A->C. Forwarding has been enabled by doing "echo 1
> /proc/sys/net/ipv6/conf/all/forwarding". I think i have found out why this
is not possible. When PC B gehts the data
from PC A it has to look in is neighbour solicitaion table to get the
linklayeraddress from PC C. Now we have the case, that there is no entry for
PC C and so PC B is sendeing a ICMP6 host unreachable message back to A. This
is where the error occurs. In my opinion PC B first have to try to get the
linklayeraddress from PC C by sending a neighbour solicitation message but it
is no doing that it directly sends back the host unreachable message. When i
add PC A and PC B in the neighbour solicitation list on PC B by hand
everything works fine.
My question now is do i have forget to configure something? Do i have done
something wrong? Or can this be a bug in the kernel?
Kind regards
Volker
Reply to: