Providing single client on LAN with IPv6 [Linux]
Shadow Hawkins on Thursday, 01 May 2008 13:09:52
Hello everyone,
I have a "server/router" that has a working SixXS tunnel, which provides my private network with a subnet. This has all been working perfectly for some time (and still does).
The server is also connected to a public network which has exactly one client which I want to provide with IPv6. My idea was that this would be similar to IPv4, so I did the following:
Client:
ifconfig eth0 add 2001:610:6c9::2
ip -6 route add 2001:610:6c9::1 dev eth0
ip -6 route add default via 2001:610:6c9::1 dev eth0
Server/router (with SixXS):
ip -6 route add 2001:610:6c9::2 dev br0
(2001:610:6c9:: is already routed to eth2)
Here 2001:610:6c9 is my subnet prefix. This apparently doesn't work. If I ping the client from the server, I do receive an echo request. The other way around I receive only neighbour solicitations.
I'm not so sure what I have to do to solve this. The documentation is also pretty daunting. I don't want to take the "easy" way out by setting up a tunnel.
Kind regards,
Tim
Providing single client on LAN with IPv6 [Linux]
Shadow Hawkins on Friday, 02 May 2008 22:31:27
Ok, I got everything working by adding the router to the neighbour table by hand using
ip neigh add to 2001:610:6c9::1 dev eth0 lladdr 00:20:18:8A:F3:65 nud permanent
Why doesn't this get configured automatically?
Providing single client on LAN with IPv6 [Linux]
Jeroen Massar on Saturday, 03 May 2008 00:07:13
Because you are missing the point of subnetting completely.
You should be using: "ip -6 addr add 2001:610:6c9::1/64 dev br0" on the router.
Then you can optionally use radvd to announce that /64, or you could manually configure an address on every box on that subnet.
You could indeed use eg a /126 or something else silly, but why? You got a /48 for that network. As it is a /48, you can use 2001:610:6c9:0000::/64 (which you are using apparently on eth2), 2001:610:6c9:0001::/64, 2001:610:6c9:0002::/64 upto 2001:610:6c9:ffff::/64, that is 65536 /64's to use for your pleasure. Should be enough I guess...
As to why it didn't work what you are trying:
- You are using /128's.
- You are routing the same subnet to two interfaces.
- You might have a broken multicast setup somewhere.
(Which would not be suprising as you have a br0 which might just be WRT and some WRT platforms have problems with multicast).
Please actually read the FAQ which has a very nice section on how to provide connectivity to other hosts in your subnet. And the Wiki also contains a nice example about Subnetting.
Providing single client on LAN with IPv6 [Linux]
Shadow Hawkins on Saturday, 03 May 2008 10:44:11
Ah, yes, that makes a lot of sense. I've set up an extra /64 subnet and now everything works automatically.
Multicast also seems to work (quick test using dbeacon), although not over the internet. I've also installed ecmh, setting the upstream interface to sixxs, but that didn't help either.
BTW, I'm using Debian, not WRT.
Posting is only allowed when you are logged in. |