Iniciando
A máquina que configurei, foi um server Ubuntu 10.04 64 bits, dedicado para o seu fim, controlar o acesso na rede.
Hardware:
- Processador Intel Core i7
- Memoria DDR3 8 GB
- HD 80 GB (humilde)
- 2 placas de rede 10/100/1000
Segue o passo a passo de forma fácil e rápida. Forneci no decorrer do tutorial, todos os arquivos para ajudar.
Configure as placas
eth0 e
eth1. No meu caso, elas estavam desativadas.
Dê o comando, para subir as placas:
# ifconfig eth_ up
Dentro do
interfaces, configure as placas a seu critério:
# nano /etc/network/interfaces
No meu caso, a eth0 10.0.0.10 e eth1 10.0.1.10, máscaras 255.0.0.0.
Dê o comando:
# /etc/network/networking restart
Para aplicar a configuração das placas.
Após isso instale o BIND 9, servidor de DNS:
# apt-get install bind9
Configure o
resolv.conf para usar o DNS local, escrevendo dentro de
/etc/resolv.conf:
nameserver 127.0.0.0
Vale lembrar que, quando reiniciar, este arquivo se reseta, assim como as regras do IPtables. Por isso, adicione dentro de
rc.local, os comandos a executar em cada boot.
Neste caso, adicione a linha:
echo nameserver 127.0.0.0 > /etc/resolv.conf
Para gravar no boot o DNS.
Roteamento e algumas dicas de otimização do kernel
Agora, é hora de ativar o roteamento trocando o
0 por
1, no arquivo
/proc/sys/net/ipv4/ip_forward.
Este arquivo também se reseta em cada boot, por isso, adicione novamente, em
rc.local, a linha para gravar esta configuração no boot:
echo 1 > /proc/sys/net/ipv4/ip_forward
Instalar o DHCP, para que cada máquina que entrar na rede, assuma o IP e o gateway desejado, assim, aplicando as regras à mesma:
# apt-get install dhcp3-server
Segue o meu
dhcpd.conf, eu sempre uso meus arquivos prontos e simplesmente copio e faço as devidas alterações, para mim, facilita muito e agiliza a configuração.
# nano /etc/dhcp3/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.0.0.0;
option broadcast-address 10.255.255.255;
option routers 10.0.0.10;
option domain-name-servers 10.0.0.10;
subnet 10.0.0.0 netmask 255.0.0.0 {
range 10.0.1.1 10.0.1.100;
}
Li diversas mudanças de kernel em minha pesquisa, porém, sintetizei as que retornam melhores resultados e são fáceis de fazer, são elas:
1. Começar aumentando a quantidade de arquivos abertos, o padrão é 1024. Altera-se com:
# ulimit -n 16384
2. Confirmando a mudança com o comando
ulimit -a, na linha com o
(-n), caso continue 1024 refaça o comando.
3. Outra mudança boa aplicada, foi aumentar as conexões simultâneas, escrevendo ao final do arquivo
/etc/sysctl.conf as seguintes linhas:
####### TUNNING PARA SQUID ########
# Reduzir o tempo de limpeza da tabela ARP
# Expandir o seu tamanho
net.ipv4.neigh.default.gc_interval = 15
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 8192
net.ipv4.neigh.default.gc_thresh3 = 16384
# Aumento do numero de conexoes simultaneas
# Reducao do tempo de espera entre as conexoes
net.core.somaxconn = 20480
net.core.netdev_max_backlog = 2048
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_syn_backlog = 2048
###############################
Após escrito, dar o comando
sysctl -p, para ativar as mudanças.
Pronto, o tuning no kernel para otimizar o Squid está pronto.
Agora, continuamos.