Obrigado Flavio. Alterei apenas o gateways e por enquanto o tráfego está fluindo normalmente. Valeu pela dica. Vou me dedicar um pouco ao teste de QOS, e se haver problema no balanceamento de link novamente eu retorno aqui na trhead. Abç
2015-06-23 8:32 GMT-03:00 Flavio Menezes dos Reis <[email protected] >: > Pra finalizar, não acredito que este comando seja necessário: > iptables -t nat -A POSTROUTING -o $IF_LAN -j MASQUERADE > > Em 23 de junho de 2015 08:31, Flavio Menezes dos Reis < > [email protected]> escreveu: > >> E isto está correto? >> ifconfig $IF_LINK2 $IP_SERV_ETH2 broadcast $BROAD_ETH1 netmask $MASK_ETH2 >> >> O BROAD_ETH1 usado na configuração do LINK2? >> >> Em 23 de junho de 2015 08:29, Flavio Menezes dos Reis < >> [email protected]> escreveu: >> >>> Gustavo, >>> >>> De cara já notei que o problema pode ser teus segmentos de rede e a >>> máscara, afinal 10.0.0.200/16 e 10.0.0.100/16, as duas interfaces, >>> estarão no mesmo segmento e realmente acredito que isto pode criar uma >>> confusão de roteamento. Sugiro que altere, por exemplo, o eth2 para >>> 10.100.0.0/16. >>> >>> Atte, >>> >>> Em 22 de junho de 2015 21:41, Gustavo S. L. <[email protected]> escreveu: >>> >>>> Boa noite. Escrevi um script para balancear dois links, na verdade um >>>> teste, usando 3 vms com Debian Jessie. Quando rodo ele e confiro pelo >>>> iptraf tudo certo, tráfego encaminhado para a interface correta de acordo >>>> com a regra indicada. O problema é que depois de um tempo o balanceamento >>>> parece não ter mais efeito e o que deveria sair por uma interface sai por >>>> outra. Se alguem que já tenha feito algo parecido puder me ajudar a >>>> identificar o problema (se está na configuração ou no roteamento, ou se >>>> falta algo) eu ficaria muito grato. >>>> >>>> Sei que o indicado é usar um pastebin, mas como acredito que a resposta >>>> ao problema esteja no script vou postá-lo na íntegra para facilitar a >>>> resposta. Desde já obrigado pela ajuda >>>> >>>> OBS: a eth0 representa a rede interna, a eth1 represente o link1 (gvt >>>> por exemplo), e a eth2 o link2 (copel por exemplo). Para o link 1 uso o >>>> gateway da minha rede e para o link2 uso a própria máquina real. >>>> >>>> Segue: >>>> >>>> >>>> #!/bin/bash >>>> >>>> # Configuração dos ips do servidor >>>> echo "Configurando variáveis das interface..." >>>> IF_LAN="eth0" >>>> IF_LINK1="eth1" >>>> IF_LINK2="eth2" >>>> >>>> echo "Configurando variáveis da interface eth0..." >>>> IP_SERV_ETH0="192.168.0.1" >>>> BROAD_ETH0="192.168.0.255" >>>> MASK_ETH0="255.255.255.0" >>>> GW_LAN="10.0.0.1" >>>> >>>> echo "Configurando variáveis da interface eth1 para link1..." >>>> IP_SERV_ETH1="10.0.0.100" >>>> BROAD_ETH1="10.0.255.255" >>>> MASK_ETH1="255.255.0.0" >>>> GW_LINK1="10.0.0.1" >>>> >>>> echo "Configurando variáveis da interface eth2 para link2..." >>>> IP_SERV_ETH2="10.0.0.200" >>>> BROAD_ETH2="10.0.255.255" >>>> MASK_ETH2="255.255.0.0" >>>> GW_LINK2="10.0.0.4" >>>> >>>> # Identificação dos ips de clientes na rede >>>> echo "Configurando variáveis que apontam para clientes 1 e 2..." >>>> CLIENTE01="192.168.0.100" >>>> CLIENTE02="192.168.0.200" >>>> >>>> # Comandos para configuração dos ips >>>> echo "Realizando comandos para configuração de ips..." >>>> ifconfig $IF_LAN $IP_SERV_ETH0 broadcast $BROAD_ETH0 netmask $MASK_ETH0 >>>> ifconfig $IF_LINK1 $IP_SERV_ETH1 broadcast $BROAD_ETH1 netmask >>>> $MASK_ETH1 >>>> ifconfig $IF_LINK2 $IP_SERV_ETH2 broadcast $BROAD_ETH1 netmask >>>> $MASK_ETH2 >>>> >>>> echo "Realizando comandos para configuração de rotas..." >>>> route add default gw $GW_LAN >>>> ip route add default via $GW_LINK1 dev $IF_LINK1 table link1 >>>> ip route add default via $GW_LINK2 dev $IF_LINK2 table link2 >>>> >>>> # Liberando o Forward e Mascarando os ips para saída pelo Firewall >>>> echo "Realizando comandos para configuração de forward e >>>> mascaramento..." >>>> echo "1" > /proc/sys/net/ipv4/ip_forward >>>> iptables -t nat -A POSTROUTING -o $IF_LAN -j MASQUERADE >>>> iptables -t nat -A POSTROUTING -o $IF_LINK1 -j MASQUERADE >>>> iptables -t nat -A POSTROUTING -o $IF_LINK2 -j MASQUERADE >>>> >>>> # Configurando marcação de pacotes >>>> echo "Configurando comandos para marcação de pacotes..." >>>> ip rule add fwmark 1 prio 20 table link1 >>>> ip rule add fwmark 2 prio 20 table link2 >>>> >>>> # Configurando roteamento dos pacotes via marcação >>>> iptables -t mangle -A PREROUTING -s $CLIENTE01 -j MARK --set-mark 1 >>>> iptables -t mangle -A PREROUTING -s $CLIENTE02 -j MARK --set-mark 2 >>>> >>>> >>>> >>>> -- >>>> Guto >>>> >>> >>> >>> >>> -- >>> Flávio Menezes dos Reis >>> Procuradoria-Geral do Estado do RS >>> Seção de Infraestrutura de Rede - Assessoria de Informática >>> Analista de Informática >>> (51) 3288-1764 >>> >> >> >> >> -- >> Flávio Menezes dos Reis >> Procuradoria-Geral do Estado do RS >> Seção de Infraestrutura de Rede - Assessoria de Informática >> Analista de Informática >> (51) 3288-1764 >> > > > > -- > Flávio Menezes dos Reis > Procuradoria-Geral do Estado do RS > Seção de Infraestrutura de Rede - Assessoria de Informática > Analista de Informática > (51) 3288-1764 > -- Guto

