quinta-feira, 26 de julho de 2012

Squid com Marcação ZPH Cache Full


 Bem já faz um tempo que venho querendo postar um artigo aqui no blog, porém, o tempo tá curto e como não sou muito bom de didática, acabo sempre enrolando, mas enfim sobrou um tempinho e resolvi escrever algo que alguns amigos que lidam com pequenos provedores me perguntão e que também já utilizei. Trata-se de um cache full entre o Debian e o Mikrotik.
A idéia é a seguinte, fazer o Mikrotik buscar no cache do servidor Debian, e o que já estiver em cache não fazer o controle de banda. Para isso utilizaremos o ZPH (Zero Penalty Hit) que é um recurso do squid que permite a marcação de pacotes originados de algo que está em cache. Ele é usado principalmente em sistemas onde há controle de banda. Quando você faz a limitação de tráfego no servidor, os objetos que estiverem em cache também serão limitados quando solicitados. Com o ZPH você consegue saber o que não deve passar pelo controle de banda.

Instalação do squid.

Bem levando em consideração que já possuímos um squid instalado e devidamente configurado vamos proseguir, caso tenha alguma duvida acesse http://guiadoti.blogspot.com.br/2012/07/instalando-e-configurando-um-servidor.html. O Squid 2.7.STABLE9 vem com o patch do ZPH compilado, aqueles que quiserem utilizar outras versões do squid terão que verificar se a mesma vem ou não com o ZPH, por exemplo ate onde eu sei o Squid 3.0 não vem com ele compilado é necessario aplicar o patch na “unha”, caso necessário para maiores informações recomendo http://zph.bratcheda.org/


Configuração Squid.conf

No squid.conf (/etc/squid/squid.conf) além das linhas convencionais (para aqueles um pouco mais iniciantes segue um link de referencia além da instalação do squid tem as configurações básicas e sua respectivas explicações) acrescente as linhas abaixo:

zph_mode tos
zph_local 0x10
zph_sibling 0x10
zph_parent 0x10
zph_option 1

Configurações Firewall do Mikrotik

/ ip firewall nat
add chain=dstnat src-address=192.168.0.10/24 protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.2 To-ports=3128 \ comment=”Direciona para Proxy” disabled=no


/ ip firewall mangle
add chain=postrouting protocol=tcp src-port=3128 tos=48 action=mark-connection new-connection-mark=n-cache passthrough=yes \ comment=”Marca o com e sem TOS” disabled=no


add chain=postrouting protocol=tcp src-port=3128 tos=!48 action=mark-connection new-connection-mark=s-cache \ passthrough=yes comment=”" disabled=no
add chain=postrouting connection-mark=n-cache action=mark-packet new-packet-mark=Cache-Packet passthrough=no \ comment=”Libera cache full” disabled=no



E pronto!!! Todo o dito acima foi testado e implantado e encontra-se operante nos dias de hoje. Para quem utiliza o Debian ou outra distro no lugar do Mikrotik (acreditem é minha preferencia disparado rsrs) pode se usar o HTB TOOLS e CONNMARK no firewall para marcação das conexões ou MARK para marcação somente dos pacotes. Bem como dito la no inicio minha didatica não é muito legal mas acredito que tendo um ponto de partida pode-se estimular uma pesquisa mais profunda é isso que espero que aconteça rsrs. Valeu e ate a próxima

Oliveira Lima
oliveiralimajr@gmail.com

Nenhum comentário:

Postar um comentário