[FUG-BR] PF: Clientes Wireless por tras de um server NAT

Renato Botelho rbgarga em gmail.com
Terça Agosto 25 15:12:21 BRT 2009


2009/8/25 Enio Marconcini -:- www.Enio.Pro.Br -:- <eniorm at gmail.com>:
> 2009/8/25 Renato Botelho <rbgarga at gmail.com>
>
>> Eu não consegui entender ao certo seu cenário, mas vamos tentar
>> propor algo.
>>
>> Imagine o seguinte cenário:
>>
>> Rede A - 192.168.0.0/24
>> Rede B - 172.16.0.0/24
>>
>> Servidor (Gateway):
>> lan0 - 192.168.0.1
>> lan1 - 172.16.0.1
>> wan0 - 200.x.x.x
>>
>> no pf.conf dele:
>>
>> nat on wan0 inet from lan0:network to any -> (wan0)
>> nat on wan0 inet from lan1:network to any -> (wan0)
>>
>> no rc.conf dele:
>>
>> gateway_enable="YES"
>>
>> Isso vai fazer com que as conexões vindas de qualquer uma
>> das duas redes, com destino a internet sejam mascaradas com
>> o endereço da wan0.
>>
>> Estação da Rede A:
>>
>> IP 192.168.0.10
>> GW 192.168.0.1
>>
>> Estação da Rede B:
>>
>> IP 172.16.0.10
>> GW 172.16.0.1
>>
>> Como o ip forwarding está habilitado no GW, uma conexão que
>> sai da estação da rede A (192.168.0.10) com destino a estação
>> da rede B (172.16.0.10) seja direcionada para o GW, este por
>> sua vez já sabe onde se encontra a rede 172.16.0.0/24, pois
>> ela é a rede de uma das suas interfaces, direcionando o pacote
>> para lá. Quando o pacote voltar, o GW da mesma maneira conhece
>> a rede 192.168.0.0/24, portanto o devolverá para lá.
>>
>> No desenho que você mandou temos um cenário diferente, você
>> tem uma máquina da rede 192.168.0.0/24 que *não* é o GW da
>> rede sendo a única máquina que conhece a rede 172.16.x.x.
>>
>> Portanto, no seu GW você deve adicionar uma rota assim
>>
>> route add -net 172.16.x.x/24 192.168.0.3
>>
>> Com isso um pacote que partir da rede 192.168.x.x para a
>> 172.16.x.x usará o 192.168.0.3 como caminho.
>>
>> Lembrando que, esse servidor 192.168.0.3 precisa ter o
>> IP forwarding habilitado e *não* pode fazer nat de nada.
>>
>> Além disso, uma conexão que partir da rede 172.16.x.x para
>> a internet, terá que ser mascarada no seu GW, portanto, deverá
>> ter uma regra fazendo nat da rede 172.16.x.x
>>
>> nat on wan0 inet from 172.16.x.x/24 to any -> (wan0)
>>
>> Além é claro da regra já existente para fazer nat da rede
>> 192.168.x.x
>>
>> --
>> Renato Botelho
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>
> Olá Renato obrigado pelos esclarecimentos,
>
> no momento em que eu estou tentando ajustar isso, eu defino como sendo meu
> gateway este servidor que conhece a rede 172.16.X.X nele, então meu pc está
> usando ele como gateway, dessa forma eu consigo somente dar ping no ip
> 172.16.X.1 que está na ether deste servidor

Isso está errado, mude o seu gateway para o GW default da rede e adicione a
rota que eu citei no email anterior nele.

> então, meu pc é 192.168.0.10 por exemplo, e 192.168.0.11 é o ip deste
> servidor gateway cuja ether está na minha rede LAN, é este servidor que
> enxerga os outros Ips/Redes
>
> tentei algo assim
>
> route add -net 172.16.X.X/24 172.16.X.1 para dizer que para alcançar a rede
> 172.16.X.X deve-se passar pela ether que tem o ip 1, pois eu ja alcanço o ip
> 192.168.0.11 da ether que está na minha rede lan, estou certo?

Não, essa rota é errada ou desnecessária, se você a colocou no server ela
é desnecessária.

> o nat eu estou fazendo assim
>
> nat on $nic_externa from any to any -> ($nic_externa) para natear tudo,
> porém o acesso a net vem da ether que está conectada a minha LAN,
>
> para os clientes que estão por trás do nat usarão este servidor freebsd como
> gateway, mas olhando de dentro da minha LAN, este gateway será apenas como
> um outro computador
>
> voce disse de não poder fazer nat, o que eu não entendi direito, será que eu
> nao estou conseguindo pois este gateway esta nateando as conexões dos
> clientes?

Exato.

Tente remover o NAT desse server intermediário, ele não precisa disso,
remova também essa rota, pois ela não serve pra nada.

-- 
Renato Botelho


Mais detalhes sobre a lista de discussão freebsd