[FUG-BR] PF: Clientes Wireless por tras de um server NAT
Renato Botelho
rbgarga em gmail.com
Terça Agosto 25 12:37:47 BRT 2009
2009/8/25 Enio Marconcini -:- www.Enio.Pro.Br -:- <eniorm at gmail.com>:
> Antunes, sim eu entendi, a partir do meu note, eu consigo pingar os ips que
> estão fora do gw nat, porém o inverso não vai,
>
> o gw eu adicionei uma rota, mesmo assim nao vingou
>
> o máximo que eu consigo pingar é o ip da ether que está no server, passou
> disso não vai
>
> só pra detalhar, vou postar aqui o resultado do ifconfig e do netstat -r
>
> ether conectada ao switch principal da LAN, ao qual meu pc está conectado
> # ifconfig vr0
> vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
> ether 00:17:31:27:1c:06
> inet 192.168.0.13 netmask 0xffffff00 broadcast 192.168.0.255
> media: Ethernet autoselect (100baseTX <full-duplex>)
> status: active
>
>
> ether que está conectada ao note
> # ifconfig vge3
> vge3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
> ether 00:0c:42:1a:56:17
> inet 172.16.30.1 netmask 0xfffffff0 broadcast 172.16.30.15
> media: Ethernet autoselect (1000baseTX <full-duplex>)
> status: active
>
>
> # netstat -r
> Routing tables
>
> Internet:
> Destination Gateway Flags Refs Use Netif Expire
> default 192.168.0.6 UGS 0 1422 vr0
> 10.10.10.0/26 link#2 UC 0 0 vge0
> localhost localhost UH 0 118 lo0
> 172.16.30.0/28 link#5 UC 0 0 vge3
> 172.16.30.10 00:1e:4f:fe:31:d5 UHLW 1 5 vge3 941
> 192.168.0.0 link#1 UC 0 0 vr0
> 192.168.0.6 00:08:54:27:3a:8f UHLW 2 0 vr0 1179
> 192.168.0.42 00:1b:b9:c1:60:1c UHLW 1 1446 vr0 1120
>
> essas rotas foram adicionadas automaticamente, porem mesmo quando tento por
> manualmente, não funciona
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
Mais detalhes sobre a lista de discussão freebsd