Documento: MikroTik de a–Z para todos os níveis
Série: SuperN!MOC Cache - v. 0.6.1
Escrito por: Luciano Rampanelli – M4D3
O documento é um pouco extenso vou tentar publicar aqui as principais partes relativas a aceleração individual do serviço de cache, o material é de fácil entendimento e qualquer usuário com conhecimentos medianos será capaz de implantar. Ao final colocarei um link com o download do material completo incluindo as imagens que não consegui exportar para cá.
Dedico este material a meus dois amigos quase irmãos que participam comigo dessa nova empreitada, em especial a minha esposa que espera nosso terceiro filho e nossos dois filhos João Paulo e Luciano Jr. principais motivadores desta publicação.
“Como bons administradores da multiforme graça de Deus, cada um coloque à disposição dos outros o dom que recebeu” (1 Pedro 4, 10)
Fonte: cancaonova
As práticas relatadas aqui estão em uso desde 2007 em diversos provedores comerciais, até então este era um segredo comercial que passo a dividir com todos na busca de dias melhores na "nossa internet". As configurações aqui propostas foram na maioria são baseadas em observações, experimentação e simulação e estão de acordo com as normas e leis que regem os acessos a internet, as informações aqui compartilhadas são parte de algo maior e não foram copiadas ou tomadas em assalto de qualquer outro usuário mas são fruto do esforço individual deste que vos escreve, portanto faço este documento de uso livre para aqueles que assim necessitarem.
Chegamos a um ponto importante, tanto se ouve falar em CacheFull que a definição propriamente dita se torna confusa, seria um cache cheio ?
CacheFull na definição dos usuários que o utilizam significa enviar o conteúdo web normalmente do tipo multimídia e armazenado em proxy cache local para os usuários/clientes da rede furando o controle de banda convencional da “Queue Simple” utilizando para isso a marcação de pacotes e a “Queue Three” que comumente é utilizada para controle em sistemas de QoS.
O mais comum encontrado em dezenas de paginas web é baseado na marcação de pacotes contendo o parâmetro o que pode ser feito pela tabela “Mangle” na “Chain” postrouting, em seguida na aba “Advanced” em “Content” digite ‘X-Cache: HIT’ e siga para aba “Action” em campo de mesmo nome selecione ‘mark packet’ e em “New Packet Mark” digite cachefull. Sequer darei um exemplo utilizando a “Queue Three” por considerar que este método possui uma série de erros graves.
No entanto existe outro método possível que pode ser aplicado o qual relaciono abaixo alguns dos tópicos que considero mais importantes.
1 – Marcar os pacotes pelo “DSCP/TOS” e não pela “Content”, isso porque este segundo método além de inseguro é ineficaz e exige maior processamento.
2 – Informar por onde o trafego adentra ao MikroTik e/ou para onde segue, isso ajuda a diminuir a carga e evita que a marcação seja utilizada para enviar algum outro conteúdo forjado com a mesma marcação.
3 – Criar uma “Queue Type” que vai fazer o controle individua de uso do conteúdo previamente marcado.
4 – Criar uma “Simple Queue” que será responsável por limitar o tráfego que será enviado para determinada classe de IP’s. E inserir nela o controle individual como veremos a seguir.
1.1 - Comecemos marcando os pacotes, para isso acesse IP / Firewall / Mangle e insira uma nova regra, na abra “General” selecione a “Chain” prerouting, “Protocol” tcp, “In. Interface” EthCache, na aba “Advanced” em “DSCP(TOS)” informe o valor 18 que corresponde a marcação 72 no exemplo. Ainda na mesma regra na aba “Action”, campo de mesmo nome selecione a opção ‘mark connection’ e logo abaixo no campo “New Connection Mark” digite ‘conn_nimoc’. Clique em OK e esta pronta esta primeira regra, o que ela faz é identificar as conexões oriundas do servidor de cache e que contém a marca desejável recebida via “DSCP/TOS”, ainda falta marcar os pacotes dessas conexões o que faremos na segunda regra.
Dica: para saber como funciona a relação entre valores basta saber que 0 = 0, 1 = 4, 2 = 8, 3 = 12 e finalmente 18 = 72, portanto multiplique a marcação informada no MikroTik por 4 e vai obter o valor a ser configurado no parâmetro DSCP/TOS quando suportado pelo sistema de cache. NiMOC Power tem suporte a DSCP/TOS em diversos níveis.
1.2 – Adicione uma nova regra e na abra “General” selecione a “Chain” prerouting, e logo abaixo no campo “Connection Mark” selecione a marcação criada na regra anterior chamada ‘conn_nimoc’, vá até a aba “Action” no campo de mesmo nome selecione ‘mark packet’ e logo abaixo em “New Packet Mark” vamos colocar a identificação dos pacotes como ‘pack_nimoc’, tomando o cuidado de desmarcar “Passthrough” pois não queremos que o mesmo pacote esteja sujeito a receber outra marca depois dessa o que faria com que a marca anterior fosse sobrescrita inutilizando nossa primeira marcação.
3.1 – Em “Queue Type” adicione uma nova a qual daremos o nome de ‘nimoc_conecta’ levando o nome do servidor de cache mais o plano de acesso onde será utilizada. No campo “kind” selecione o tipo ‘pcq’ se não sabe como funciona cada controle de filas recomendo que busque no manual, o pcq é um dos mais práticos e faz muito bem o trabalho neste caso. No campo “Rate” podemos definir duas formas distintas de se trabalhar no caso do pcq, deixando o campo com valor 0 significa sem limite ou seja, o que for definido no queue pai será o limite e os casos que se enquadrarem neste queue type dividirão o valor do limite entre si, pode ser desejável em muitos casos, no nosso exemplo vamos definir o valor de 256k pois queremos forçar este limite individual, logo abaixo nos campos “Limit” e “Total Limit” vamos manter os valores padrões que são adequados para o que já configuramos anteriormente neste exemplo, é interessante que busquem estas informações nos manuais pois elas podem fazer a diferença entre um serviço congestionado e uma internet navegando solta. Na seqüência temos quatro possíveis opções de classificadores ou “Classifier”, vamos marcar apenas uma delas que é a “Dst. Address” ou seja do ponto de vista do servidor “por” endereço de destino.
3.2 – O próximo passo é criar o controle que irá utilizar a “Queue Type” recém criada, acesse “Queue List” e na aba “Simple Queue” criemos uma nova a qual iremos chamar de NIMOC-Conecta, em “Target Address” identifique os IP’s que serão de certa forma favorecidos por ela, no nosso caso os do plano “PC.Conecta” representados pela classe 10.0.0.0/24, nos campos “Max Limit” devemos nos preocupar apenas com o “Target Download”, explicarei logo mais, para este campo vamos utilizar o valor de 2M ou seja 2 Megas.
Seguimos para a próxima aba “Advanced” e nela selecionamos a “Queue Type” de nome ‘nimoc_conecta’ criada no passo anterior.
Chegamos no pulo do gato, temos agora um controle que restringe o consumo em 2 Megas para toda a classe de IP’s 10.0.0.0/24 que atende os clientes do plano de 128k sendo que o controle individual quem faz é a “Queue Type” a qual chamamos de ‘nimoc_conecta’, neste estágio você deve estar se perguntando como identificar os pacotes oriundos do cache para que tal controle seja somente para o conteúdo vindo do cache com a marcação que fizemos, para tanto ali mesmo na aba “Advanced” selecione em “Packet Marks” a marcação criada sobre os pacotes vindos do cache que chamamos de ‘pack_nimoc’. O último passo é fazer com que este controle seja sempre o primeiro na lista “Queue Simple” e para isso basta arrastar para a primeira possição da lista, caso vc utilize HOTSPOT irá precisar de um script para que cada vez que alguém logue no sistema ele redefina a ordem da lista jogando este controle pra primeira posição, como não é o caso do nosso exemplo vou tomar a liberdade e pular esta etapa.
Naturalmente como não marcamos tráfego de upload mesmo que tivéssemos colocado valores nos controles de upload eles não seriam utilizados, por este motivo não temos com que se preocupar.
Com a solução proposta espero liquidar de vez o chamado CacheFull que só traz dores de cabeça e deteriora completamente as conexões wireless, não que o que propomos aqui se implementado erroneamente também não o faça mas a proporção é de 100/1 quando comparado.
continua abaixo...