Agora que já falei o que é internet balanceada iremos começar com a instalação. Para isso iniciaremos recompilando o Kernel e instalando o path de correção das tabelas de roteamento.
Vou falar o motivo de instalar o path de correção e por que ele é tão essencial assim. No nosso proxy, toda a vez que vamos fazer um acesso a uma página ou fazer um download, o Kernel juntamente com as tabelas de roteamento redirecionam o trafego no proxy usando informações importantes como, o ip de origem, ip de destino, qual a internet de saída. É aqui que o path entra, caso o script do balanceamento esteja rodando, pela tabela de roteamento atual no Linux a comunicação é perdida, e simplesmente downloads grandes, sites ou programas que necessitam estar sempre enviando arquivos para a internet são desconectados, causando queda e a necessidade de recomeçar o envio novamente. Não seria bom perder aquele download que já estava em 90% 😀
Para usarmos o patch iremos instalar os seguintes pacotes, recomendo entrar como root, lembrando que se você precisar balancear duas conexões de internet com certeza já é um usuário experiente no sistema. Também não vou entrar em muitos detalhes aqui na recompilação do Kernel, no final do tutorial irei postar os links para os mais interessados.
# apt-get update # apt-get install kernel-package gcc libncurses5-dev # apt-get install linux-source-2.6.xx
… substituindo “xx” pela versão atual do seu Kernel. Se você não souber qual é a versão atual, você pode consultar com o comando, ‘uname –r’ e o comando ‘apt-cache search linux-source’
# apt-get install linux-headers-$(uname -r)
Feito isto, vá até a pasta onde está o ‘source’:
# cd /usr/src
E descompacte-o com o comando a seguir:
# tar -vxjpf linux-source-2.6.xx.tar.bz2 -C /usr/src
Aqui vamos baixar e começar a instalar o path de correção das tabelas de roteamento.
Entre no site: https://www.ssi.bg/~ja/
- Aqui dentro você encontra o link com o patch para atualização do Kernel.
- Dentro do site, procure por: Linux kernel patches e logo abaixo você encontra Older routes-2.6.* versions
- E baixe o patch correspondente ao seu Kernel
Exemplo:
Lembre-se de está na pasta /usr/src/
Rodei o comando “# uname –r” e descobri que meu Kernel é o “2.6.32-5-686”
Então eu vou baixar o patch:
# wget -c https://www.ssi.bg/~ja/routes-2.6.32-16.diff
Acesse o diretório linux-source-2.6.xx que foi criado. Todos os comandos a seguir são executados dentro dele.
# cd /usr/src/linux-source-2.6 [pressione TAB] # patch -p1 < ../ routes-2.6 [pressione TAB]
Tome muito cuidado aqui, verifique se deu algum erro, caso dê, repita todos os passos acima, veja abaixo o que deve aparecer:
patching file include/linux/rtnetlink.h patching file include/net/flow.h patching file include/net/ip_fib.h patching file include/net/netfilter/nf_nat.h patching file include/net/route.h patching file net/bridge/br_netfilter.c patching file net/ipv4/fib_frontend.c Hunk #5 succeeded at 274 (offset 2 lines). Hunk #6 succeeded at 925 (offset 2 lines). Hunk #7 succeeded at 961 (offset 2 lines). patching file net/ipv4/fib_hash.c patching file net/ipv4/fib_lookup.h patching file net/ipv4/fib_rules.c patching file net/ipv4/fib_semantics.c patching file net/ipv4/fib_trie.c patching file net/ipv4/netfilter/ipt_MASQUERADE.c patching file net/ipv4/netfilter/nf_nat_core.c Hunk #1 succeeded at 710 (offset -1 lines). patching file net/ipv4/netfilter/nf_nat_standalone.c patching file net/ipv4/route.c Hunk #1 succeeded at 696 (offset 1 line). Hunk #2 succeeded at 1427 (offset 1 line). Hunk #3 succeeded at 1876 (offset 1 line). Hunk #4 succeeded at 1887 (offset 1 line). Hunk #5 succeeded at 1952 (offset 1 line). Hunk #6 succeeded at 1986 (offset 1 line). Hunk #7 succeeded at 2020 (offset 1 line). Hunk #8 succeeded at 2028 (offset 1 line). Hunk #9 succeeded at 2049 (offset 1 line). Hunk #10 succeeded at 2086 (offset 1 line). Hunk #11 succeeded at 2134 (offset 1 line). Hunk #12 succeeded at 2149 (offset 1 line). Hunk #13 succeeded at 2175 (offset 1 line). Hunk #14 succeeded at 2185 (offset 1 line). Hunk #15 succeeded at 2228 (offset 1 line). Hunk #16 succeeded at 2279 (offset 1 line). Hunk #17 succeeded at 2302 (offset 1 line). Hunk #18 succeeded at 2351 (offset 1 line). Hunk #19 succeeded at 2435 (offset 1 line). Hunk #20 succeeded at 2517 (offset 1 line). Hunk #21 succeeded at 2629 (offset 1 line). Hunk #22 succeeded at 2637 (offset 1 line). Hunk #23 succeeded at 2677 (offset 1 line). Hunk #24 succeeded at 2685 (offset 1 line). Hunk #25 succeeded at 2731 (offset 1 line). Hunk #26 succeeded at 3513 (offset 6 lines).
Copiando as configurações do seu Kernel atual para o novo Kernel que está prestes a compilar, faça o seguinte:
# cp /boot/config-2 [pressione TAB] .config # make oldconfig # make-kpkg --append-to-version "-nome-personalizado" --initrd kernel_image
No meu caso eu troquei o “-nome-personalizado” por “-balanc”. Isso demora cerca de 25 minutos, dependendo da velocidade do seu computador.
lguest.c:37:18: error: zlib.h: Arquivo ou diretório não encontrado
instale o:
# apt-get install zlib1g-dev
faça novamente:
# make-kpkg --append-to-version "-nome-personalizado" --initrd kernel_image
Não se preocupe, ele não irá recomeçar do zero, apenas irá continuar da onde parou.
Ao terminar, saia do diretório atual:
# cd ..
E instale seu Kernel:
# dpkg -i linux-image-2 [pressione TAB]
Debian Lenny:
Agora iremos reconfigurar o grub para que ele possa iniciar com o novo Kernel.
# nano /boot/grub/menu.lst
Recorte e cole toda a referência do seu novo Kernel para acima das versões anteriores e salve.
Debian Squezee:
No Squezee é diferente a modificação no grub, já que ele possui o grub2.
# nano /etc/default/grub
Modifique a linha GRUB_DEFAULT colocando o número em que seu Kernel modificado aparece na lista.
Exemplo:
GRUB_DEFAULT=2
Reinicie o computador e veja se o Kernel foi instalado, rode o comando “# uname –r” e olhe o novo nome do Kernel.
Veja acima que o Kernel recompilado aparece em meu sistema: 2.6.32-balanc
Se tudo ocorreu bem, vamos passar para a parte de criar as regras.
Esta postagem foi modificada pela última vez em 19/05/2012 12:51