Redundancia

1. Redundancia

Diego
diawd

(usa Ubuntu)

Enviado em 09/09/2011 - 15:51h

Boa tarde pessoal.

É o seguinte, tenho dois links de internet aqui na empresa (net e telefonica) e preciso redirecionar todo o trafego das portas 20,21 e 3306 para o link telefonica. Estou pesquisando em vários tutoriais e não estou conseguindo entender. Alguém pode me dar uma indéia de como posso fazer isso?


Grato desde já


  


2. Re: Redundancia

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 09/09/2011 - 18:26h

Explique o diagrama da sua rede.

Cada link chega em uma interface de rede diferente, certo?

Posta os ip's do servidor de todas as interfaces (exceto a da internet, que pode ser um exemplo ou um monte de X), deixando claro qual placa (eth0, eth1) tem que ip configurado.

A partir disso podemos criar uma simples regra de iptables para redirecionar todo o tráfego entrante nas portas especificadas para o sair pelo link da telefonica.


3. Re: Redundancia

Diego
diawd

(usa Ubuntu)

Enviado em 09/09/2011 - 19:05h

obrigado pela resposta amigo.

Está da seguinte forma. A interface eth0 está com o link telefonica e ip 192.168.1.2. A eth1 está com o link net, e ip 10.0.0.224.

A idéia é todo o trafego da porta 20,21 e 3306 sair pela eth0, e o restante pela eth1.



4. Re: Redundancia

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 09/09/2011 - 19:50h

Pronto, entendi.

No link abaixo você encontra um bom script que já faz isso que você quer, o que você vai precisar fazer é adequar de acordo com sua realidade.


http://www.dicas-l.com.br/arquivo/roteamento_avancado_linux_utilizando_iproute_e_iptables_load_balan...

Feito isso, caso não tenha funcionado, posta ele do jeito que ficou (de acordo com sua rede) que verificamos se está tudo configurado corretamente, e partimos para modificações.


5. Re: Redundancia

Diego
diawd

(usa Ubuntu)

Enviado em 13/09/2011 - 11:39h

Bom dia pessoal,

Então, segui o tutorial que o n4t4n passou, porém não funcionou. Por exemplo, eu redirecionei para o link telefonica todo o trafego das portas 110, 25 e 3306. Daí acontesseu que a internet funciona normal pelo link NET, mas email e mysql não funciona. Parece que não está roteando entende?

Será que é necessário configurar uma tabela de roteamento?


6. Re: Redundancia

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 13/09/2011 - 13:13h

Posta pra gente como ficou o script com as suas configurações. (substitua o ip-válido caso tenha por X, ou coloque um endereço de fantasia.


7. Re: Redundancia

Diego
diawd

(usa Ubuntu)

Enviado em 13/09/2011 - 15:38h

Segue script.

case "$1" in


start)


iptables -P FORWARD ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT




iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z


modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe nf_nat_ftp
modprobe nf_conntrack_ftp

iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 3306 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 110 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 25 -j MARK --set-mark 1


iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

ip rule add fwmark 1 table 10 prio 20


iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT


iptables -A FORWARD -p tcp --sport 25 -j ACCEPT # SMTP
iptables -A FORWARD -p tcp --sport 110 -j ACCEPT # POP3

iptables -A FORWARD -p tcp --dport 25 -j ACCEPT # SMTP
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT # POP3


iptables -A FORWARD -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp --sport 21 -j ACCEPT


iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -j ACCEPT


iptables -A FORWARD -p tcp --sport 809 -j ACCEPT
iptables -A FORWARD -p tcp --dport 809 -j ACCEPT


iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --sport 80 -j ACCEPT


iptables -A FORWARD -p tcp --sport 443 -j ACCEPT
iptables -A FORWARD -p tcp --dport 443 -j ACCEPT


iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT
iptables -A FORWARD -p tcp --sport 8080 -j ACCEPT


iptables -A INPUT -p tcp -i lo -j ACCEPT

iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3128 -j ACCEPT

iptables -A FORWARD -p tcp --dport 3306 -j ACCEPT
iptables -A FORWARD -p tcp --sport 3306 -j ACCEPT

ip route add default via 192.168.1.1 dev eth0 table 10


iptables -A FORWARD -p tcp --dport 48822 -j ACCEPT
iptables -A FORWARD -p tcp --sport 48822 -j ACCEPT


iptables -A INPUT -p icmp -j ACCEPT


iptables -A FORWARD -p icmp -j ACCEPT



;

stop)

iptables -F

;;

status)

echo ""
echo "Tabela Filter"
echo ""
iptables -L -n
echo ""
echo "Tabela NAT"
echo ""
iptables -t nat -L -n
echo ""
echo "Tabela Mangle"
echo ""
iptables -t mangle -L -n

;;

restart)
$0 stop
$0 start

;;

*)

echo $"Usar: $0 {start|stop|status|restart|}"

exit 1
;;

esac

exit $?








8. Re: Redundancia

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 13/09/2011 - 16:47h

Bom, pelo que você postou a interface eth0 é o link Telefonica e o eth1 é o link NET, então suas regras estão incorretas

iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 3306 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 110 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 25 -j MARK --set-mark 1

Aqui deveria ser eth2 ou qualquer que seja a interface da sua rede local, não a do link NET


iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Você tem tráfego entrante pelo link da NET? Acho que você não informou a interface de rede correta aqui


iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

Aqui, novamente você especificou eth2 como sendo a interface de um link, qual? deveria ser a eth0 e eth1, não?

Revise essas configurações e veja se funciona. Se quiser, fique a vontade para postar o ip e interface da rede local também.


9. Re: Redundancia

Diego
diawd

(usa Ubuntu)

Enviado em 13/09/2011 - 17:08h

desculpe, a configuração tá assim:

eth0 = TELEFONICA
eth1 = LAN
eth2 = NET

eu dei uma verificada novamente e parece que tá tudo configurado correto. =s

E muito obrigado pela ajuda!!!


10. Re: Redundancia

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 13/09/2011 - 18:22h

Comparando o script original com o seu percebi algumas diferenças, que seguem:

Você não colocou as portas da chain OUPUT como consta no original, o que pode fazer com que não funcione, pois o acesso que for gerado no servidor nessas portas não estará sendo direcionado para o link correto

Você não usou a regra "ip route flush cache" o que faz com que se você reiniciar seu firewal as regras constem duas vezes nas tabelas criadas


11. Re: Redundancia

Diego
diawd

(usa Ubuntu)

Enviado em 15/09/2011 - 11:27h

Então, todo o acesso será feito a partir de minha lan, nada será gerado no firewall, por isso não inclui as regras de OUTPUT.
Também coloquei a regra de flush e mesmo assim não funcionou =/


12. Re: Redundancia

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 19/09/2011 - 15:06h

Vamos verificar se é o iptables que não está marcando os pacotes

posta o resultado do comando

iptables -vnL -t mangle



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts