#  > Telecomunicações >  > Mikrotik >  >  Opção LOOP PROTECT mikrotik

## alextaws

Amigos, estou com um servidor e mikrotik instalado versão 6.37.1, observei algo talvez interessante nas interface do servidor, abrindo a interface possui uma guia chamada LOOP PROTECT, lendo no wiki da mikrotik, não sei se compreendi corretamente, peço até a correção do que eu estiver errado;
* Protege contra pacotes em loop na camada 2, assim desativando de imediato a interface que fez a requisição.

Por favor, se alguém estiver disposto a fornecer maiores explicações.

----------


## robertopc95

tenho muito interesse nisso

----------


## rubem

Tá familiarizado com o conceito de loop em rede?

Se você tem uma conexão via cabo, e paralelo a isso um PTP via wifi, com bridge nos 2 lados, o pacote pode ir via cabo do ponto A ao ponto B, e como há uma bridge também no wifi, voltar via wifi, porque o que está conectado no ponto B demorou mais pra responder que a bridge demorou pra enviar o pacote de volta ao ponto A. A bridge do lado A vai receber o pacote de volta, mas ela é burra e não sabe que é o que ela enviou, ela só vê que o destino é algo no lado B então ela envia pro lado B, e assim se cria o loop, o pacote ficar girando como besta, faz um loop pela rede indo e voltando por caminhos diferentes.

Não sei se a imagem ajuda:


Até tendo só 1 cabo de rede existe a possibilidade de loop, caso haja encaminhamento burro (Sem ver o MAC de destino de cada pacote pra enviar pra porta certa do switch) o pacote é enviado pra todas as portas existentes, inclusive pra porta de entrada! (Acho que só em hub tem isso).

O layer3 do pacote TCP é o layer que tem o MAC ADRESS de destino do pacote e seu IP, então um switch ou bridge em roteador que analisa o layer3 não cria loop, só quem trabalha apenas no layer2 (Switch comum) que faz isso, ele envia pra todo lado caso o MAC de destino não esteja conectado no próprio switch (Se tem 7 computadores, cada um com seu MAC, num switch, ele vai encaminhar o pacote certo pra cada um, mas com bridges no meio ele encaminha pra única porta restante (Digamos que tenham 2 portas em uso) qualquer pacote que chega com MAC que não é o do que está plugado nela (A RB em bridge tem um MAC, mas o MAC de destino do pacote é de um PC plugado via wifi lá no outro lado da rede depois de 2 switch e 2 bridges).

Os layers do sistema OSI são isso:


Esse layer 2, nomeado como "Ligação de dados", ele só faz o seguinto, o switch pergunta pra quem está no outro lado da porta: "Posso enviar, digo, tá pronto pra receber?", enquanto o outro lado não responder um "Tô pronto" o switch não envia o pacote. Já o switch layer 3 é o que vai perguntar: "Quem é você? Tenho um pacote pra enviar", ele só vai enviar o pacote SE o outro lado responder "Sou o João da Silva, pode enviar", caso o pacote seja endereçado ao João da Silva (E isso está no cabeçalho do pacote) ele envia.

STP e esse loop protect evitam isso mantendo um cache dos pacotes enviados, hora que chega um pacote igual ao enviado ele desabilita a interface pra evitar encher o cache de pacotes iguais pro processamento não ficar encaminhando pacote já encaminhado, o roteador não tem como saber que besteira o instalador fez, se tem loop físico mesmo ou não, então ele precisa fazer uma analise superficial, se voltou o que já enviado então é loop, desabilita uma das interfaces envolvidas pra evitar esse circulo vicioso que geraria perda de pacotes (Porque o pacote vai até o ponto final, mas no meio uma cópia dele volta, essa copia é re-copiada a cada ciclo, se o destino leva 10ms pra responder e o loop tem tempo total de 1ms, o retorno pelo loop chegará mais rápido que a resposta, o pacote vai ser reenviado consumindo banda cerca de 10 vezes, mas a cada ciclo um novo loop se forma, e 1 pacote vira mais de 100 pacotes em 10ms, em mais 10ms passa pra mais de 1000 e assim vai, se não houver limitação de tráfego e tiver rede rápida isso comerá toda a banda e vai travar a interface com milhares de pacotes chegando e o processamento analisando (O layer3) pra ver que esse pacote não é pra ele e descartando, esse processamento é leve mais um roteador comum consegue analisar 300 mil pacotes por segundo digamos, ele consegue encaminhar uns 50 mil mas analisar pra descartar ou repassar sem mudar nada ele consegue muito mais.

So pra ficar mais claro, o modelo OSI acho confuso quando colocam em camadas uma acima da outra, na verdade cada layer ACRESCENTA algum dado ao pacote, acrescenta um cabeçalho, esse cabeçalho fica só no começo ou no começo e no final, o primeiro dado que o chega num switch l2 é o dado que ele analisa (Ele nem analisa o segundo, já encaminha o pacote baseado no primeiro dado que leu), ol switch l3 ou o roteamento leem o segundo dado do pacote pra analisar:


Se fosse uma carta, *muito mal comparando* seria como se você mandasse uma carta pro vizinho, ele colocasse seu envelope em outro envelope e enviasse pro outro vizinho, e cada vizinho ia colocando o envelope anterior dentro de outro envelope, todo mundo colocando num canto do envelope algo tipo "Carta do João" e mais alguns dados, até chegar no vizinho do lado do Correio que iria despachar essa carta pelos Correios (Que é a internet, e tem malotes próprios e caminhões, sua carta vai embalada e outros pacotes e não dentro de outro envelope dos Correios), esse vizinho do lado do correios é o layer1, e ele não escreveu no envelope "Carta do João", tem que abrir o primeiro envelope pra ver de quem é a carta (Saberá que é do João, mas teria que abrir todos pra saber o conteúdo da carta). Sua carta original que é o dado de fato é o "dado" na imagem, e o envelope que você usou é o layer7. Um switch inteligente seria o que abre 2 ou 3 envelopes pra saber pra quem devolver a carta, um switch burro é o que joga pra qualquer um e diz "Não é meu, vai repassando até chegar em alguém que queira essa carta" (Imagina uma cidade onde as cartas são trocadas entre vizinhos, um switch inteligente diz o rumo que a carta deve seguir, um burro encaminha pra qualquer lado porque UM DIA ela vai chegar no destino, num sistema burro desse existe a chance da carta ficar em loop eternamente, mas em ethernet não é algo físico, um switch burro pode encaminhar o mesmo pacote por todas as portas, seria como duplicar a carta, fazer uma cópia de cada envelope e da carta (Sem analisar o conteúdo, porque digamos está tudo em caracteres russos ou chineses) e enviar uma cópia pra cada vizinho.

(Nessa comparação inexata quem abre o envelope encaminha e coloca os envelopes abertos de volta no lugar, fecha com cola bonitinho, essa rede de cartas é feita em boa parte dentro do seu computador, do layer4 pra cima é dentro do seu computador, só layer3 pra baixo é que é ethernet e wifi de fato. Dentro do seu computador o sistema operacional precisa saber pra qual software aberto entregar cada pacote)


A proteção contra loop seria manter uma xerox do envelope (Externo. Não precisa manter cópia de tudo) que enviou, e quando recebesse um, você analisasse os *últimos* envelopes que enviou pra ver se esse envelope não é um que já passou por você, e caso seja, parar de falar com o vizinho burro que tem entregou 2 vezes o mesmo envelope. STP ou *S*panning *T*ree (*P*rotocol) é bem isso, atua só no layer 2, não analisa o layer3. Esse controle de loop citado deve ser uma variação simples proprietária da MK, ou é só outro nome do protocolo STP, a MK não informa qual dos 2 é no wiki, como ainda tem opção de STP suspeito que é um protocolo proprietário que não entra em conflito com STP mas oferece algo extra. ESses controles consomem mais processamento, mas se não tiver CPU a 99% não faz mal habilitar, o único problema eventual seria ele desabilitar interface em definitivo, mas provavelmente ele só desativa as respostas dos pacotes que acha ser loop, não desativa tudo, ele não desarma o loop mas só ignora o que está em loop.

----------


## Treme

:Congrats:  agora eu entendi

----------


## alextaws

@*rubem*, suas explicações faço questão de ler em todos os post que comenta, muito boas, clareou mais a mente, de certa forma já tenho uma pequeno conhecimento de loop.

Então essa nova opção no mikrotik faz isso, desabilita interface que julgar estar em loop?

Existe algum problema se eu configurar isso nos meus concentradores e nos enlaces que tenho com mikrotik?

----------


## vagnerricardo

Pode até ativar, mas ele vai derrubar as interfaces quando fizer tal configuração é bom programar pra ativar o loopdetect...
assim não para sua produção.

----------


## alextaws

@*vagnerricardo*, ativando essa opção, ela seria pra detectar o loop e descarta o pacote?

Sei oque é loop é do que se trata, mais oque não compreendi é essa opção, to procurando em que cenário se encaixaria essa função, a não ser que fosse em um enlace, digamos duplo duas rbs ligado no switch do ponto A e duas rbs ligada no switch do ponto B, para passar mais banda. Não que eu tenha esse objetivo é apenas uma hipotese.
Eu ativei essa opção em um novo servidor que coloquei em produção. Mais até agora não vi nada de anormal ainda.

Claro em minha rede física esta corretamente montada

----------


## alextaws

@*rubem*, é ótimo ler suas explicações

----------


## rubem

Ele desativa pelo tempo que a aba Loop Detect tiver configurado, o default é aqueles 5 minutos pelo visto.

Não sei bem os efeitos de reduzir pra digamos 1 minuto, se tiver o watchdog configurado pra contraparte reiniciar caso não responda ping por X segundos ele pode de fato resolver um loop com o reinico, acho que seria uma boa colocar mais de 1 minuto pra dar tempo de reiniciar (Caso use o watchdog, coisa que acho que deve usar, com intervalo tipo 10 minutos (Pra reiniciar a cada 10 minutos quando fica sem ping).

Esse intervalo de envio de 5 segundos acho que não vale a pena mexer, mandar em intervalos menores não ajuda muito. Acho melhor se focar em não ter loop do que em testar mil variações da configuração na aba.





_________________________________________________________________
Edit:
Só agora eu fui olhar a wiki do MK sobre ele:
http://wiki.mikrotik.com/wiki/Manual:Loop_Protect
E ele não tem relação exata com o STP, o que ele faz é enviar um pacote próprio pra testar se tem loop, e desativa a interface caso tenha.

No exemplo das cartas, seria como se no meio dos envelopes brancos de todo mundo ele jogasse um envelope preto sem nada dentro, só pra ver se esse envelope preto volta, e se voltar deixar de falar com o vizinho (que entregou esse envelope) por 5 minutos.

Então de qualquer jeito pode usar ele com STP ativo ou desativado, são bem diferentes entre si, apesar de servirem pra evitar loop.

(A wiki fala que o default de envio é 5 minutos, mas fui olhar numa RB aqui que nunca tinha mexido nisso e está igual essa imagem, 5 segundos no intervalo de envio. Fazer teste só a cada 5 minutos realmente é pouco, rede lerda por 5 minutos é demais)

----------


## alextaws

@*rubem* mais uma vez muito obrigado por dedicar seu tempo nessa explicação, ficou mais claro agora.

----------


## wondernetwork

vc viu que em status! só fica em disable ou off.
nao consegui mudar essa opção....

----------


## alextaws

@*wondernetwork*. Esse status vai mudar se tu ativar a opção para ON.

----------


## Murilopeixotoalmeida

Boa Noite Amigos,

Em um cenário onde dois ptps são fechados (dois pontos A em um Switch e dois pontos B em outro), essa opção funcionaria como um backup no caso de uma das rbs travarem?

----------


## rubem

Essa opção é pra quando você *tem* um "backup" por outro par de antenas ou cabos, pra esse backup não criar loop. Loop é um círculo, quando o pacote vai e volta por caminhos diferentes forma um círculo, e um circulo é uma estrutura física, não tem como um software criar uma rede de backup pra quando um hardware tem problemas.

Se a RB travar, e todo seu tráfego passa por ela, não tem opção nenhuma que resolva. Dá pra ativar o wtachdog pra reiniciar caso fique X segundos sem responder um ping (Que o watchdog envia sozinho), mas se a RB travar não vai adiantar, travar a troca de dados mas também trava todo software agendado inclusive o reboot. Melhor investir em RB que não trave (Pode reiniciar ou cair sinal, mas travar não dá).

----------

