Surprisingly enough (to me at least), I discovered that my ISP actually does support IPv6. You simply need to configure your PPP connection with the following:
- Username: adsl@alice6.it
- Password: IPV6@alice6
On my Debian-based Soekris firewall I use shorewall to manage the filtering rules. Eth4 is the internal ADSL modem and eth0 is the internal network. In order to distribute IPv6 to my home network I added the following to /etc/ppp/ipv6-up.d/dsl-provider (nb: it needs the ndisc6 package) :
|
#!/bin/bash
|
|
# Get the /64 network we've been assigned
|
|
prefix=$(rdisc6 -1 -q ppp0)
|
|
# External interface gets $prefix::1
|
|
ip1=$(echo $prefix | sed 's/::\/64/::1\/128/')
|
|
ip -6 addr add ${ip1} dev ppp0
|
|
# Internal eth0 interface gets $prefix:ffff:ffff:ffff:fffe
|
|
ip2=$(echo $prefix | sed 's/::\/64/:ffff:ffff:ffff:fffe\/64/')
|
|
ip -6 addr flush scope global dev eth0
|
|
ip -6 addr add ${ip2} dev eth0
|
|
|
|
ip -6 r a default dev ppp0
|
|
|
|
# Customize and then restart radvd
|
|
cat > /etc/radvd.conf <<EOF
|
|
interface eth0 {
|
|
AdvSendAdvert on;
|
|
prefix $ip2 {
|
|
AdvOnLink on;
|
|
AdvAutonomous on;
|
|
AdvRouterAddr on;
|
|
};
|
|
};
|
|
EOF
|
|
|
|
/etc/init.d/radvd restart
|