If by "use as a proxy" you meant that you want to provide IPv6 connectivity to your entire network, you need two things:
- enable IP(v6) forwarding
- configure the apropriate prefix advertisements to be sent
On Linux, this would be
/proc/sys/net/ipv6/conf/all/forwarding and the
radvd daemon, respectively.
How to set up the DNS? Is there any open DNS that supports IPv6? I found articles talking about setting up a private IPv6 DNS. Does that necessary?
Regarding "supports IPv6": Make sure you understand the difference between "resolving IPv6 addresses over DNS" and "resolving addresses over DNS over IPv6".
The former means translating names to IPv6 addresses (
2a00:1450:8006::63), and it works the same way whether you do it over IPv6 or not. All DNS servers, including public, support this.
The latter means sending all DNS queries inside IPv6 packets. At this moment, there doesn't seem to be any public DNS server.
How to make sure all network traffic go through the IPv6 tunneling?
All IPv6 traffic will automatically go over the tunnel.
IPv4 traffic, however, cannot be sent over an IPv6 tunnel (unless you set up some kind of v4-in-v6-in-v4, which is just pointless).