Aqui estão dois métodos diferentes para alcançar o comportamento desejado:
1. Usando o iptables
A SNAT
target em iptables
permite que o endereço de origem seja modificado conforme solicitado. A página man do iptables-extensions tem a dizer sobre SNAT
:
This target is only valid in the nat table, in the POSTROUTING and INPUT chains, and user-defined chains which are only called from those chains. It specifies that the source address of the packet should be modified (and all future packets in this connection will also be mangled), and rules should cease being examined.
Com base na sua pergunta, a regra a seguir alterará o endereço de origem dos pacotes destinados a 10.0.0.1
a 10.0.0.160
:
$ iptables -t nat -A POSTROUTING --destination 10.0.0.1/32 -j SNAT --to-source 10.0.0.160
2. Usando uma rota estática
Como alternativa, em vez de usar uma regra iptables
, adicione uma rota estática para o host de destino à tabela de roteamento, usando a seguinte sintaxe:
$ ip route add <destination>/32 via <gateway> src <alias>
Com base nas informações que você forneceu, você usaria:
$ ip route add 10.0.0.1/32 via <gateway> src 10.0.0.160
Substitua <gateway>
pelo endereço IP real do seu gateway, pois isso não foi fornecido na sua pergunta.
O tráfego destinado a 10.0.0.1
agora será originado em 10.0.0.160
. Qualquer outro tráfego usa a rota padrão, originária de 10.0.0.23
.