It seems as tho though the OP got his Linux/V6 stuff working by switching away from CentOS. If anyone's still struggling through it, I'll provide my experience. I just set this up today (31 December). My configuration is a small Linux router with 3 Ethernet interfaces:
- eth2 - Facing the cable modem
- eth1 - Facing the public side of my LAN
- eth0 - Facing the "private" side of my LAN (where my wireless bridge also lives)
I have a /28 of public IPv4 space from my Internet provider, which is why I have a "public" and "private" side to the router. For v4, the router routes natively through all interfaces
except when the private LAN tries to talk out to the Internet. Then, and only then, does it NAT.
Now, for v6. Three basic steps:
1. Set the Tunnel Up with HE and Enable IP ForwardingEdit the following files:
/etc/sysconfig/networkNETWORKING_IPV6=yes
IPV6_AUTOCONF=no
IPV6_DEFAULTGW=<V6 Gateway on other end of Tunnel>
IPV6_DEFAULTDEV=sit1
/etc/sysconfig/network-scripts/ifcfg-sit1DEVICE=sit1
IPV6INIT=yes
IPV6TUNNELIPV4=<V4 Remote end of Tunnel>
IPV6TUNNELIPV4LOCAL=<V4 Local end of Tunnel>
IPV6ADDR=<V6 Local end of Tunnel>
/etc/sysctl.confnet.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
Once those files are saved, perform this as root:
service network restart
The tunnel should be up at this point. Verify that by grabbing the v6 IP of the remote end of the tunnel and:
ping6 <v6 remote end>
2. Set up Manual v6 IPs on Router InterfacesAssuming you have a block from HE, you'll want to pick a /64 from it and set that LAN up on the internal Ethernet interface. Since I have 2 Ethernets, I actually have 2 /64s. Either way, let's say eth1 is your internal LAN. Figure out what static(!) IP address you want your router to have, and configure it thusly:
/etc/sysconfig/network-scripts/ifcfg-eth1IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=<your v6 router IP>
IPV6_ROUTER=yes
Most people like to IP their routers as the first IP in the subnet. I'm a bit goofy in that I typically configure mine at the very end of the subnet. My subnet from HE is: 2001:470:e2f8::/48. I carved off 2 /64s from that and IP'd my router interfaces as: 2001:470:e2f8:6969:ffff:ffff:ffff:ffff/64 and 2001:470:e2f8:7777:ffff:ffff:ffff:ffff/64 (yep, I'm a pig). I put those IPs into my ifcfg-eth0 and ifcfg-eth1 files accordingly.
Doing another:
service network restart
will bring up eth1 with the new v6 IP.
3. Enable Route AdvertisementIf you want the rest of your machines to auto-config properly, you want to make sure you have the RADVD daemon installed and running. If it isn't:
yum install radvd
The configuration for radvd is in the file
/etc/radvd.conf. A quick and dirty config for eth1 would look like:
interface eth1
{
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
prefix <YOUR SUBNET HERE>/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
Make sure it'll start when you reboot:
chkconfig radvd on
And kick it into gear:
service radvd start
Once done, you should have a running v6 router with internal clients that are all able to connect via v6.
ETA: Fixed IP Forwarding and Default Device configurationsjas