Estou trabalhando em uma rede ativa de várias caixas e rotas com um longo histórico de alterações. Eu estou tentando consolidá-los com o mínimo de interrupção. Eu gostaria de me livrar de alguns roteadores antigos e ter as conexões tratadas por caixas novas (ao vivo).
Isso deve funcionar?
iptables -t mangle -A PREROUTING -p tcp -d 192.168.0.1 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p tcp -d 192.168.0.2 -j MARK --set-mark 2
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 -j DNAT --to-destination $DST:7021
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.2 -j DNAT --to-destination $DST:7022
iptables -t nat -A POSTROUTING -p tcp -d $DST -m mark --mark 1 -j SNAT --to-source 192.168.0.1
iptables -t nat -A POSTROUTING -p tcp -d $DST -m mark --mark 2 -j SNAT --to-source 192.168.0.2
iptables -A FORWARD --destination $DST -j ACCEPT
se eth0 é um IP estático com o roteamento em 2 IPs virtuais - eth0: 1 é 192.168.0.1 e eth0: 2 é 192.168.0.2, e ambos acabam no destino $ DST.
Usar o MARK parece ser o meu melhor caminho, mas não está funcionando - o $ DST parece responder ao endereço IP estático, não ao virtual que estou tentando usar com o SNAT. É porque MARK não funciona desta maneira, ou porque outras entradas no iptables estão sobrescrevendo ou porque eu preciso olhar as regras do iproute2 fwmark?
O extrato acima é mínimo e eu preciso de uma solução que seja dimensionada para vários endereços IP do UCARP, junto com todas as regras do iproute2 e a filtragem do iptables que já está configurada. Infelizmente, por mais que eu queira começar de novo com uma ferramenta de roteamento de alto nível, estou atualmente preso a integrar mudanças na configuração existente do iproute2 / iptables.
Obrigado
Tags iptables ip-routing