+ Responder ao Tópico



  1. #1

    Padrão Velox + IP válido + nat para serv. web - pacotes não voltam

    Olá!

    Preciso de um caminho para seguir, enfim, alguma idéia sobre rotas :

    Tenho um computador, três placas de rede e dois ISPs.

    Um ISP é o Velox.

    O outro é um "ip fixo".

    Quase tudo funciona. Os pacotes para o ip fixo não voltam, esse é o problema:

    O que eu preciso é:

    As requisições feitas para o ip fixo devem ser redirecionadas para um servidor
    web (uma outra máquina que só faz isso).

    Todo o resto é apenas para navegação na internet pela rede interna.

    Está assim:

    eth0 -> 192.168.0.1 => rede interna
    eth1 -> sem ip => para o velox
    eth2 -> 200.x.x.x => ip fixo

    Bom... acredito que seja possível fazer o que eu quero com apenas essa
    máquina.

    Atualmente estou colocando uma máquina apenas para o ISP com ip fixo e outra
    para o velox, e isso é um disperdício, na minha opinião, devido ao tamanho da
    minha rede.

    Bom... acho (???!!!) que tenho problemas com rotas.

    Quando ocorre a conexão com o velox o gateway padrão da máquina se torna o
    gateway que o velox fornece:

    eth0 -> 192.168.0.1 => rede interna
    eth1 -> sem ip => para o velox
    eth2 -> 200.x.x.x => ip fixo
    ppp0-> 202.x.x.x => ip do velox

    gw padrão -> 202.x.x.111 => fornecido pelo velox

    Colocando as regras para compartilhamento da internet do velox e as de
    redirecionamento de porta para o servidor web, tudo funciona.

    As pessoas navegam e os pacotes com destino para o ip fixo vão para o servidor
    web.

    Só que eles só chegam no servidor web. Simplesmente não voltam.

    Acredito que seja por causa do gw padrão que o velox configura na máquina.

    IDA:
    01 - Usuário internet para 200.x.x.x (ip fixo) (eth2 no "firewall")
    02 - O "firewall" redireciona para servidor web 192.168.0.33


    Volta:
    01 - O servidor web devolve para "firewall" 192.168.0.1
    02 - Como o ip do usuário que solicitou a conexão não faz parte da rede
    192.168.0, então o pacote vai para o gw padrão, ou seja, o gw do velox.

    03 - Aí o pacote se perde pois deveria voltar pelo gw que nosso "ISP fixo"
    fornece, e não o do velox.

    Bom... imagino que a situação ideal seria:

    01 - Tudo o que for para o ip fixo 200.x.x.x (eth2) vai para o servidor web.
    02 - Tudo o que voltar pelo servidor web para a eth2, usa como gateway o
    gateway que o ISP "fixo" fornece, digamos, 200.x.x.1

    03 - Tudo o que for para outro ip que não seja o fixo, vai para quem
    solicitou.
    04 - E volta para o "firewall" que, por fim, envia a saída pelo gateway do
    velox.


    Enfim... primeiro eu gostaria de saber se o raciocínio é correto.

    Segundo, se há como fazer esse roteamento numa máquina com três placas e dois
    ISPs.

    Terceiro, por onde eu começo?

    Além do iptables, estou tentando usar o comando "route" de formas surreais
    pois não estou conseguindo nada além de bagunçar mais ainda as coisas.

    Não sei como fazer para, dependendo da solicitação (se para o servidor web ou
    simplesmente navegação) um pacote voltar pelo gateway de um ISP e outro
    voltar pelo gateway de outro ISP, apenas com o comando route...

    Alguém pode dar uma dica? Só falta acertar o comando route ou ele é inútil
    neste caso (penso que não) ?

    Só para ficar mais clara a minha rede:

    eth0 -> 192.168.0.1 => rede interna
    eth1 -> sem ip => para o velox
    eth2 -> 200.x.x.1 => ip válido
    ppp0-> 202.x.x.1 => velox

    202.x.x.2 => gw velox
    200.x.x.2 => gw do ISP do "ip fixo"

    192.168.0.3 => servidor web


    Valeu!
    Inkjet

  2. #2
    Beto
    Visitante

    Padrão Velox + IP válido + nat para serv. web - pacotes não voltam

    Amigo,

    Primeiramente procure utilizar somente o q vc sabe q funciona e q tem um bom conhecimento para isso.
    Acredito q algumas regras de iptables com nat resolvam seus problemas.

    #Regra para rede externa acessar seu servidor web
    iptables -t nat -I PREROUTING -s 0/0 -d ipdoseufirewall/máscara -p tcp --dport 80 -j DNAT --to ipdoservidorweb:80

    #Regra para volta do servidor web para qq lugar
    iptables -t nat -I POSTROUTING -s ipdoservidorweb/mascara -d 0/0 -p tcp --dport 80 -j MASQUERADE

    iptables -t nat -I POSTROUTING -s ipdoservidorweb/mascara -d 0/0 -p tcp --sport 80 -j MASQUERADE

    Provavelmente não tenha q fazer regra para enviar ao seu gw, pois ele deve estar padrão no caso de um # route -n
    Acredito eu q basicamente é isso pelo q entendi...

    ( )'s

    Beto

  3. #3
    dispatcher
    Visitante

    Padrão Velox + IP válido + nat para serv. web - pacotes não voltam

    Bastante interessante seu caso, mas acho que isso deve resolve-lo:
    No iptables :
    iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 80 -i eth2 -j DNAT to ipdoservidorweb:80
    iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0 -o eth1 -j MASQUERADE
    Uma explicaçao basica: quando se especifica a interface de entrada pro chain PREROUTING nao é necessario especificar caminho de volta pros pacotes. A maquina já sabera tomar a decisao adequada para gerenciar aquela conexao.
    Note que essas regras sao legais se seu servidor web for muito acessado pois com elas seu link de ip fixo ficara unica e exclusivamente com a funcao de responder conexoes na porta 80. Todo trafego restante saira pelo link do velox.
    Com relacao às rotas:
    route add -net 192.168.0.0 netmask 255.255.255.0 eth0
    route add default gw ipdogatewayvelox