+ Responder ao Tópico



  1. #1

    Cool NAT não funciona INTERNAMENTE

    Meu povo, a tempos tenho um problema mas me acostumei e acostumei o órgão com a solução temporária. Inclusive já postei essa dúvida aqui no Fórum mas não obtive respostas de sucesso, talvez eu não sido claro, ou não tenha tido sorte mesmo, vamos lá.

    O problema é o seguinte, tenho diversos NAT em meu servidor, funcionam que é uma beleza... Mas funciona apenas para quem acessa de fora da rede, compreendem? Se por acaso eu for em casa e tentar acessar o host "http://intranet.www.dominio.com.br", o servidor interpretará minha regra e me redirecionará para um servidor interno sem problemas. Mas, se eu estiver DENTRO da rede em minha estação de trabalho e tentar acessar o mesmo host que redirecionará pro mesmo servidor, não funciona, simplesmente o navegador engata e fica realizando diversas tentativas. Abaixo as regras que uso:

    ## PORTAL
    ## 80 PARA 8080
    $IPT -t nat -A POSTROUTING -s 192.168.0.40 -d 0/0 -j MASQUERADE
    $IPT -A FORWARD -j ACCEPT -p tcp --dport 80
    $IPT -A FORWARD -j ACCEPT -p tcp --dport 8080

    ## intranet.www.dominio.com.br EQUIVALE a 200.xxx.xxx.xxx

    iptables -t nat -A PREROUTING -p tcp -s 0/0 -d "intranet.www.dominio.com.br" --dport 80 -j DNAT --to-destination 172.22.0.40:8080

    iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 192.168.0.40 --sport 8080 -d 0/0 --dport 80 -j SNAT --to 200.xxx.xxx.xxx

    ## FIM

    Ressalto, o NAT, pelo menos externamente, esta funcionando perfeitamente, inclusive para uma grande carga de conexões (chega a 300 simultâneo)

    Bom, espero por uma luz no fim do tunel.
    Grande abraço,

  2. #2

    Padrão

    Mas...se vc está dentro de sua rede, pra que precisa de redirecionamento????? Isso é trabalho pro DNS, ou se estiverem em subredes separadas, é trabalho do roteador, não é necessário nenhuma regra de nat.



  3. #3

    Padrão

    Não sei se você sabe mas, o NAT é simplesmente para "tradução" de endereçamento de pacotes de uma rede para outra.

    Se você só tem duas redes (1 LAN e 1 WAN) o NAT de fato não terá qualquer efeito.

    Como o companheiro do post anterior citou, isso se torna um trabalho para o DNS.

  4. #4

    Padrão

    Obrigado pelas respostas Frusciante e RicardoPerin.

    Bom, seguinte... Os serviços que meus usuários externos utilizam, meus usuários internos também necessitam utilizar.

    Com a resposta de vocês, posso concluir então que o ponto para a solução do meu problema esta meu servidor de DNS ?

    Abraço



  5. #5

    Padrão

    Como está estruturada sua rede?

    Onde estão os usuários? E onde estão os serviços?

    Se conseguir fazer este esquema aqui pra gente ver, creio que sera mais facil ajuda-lo.

  6. #6

    Padrão

    Citação Postado originalmente por Frusciante Ver Post
    Como está estruturada sua rede?

    Onde estão os usuários? E onde estão os serviços?

    Se conseguir fazer este esquema aqui pra gente ver, creio que sera mais facil ajuda-lo.

    USUÁRIOS EXTERNOS (casas, escritorios, comércio, etc)

    ROUTER ---|
    |
    | --- DNS --- WEBSERVER --- MAILSERVER --- PROXY/FIREWALL |
    |
    |
    | --- WWW INTERNO --- SERVER INT --- SERVER INT --------- |
    |
    |
    |--- USUÁRIOS INTERNOS --- USUÁRIOS INTERNOS -----------

    Péssimo para desenho, considere a linha lateral esquerda lá para a direita.

    Ou seja, os usuários EXTERNOS acessam através do NAT (no proxy/firewall) que aponta para o WWW INTERNO, E FUNCIONA.

    Já, se eu estou numa estação USUARIOS INTERNOS, e realizo a mesma requisição no navegador, ele não chega. É claro que eu posso tratar isso apenas usando o IP interno para meus usuários Internos (link na página com um script em PHP ou ASP que verifica se a conexão vem de dentro ou de fora), o problema é que esse método tem prejudicado os desenvolvedores.

    Então após o POST de vocês experimentei adicionar no DNS:

    intranet.www IN A 200.xxx.xxx.xxx (ja existia)

    e adicionei:

    intranet.www IN A 192.168.0.40

    Funcionou, mas... Lógico que gerou conflito e deu PAU para os usuários EXTERNOS... dois IP´s para um mesmo host...

    E agora? rss...

    Valeu moçada!



  7. #7

    Padrão

    Então, o lance é que existem 2 ip´s, mas somente um nome, ou seja, de dentro ou de fora, é só perguntar por intranet.www que já era...

  8. #8

    Padrão

    Citação Postado originalmente por RicardoPerin Ver Post
    Então, o lance é que existem 2 ip´s, mas somente um nome, ou seja, de dentro ou de fora, é só perguntar por intranet.www que já era...
    Sim, o IP 200.xxx.xxx.xxx é uma das interfaces EXTERNAS do Proxy (que faz o NAT), e esse IP 200.xxx.xx.xxx corresponde no DNS ao host intranet.www (intranet.www IN A 200.xxx.xxx.xxx).

    Já o 192.168.0.40 é o SERVIDOR INTERNO onde o NAT transfere a conexão vinda de fora.

    Eu experimentei adicionar o intranet.www IN A 192.168.0.40 para fazer com que meus usuários INTERNOS fossem jogados diretamente para esse IP quando solicitassem... Mas é claro, fazendo isso, gerei um conflito de DNS onde o acesso EXTERNO passou a ser prejudicado, pois gerou concorrencia entre os 2 IPS para o mesmo host.



  9. #9

    Padrão

    Voce tem algum servidor DNS configurado em sua rede?

  10. #10

    Padrão

    Citação Postado originalmente por Frusciante Ver Post
    Voce tem algum servidor DNS configurado em sua rede?
    Sim Frusciante, hospedamos diversos dominios por aqui. Repare a 4 posts atrás que tem um projeto (rss...) de esquema da rede.



  11. #11

    Padrão

    Ah sim claro...

    Bom então será bem fácil...

    É só dar prioridade de consulta DNS ao seu servidor DNS.

    A partir daí, voce utiliza somente o apontamento para o host internet...

    Ex:

    www.site.com.br IN A 192.168.0.1


    Então, qualquer um que tentar acessar ww.site.com.br, baterá no seu DNS, mas não ficará sabendo qual será o IP. Dessa forma, você aponta pra rede interna. E qualquer um acessa.

  12. #12

    Padrão sei lá mas não custa tentar...

    estou passando por um problema semalhante e estou aguardando ansiosamente a conclusão deste tópico...

    mas será que o problema não poderia (desculpe pela simplicidade) estar relacionado à máscara de rede?

    pois os ip´s que vc está informando estão em redes com máscara de rede distintas, e vc não informou a máscara do ip destino. desculpe se foi um palpite tosco, mas acho que toda sugestão pode ajudar...



  13. #13

    Padrão

    Citação Postado originalmente por denysiacanga Ver Post
    estou passando por um problema semalhante e estou aguardando ansiosamente a conclusão deste tópico...

    mas será que o problema não poderia (desculpe pela simplicidade) estar relacionado à máscara de rede?

    pois os ip´s que vc está informando estão em redes com máscara de rede distintas, e vc não informou a máscara do ip destino. desculpe se foi um palpite tosco, mas acho que toda sugestão pode ajudar...
    Frusciante, mas dessa forma vou comprometer o NAT, ja que na na regra iptables eu preciso que o tal host corresponda a um IP externo.
    Será que a unica solução pra isso seria um OUTRO servidor DNS, só que apenas rede interna? Afzz.

    denysiacanga, NAT é exatamente isso, redirecionar uma requisição de conexão que chega numa rede EXTERNA (200.xxx.xxx.xxx) para rede INTERNA (192.xxx.xxx.xxx).

  14. #14

    Padrão

    Senhores, são servidores DNS distintos, e NÃO podem ser usados tanto pela rede interna quanto pela externa, se esse for o caso é necessário que a máquina tenha 2 interfaces de rede.

    Também podem ser usadas VIEWS, eu seinceramente nunca usei, mas pequisem a respeito que pode ser uma solução.



  15. #15

    Smile

    é só pesquisar no google sobre views em dns, o piter punk escreveu um pdf no slackwarezine sobre o assunto.
    boa sorte