Para acesso geral, você terá que usar o MASQUARADE / SNAT (dependendo de seu endereço IP em C ser dinâmico ou estático).
Então, digamos que a situação atual é o seu computador A tem endereço IP estático a.a.a.a , e seu computador B tem endereço IP estático b.b.b.b . Ambos têm gateway padrão para o computador C . E o Someserver.com tem o endereço IP estático r.r.r.r e a porta secreta é pppp .
Você configuraria o computador C como roteador, que teria sua rota padrão para a Internet interface C (ele já faz isso, seja por configuração estática ou sendo dinamicamente configuração via PPPoE, etc). Isso por si só realizará 1.
Agora, você tem duas possibilidades:
-
faça o roteador computador A também. Então você muda a configuração do computador B para que sua rota padrão seja via computador A (e não computador C como antes), e configure o computador A assim:
iptables -t nat -s b.b.b.b -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.aque faria todos os pacotes TCP do IP de origem
b.b.b.birem ao IP de destinor.r.r.re a porta de destinoppppfingirem que eles vêm dea.a.a.a, realizando3e tráfego de someserver.com retornará ao endereço de origem (a.a.a.a), que seria decodificado pelo computador A e enviado de volta ao computador B . (realizando assim4)Isso é mais fácil, mas requer que o computador B esteja executando o sistema operacional capaz de executar essas políticas de NAT.
-
altere o computador A para que o IP privado, como
10.0.1.100/24e computador B , tenha o IP% privado10.0.2.100/24. Então, no computador C , faça:ip addr add a.a.a.a/nn dev ifaceC ip addr add b.b.b.b/nn dev ifaceC iptables -t nat -s 10.0.1.100 -j SNAT --to a.a.a.a iptables -t nat -s 10.0.2.100 -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.a iptables -t nat -s 10.0.2.100 -j SNAT --to b.b.b.bem que
nné sua máscara de rede eifaceCé o nome da sua interface C . Isso colocaria computador A e computador B em intervalos privados, permitindo assim que o computador C se conecte ao computador A paraa.a.a.a(para que se comporte como antes) e NAT computador B paraa.a.a.a(se dst =r.r.r.r, dport =ppppcondição seja atendida) ou parab.b.b.b(caso contrário, ).
Isso não requer nenhum suporte especial em computador A nem computador B , mas os coloca atrás de NAT , que pode afetar algumas outras coisas.
E, é claro, nesta idade, deve-se mencionar que acima só funcionará para bons endereços IPv4 ( o último dos quais são sendo rapidamente usado ) e não em IPv6