.png)
Tenho a seguinte situação:
Uma interface (dispositivo) identificada por um endereço IP 192.168.1.x (I1) que está se conectando através de qualquer serviço a outra interface com IP 192.168.1.y (I2) à porta (P2) no mesma LAN. Agora quero redirecionar todos os frames/pacotes (dados em geral) que são enviados de I1 para I2:P2 para outro dispositivo com endereço IP 192.168.1.z (I3) e porta (P3) na mesma LAN.
O que eu tentei:
Eu investiguei, iptables
mas finalmente percebi que eles (especificamente as tabelas nat) funcionam apenas em pacotes que vão para a rede externa (WAN). Uma exceção é quando as regras são definidas no dispositivo de conexão (I1), então estes comandos shell fizeram o trabalho:
iptables -t nat -A OUTPUT -p tcp -d I2 --dport P2 -j DNAT --to I3:P3
iptables -t nat -A INPUT -p tcp -s I3 --sport P3 -j SNAT --to I2:P2
Como eu queria aplicar as regras no roteador local, tentei ver se a comunicação entre I1 e I2 está passando por ele:
iptables -t raw -I PREROUTING -s I1 -d I2 -j LOG
E provavelmente não está, pois não consegui encontrar nenhum log com os dois IPs (o arquivo de log estava em/var/log/mensagens).
Comecei a perceber que a comunicação LAN passa pelo switch usando endereços MAC e não pode ser capturada lá, é verdade? Suponho que o "switch" esteja fisicamente (na) mesma caixa do roteador.
Por fim, estou pensando que talvez nem precise do redirecionamento e apenas execute os serviços desejados no I2 (que é uma interface virtual), mas isso não vem ao caso.
Então minha pergunta principal é:
É possível redirecionar o tráfego (modificar os pacotes) que vai deE1paraI2:P2noswitch/roteadorque está de passagem, para que o destino sejaI3:P3e I3 poderia então responder da mesma maneira (mascarar-se como I2:P2) sem que I1 percebesse?
Acho que pode não ser possível e o redirecionamento nesse nível tem a ver com pontes (virtuais). Se sim, o mesmo resultado pode ser alcançado de outra forma? Só posso modificar o switch e as interfaces I2, I3 (NÃO I1).
Responder1
Aparentemente, você está no mesmo segmento de rede e como adivinhou - o tráfego NÃO ESTÁ passando pelo roteador neste caso.
Existem dois locais onde você pode fazer os ajustes necessários:
O dispositivo de origem (I1) onde você só precisa DNAT os pacotes de saída:
iptables -t nat -A OUTPUT -p tcp -d I2 --dport P2 -j DNAT --to I3:P3
O segundo dispositivo (I2) onde você precisa DNAT e SNAT e deve ter o encaminhamento de pacotes habilitado:
iptables -t nat -A PREROUTING -p tcp -s I1 -d I2 --dport P2 -j DNAT --to-destination I3:P3 iptables -t nat -A POSTROUTING -p tcp -s I1 -d I3 --dport P3 -m conntrack --ctstate DNAT -j SNAT --to-source I2
Responder2
Você só pode fazer essa modificação no seu I1
dispositivo e usando iptables NAT ou similar lá.
Se você configurar sub-redes IP separadas em sua LAN atual para que x
estejam y
em sub-redes diferentes, poderá realizar essa manipulação de destino no roteador, porque os pacotes passarão pelo roteador.