Ir ao conteúdo
  • Cadastre-se

Acesso via NAT a computador Windows com dois gateways


Posts recomendados

Pessoal, estou em um dilema aqui e espero que possam resolver. Não queria postar aqui, já que postei em outro fórum e é chato ficar espalhando a mesma dúvida, mas não souberam responder lá, então.. Segue.

Tenho uma máquina rodando Windows(PC1) dentro de uma rede que acessa a internet através de dois gateways. Como ambos estão na mesma rede, configurei o gateway G1 (rádio Ubiquiti) como padrão (métrica 1) e o gateway G2 (500B adsl II+) para redundância (métrica 2), já que a máquina precisa de acesso contínuo à rede. Fiz isso usando o recurso do próprio Windows, chegando ao esquema da imagem anexa.

Acontece que apenas o gateway G2 me permite a abertura de portas, e portanto só posso acessar PC1 via internet através de G2, que NÃO é o gateway padrão.

A pergunta é: porque isso funciona? Considerando que o gateway de menor custo é G1, PC1 não deveria tentar responder os pacotes provindos da internet, independente do caminho, via ele?

Esta dúvida provém de um outro problema, cuja solução eu conheço se não me falha a memória aqui do fórum, mas como ainda não fiz redes não conheço muito a respeito. Segue o problema.

Em uma mesma rede estão dois computadores PC1 e PC2. Coloco um roteador na rede, de forma que as portas WAN e LAN (não sei se existe uma nomenclatura mais técnica para tais) estejam também na rede. Quando faço PC1 acessar PC2 através de uma porta redirecionada pelo NAT ocorre um erro.

A explicação que li sobre isso é que PC1 envia, por exemplo, o pacote A para o NAT, que cria uma cópia do pacote, A1, a ser enviado para PC2. Como estão na mesma rede, PC2 responde A1 diretamente para PC1. Porém PC1 não reconhece o pacote A1 (já que enviou o pacote A) e desconsidera a resposta. Logo, a comunicação não se concretiza.

Baseado nessa resposta, conclui que no meu problema aconteceria algo parecido, sendo que eu enviaria o pacote A para G2 e este enviaria um pacote A1 cópia do pacote A para PC1, porém PC1 responderia através de G1, que seria o caminho de custo menor (métrica 1), logo enviando resposta a um pacote desconhecido pelo NAT em G1 e portanto impossibilitando a comunicação.

Como isso não acontece, gostaria de saber o que eu errei. Talvez tenha errado tudo e falado besteira, então por favor não me julguem, como disse ainda não fiz redes!

Só lembrando, não tenho um problema aqui! Tudo está funcionando perfeitamente como eu quero e o equipamento é de baixa qualidade por ser desnecessário investimento maior. Apenas quero saber porque isso funciona, já que, até onde sei, não deveria.

Agradeço a atenção!

 

semi-rede.jpg

Link para o comentário
Compartilhar em outros sites

@hilucas42

Boa tarde hilucas,

    Bom, acredito que você está misturando os conceitos de métrica e NAT.

 

vamos lá seguindo seu exemplo:

 

G1= 192.168.20.1/24

G2=192.168.254.1/24

 

PC1=192.168.20.2   <-- vou chamar esse de placa 1 100Mbps

        192.168.254.2  <-- vou chamar esse de placa 2 1Gbps

 

No seu exemplo você quer dizer que os dois Gateway's acessam  a internet de forma independente? quer dizer que você tem 2 IP's externos? Pelo desenho você tem 2 IP's externos porque você ligou o modem ADSL diretamente na internet, mas vamos tratar das duas formas.

 

Se a placa 1 tem velocidade de 100Mbps e a placa 2 tem velocidade de 1Gbps, ao acessar o facebook.com se você não definiu nenhuma métrica uma das maneiras que o Windows vai usar para escolher uma das placas é a velocidade delas, sendo assim encaminhando o tráfego para placa 2.

Se você definir a métrica 1 para a placa 1 e métrica 2 para a placa 2, o encaminhamento vai ser feito pela placa 1 porque você definiu manualmente.

Percebe-se que a métrica só está definindo o caminho padrão por onde os pacotes devem enviar dados, quando o endereço 192.168.20.2 inicia uma conexão, após sofrer NAT quando o pacote retornar o roteador tem uma tabela e já sabe que aquele pacote pertence ao endereço 192.168.20.2, isso quer dizer que se chegar um pacote que não foi iniciado por um IP da rede interna ele será descartado.

 

Para você conectar em PC1 você precisa abrir uma porta pra ele, como só G2 aceita abrir as portas vai ficar uma regra assim

192.168.254.2:2330 , eu defini que quero me conectar através da porta 2330.

 

Seu IP externo é por exemplo 104.25.33.13 ao tentar conectar em pc1 você faz 104.25.33.13:2330 como você já abriu essa porta para o IP 192.168.254.2 o IP vai estar dizendo lá na tabela "Olha só, o que vier na porta 2330 deixa comigo" sendo assim o roteador já  encaminha os pacotes para PC1 e a conexão é estabelecida.

 

Mas, e se a prioridade da métrica estiver para G1?

G1 é o padrão para os pacotes que estão saindo, G2 não está "morto", qualquer host na internet sofre diversos ataques por dia, grandes empresas recebem mais ataques, por isso é necessário um firewall bem configurado.

O  pacote chegou no roteador e disse que tinha alguma coisa para a porta 2330, o roteador verificou e viu que realmente tinha uma regra para o IP 192.168.254.2 daí ele deixa o pacote passar.

 

No caso de 2 IP's externos como você não definiu nenhuma porta para um IP interno de G1 tudo será descartado.

 

Agora essa segunda parte não entendi nada, você quer fazer NAT de LAN para LAN.

 

Bom, eu tentei falar de forma mais genérica possível espero que você tenha entendido algo.

 

Abraços.

 

 

 

 

 

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Olá @Roger_rabelo, obrigado pela resposta!

A segunda parte realmente é um NAT de LAN para LAN, que eu vi em um fórum (não lembro se foi aqui, não consegui encontrar para por o link) há um tempo atrás. O indivíduo tinha as máquinas PC1(10.1.1.1/24) e SVR(10.1.1.2/24)na LAN, mas queria que PC1 acessasse SVR via o NAT. Assim, supondo o endereço WAN do roteador G1(10.1.1.3/24), PC1 acessaria server fazendo 10.1.1.3:port, onde port seria a porta aberta em G1 para SVR.

 

Dado este problema, um membro explicou que não era possível, pois PC1 enviaria o pacote para o G1, onde o NAT faria uma cópia do mesmo para enviar para SVR. Porém como PC1 e SVR estão na mesma rede, SVR retornaria diretamente para PC1, e não para G1, como deveria. Assim, a comunicação não poderia ser estabelecida.

Não faço ideia do motivo de o cara querer fazer isso, mas quando fui utilizar o NAT no meu caso, lembrei desse problema e achei que não seria possível, imaginei que fosse ocorrer algo similar. Porém funcionou normalmente.

 

A resposta do membro explicando o porquê de não funcionar está correta nesse caso? Porque caso não esteja, minha dúvida estará sanada. Como disse, só fiquei em dúvida por cauda de esta explicação. Ou a analogia que eu estou fazendo não faz sentido?

 

Os dois links são completamente independentes, cada um de um provedor. Inclusive para alguns IPs o traceroute mostra rotas completamente distintas. As métricas foram definidas manualmente, já que o Windows dava prioridade à de maior velocidade, ao invés do que eu queria. Aliás, entendi tudo a sobre como PC1 realiza a comunicação com a internet, como escolhe qual link vai usar e como os pacotes retornam. O caminho inverso, acessando PC1 a partir da internet também entendi como os pacotes chegam até PC1 perfeitamente. Minha dúvida está apenas em como os pacotes retornam de PC1 para o computador que fez a solicitação, na internet!

Como disse antes, achei que aconteceria similar ao que aconteceu no exemplo do indivíduo maroto. Segue a minha lógica:

 

No caso dele, o pacote sairia do cliente, passaria pelo NAT e chegaria em SVR, de onde retornaria diretamente para o cliente, por estarem na mesma rede, não passando pelo NAT. Ou seja, o caminho mais curto.

 

No meu caso, o pacote sairia do cliente, passaria pelo NAT em G2 e chegaria em PC1, de onde retornaria para o cliente através do outro gateway, o G1, por ser o caminho mais curto.

Ou seja, eu relacionei os dois problemas por grafos, um problema de menor caminho. Será que errei nisso? O retorno do pacote nos dois casos acontece de forma diferente?

Link para o comentário
Compartilhar em outros sites

@hilucas42

 

Quando você acessa o https://www.google.com através de PC1 o roteador envia como exemplo 201.16.134.84:443

neste momento o router abre uma porta alta qualquer  assim PC1:37708

 

PC2 também acessa o www.google.com e envia 201.16.134.84:443

é criado na tabela PC2:45128

 

PC1 pesquisou "carro vermelho" no google, quando o pacote retornar, o roteador já vai saber que PC1:37708 que pesquisou carro vermelho pois foi ele que iniciou essa conexão.

 

Em outras palavras o NAT (Network Address Translation) serve para fazer a comunicação da rede interna com a rede externa.

porque o IP do google 201.16.134.84 não sabe quem é 192.168.1.10.

 

Por isso não estou vendo sentido em fazer NAT de LAN para LAN.

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

@Roger_rabelo  eu compartilho de sua definição de NAT, e também não faço ideia por que raios o meliante queria fazer isso. O que quero aproveitar do exemplo é apenas a explicação do cara, sobre como os pacotes trafegam, talvez fica um nível abaixo do que estamos falando.

 

Por favor, veja se o que sei até agora confere. Creio que isso me dará uma base muito mais solida para entrar na cadeira de redes.

 

Quando o cliente localizado na sub-rede inicia a conexão com o servidor na rede, o roteador abre uma porta apontando para o cliente e informa ao servidor que o pacote deve retornar através dela, já que no estado ocioso o cliente "enxerga" o servidor, mas a recíproca é falsa.

Quando o cliente está localizado na rede o servidor está na sub-rede só é possível conexão se a porta já estiver aberta. Assim, o cliente se conecta ao servidor através da porta, porém o servidor enxerga o cliente naturalmente. Logo, para o servidor, o "endereço de retorno" continua sendo o do cliente, e não o do roteador, como no caso anterior.

É isso mesmo ou falei besteira? Porque se esta mecânica estiver errada a minha dúvida some, e é substituída por várias maiores ainda sobre como realmente funciona o tráfego de pacotes entre duas redes! =P

Caso seja verdade, entendo a impossibilidade de resolução para o problema do indivíduo perfeitamente: o cliente acessa o servidor via a porta aberta pelo NAT, mas quando o pacote retorna, em vez de passar pelo roteador novamente ele vai direto para o cliente e a comunicação falha. (Penso que talvez fosse possível se fossem diferentes segmentos lógicos, mas não vamos complicar mais)

E então no meu caso, quando eu, na internet, acessasse o computador, meus pacotes trafegariam até G2, onde o NAT os redirecionaria para PC1. PC1, porém, conseguiria me "enxergar" através de G1 e G2, e como G1 é o caminho "mais curto" para me alcançar (definido manualmente pelas métricas), ele retornaria os pacotes através dele. Ao chegar em G1, os pacotes seriam impedidos, já que não houve pedido de conexão através dele (foi feito a conexão através de G2), e a conexão deveria falhar.

Outra coisa que me ocorreu agora, mas acho que é viagem.. Será que meus pacotes estão indo através de G2 e, como G1 não tem um firewall eficiente, os pacotes estão retornando via G1? kkkk acho que viajei! =P

Mas claro, estou olhando isso em um nível bem alto, talvez se eu entendesse como funciona a coisa toda a um nível mais baixo eu entenda melhor. Teriam algum texto bom para me indicar sobre isso? Aliás, isto é redes ou comunicação de dados?

 

Link para o comentário
Compartilhar em outros sites

@hilucas42
 

"E então no meu caso, quando eu, na internet, acessasse o computador, meus pacotes trafegariam até G2, onde o NAT os redirecionaria para PC1. PC1, porém, conseguiria me "enxergar" através de G1 e G2, e como G1 é o caminho "mais curto" para me alcançar (definido manualmente pelas métricas), ele retornaria os pacotes através dele. Ao chegar em G1, os pacotes seriam impedidos, já que não houve pedido de conexão através dele (foi feito a conexão através de G2), e a conexão deveria falhar."

 

Você continua misturando os conceitos de NAT e métrica, talvez por minha culpa em te passar de uma forma que só piora kkkk

 

Se a conexão entrou por G2 através da porta 2330 que já estava definida no G2, como ela vai sair por G1 se o Gateway padrão da placa de rede de G2 não é G1, e não tem nenhuma porta 2330 aberta em G1, e também nenhuma conexão iniciada com o IP externo que está em G2 para G1.

 

Como você disse que quer aprender muito como funciona os pacotes, não sei se você já utiliza o Linux, porque sua duvida rodou no Windows.

Te recomendo qualquer distribuição Linux e o estudo do Iptables, e não tem estudo melhor que o site oficial sobre netfilter

http://www.netfilter.org/projects/iptables/

 

Com iptables você pode criar logs e saber tudo que está acontecendo na rede.

 

Abraços.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

@Roger_rabelo realmente acho q meu conhecimento ainda é bastante superficial para tirar conclusões! Uso Debian, mas nunca entrei a fundo na configuração de rede, no máximo usei wpa_supplicant e coisinhas assim.. Vou acessar o conteúdo que você me passou e estudar um pouco. Obrigado!

 

Se a administração do fórum me permite, gostaria de deixar o tópico aberto para postar minhas conclusões tão logo eu esteja apto para tal.

Obrigado!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!