[GTER] Packet Loss - Mikrotik

Daniel Gurgel daniel.gurgel at secrel.net.br
Fri May 17 09:49:08 -03 2013


Não alterei nenhuma configuração referentes a MTU, quanto ao uso de CPU, a própria RB separou as interfaces por core, e mesmo durante a execução das regras, a CPU fica com pelo menos 20% do tempo em idle. O que o meu sistema interna faz é apenas gerar um conjunto de regras, seguindo a sintaxe do RouterOS com os controles de IP/Velocidade dos clientes, bem simples! Em seguida, temo o script abaixo fazendo o download de todos os arquivos que definimos dentro do arquivo "Regra", cada predial/cliente por linha.

#INICIO#
queue simple remove [find parent="LAGUNA01" or target-addresses=10.85.63.0/24]
ip firewall address-list remove [find list="LAGUNA01"]
ip firewall nat remove [find src-address-list="LAGUNA01"]
/ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=externa src-address-list=LAGUNA01 comment=LAGUNA01
/queue simple add disabled=no max-limit=100M/100M name=LAGUNA01 queue=ethernet-default/ethernet-default target-address=10.85.63.0/24 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.46 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=10M/10M name=72182 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.46 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.55 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=5M/5M name=72202 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.55 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.21 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=10M/10M name=72203 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.21 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.100 disabled=no list=LAGUNA01
ip firewall address-list add address=10.85.63.200 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=10M/10M name=72271 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.100,10.85.63.200 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.44 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=3M/3M name=72273 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.44 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.51 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=3M/3M name=72278 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.51 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.27 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=3M/3M name=72280 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.27 total-queue=ethernet-default
ip firewall address-list add address=10.85.63.38 disabled=no list=LAGUNA01
queue simple add disabled=no max-limit=10M/10M name=72310 parent="LAGUNA01" queue=ethernet-default/ethernet-default target-address=10.85.63.38 total-queue=ethernet-default
queue simple add disabled=no max-limit=1M/1M name=LAGUNA01-DEFAULT  parent=LAGUNA01 queue=ethernet-default/ethernet-default target-address=10.85.63.0/24 total-queue=ethernet-default
#FIM#

:global ftp [:resolve "download.xxx.com.br"]
:global user usuario
:global pass senha
:local content [/file get [/file find name=regra] contents];
:local contentLen [:len $content];
:local lineEnd 0;
:local line "";
:local lastEnd 0;
:log info ("## Regra Executada: " . [/system clock get time] . " ##");
:while ($lineEnd < $contentLen) do={
# depending on file type (windows/linux), "\n" might need to be "\r\n"
 :set lineEnd [:find $content "\n" $lastEnd];
# if there are no more line breaks, set this to be the last one
 :if ([:len $lineEnd] = 0) do={
      :set lineEnd $contentLen;
   }
# get the current line based on the last line break and next one
   :set line [:pick $content $lastEnd $lineEnd];
# depending on "\n" or "\r\n", this will be 1 or 2 accordingly
 :set lastEnd ($lineEnd + 1);
# don't process blank lines
 :if ($line != "\r") do={
        /tool fetch address=($ftp)  mode=ftp port=21 src-path=$line user=($user) password=($pass) dst-path=("regras/$line");
       /import file-name=("/regras/$line");
       :put ($line . " ## OK! ## ");
       :log info ($line . " OK! ");
       :delay delay-time=1s;
                }
}
:log info ("## Regra OK! ##");
:log info ("");


Bom, esse é apenas 1 dos problemas, durante a execução das regras... ainda estou tentando achar uma resposta para o problema de performance, onde ela não consegue passar de 30Mb, com apenas 1 cliente, sem queue, sem firewall/BGP... e de repente, após uns 30min, tudo normaliza, com todas as regras aplicadas...

Atenciosamente, 

Daniel Gurgel


----- Mensagem original -----
De: "Lucas Willian Bocchi" <lucas.bocchi at gmail.com>
Para: "Grupo de Trabalho de Engenharia e Operacao de Redes" <gter at eng.registro.br>
Enviadas: Segunda-feira, 13 de Maio de 2013 23:20:05
Assunto: Re: [GTER] Packet Loss - Mikrotik

Verificou o mtu?
Em 13/05/2013 23:18, "Daniel Gurgel" <daniel.gurgel at secrel.net.br> escreveu:

> Bom... são dois casos distintos:
> 1. A RB não tem performance e normaliza sem nenhuma intervencao nossa;
> 2. Ao rodar o script acontece perda de pacotes mesmo com o processamento
> baixo.
>
> Todos os procedimentos informados já foram testados, negociação, divisão
> de portas... etc... Estamos com 16 vlans configuradas no momento.
>
>
> Atc,
> Daniel M.
>
> ----- Mensagem original -----
> De: "Bruno Cabral" <bruno at openline.com.br>
> Para: "Grupo de Trabalho de Engenharia e Operacao de Redes" <
> gter at eng.registro.br>
> Enviadas: Segunda-feira, 13 de Maio de 2013 0:37:05
> Assunto: Re: [GTER] Packet Loss - Mikrotik
>
> Está rodando como script? Já tentou via API? Pode acelerar a execução (se
> forem muitas regras removidas/inseridas)
> !3runo Cabral
> --
> Cursos e Consultoria BGP
>
> Em 10/05/2013 22:31, Daniel Gurgel escreveu:
> > tempo de download e execução das regras via FTP estava demorando cerca
> de 30 minutos e para completar nesse meio tempo, toda a RB sofria de perda
> de pac
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>
--
gter list    https://eng.registro.br/mailman/listinfo/gter



More information about the gter mailing list