[FUG-BR] Problemas de NAT com redes internas diferentes

Wesley Miranda FreeBSD Consult lista em freebsdconsult.com.br
Quarta Setembro 10 12:07:54 BRT 2008


Citando
----- Original Message ----- 
From: "Adriano Lima - Marlin" <alima em marlin.com.br>
To: <freebsd em fug.com.br>
Sent: Wednesday, September 10, 2008 10:59 AM
Subject: [FUG-BR] Problemas de NAT com redes internas diferentes


Prezados,

       Solicito a ajuda de vocês para a resolução de um problema que
enfrento recentemente com o natd do FreeBSD. Vou descrever rapidamente o
cenário:

Possuo um servidor com FreeBSD 7 Instalado e servindo de gateway para duas
redes diferentes, cada rede está em uma placa de rede diferente como no
desenho abaixo.


201.xxx.xxx.xxx
    |
   Xl0
[FreeBSD] xl1 - 10.190.10.0/24
   Xl2
    |
192.168.0.0/24


O dummynet está compilado corretamente, assim como o ipfw. O nat funciona
sem problemas para uma única rede, a outra rede não consegue enviar as
solicitações mas não recebe as mesmas. Estou utilizando o rc.firewall padrão
do FreeBSD e o firewall está em modo simple, utilizei a regra padrão para
nat do rc.firewall mas não funcionou e ao colocar regras especificas só
funciona o da primeira rede informada (10.190.10.0/24).


        case ${natd_enable} in
        [Yy][Ee][Ss])
                if [ -n "${natd_interface}" ]; then
                        #${fwcmd} add divert natd all from any to any via
${natd_interface}
                        ${fwcmd} add 101 divert natd all from
${inet}:${imask} to any via ${natd_interface}
                        ${fwcmd} add 102 divert natd all from
${dinet}:${dimask} to any via ${natd_interface}
                        ${fwcmd} add 103 divert natd all from any to ${oip}
                fi
                ;;
        Esac

Alguem já realizou esse tipo de nat com o natd ou ipfw?

Desde já agradeço a ajuda

[]'s

Nano Lima


----

Adriano,

Uma sugestão simples seria a seguinte;

Veja a estrutura;

rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255

O que eu fiz criei um alias 10.x
ifconfig rl0 alias 10.10.1.1 netmask 255.255.255.0

Ficando da seguinte forma.
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        inet 10.10.1.1 netmask 0xffffff00 broadcast 10.10.1.255

Logo em seguida criei um nat.
/sbin/natd -u -dynamic -interface rl0 -p 8669

(root em mail)(/etc) ping 10.10.1.1
PING 10.10.1.1 (10.10.1.1): 56 data bytes
64 bytes from 10.10.1.1: icmp_seq=0 ttl=64 time=0.802 ms
64 bytes from 10.10.1.1: icmp_seq=1 ttl=64 time=0.511 ms
64 bytes from 10.10.1.1: icmp_seq=2 ttl=64 time=0.474 ms

Essa solução deve resolver seu problema. Caso essa não for a sua solução 
descarte a mensagem.

Abraço.

Wesley Miranda
FreeBSD Consult
Tel (31) 2526 8616 (31) 9356 1828
DTI - Departamento de Tecnologia da Informação
dti em freebsdconsult.com.br
www.freebsdconsult.com.br




Mais detalhes sobre a lista de discussão freebsd