[FUG-BR] duvida ipfw+setfib+divert

Joel Cappellesso cappellesso em gmail.com
Quarta Maio 19 23:33:55 BRT 2010


Ola Pessoal,

Tenho duas saidas internet. O objetivo é criar uma tabela e fazer com
que alguns ips apenas utilizem o adsl. Enquanto outros utilizem a rota
padrão (radio)
Estou me batendo com o ipfw. Eu sei que quando ele dá match na regra
ele finaliza. Por isso mesmo estou com dificuldade.
Exemplo quero fazer liberações de forward ou bloqueio. Mas se adiciono
antes ele não faz o mascaramento. Segue o script mais abaixo. Se
alguem tiver um exemplo para me basear facilitaria.


fwcmd="/sbin/ipfw"
$fwcmd -f flush
#Controle loopback
        ${fwcmd} add 100 pass all from any to any via lo0
        ${fwcmd} add 200 deny all from any to 127.0.0.0/8
        ${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
#Table 1 = ips que utilizam o adsl como saida internet
        ${fwcmd} table 1 flush
        ${fwcmd} table 1 add 192.168.10.10
#Variaveis rede
       oif_adsl="nfe0"
        onet_adsl="192.168.0.0/24"
        oif_radio="xl0"
        onet_radio="192.168.2.0/24"
        # set these to your inside interface network
        iif="re0"
        inet="192.168.10.0/24"

#Tabela de roteamento
setfib 1 route add default 192.168.0.254

        ${fwcmd} add setfib 1 all from table\(1\) to any via ${iif} in

        #mascaramento saida adsl
        ${fwcmd} add 5000 divert 8669 all from table\(1\) to any via ${oif_adsl}

        #mascaramento saida radio
        ${fwcmd} add 6000 divert 8668 all from any to any via ${oif_radio}

        # Allow TCP through if setup succeeded
        ${fwcmd} add pass tcp from any to any established


fw# cat /etc/natd.conf
instance default
interface xl0
port 8668
dynamic yes
use_sockets yes
same_ports yes

instance natd2
interface nfe0
port 8669
dynamic yes
use_sockets yes
same_ports yes

fw# cat /etc/services |grep divert
natd            8668/divert # Network Address Translation
natd2           8669/divert # Network Address Translation


Mais detalhes sobre a lista de discussão freebsd