I humbly ask for your assistance with the problem I can't resolve myself.
I have a native IPv6 link with 2001:db8:14::/48 assigned. I'm running Slackware on 3.2.50-grsec kernel. My ISP's side (my default gw for ::/0) is 2001:db8:14::1. I have assigned 2001:db8:14::2 to my WAN interface (eth0) and it's working - I can ping and access various services in the Internet via IPv6. I would like this machine to act as a router for machines in LAN (eth1). I deployed radvd and all computers (various Win XP, Win 7 and Linux systems) successfully acquired IPv6 addresses from 2001:db8:14:a::/64 subnet. I assigned 2001:db8:14:a::1 to the eth1 LAN interface. Now... I can ping6 between all machines inside LAN. I can ping6 2001:db8:14:a::1 from any machine in the LAN. I can't ping6 2001:db8:14::2 (eth0) from any machine the LAN ("Destination unreachable: Address unreachable"). I can ping 2001:db8:14::2 from the Internet. I can't ping 2001:db8:14:a::1 from the Internet.
Clearly there is something wrong with the forwarding traffic between interfaces. Of course I have set all /proc/sys/net/ipv6/conf/*/forwarding pseudofiles to "1". I have my default route set to "::/0 via 2001:db8:14::1 on dev eth0". I do not have any firewall and just in case the default policy on ip6tables for FORWARDING (and anything else) is ACCEPT.
Is there something I'm missing? Any ideas what might be wrong with the routing?