Se eu leio sua pergunta corretamente, você deseja que o tráfego da porta 80 desça pelo seu túnel. Isso não é feito com o SNAT, mas com o roteamento de políticas.
Primeiro, precisamos configurar uma nova tabela de roteamento:
# echo "2 tunnel" >> /etc/iproute2/rt_tables
Em seguida, precisamos configurar a tabela de roteamento para enviar todo o tráfego pelo túnel:
# ip route add default via 172.16.1.2 dev gre1 table tunnel
Agora, precisamos fazer com que algum tráfego use essa tabela de roteamento em vez da tabela de roteamento padrão. Isso é feito marcando os pacotes e adicionando uma regra para usar a tabela especificada para os pacotes marcados:
# iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --mark 200
# ip rule add fwmark 200 table tunnel
Substitua OUTPUT por FORWARD se quiser que o tráfego sendo encaminhado seja enviado pelo túnel. Isso só funciona para tráfego gerado localmente com OUTPUT.
Você pode encontrar mais informações no guia de controle avançado de tráfego e roteamento do Linux (LARTC) .