On Saturday 23 June 2007 14:53:26 Jeroen Massar wrote:
> Volker Böhme wrote:
> > On Friday 22 June 2007 15:47:17 Jeroen Massar wrote:
>
> [..]
>
> > ip -6 route show
> > 2001:db80::11 via 2001:db80::12 dev wldev  metric 1024  expires -240sec
> > mtu 1472 advmss 1412 hoplimit 4294967295
> > 2001:db80::/32 dev wldev  metric 256  expires -440sec mtu 1472 advmss
> > 1412 hoplimit 4294967295
>
> 2001:db80::/32? I think you should be using 2001:db8::/32 there.
> Also, 2001:db8::/32 is the FULL prefix. On a link your should only be
> using a single /64 per link.

Oh, didn't realised that i was using 2001:db80:: instead of 2001:db8::/32. 
Don't know where the 0 came frome. Sorry for that. I have just tried it again 
with 2001:db80 but this does not change anything in my problem.

> Might I actually suggest that before continuing to play with this that
> you pick up a good book about IPv6? As you clearly miss some of the
> fundamentals of why this might break and how should work and moreover:
> the why behind it.
>
> Deploying IPv6 (http://www.deployingipv6.net/)
> Which should have been here:
> http://books.google.com/books?id=Q4yGAAAACAAJ&dq=Deploying+IPv6
>
> or "Ipv6 Network Administration", see:
> http://books.google.com/books?id=UFxm48LOyugC
>
> or "IPv6 Essentials":
> http://books.google.com/books?id=925YA6QQdu0C&hl=en
>
> or most likely very appropriate for this: "Running IPv6"
> http://books.google.com/books?id=H5-yAQAACAAJ&dq=running+ipv6
>
> or "IPv6 in Practice" which might also be appropriate:
> http://books.google.com/books?id=KKKBAAAACAAJ&dq=ipv6+in+practice
>
> Actually, I can recommend all of the books, they all have their niche.
> The IPv6 Essentials one is really good if you take a look on IPv6 from a
> more non-technical perspective but do want to get to know all the techy
> details as they are really well explained in there. The Running IPv6 one
> is very technical and explains really well on how to configure various
> operating systems and also handles routing etc. "IPv6 Practice" is the
> newest one and also covers a great deal of information.

Thanks for your advice, i allready ordered some of these books, but     
unfortunately it will take some time till they get here.

> [..]
>
> > ip -6 nei show
> > 2001:db80::12 dev wldev lladdr 137.226.18.145 router STALE
>
> Ehmm, that really is not good. a lldaddr should be in fe80::/10 or
> actually more specifically in fe80::/64. What kind of interface is
> 'wldev' and on what kind of hardware?
>

I am working on different testbeds. The one i used was an xen maschine, where 
the ipv6 data is send over on ipv4 gre tunnel. The interface on which the gre 
tunnel is created has an ipv4 address. That is why the linklayeraddress for 
the wldev device is an ipv4 address. I also tried everything on "real" 
hardware (without tunneling ipv6 over ipv4) but there it does not work too.
On the real hardware i get

ip -6 nei show
2001:db8::6 dev ath0 lladdr 00:0b:6b:4e:b9:49 router STALE

>
> > ping6 from A to C -> Destination unreachable: Address unreachable
> > ping6 from C to A -> Destination unreachable: Address unreachable
>
> But the big question is WHAT is sending the "Address Unreachable" ?

B is senden the Destination unreachable.
Here the output from tcpdump:
tcpdump -i wldev -vv ip6
tcpdump: WARNING: arptype 778 not supported by libpcap - falling back to 
cooked socket
tcpdump: listening on wldev, link-type LINUX_SLL (Linux cooked), capture size 
96 bytes
14:04:56.734426 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 41
14:04:57.734305 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 42
14:04:57.754238 IP6 (hlim 64, next-header: ICMPv6 (58), length: 112) 
2001:db8::12 > 2001:db8::11: ICMP6, destination unreachable, length 112[|
icmp6]
14:04:57.754297 IP6 (hlim 64, next-header: ICMPv6 (58), length: 112) 
2001:db8::12 > 2001:db8::11: ICMP6, destination unreachable, length 112[|
icmp6]
14:04:57.754374 IP6 (hlim 64, next-header: ICMPv6 (58), length: 112) 
2001:db8::12 > 2001:db8::11: ICMP6, destination unreachable, length 112[|
icmp6]
14:04:58.734283 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 43
14:04:59.734296 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 44
14:05:00.734268 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 45
14:05:01.734294 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 46
14:05:01.754231 IP6 (hlim 255, next-header: ICMPv6 (58), length: 32) 
2001:db8::12 > ff02::1:ff00:11: [icmp6 sum ok] ICMP6, neighbor solicitation, 
length 32, who has 2001:db8::11
          source link-address option (1), length 8 (1): 89:e2:12:91:00:00
            0x0000:  89e2 1291 0000
14:05:01.754720 IP6 (hlim 255, next-header: ICMPv6 (58), length: 32) 
2001:db8::11 > 2001:db8::12: [icmp6 sum ok] ICMP6, neighbor advertisement, 
length 32, tgt is 2001:db8::11, Flags [solicited, override]
          destination link-address option (2), length 8 (1): 89:e2:12:93:00:00
            0x0000:  89e2 1293 0000
14:05:01.754769 IP6 (hlim 64, next-header: ICMPv6 (58), length: 112) 
2001:db8::12 > 2001:db8::11: ICMP6, destination unreachable, length 112[|
icmp6]
14:05:01.754807 IP6 (hlim 64, next-header: ICMPv6 (58), length: 112) 
2001:db8::12 > 2001:db8::11: ICMP6, destination unreachable, length 112[|
icmp6]
14:05:01.754867 IP6 (hlim 64, next-header: ICMPv6 (58), length: 112) 
2001:db8::12 > 2001:db8::11: ICMP6, destination unreachable, length 112[|
icmp6]
14:05:02.734275 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 47
14:05:03.734281 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 48
14:05:04.734296 IP6 (hlim 64, next-header: ICMPv6 (58), length: 64) 
2001:db8::11 > 2001:db8::13: ICMP6, echo request, length 64, seq 49


> > Like i have also written in another mail, when i run tcpdump on host B
> > (while running ping6 from A to C), i can see, that the ping gets to host
> > B but host B does not request the linklayeraddress from host C.
>
> That is simply because B thinks that A is on the same link and should
> not ask that.

I understand that for fixed networks, but when you are working with routing on 
wireless connections, then this must be possible. Perhaps the routing must be 
based in the fe80:: Adresses as Jun-ichiro itojun Hagino said in his mail. I 
will test that.

> Your simple solution: Use /128's for every host, thus that you get:
>
> on A:
> 2001:db8::1/128 local
> 2001:db8::2/128 wldev
> 2001:db8::3/128 via 2001:db8::2 dev wldev
>
> on B:
> 2001:db8::1/128 wldev
> 2001:db8::2/128 local
> 2001:db8::3/128 wldev
>
> on C:
> 2001:db8::1/128 via 2001:db8::2 dev wldev
> 2001:db8::2/128 wldev
> 2001:db8::3/128 local
>
> Still that is not the way it should be. You are trying to emulate
> something that is handled normally by L2 by emulating it with L3.
> The /128 should avoid the confusion in the routing part though.
>
> (note did not test the above but it should work)

Just tested it, with the above configuration and /128 i have the same problem.

> > With the sysctl settings, perhaps theres something wrong. I did enable
> > forwarding, but do i have to change some other parameters to?
>
> Nope, at least in general no.

Ok, then the problem is not caused there.

Greets,
Volker

_______________________________________________
Users mailing list
Users@ipv6.org
https://lists.ipv6.org/mailman/listinfo/users

Reply via email to