Since at least Linux kernel version 3.9.0 and using ip6tables since 1.4.18 also Network Address Translation (NAT) is usable.
Like in IPv4 clients behind a router can be hided by using IPv6 masquerading (hide/overlap NAT), e.g.
# ip6tables -t nat -A POSTROUTING -o sixxs -s fec0::/64 -j MASQUERADE
A dedicated public IPv6 address can be forwarded to an internal IPv6 address, e.g.
# ip6tables -t nat -A PREROUTING -d 2001:db8:0:1:5054:ff:fe01:2345 -i sixxs -j DNAT --to-destination fec0::5054:ff:fe01:2345