Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Entre para seguir isso  
Edvaldo

PC Linux como Gateway / Router multifuncional

Recommended Posts

Amigos,

Já andei papeando com nosso moderador Angelo, super entendido nesse ramo, mas achei melhor abrir esse post tanto para documentar os passos, se alguém quiser segui-los, quanto para que alguém possa me corrigir se estiver fazendo ou falando alguma coisa errada, pois sou bem inexperiente em linux.

Assim, aguardo comentários.

Minhas necessidades são:

- conexão com a internet eficiente e confiável

- duas redes internas separadas

- uma área DMZ

- funções de firewall, servidor DCHP, cache de DNS, proxy sem cache e acesso diferenciado para algumas estações

Meu projeto é montar um computador para atender estas necessidades.

Parte física da solução

O computador que vou utilizara é um P-II com 128Mb de RAM e HD de 2 Gb.

Na parte interna, para ter as duas redes separadas e uma DMZ, coloquei três placas de rede.

Na parte externa, para ter uma maior confiabilidade, tenho 2 conexões de banda larga. Hoje são 2 cable modem, mas em breve trocarei uma dessas conexões por um ADSL.

O esquema é o seguinte:

            \                             / PC \ 
            /                 |--------------------------|
      ...   \ - - - <>  ADSL -| eth0                eth2 |- Rede interna 01
   INTERNET /                 |                          |
      ...   \ - - - <> CABLE -| eth1      eth4      eth3 |- Rede interna 02
            /                 |--------------------------|
            \                             DMZ

Essa é a melhor solução? se alguém tiver outra sugestão, por favor indique.

Parte lógica da solução (I) - conexão externa

Por indicação do Angelo estou usando a versão Debian estável 3.1r2, instalado com o Kernel 2.6, que me agradou bastante pois nunca havia usado essa distro. Fiz a instalação básica e configurei as placas de rede para iniciarem junto com a carga do sistema:

eth0 - carrega as configurações via DHCP do cable modem (por enquanto)

eth1 - carrega também por DHCP

eth2 - IP estático 192.168.0.1

eth3 - IP estático 192.168.1.1

eth4 - IP estático 192.168.10.1

Para que as conexões sejam confiáveis e eficientes, elas devem se somar quando ambas estiverem funcionando, e caso alguma delas venha a cair, o fluxo deve ser transferido para a outra conexão de forma transparente e automática, assim como o reestabelecimento quando a conexão voltar a funcionar.

Encontrei bastante documentação para o uso de duas conexões à internet, e pelo que entendi existem dois métodos diferentes: "channel bonding" e "connection teaming".

O Channel Bonding é usado quando os dois (ou mais) links possuem programas simétricos de ambos os lados: um caso clássico de Multiplexação e Demultiplexação. Como estou planejando usar provedores distintos, esse método não se aplica.

O Connection Teaming, por sua vez, é unilateral e, embora não tão eficiente, é adequado às minhas necessidades. Por este método, o fluxo de saída é dividido entre as duas (ou mais) conexões, seja escolhendo os serviços entre elas (http em uma conexão e os outros serviços na outra) ou dividindo os pedidos de conexão por ordem de chegada, por exemplo. No meu caso, decidi pela segunda opção por oferecer redundância na conexão, aumentando a confiabilidade.

Outro termo relacionado é o balanceamento de carga, embora ele seja usado para dois conceitos diferentes. Um deles é o balanceamento da carga de requisições da internet para a rede interna, e é usado quando um único IP recebe muitos pedidos de conexão e estes têm que ser divididos internamente entre um pool de servidores (como imagino que seja o google, por exemplo: é fisicamente impossível que um único servidor dê conta do número de pedidos simultâneos). Esse tipo de balanceamento não é o caso.

O outro conceito de balanceamento é o da carga de saída. Digamos que uma conexão seja 100% mais rápida que a outra. Nesse caso, é justo que essa conexão receba 66% do fluxo de pedidos enquanto a outra ficaria com os outros 33%. Com a visão do lado de dentro dos links, essa divisão também é chamada de balanceamento de carga.

Bem, expliquei essa definição de termos para deixar claro que minha necessidade é:

- connection teaming usando duas conexões externas para provedores diferentes

- redundância e balanceamento de carga dividindo o fluxo de saída usando ambas conexões para todos os serviços

Em termos práticos, essas necessidades são atendidas pela dupla IPTABLES e IPROUTE.

E este é meu estágio atual: implementar a conexão externa usando as duas interfaces.

Até o momento encontrei várias páginas que tratam desse assunto. Vou listar aqui as que eu achei mais relevantes:

- ABUSAR - Esquema de uso de 2 links de banda larga, com boas indicações para aprofundamento.

- Basic Iptables - Debian-RedHat HowtoForge - Além dos exemplos, achei bastante útil para quem não conhece tanto o Debian pois indica qual script deve ir aonde.

- BrazilFW Firewall and Router - Versão Brasileira sucessora do Coyote Linux, com muitas discussões sobre roteamento e firewall.

- Script comunitário do IPTABLES - Artigo organizado pelo Angelo com um script construido a muitas mãos.

- Linux Advanced Routing & Traffic Control HOWTO - Excelente HowTo que aborda técnicas de conexões avançadas, inclusive os itens desse tópico.

- Redundant Internet Connections Using Linux - Excelente artigo com muitas referências e explicações passo a passo.

- Conexões redundantes à Internet - Versão brasileira simplificada do artigo acima. Qualquer semelhança eu não sei o que pensar...

- Dois links de ADSL em um mesmo servidor - Artigo com script. Mais simples, impossível.

- Software, Patches and Docs - Correções e complementos para o uso de múltiplas conexões à internet. Eu não verifiquei ainda essa página com muita atenção, mas ela foi indicada em muitas outras referências como 'necessária'.

- Load Balance, Bandwidth e QoS - Artigo em português com script, mas com poucas explicações.

- Construindo Roteadores com Linux - Curso de capacitação interna da RNP. Bastante didático.

- Balanceamento de Links - Tutorial em português com script completo.

Como a instalação que estou fazendo não repete com exatidão nenhum dos cases dessas páginas, acho que a saída é conciliar os conceitos e fazer as adaptações necessárias.

Por enquanto é só.

Se alguem tiver alguma correção ou acréscimo, por favor deixe indicado.

Abraços,

RedBeard

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Só para registro,

    Desisiti de implementar uma solução partindo de um Linux "geral".

    A versão atual do Brazil Firewall And Router permite fazer o que estou precisando e aos poucos a solução ficará completa. Os dois links de entrada já estão ativos e as duas redes internas já estão sendo servidas por um único gateway.

    Agradeço a quem se interessou pelo problema, e fica a indicação da solução.

    Abraços,

    RedBeard.

    PS. Cassiano, pode encerrar como resolvido.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Caro RedBeard,

    Estou praticamente a tarde inteira procurando no google, artigos a respeito de usar vários links de internet, e tudo que eu achei ate agora foi bem superficial. E finalmente eu te encontrei. Se tu puder tirar algumas dúvidas ficarei grato.

    O que eu estou procurando é usar 3 links de internet distintos em 1 computador, e fazer com que esse computador redistribua a internet para rede interna, com a finalidade de maximizar a velocidade da internet. Então pelo o que voce escreveu o que eu estou procurando é channel bonding? Existe algum software de windows para isso? Tu tem algum artigo sobre isso? Se funcionar so no linux o que tu me recomendaria?

    BlackBeard

    Só para registro,

    Desisiti de implementar uma solução partindo de um Linux "geral".

    A versão atual do Brazil Firewall And Router permite fazer o que estou precisando e aos poucos a solução ficará completa. Os dois links de entrada já estão ativos e as duas redes internas já estão sendo servidas por um único gateway.

    Agradeço a quem se interessou pelo problema, e fica a indicação da solução.

    Abraços,

    RedBeard.

    PS. Cassiano, pode encerrar como resolvido.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×