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?
ip -6 route
# ip -6 route 2001:db8:14:a::/64 dev eth1 proto kernel metric 256 2001:db8:14::/48 dev eth0 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev eth1 proto kernel metric 256 ff00::/8 dev eth0 metric 256 ff00::/8 dev eth1 metric 256 default via 2001:db8:14::1 dev eth0 metric 1