Native IPv6 over PPPoA on Cisco IOS
(Update: this post was updated based on comments from my colleagues)
Here is a short howto on how to configure native IPv6 (so, no tunnel) on a PPP based DSL line, without an underlying subnet or whatever. The modem/router we'll be using is a Cisco 877 on a Dutch DSL (an unnamed ISP providing L3 connectivity) line
It is assumed that IPv4 and the underlying ADSL is working normally. We'll be configuring things as a dual-stack system, with the Cisco handing out IPv6 addresses to clients. Remember, this is IPv6, so we will be needing a firewall as soon as everything works!
I have configured a VLAN interface for handling the LAN side of the router, but you could just as easily do this on a FastEthernet port. The Dialer0 interface is the dialer handling the PPP session.
ipv6 unicast-routing ipv6 cef interface Vlan1 description LAN ipv6 address YOUR_IPV6_NET:SUBNET::/64 eui-64 ipv6 enable interface Dialer0 ipv6 address autoconfig ipv6 enable ipv6 route ::/0 Dialer0
If you received a /48 from your ISP, something like 2xxx:yyyy:zzzz::/48, then pick a subnet from this assignment, in my case I chose 100, but this could be anything. So my VLAN 1 config looks like this:
Note that on a Cisco 877 (or any other Cisco router) you could assign various subnets like this to each and every port, VLAN or WIFI interface you have available. This should give you loads of neat opportunities for micromanaging access between subnets on your LAN.
Nothing else is needed, unless you also want to assign an IPv6 address for the DNS server, then you also need to add the following:
ipv6 dhcp pool DHCPv6 dns-server DNS_SERVER_IPV6_ADDRESS domain-name YOUR_LOCAL_DOMAIN interface Vlan1 ipv6 nd managed-config-flag ipv6 dhcp server DHCPv6
Next time, firewalling.