Aceleração individual de conteúdo em cache por: M4D3
por
em 08-09-2011 às 03:06 (9898 Visualizações)
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á.
“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
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 individual 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.
O resultado dessa implementação é que o cliente ainda terá os 128k de download quando o tráfego for oriundo da internet porém ele terá mais 256k quando o conteúdo já estiver em cache totalizando uma banda de navegação de 384k fazendo o cliente muito mais satisfeito e o provedor muito mais econômico e competitivo com a banda disponível, como resultado temos uma melhora significativa em serviços com consumo de streaming, o cliente ainda consegue navegar pelos sites mais visitados e falar ao skype ou utilizar tecnologias similares gastando o mínimo de banda do seu link.
Espero que este e outros materiais que tenho disponibilizado em maior ou menor escala, abertamente ou a um grupo de seletos amigos tenha alcance e amplitude que o Pai me permitir.
Se você chegou até aqui parabéns, já consegui o que buscava ao escrever este material.
Os finalmentes:
E não esqueça de quando usar ou citar material de terceiro de incluir as fontes, isso não é vergonha pelo contrário é sinal de respeito e reconhecimento e também nos qualifica. Fórum é lugar de compartilhar, de ajudar, estou de volta após mais de 8 meses afastado dos fóruns e o que mais senti falta foi dos amigos do under-linux que é sem sombra de dúvida o melhor fórum da América Latina voltado ao público Geek.
Luciano Rampanelli / M4D3
Encontrou erros ? Quer fazer um comentário ? Dar sua sugestão ? Poste neste tópico e providenciarei a correção.
http://under-linux.org/f211/supern-m...r-m4d3-150210/
Comentários
+ Enviar Comentário