Because I didn’t want to do this the easy way, apparently and I went through:
* Cisco E1200 (no ipv6 support)
* dlink 615 - broken ipv6 support or dd-wrt ‘no useful ipv6 support’
* netgear-disaster thing (no working ipv6)

I happened to have a raspberry-pi around + tp-link usb->wifi dongle…

Props to some extent should go to: http://www.ipcalypse.ca/?p=204
Oh! and props to adafruit industries as well! (http://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/overview)

I installed rasbian on a sd-card and booted up the pi.
I apt-get installed:
* wide-dhcpv6
* radvd

I reset two sysctl toggles:
* net.ipv6.conf.all.forwarding = 1 (forward ipv6 traffic from interface to interface)
* net.ipv6.conf.eth0.accept_ra=2 (keep listening to Router-Advertisement from the upstream device)

I configured wide-dhcpv6 thusly:

pi@pi ~ $ cat /etc/wide-dhcpv6/dhcp6c.conf
# Default dhpc6c configuration: it assumes the address is autoconfigured using
# router advertisements.

interface eth0 {
send ia-pd 0;
send ia-na 0;
script “/etc/wide-dhcpv6/dhcp6c-script”;
};

id-assoc pd 0 {
prefix-interface wlan0 { # Internal interface
sla-id 1;
ifid 1;
sla-len 0;
};
};
id-assoc na 0 {
};

and the radvd daemon is configured like:


pi@pi ~ $ cat /etc/radvd.conf
interface wlan0 # LAN interface
{
# AdvManagedFlag off; # no DHCPv6 server here.
# AdvOtherConfigFlag off; # not even for options.
AdvSendAdvert on;
# AdvDefaultPreference high;
# AdvLinkMTU 1280;
prefix ::/64 #pick one non-link-local prefix assigned to the interface and start advertising it
{
AdvOnLink on;
AdvAutonomous on;
};
};

Hostapd’s configuration is simple, and personal but for completeness sake:


$ more /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=YOURSSIDHERE
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YOURKEYHERE
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
$

Configuration of the NAT for the ipv6 wlan0 -> eth0 traffic is left as an exercise to the reader:

$ sudo iptables -t nat -L
...
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all — anywhere anywhere

$ sudo iptables -L
...
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all — anywhere anywhere

As well as the configuration of the WLAN0 interface in /etc/network/interfaces:


$ cat /etc/network/interfaces
...
auto wlan0
...
allow-hotplug wlan0
iface wlan0 inet static
address 100.64.64.1
netmask 255.255.255.0

Link appropriate startup scripts for proper bootstrapping:


sudo ln -s /etc/init.d/networking /etc/rc2.d/S00networking
sudo ln -s /etc/init.d/hostapd /etc/rc2.d/S02hostapd
sudo ln -s /etc/init.d/isc-dhcp-server /etc/rc2.d/S02isc-dhcp-server
sudo ln -s /etc/init.d/wide-dhcpv6-client /etc/rc2.d/S02wide-dhcpv6-client

After this a reboot and things are working well enough.