Jurgen, beleza ? As métricas de rede/roteamento depois que saem de sua caixa, saem de seu controle. Da origem até sua caixa, mesma coisa. =] . Só para alinhar o pensamento. Tem um macete com o alvo CONNMARK que armazena a marcação associada com a conexão, que parece ser um ou uns dos seus problemas =]
iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark 2016-07-27 14:13 GMT-03:00 Keppler <[email protected]>: > Ola pessoal, tudo bem? > > Implementei um Load Balancing, que ainda está em ambiente de testes, e > aparentemente está funcionando OK. > O que notei é que após implementar o Load Balancing, o desempenho da > internet parece ter caído. > > Vou explicar melhor: > Quanto compartilho a conexão, da forma como normalmente se faz usando > somente um link (com somente 1 Gateway), quando dou um "ping" de alguma > estação Windows qualquer, o ping corre "lisinho". Por exemplo vejam a saída > do comando abaixo: > > Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=10ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=8ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=10ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=10ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242 > Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242 > > > E também quando uso o comando "tracert" para verificar as rotas e por qual > roteador estão saindo os pacotes, noto que os saltos entre os roteadores no > caminho ocorrem bem mais rápido do que quanto o Load Balancing está ativo. > > > Já quando ativo o Load Balancing (ativando as tabelas de roteamento em > "/etc/iproute2/rt_table" para os 2 links e ativando as regras), quando dou > o mesmo comando "ping" de alguma estação Windows, noto que o retorno do > comando ping parece ficar mais lento o tempo de retorno dos pacotes também > ficam mais lentos. > Vejam abaixo a saída do comando ping (em uma estação Windows) após ativar > o Load Balancing: > > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Esgotado o tempo limite do pedido. > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Esgotado o tempo limite do pedido. > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=8ms TTL=52 > Esgotado o tempo limite do pedido. > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=20ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=30ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Esgotado o tempo limite do pedido. > Resposta de 200.221.2.45: bytes=32 tempo=10ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52 > Esgotado o tempo limite do pedido. > > E agora, se no prompt do Windows eu digitar o comando "tracert > www.uol.com.br", observo que os saltos dos pacotes entre os roteadores > pelo caminho percorrido se tornam mais lendo para retornar. > > Abaixo segue a configuração que estou usando para fazer o Load Balancing: > > # Dados da interfaces de rede conectadas com a internet - Link 1 > placa_rede_1=eth1 > tabela_1=nome_tabela_1 > gateway_1=192.168.100.254 > #peso_balanceamento_link_1=30 > peso_balanceamento_link_1=10 > > # Dados da interfaces de rede conectadas com a internet - Link 2 > placa_rede_2=eth2 > tabela_2=nome_tabela_2 > gateway_2=192.168.200.254 > #peso_balanceamento_link_2=70 > peso_balanceamento_link_2=10 > > # Dados da Rede Interna > placa_rede_interna=eth0 > rede_interna=192.168.50.0/24 > > ### Fim das Variáveis > > #Carregar Modulos > echo "Carregando Modulos" > modprobe iptable_nat > modprobe ip_nat_ftp > modprobe ipt_MARK > echo 1 > /proc/sys/net/ipv4/tcp_syncookies > echo 1 > /proc/sys/net/ipv4/ip_forward > echo 1 > /proc/sys/net/ipv4/ip_dynaddr > > > # Zero (0) para desativado e (1) para ativado > echo "1" > /proc/sys/net/ipv4/conf/default/rp_filter > echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter > > # Deletar a rota default > echo "Deletando Rota Default" > ip route del default > > # Limpa as regras das tabelas > echo "Limpando Regras das Tabelas" > ip route flush table $tabela_1 > ip route flush table $tabela_2 > > # Define a rota para as tabelas > echo "Definindo as Rotas para as Tabelas" > ip route add default dev $placa_rede_1 via $gateway_1 table $tabela_1 > ip route add default dev $placa_rede_2 via $gateway_2 table $tabela_2 > > # Define as regras para balanceamento dos links > ip route add default scope global nexthop via $gateway_1 dev $placa_rede_1 > weight $peso_balanceamento_link_1 nexthop via $gateway_2 dev $placa_rede_2 > weight $peso_balanceamento_link_2 > > ## Regras > echo "Definindo as Marcas dos para o Kernel" > ip rule add fwmark 0x10 lookup $tabela_1 prio 3 > ip rule add fwmark 0x20 lookup $tabela_2 prio 3 > > > # Aplicar as regras > echo "Aplicando as Regras" > ip route flush cache > > > # Compartilha a conexãi > echo "Compartilhando a Conexao atravez das Interfaces de Rede" > iptables -t nat -A POSTROUTING -o $placa_rede_1 -j MASQUERADE > iptables -t nat -A POSTROUTING -o $placa_rede_2 -j MASQUERADE > > echo "Definindo quais pacotes saem por qual link" > iptables -I PREROUTING -t mangle -i $placa_rede_interna -s $rede_interna > -d 0/0 -p tcp -m multiport --dports 110,23,25,465,587 -j MARK --set-mark > 0x10 > iptables -I PREROUTING -t mangle -i $placa_rede_interna -s $rede_interna > -d 0/0 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 0x20 > > > Enfim, me dúvida é se posso melhor o desempenho deste Loading Balancing ??? > Ou quando usa-se um Loading Balancing, perde-se um pouco do desempenho > quando se está roteando os pacotes por entre os Gateways? > Ou, no caso do meu Script, se vocês observarem estou marcando determinados > pacotes para saírem por um Gateway específico, ou seja, no meu exemplo que > a "navegação comum" (portas 80 e 443) utilize o Gateway 2 (que é o Link 2). > Em outras palavras, marcar pacotes para depois redirecioná-los para > gateways específicos prejudicam o desempenho/fluxo das entradas e saídas > dos pacotes? > > Espero ter sido claro! > > Alguém já passou por isso? Dá para melhorar? > > abraço, > Jurgen > > -- > GUS-BR - Grupo de Usuários de Slackware Brasil > http://www.slackwarebrasil.org/ > http://groups.google.com/group/slack-users-br > > Antes de perguntar: > > http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao > > Para sair da lista envie um e-mail para: > [email protected] > --- Você está recebendo esta mensagem porque se inscreveu no grupo > "Slackware Users Group - Brazil" dos Grupos do Google. > Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie > um e-mail para [email protected]. > Para obter mais opções, acesse https://groups.google.com/d/optout. > -- Noilson Caio Teixeira de Araújo https://ncaio.wordpress.com https://br.linkedin.com/in/ncaio https://twitter.com/noilsoncaio https://jammer4.wordpress.com/ http://8bit.academy -- GUS-BR - Grupo de Usuários de Slackware Brasil http://www.slackwarebrasil.org/ http://groups.google.com/group/slack-users-br Antes de perguntar: http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao Para sair da lista envie um e-mail para: [email protected] --- Você está recebendo esta mensagem porque se inscreveu no grupo "Slackware Users Group - Brazil" dos Grupos do Google. Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [email protected]. Para obter mais opções, acesse https://groups.google.com/d/optout.

