Encaminhando meu tráfego para outro servidor em vez das rotas padrão do ISP

2

Suspeito que o meu ISP tenha acordos de peering bastante pobres, causando um acesso lento a vários sites que visito regularmente. Eu determinei esse fato fazendo proxy do tráfego da minha Web para um servidor que coloquei em um data center em algum lugar próximo e percebendo uma melhora tremenda na minha experiência de navegação. Então, tenho certeza de que minha última milha é relativamente limpa, me dando o quanto é anunciado, enquanto os uplinks do meu ISP estão causando problemas.

Eu gostaria de dar um passo à frente do proxy e rotear todo o tráfego de minha casa através do meu servidor, já que os arranjos de peering do data center parecem ser muito melhores. Como devo fazer isso? Eu pensei em 2 maneiras possíveis:

  1. Configure uma rota estática do meu roteador doméstico para o servidor. Eu suponho que teria que configurar a pilha IPTable do servidor para atuar também como um roteador?
  2. Configure o OpenVPN no meu servidor e configure clientes OpenVPN em todos os PCs da minha casa.

Gostaria de receber alguns comentários sobre qual abordagem seria melhor. Meu servidor está rodando Debian, meu roteador doméstico está rodando o firmware Tomato no topo do Linksys WRT54GL e os PCs em casa estão rodando variantes do Ubuntu.

Obrigado! Wong

    
por feicipet 25.07.2010 / 08:26

3 respostas

1

A opção 1 está fora de questão, não há nenhuma maneira (que funcione) de dizer ao seu ISP para rotear seus pacotes de maneira diferente.

A opção 2 funcionará. Basta configurar uma conexão openvpn, definir uma rota estática para o seu servidor através do gateway padrão do ISP (aquele que você normalmente tem para todo o tráfego) e, em seguida, configurar seu gateway padrão para o IP do terminal openvpn do seu servidor. Talvez você queira remover alguns serviços (por exemplo, servidores DNS), adicionando rotas estáticas adicionais aos IPs de destino (os servidores DNS) por meio do gateway do seu provedor.

    
por 13.11.2010 / 10:10
0

O firmware Tomato provavelmente é melhor, mas os firmwares de roteamento ruins geralmente não permitem que você configure o roteamento adequadamente. E, às vezes, quando parecem fazê-lo, não o fazem, porque inserem suas rotas padrão em lugares que você não pode alterar e, portanto, não tem controle.

No entanto, além disso, acho que você deve configurar seu servidor como gateway padrão em seu roteador e ativar o encaminhamento de IP no servidor (/etc/sysctl.conf). Usar o OpenVPN é basicamente o mesmo, exceto que também o criptografa; O openVPN altera sua tabela de roteamento da mesma forma que você faria manualmente.

Uma das razões pelas quais eu não optaria pelo OpenVPN, é porque quando você o configura para que todo o tráfego da Internet seja roteado (com push 'redirect-gateway def1' e push "dhcp-option DNS xxxx"), é que isso cria alguns aborrecimentos. Por exemplo, os servidores DHCP locais não estão mais acessíveis, para que sua conexão falhe quando a concessão terminar.

Além disso, uma rota especial é feita para redirecionar todo o tráfego para o endereço IP do seu servidor para passar pelo dispositivo TUNx. Isso significa que seu servidor não está mais acessível por seu IP original. Normalmente isso não é problema, porque você pode usar seu endereço VPN para alcançá-lo (o servidor VPN está disponível em um endereço especial), mas se você tiver um servidor web rodando nele, ele deve estar disponível no endereço IP em seu computador. Registros de DNS A, caso contrário, os hosts virtuais não funcionarão.

    
por 25.07.2010 / 10:35
0

Você precisará de algum tipo de túnel IP para garantir que o tráfego acabe em seu servidor localizado; isso PODE ser mais fácil usando o OpenVPN ou semelhante.

Se houver roteadores entre o roteador doméstico e o data center (mais provável), basta configurar o gateway padrão em seu roteador doméstico como servidor do datacenter, fazendo com que o roteador doméstico não seja capaz de enviar QUALQUER tráfego (como "próximo salto" não estaria conectado localmente.

EDITAR:

A necessidade de algum tipo de encapsulamento é que os roteadores intermediários não saberão que você deseja que o pacote passe pelo seu servidor. Usando qualquer encapsulamento de encapsulamento (IP-in-IP, GRE, VPN IPSEC completa, SOCKS ou qualquer outra coisa), o pacote mais externo é destinado ao seu servidor, onde o encapsulado pode ser extraído e enviado.

Você pode precisar NAT dos pacotes em seu servidor, para garantir que os pacotes de retorno sigam a mesma rota, ignorando as disposições de peering do seu ISP (eu assumi que você tem uma taxa de transferência decente para o servidor co-localizado, aqui ).

Usando seu servidor como um proxy da Web, há duas sessões TCP estabelecidas. Um é da estação de trabalho para o servidor, o segundo é do servidor para o servidor da Web.

    
por 25.07.2010 / 11:18