Ir ao conteúdo
  • Cadastre-se

PC Linux como Gateway / Router multifuncional


Edvaldo

Posts recomendados

  • Membro VIP

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

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...
  • 4 meses depois...
  • Membro VIP

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.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

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.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...