postfix + iptables = randomizar 3 ips

Iniciado por daemoncesar, 16 de Julho de 2015, 12:14

tópico anterior - próximo tópico

daemoncesar

Preciso randomizar 3 IPS via iptables...

Estou fazendo assim:

iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 1 -j SNAT --to-source 179x.x.238
iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 2 -j SNAT --to-source 179x.x.239
iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 3 -j SNAT --to-source 179x.x.240

Quando abro o telnet na porta 25 de outro servidor que tenho acesso as primeiras 3 requsições muda o IP (Correto).

Porém após terminar as 3 primeiras requisições por telnet não funciona mais direito..

Tem vezes que abro 5 conexões em seguida (telnet) e mesmo assim ele pega o IP da interface principal de rede e fica repetindo o IP várias vezes, sendo que eu não gostaria que envia-se com o IP da interface principal (Queria somente os aliases).

Do jeito que está ele randomiza as 3 primeiras conexões depois repete várias vezes o IP principal+randomização.

Ou seja, ele tenta enviar várias vezes seguidas o IP principal da interface de rede e não obedece a minha regra do IPTABLES.

Alguém sabe como resolver este problema ?


zekkerj

Olá daemoncesar,

Se a randomização mudar após a conexão ter sido aberta, o resultado será que a conexão será rejeitada, pois não vai ter sido aberta com o servidor de destino correto.

Imagino que seu objetivo é fazer balanceamento de carga de conexões de entrada, correto?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

daemoncesar

de saída...

preciso que a saída do meu servidor randomize...

zekkerj

Que seja. A primeira coisa a garantir é que ele não troque o IP para pacotes da mesma conexão TCP. Não conheço o módulo "statistic"; vc garante que isso não acontece?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

daemoncesar

Sim, pelo menos nos testes que fiz está tudo certo.

zekkerj

Bem, o que mudou dos testes, quando funcionava, para agora, que não funciona?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

daemoncesar

Ele vai trocando de IP assim:

238
239
240

porém quando passa a primeira volta ele repete muitas vezes o IP principal da interface de rede.

fica assim:

238
239
240
1
240
1
239
1
238


No caso fica enviando muitas vezes o IP principal da interface de rede. Eu gostaria de enviar somente os "ALIAS".

Até mesmo depois de fazer umas 3 voltas ele começa a repetir muitas vezes o mesmo IP.

Já estou muito tempo lendo a documentação deste módulo, mas não consegui resolver.

zekkerj

Qual o sentido daquele parâmetro "--every 4"?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

daemoncesar

Não sei muito bem...

Mas como tem 3 parametros precisa ter no mínimo 3. colocando menos da erro no script.

Já tentei com 3,4,5 etc... sempre ocorre o mesmo problema.

zekkerj

Então... eu não li o manual do módulo (dica: man iptables, procure pela documentação desse módulo lá). Mas faz sentido pra mim que isso esteja dizendo pra liberar esse IP a cada quatro ciclos. Como vc só tem 3 IPs, depois do terceiro ciclo ele fica sem IPs, gerando o teu problema.

Daí a solução seria (a) mudar esse parâmetro para "--every 3" em todas as regras; ou (b) aumentar p/ "--every 6", mas adicionar cada regra 2x, de forma a ter 2 chances de pegar cada IP.

Mas deixo bem claro que isso é apenas um chute. Sem ler a documentação não dá pra fazer mais que isso.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

daemoncesar

Beleza, muito obrigado.

Vou procurar mais informações, se eu descobrir algo eu volto a postar.