However, the major error in my previous setup was not identified. I believe I was overzealous with setting up IPv6 interfaces, which caused the routing to fail, but this is not confirmed.
Since my last IPv6 experiment my network has undergone some important changes. Most important is the switch to Linux kernel version 2.6.x (with it's better support for IPv6).
I'm now updating this case study to reflect the current, working situation.
Miek Gieben - 26 April 2004
All the Linux machines run Debian GNU/Linux [2], version Sarge (Testing). This network is totally IPv4 based. I have 2 connections to the Internet (cable (10Mb) and fiber (100Mb) ), a internal network (atoom.net, 192.168/16) and a wireless setup (wireless.atoom.net, 172.16/12). Currently all machine are connected to the Internet via NAT. Also see figure 1.
One remark: The fiber connection does not route email (port 25). So all email incoming and out coming need to be routed over my cable connection. The server ``Elektron'' handles email, web, secure pop. These ports get destination natted from the firewall. As said, special care is taken to route email packets back over the cable connection.
``Ufo'' is my wireless access point. This is completely firewalled off from the rest of my network.
The goal is now to add IPv6 to this network.
| domain | atoom.net | sixxs.net |
| hostname | kopje.atoom.net | gw-201.ede-01.nl.sixxs.net |
| IPv4 | 195.169.222.38 | N/A |
| IPv6 | 2001:7b8:2ff:c8::2 | 2001:7b8:2ff:c8::1 |
This the tunnel runs from 2001:7b8:2ff:c8::1 (sixxs' end) to 2001:7b8:2ff:c8::2 (my end). Over the tunnel 2001:7b8:32a::/48 is routed. This means I have 80 bits of addressing for my home network.
# IPV6 auto sixxs iface sixxs inet6 v4tunnel address 2001:7b8:2ff:c8::2 netmask 64 endpoint 193.109.122.244 up ip route add 2000::/3 via 2001:7b8:2ff:c8::1 up ip link set dev sixxs mtu 1280 up ip tunnel change sixxs ttl 64The tunnel gets the interface name sixxs and has 2001:7b8:2ff:c8::1 as its endpoint.
Note: previously the last command looked like: up ip tunnel change sixxs ttl inherit This causes the IPv4 tunnel packets to inherit the TTL of the IPv6 packets, which, unfortunately, can lead to disaster:
Suppose the IPv6 packets needs 2 hops to reach the Internet and also assume the IPv4 packets need 6 hops to reach the Internet. This is roughly the situation at my home: IPv4 packets need more hops than the IPv6 ones. Now we are traceroute6-ing the IPv6 endpoint. Those packets start of with a low TTL. Because the IPv4 packets inherit this low TTL, they get dropped by the first router that sees a TTL of zero. So be looking at the IPv6 packets you get no glue on why nothing reaches the endpoint, because the IPv4 tunnel packets are the ones being dropped. Setting inherit to 64 restores normal behavior.
But after these tweaks the endpoint was pingeable and tracerouteable:
% ping6 2001:7b8:2ff:c8::1 PING 2001:7b8:2ff:c8::1(2001:7b8:2ff:c8::1) 56 data bytes 64 bytes from 2001:7b8:2ff:c8::1: icmp_seq=1 ttl=64 time=4.18 ms 64 bytes from 2001:7b8:2ff:c8::1: icmp_seq=2 ttl=64 time=3.80 ms 64 bytes from 2001:7b8:2ff:c8::1: icmp_seq=3 ttl=64 time=3.94 ms
Note: atoom is my internal interface and wireless is my wireless interface. (Under Linux you can rename your interfaces with a nice tool called nameif [See: man 8 nameif]).
This radvd.conf creates two subnets :0 and :1 for internal use.
# atoom.net internal
interface atoom {
AdvSendAdvert on;
AdvHomeAgentFlag off;
# recommended values from ronald
MinRtrAdvInterval 30;
MaxRtrAdvInterval 90;
prefix 2001:7b8:32a:0::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
};
interface wireless {
AdvSendAdvert on;
AdvHomeAgentFlag off;
# recommended values from ronald
MinRtrAdvInterval 30;
MaxRtrAdvInterval 90;
prefix 2001:7b8:32a:1::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
};
With sixxs.net you can add your own reverse nameserver. Once this was added the actual setup was not that difficult, although you need a tool like ipv6calc to calculate the reverse IPv6 addresses.
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 -local_icons ipv6-take2.tex
The translation was initiated by Miek Gieben on 2004-04-26
Miek Gieben 2004-04-26