+ Responder ao Tópico



  1. #1

    Lightbulb COMPARTILHAMENTO DE INTERNET USANDO FREEBSD COM MODEM ADSL EM BRIDGE

    Pessoal muita gente procura essa informação na internet eu mesmo, tive muita dificuldade pra encontrá-la na primeira vez, então estou aqui trazendo criando esse tutorial para todos.

    1º PASSO

    Se o seu modem está roteado, reset nele, e configure em bridge para a operadora de sua região. Não vou fazer tópico pra isso.

    2º PASSO ( PARTE FREEBSD)

    Primeiramente uma dica: eu utilizava o shell bash na conta root, e toda vez que tentava configurar o pppoe, ele dava erros e não iniciava junto com o sistema, então para usar modem em bridge discando pppoe no freebsd deixa a conta root com o shell sh ou csh ok.

    TOPOLOGIA DO SERVIDOR FREEBSD:

    rl0 - > placa de rede ligada ao modem adsl em bridge usando dhcp

    rl1 -> placa de rede ligada ao switch para compartilhar a internet com outros computadores ip: 192.168.10.1


    bom vamos lá

    PRIMEIRAMENTE ANTES DE TUDO, PRECISAMOS RECOMPILAR O NOSSO KERNEL PARA TERMOS ACESSO AS OPCOES DE COMPARTILHAMENTO E OPCOES DE NOSSO FIREWALL IPFW. COMO FAZEMOS ISSO, VEJA ABAIXO:

    no console de comando do freebsd, vamos fazer o seguinte:

    cd /sys/i386/conf [enter]

    cp GENERIC NOMEDOSEUKERNELPERSONALIZADO
    (NO MEU CASO VOU DAR O NOME DE MYKERNEL)

    incluir dentro do MYKERNEL PODE SER AO FINAL OU NO INICIO DO ARQUIVO O SEGUINTE, VOCE PODE USAR O EDITOR DE TEXTOS
    ee ou o vi, como queiram

    se for usar o "ee", então: ee MYKERNEL, adicione as linhas abaixo

    options IPFIREWALL
    options IPFIREWALL_VERBOSE
    options IPFIREWALL_VERBOSE_LIMIT=100
    options IPFIREWALL_FORWARD
    options IPFIREWALL_DEFAULT_TO_ACCEPT
    options IPDIVERT
    options DUMMYNET
    options NETGRAPH
    options NETGRAPH_PPPOE
    options NETGRAPH_ETHER
    options NETGRAPH_ASYNC
    options NETGRAPH_SOCKET
    options HZ=1000

    Para sair do "ee" e salvar o arquivo, é só dar um [ESC] [a] [a], fácil né..


    Então continuando, depois de adicionar as linhas vamos digitar o seguinte comando no console:

    config MYKERNEL

    após isto, vamos entrar em outra pasta.. digitando os comandos abaixo

    cd ..
    cd compile/MYKERNEL

    make cleandepend
    make depend

    make

    make install


    Beleza, após isso, seu kernel será instalado com todos módulos necessários, continue a fazer as configurações abaixo e
    depois reinicie o sistema.

    2.1 - arquivo ppp.conf ( /etc/ppp/ppp.conf )

    default:
    set log local phase chat lcp ipcp ccp tun command
    ident user-ppp VERSION (built COMPILATIONDATE)

    #( onde rl0 é placa de rede ligada ao modem, troque pela sua placa ligada ao modem, se não souber,
    ifconfig no console pra ver.)


    set device PPPoE:rl0

    set mru 1492
    set mtu 1492

    set login
    set dial


    set timeout 0 # 0 minute idle timer (the default)
    enable dns # request DNS info (for resolv.conf)

    set authname [email protected] (aqui vai a conta em um provedor de autenticaçao)
    set authkey 2238521111 (aqui vai a senha da conta acima)

    nat disable


    add default HISADDR # Add a (sticky) default route


    2.2 - arquivo rc.conf (/etc/rc.conf

    no arquivo rc.conf inclua as seguintes linhas ao final do arquivo

    se houve uma linha default_router, comente-a com #

    ifconfig_rl0="DHCP" ou coloque um ip na faixa do modem ex: (ifconfig_rl0="inet 192.168.254.1 netmask 255.255.255.0")
    ifconfig_rl1="inet 192.168.10.1 netmask 255.255.255.0"
    ppp_enable="YES"

    ppp_profile="default"
    ppp_mode="ddial"
    ppp_nat="NO"

    2.3 arquivo natd.conf (/etc/natd.conf

    crie ou modifique o arquivo natd.conf que deverá conter o seguinte:

    interface tun0 # ( onde a interface tun0 será criada quando o pppoe se conectar a internet pelo modem bridge.)
    dynamic yes
    same_ports yes
    use_sockets yes
    verbose no


    2.4 arquivo inicianet.sh

    vamos criar um script de inicialização do compartilhamento de internet, este arquivo deve estar na pasta /usr/local/etc/rc.d

    então no prompt do freebsd vamos digitar os comandos:

    cd /usr/local/etc/rc.d [enter]

    echo "ipfw add 1 divert natd all from any to any via tun0" > inicianet.sh [enter]

    chmod +x inicianet.sh [enter] para fazer o script ser executável



    2.5 arquivo resolve.conf (/etc/resolv.conf)

    dentro do resolv.conf colocaremos alguns servidores de dns, então inclua o seguinte

    208.67.222.222
    208.67.220.220
    8.8.8.8



    bom acho q é isso, lembrando que o shell do root tem que ser sh ou csh para que não haja problemas na inialização do sistema.

    agora reinicie seu sistema, e bom acesso...

    acessem nosso twitter.

    Twitter
    Última edição por xXNeoXx; 16-07-2011 às 11:55.

  2. #2

    Padrão Re: COMPARTILHAMENTO DE INTERNET USANDO FREEBSD COM MODEM ADSL EM BRIDGE

    Parabéns pela iniciativa

  3. #3

    Padrão Re: COMPARTILHAMENTO DE INTERNET USANDO FREEBSD COM MODEM ADSL EM BRIDGE

    Caro xxNeoxx,

    O nat no freebsd mudou faz uns 3 anos. Antigamente, o ipdivert era utilizado em conjunto com o natd porque nao se tinha alias dentro do kernel mas como disse, mudou faz 3 anos.

    Pelo fato de um daemon (natd) estar na userland, se vc estiver com um load muito grande, o processamento vai lá em cima, por causa do overhead de uma aplicação em userland.

    Para resolver isso, fizeram uma biblioteca dentro do kernel (a libalias) que faz nat em kernel land.

    Dê uma olhada em " man ipfw" .


    kernel:
    options libalias
    options IPFIREWALL
    options IPFIREWALL_NAT
    options IPFIREWALL_FORWARD



    ipfw nat 1 config if rl0 "(interface do link"
    ipfw add nat 1 all from 192.168.1.0/24 to any
    ipfw add nat 1 all from any to me in via rl0


    Com issó aí, vc tem um nat feito através do kernel, e nao de uma aplicação userland.

    Saudações flamenguistas,
    Thiago

  4. #4

    Padrão Re: COMPARTILHAMENTO DE INTERNET USANDO FREEBSD COM MODEM ADSL EM BRIDGE

    Caros amigos, sei do nat built-in e testei o mesmo logo que saiu, mas tive muitos problemas por conta de vários bugs naquela época, que também foram reportados por muitos usuários na internet, e como as vezes não podemos esperar a solução no próximo release, deixei o nat built-in de lado e voltei para no natd, que no meu caso funciona muito bem por sinal. Mas vou analisar como esta o nat built-in e se tudo estiver 100% mudo o tutorial para esse uso. Obrigado a todos..