PessoALL,
Estou com um problema, uso MK RB 530A e um dos meus cartões Atheros 8602 plus de uma hora para outra caiu o sinal geral, passando a ter o Ack Timeout 408, esse valor é a causa do problema? Ou o cartão pifou?
Obrigado.
Versão Imprimível
PessoALL,
Estou com um problema, uso MK RB 530A e um dos meus cartões Atheros 8602 plus de uma hora para outra caiu o sinal geral, passando a ter o Ack Timeout 408, esse valor é a causa do problema? Ou o cartão pifou?
Obrigado.
opa..blz
isso é pq algum de seus clientes conectados nesse cartão ta com sinal ruim, sendo assim o mt assimila ack de 408 pra todos os clientes..ele pega o maior ack, no caso o 408. Entao resumindo, se tiver 1 cliente com sinal ruim e com ack alto...pode acabar interferindo em todos os outros clientes....aqui estamos começando a passar em todos os ruins e revisando...é a unica forma..
abraços..t+
Agradeço pela informação!
Muito bom, essa questão ae, muita gente no forum, cria post novos por esse problema de ping alto alto e Ack Timeout alto . Cliente com sinal ruim danifica o resto da rede ... cabos,conectores,pigtail, umidade ... etc.
Cartão pode apresentar perda de sinal tambem?
talvez voce instalou algum clinete que esta com sinal ruim
uma dica..
verifique cliente por cliente em wireless ->> registration
verifique o ack de cada cliente.. os que estiverem mto alto (acima de 100) voce deve ir no cliente e tentar reposicionar a antena.. ver se nao sao os cabos.. etc etc !!
fiz em uma repetidora aqui.. ficou mto melhor.. estou fazendo nas outras e tem dado bons resultados... para questoes comparativas...
um cartao com 70 clientes online... o ack ficava por ai.. 400... 410.. dps que sai "catando" os clientes com sinal ruim... o ack fica por volta dos 100 ... e o CCQ fica 95 a 100% ...
vai ae uma dica e uma ajuda pro pessoal pra pegar os ack altos..
adiciona esse script lá..ele lista nos logs todos os macs e seus respectivos ack...
:foreach i in=[/interface wireless registration-table find ] do={ :if ([/interface wireless registration-table get $i ack-timeout] > 30) do ={ :log info [/interface wireless registration-table get $i mac-address] ; :log info [/interface wireless registration-table get $i ack-timeout] }}
pra alterar o valor do ack, muda aqui "timeout] > 30) " para um valor desejado..
t+ e bom proveito...
esse script é só adicionar e mandar rodar? ele fica constante??
editado:
rodei o script...é só por pra rodar, ele no instante mostra todos os mac's com ack maior que 30 no caso que esta ai no log..
teria como adaptar esse script, para os que estiverem acima de 120 serem dropados??
valewww
tentei fazer mas nao consegui...se alguem ae puder ajudar...tmb tenho interesse...
abraços..t+
ao inves de dynamic eu fixei o ack na interface em 30, mas o correto é ajustar os clientes com sinal ruim.
Só lembrando, que caso sua AP nao esteja autenticando macs, que algum desses que estão conectados na AP com ack alto, pode ser alguém que tenha notebook por perto e conecta (mesmo sem navegar e funcionar).
Logo no inicio começamos a identificar macs estranhs conectados e fomos bloqueando. Já ajudou muito.
Outro detalhe: Se a grande maioria dos teus clientes estiver em um raio de 1km, nao adianta colocar uma AP-client mais forte em um cliente que está a 4km. Ele vai pegar o sinal, mas como a distancia é maior, a AP da tua repetidora vai tentar aumentar o ack para compensar a distancia.
Resumo: clientes distantes afetam clientes próximos.
Tem muito tempo que tento entender estes MTK e todos estas configuracoes e problemas.... E inlogico um equipamento tao robusto ser tao ruim e problematico.
Alguns dias atraz meu MTK reiniciava a cada 3 horas.... Só depois de colocar uma fonte de 19v por 4amp parou de reiniciar, agora tem outro que tem o mesmo problema reiniciar, a diferença ele e em 2.4 com 45 clientes... Alem do mesmo problema de outros que varios clientes estarem com o PIG muito alto. Nao consigo resolver este, mesmo lendo todo o Underlinux nada resolveu.
Temos varios radios aqui KOD-770 v5.3 ptbr em alguns deles com 60 clientes a 7km de distancia e funcionando muito bem com trafego de 2,5MB no total.
Consultei varios tecnicos e engenheiros de informatica e eletronica. E ambos acharam muito estranho um equipamento consumir 5amp com os componentes basicos que as mother boards possuem.
A grande duvida... realmente estes equipamentos estao sendo usados como deve ou foi projetado ?
Se sim o que faz ele ser tao ruim que o KOD e melhor neste item ?
Se nao o que falta melhorar para solucionar todos estes problemas ?
Não vejo a maneira que você trata a questão como correta.
Há inúmeras diferenças entre cada implementação (qualidade da energia local, poluição do espectro e tantos outros fatores).
São casos, e casos... não há como generalizar.
Tenho MK em routerboard RB 133 (é a mais fraquinha), há cerca de 3 meses no ar, com tráfego de 1.5 a 2Mb usando 3 cartões nessa máquina, e estimo que uns 90 clientes simultaneos nas 3.
Simplesmente perfeita.
Já tenho em um prédio, 3 servidores, com 5 ou até 6 slots pci (então já imagina a quantidade de antenas que tenho nesse prédio) (4 painés, 2 omni´s e mais diversas direcionais em 2.4 e 5.8).
E vejo como estáveis.
O problema é que há pessoas que colocam cartões de 200, 400 e até 600mw nessas RB e acham que vai aguentar. Elas são muito boas, desde que usadas de forma correta.
Quanto ao caso do ACK, se quiser resolver definitivamente, e só trocar os cartões básicos (geralmente Atheros) por cartões Prism (estou em busca dos cartões Teletronics). Esses não sofrem com esse problema do ACK.
Portanto para tudo há explicação.
Certo concordo com voce em tudo. Varias pessoas falaram ter estes equipamentos e funciona que e uma maravilha.
Porem apos estudar muito e como voce disse cada lugar e um tipo de estrutura é cada cartão com cada versão e um tipo de configuração.
Estou analizando muitos tipos de equipamentos e estruturas e estou quase certo que cada cartão aceita apenas 1 tipo de configuração e se inverter com outro cartão as mesmas configurações os problemas aumentam e muito.
2 duvidas quais cartões voce usa nesta torre e a fonte e de quantos volts e amperes ?
ninnguem sabe fazer essa regra mesmo???
postei no forum la do mikrotik.com
vamos ver se alguem me da uma luz la
valeww
No servidor, utilizo um com placa mãe com 5 slot's PCI, com placas AG 520, AG530 e também uma Teletronic.
Fonte: normal do PC
Tenho 2 servidores no mesmo local, com essas placas (sem ordenação alguma, simplesmente iria colocando uma ou outra).
Já na RB, tem os cartões R52H.
Fonte, mandamos fazer uma mais robusto por garantia. 24Vx1A
Já faz um mes desde a ultima mensagem.
Alguém conseguiu mudar o script para dropar quando o ACK do cliente estiver acima de determinado valor?
Galera, neste caso o ack timeout ficando com um valor muito alto fica ruim pra todo mundo, certo?
E se setar um valor fixo para o ack, tipo, 150. Quem está com sinal para ficar entre 1 e 150 conectaria e quem está com sinal ruim, ou seja, teria um ack acima disso nao conectaria?
Ou somente conectaria aqueles em que o ack batesse exatamente nos 150?
Carlos Picioli
seta o ack pra 61
61 = 6km ... eh um valor bom ..
alexandre estou colocando um ap cliente, nele tem a opção de ack devo colocar o mesmo do meu cartão? o sinal lá é bom (-60) porem ele quer aumentar e muito a distancia do computador até a antena e deixar varios pontos para ele conectar su notbook.
grato pela atenção.
Pow galera to com esse proplema tb, estou Usando uma RB532 + Cartão EnGenius EMP-8602, antes usava 1 Ovislink com AProuter, e os clientes conectavem numa boa com Ack timeout = 91, padrão do aprouter, queria definir o mesmo no MK só só está em dinamic, como faço pra definir valor fix no ack no MK não estou achando essa config.
Obrigado pela ajuda.
sou novato em mikrotik mas essa opção fica em <interface> depois clica na interface que está seu cartão, (exemplo: wan1) depois na aba <advanced>.
Eu acho esse valor de 91 muito alto isso daria em torno de 10 km, mas cada caso é um caso e quem acha não sabe nada.
Simples.
Digita o valor e aplica.
Vlw amigo foi isso mesmo que fiz, fixei o valor nesse campo, + meu proplema persisti tem 1 cliente meu q tá + ou - 1,5 Km tá pegando 75% de sinal e outro a 400mts q ta pegando 46%, antes com Ovislink com ack timeout = 91, os 2 clientes funcionava numa boa + agora qnd defino esse valor fica ruim pro + proximo e bom pro + longe, qual seria o valor ideal pra eu fixar pra ficar pros 2, acho tb q minha antena é culpada disso estou usando aquele DotWarp(Uma mer... é 1 cano com RGC 215 dentro) do ML, estou pra comprar uma Hypertec 12,5dBi ( http://www.snetcommerce5.com.br/ecommerce_site/index.php?pg=t1_ex_prod&codprd=84918&cd=ljndbh1.BUche&cat=hefbcd88/Ofhi&cats1=hiheZb9!}Pifi&cdgc=ghhZgd9![Sgj&sid=r6plg6t7lprbtiln88l4kevuj4-1210606937 ), algum já usou essa antena ? + uma nota meu MK tá dando -91dBm de noise margin isso é bom ?
Desde já agradeço a grande ajuda por parte do forum.
Olá Pessoal,
Seguindo a dica de nosso amigo thenet, fiz um script que mosta quantos estão acima de um determinado ACK e se definir a varíavel ele bloqueia o cliente e dropa ele. Testado em PC-AP com MKT 2.9.27 e RB com MKT 3.0rc6. Segue abaixo:
Código :
# Defina abaixo o valor mínimo de ACK :global ack 35; # Defina abaixo 1 para bloquear/dropar e 0 para não bloquear/dropar o cliente que estiver acima do valor mínimo :global block 0; # Defina abaixo a Interface :global interf "AP-Master"; # ============================================================================= # ATENÇÃO ! SO FAÇA ALTERAÇÕES ABAIXO, SE TIVER CERTEZA DO QUE ESTA FAZENDO # ============================================================================= :global total 0; :global mac ""; :global cliente ""; :log info "Listando Clientes com ACK acima de $ack ms:"; :foreach i in=[/interface wireless registration-table find interface=$interf] do={ :if ([/interface wireless registration-table get $i ack-timeout] > $ack) do={ :log info ("COMENTARIO: " . [/interface wireless registration-table get $i comment] . " - MAC: " . [/interface wireless registration-table get $i mac-address] . " - ACK: " . [/interface wireless registration-table get $i ack-timeout]); :if ($block = 1) do={ :set mac [/interface wireless registration-table get $i mac-address]; :set cliente [/interface wireless access-list find mac-address=$mac]; /interface wireless access-list disable $cliente; /interface wireless registration-table remove $i; }; :set total total+1; }; }; :if ($total = 0) do={ :log info "Parabéns ! Nenhum Cliente com ACK acima de $ack ms encontrado."; };
Abraços !
eu estava montando um desses.. mas o teu funcionou blz aqui.. hehe !!
vlww cara. !!
contribuindo mais... fiz uma alteração...
voce pode definir.. se vai apenas DROPAR o cliente, forçando uma reconexão. em alguns casos.. o cliente volta com ack baixo :)
Código :
# Defina abaixo o valor mínimo de ACK :global ack 30; # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo :global block 0; # Defina abaixo 1 para dropar e 0 para não dropar o cliente que estiver acima do valor mínimo :global drop 1; # Defina abaixo a Interface :global interf "wlan1"; # ============================================================================= # ATENÇÃO ! SO FAÇA ALTERAÇÕES ABAIXO, SE TIVER CERTEZA DO QUE ESTA FAZENDO # ============================================================================= :global total 0; :global mac ""; :global cliente ""; :log info "Listando Clientes com ACK acima de $ack ms:"; :foreach i in=[/interface wireless registration-table find interface=$interf] do={ :if ([/interface wireless registration-table get $i ack-timeout] > $ack) do={ :log info ("COMENTARIO: " . [/interface wireless registration-table get $i comment] . " - MAC: " . [/interface wireless registration-table get $i mac-address] . " - ACK: " . [/interface wireless registration-table get $i ack-timeout]); :set mac [/interface wireless registration-table get $i mac-address]; :set cliente [/interface wireless access-list find mac-address=$mac]; :if ($block = 1) do={ /interface wireless access-list disable $cliente; }; :if ($drop = 1) do={ /interface wireless registration-table remove $i; }; :set total total+1; }; }; :if ($total = 0) do={ :log info "Parabéns ! Nenhum Cliente com ACK acima de $ack ms encontrado."; };
exato.. eu desconecto todos que estao acima de 30 ... na maioria das vezes.. 80% volta com ack em 30 ... e os que novamente ficam com ack alto.. eu ja mando o tecnico urgente arrumar...
as vezes um cliente ficou com ack alto por causa de algum outro cliente.. (alguma coisa momentanea) ...
o ideal eh.. acima de 100 .. desconectar... rodar um script de 1 em 1 hora.. que cliente com ack acima de 100 .. seja desconectado.. :)
Olá Pessoal,
Segue abaixo o script para RouterOS 2.9.x ou inferior:
Código :
# Defina abaixo o valor mínimo de ACK :global ack 30; # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo :global block 0; # Defina abaixo 1 para reiniciar a Interface quando um cliente estiver acima do valor mínimo e 0 para não fazer nada # Obs.: Ative apenas no último dos casos, pois derruba todos clientes enlaçados na Interface :global intdis 0; # Defina abaixo a Interface :global interf "AP-Master"; # ============================================================================= # ATENÇÃO ! SO FAÇA ALTERAÇÕES ABAIXO, SE TIVER CERTEZA DO QUE ESTA FAZENDO # ============================================================================= :global total 0; :global mac ""; :global cliente ""; :log info ("Listando Clientes com ACK acima de " . $ack . " ms:"); :foreach i in=[/interface wireless registration-table find interface=$interf] do={ :if ([/interface wireless registration-table get $i ack-timeout] > $ack) do={ :set mac [/interface wireless registration-table get $i mac-address]; :set cliente [/interface wireless access-list find mac-address=$mac]; :log info ("COMENTARIO: " . [/interface wireless access-list get $cliente comment] . " - MAC: " . [/interface wireless registration-table get $i mac-address] . " - ACK: " . [/interface wireless registration-table get $i ack-timeout]); :if ($block = 1) do={ /interface wireless access-list disable $cliente; }; :set total total+1; }; }; :if ($total = 0) do={ :log info ("Nenhum Cliente com ACK acima de " . $ack . " ms encontrado."); } else { :if ($intdis = 1) do={ /interface wireless disable $interf; /interface wireless enable $interf; }; };
Obs.: Infelizmente nesta versão não é possível derrubar o cliente sem ter que derrubar todos os outros, sendo assim use a função por sua conta e risco.
Abraços.
Olá Leandro,
De uma olhadinha no post https://under-linux.org/forums/mikro...tml#post321341
Abçs.
no caso do ap2000 nao tem.. pois chipset prism nao usa ack ... usa outro sistema de temporização..
cartoes do tipo SENAO (com chipset prism) ... orinoco.. sao recomendados para este tipo de uso.. mto cliente pendurado... etc etc ambiente com mto ruido..
nos scripts do mikrotik
system > scripts
Tem como fazer parte do processo manualmente?
Digo, apenas derrubar o cliente sabendo o mac dele?
Talvez algo assim:
/interface wireless registration-table remove ___________
Agora o que iria após esse REMOVE..
Prevendo-se a versão 2.9.xxx
Atualmente fizemos manualmente copiando o cliente para o AccessList, e editando ele (Desmarcando e marcando) o Autentication em 2 processos manuais.
é a unica maneira encontrada.
primeiramente gostaria de agradecer a colaboração dos amigos..
o script ficou realmente muito bom!
eu utilizo a versão 2.9.27 aqui, e pelo que vi a função de DROPAR, nao funciona nela, estou correto?
se é isso mesmo, qual alteração no script poderia fazer pra ele 'liberar' os macs 'bloqueados' quando rodou o script?!
novamente vcs estao de parabens...otimo script que ajudará muitos aqui!
abraços!
bom, respondendo a minha propria pergunta...eu fiz e funcionou aqui!!
ele da um 'disable' no cliente e logo ja da um 'enable' em seguida...
suficiente pra pessoa reconectar e abaixar o ack!
novamente, agradeço o desenvolvimento desse script e eta ai a minha pequena mudança:
Código :
# Defina abaixo o valor mínimo de ACK :global ack 39; # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo :global block 1; # Defina abaixo 1 para reiniciar a Interface quando um cliente estiver acima do valor mínimo e 0 para não fazer nada # Obs.: Ative apenas no último dos casos, pois derruba todos clientes enlaçados na Interface :global intdis 0; # Defina abaixo a Interface :global interf "wlan1"; # ============================================================================= # ATENÇÃO ! SO FAÇA ALTERAÇÕES ABAIXO, SE TIVER CERTEZA DO QUE ESTA FAZENDO # ============================================================================= :global total 0; :global mac ""; :global cliente ""; :log info ("Listando Clientes com ACK acima de " . $ack . " ms:"); :foreach i in=[/interface wireless registration-table find interface=$interf] do={ :if ([/interface wireless registration-table get $i ack-timeout] > $ack) do={ :set mac [/interface wireless registration-table get $i mac-address]; :set cliente [/interface wireless access-list find mac-address=$mac]; :log info ("COMENTARIO: " . [/interface wireless access-list get $cliente comment] . " - MAC: " . [/interface wireless registration-table get $i mac-address] . " - ACK: " . [/interface wireless registration-table get $i ack-timeout]); :if ($block = 1) do={ /interface wireless access-list disable $cliente; /interface wireless access-list enable $cliente; }; :set total total+1; }; }; :if ($total = 0) do={ :log info ("Nenhum Cliente com ACK acima de " . $ack . " ms encontrado."); } else { :if ($intdis = 1) do={ /interface wireless disable $interf; /interface wireless enable $interf; }; };
Como ficaria um script para desconectar um cliente com ip "0.0.0.0"
Estou com este problema aqui, o cliente conecta mas nao fica com o ip (nao uso dhcp), quando desconecto o cliente, ele volta com ip correto.
Eu tentei por aquele script alterando ele mas não tenho experiência...