Mini-COMO FAZER DHCP (DHCPd/DHCPcd) Vladimir Vuksan, vuksan@veus.hr v2.3, 24 May 1998 Este documento tenta responder as questões básicas sobre como configurar uma máquina Linux para atuar como um servidor ou cliente DHCP. ______________________________________________________________________ Índice geral 1. Introdução 1.1 Garantias Padrões 1.2 Novas Versões Deste Documento 1.3 Sugestões & Opiniões 1.4 Colaboradores 1.5 Direitos Autorais 2. Protocolo DHCP 3. Configuração do Cliente 3.1 Obtendo O Programa Cliente 3.2 Configuração no Slackware 3.3 Red Hat 5.0, Conectiva Linux 3.0 e posteriores 3.4 Configuração no RedHat 4.x e Caldera OpenLinux 1.1 3.5 Configuração no Debian 1.3.1 3.6 Configuração no LinuxPPC e MkLinux 3.7 Redes Token Ring 3.8 Executando o DHCPCD 3.9 Notas Diversas 3.10 Soluções de Problemas 4. Configuração do Servidor DHCP 4.1 Servidor DHCP para UNIX 4.2 Configuração de Rede 4.3 Opções do DHCPd 4.4 Inicializando o Servidor ______________________________________________________________________ 11.. IInnttrroodduuççããoo 11..11.. GGaarraannttiiaass PPaaddrrõõeess Nenhuma garantia fornecida ao conteúdo deste documento pode ser aceita. Use os conceitos, exemplos e outros conteúdos por sua própria conta. Por se tratar de uma nova edição, este documento pode conter alguns erros e informações imprecisas que, obviamente, podem causar algum tipo de dano a um sistema existente. Prossiga com cautela, sendo que o autor e os editores não tem qualquer responsabilidade sobre o uso deste conteúdo. Tenha em mente ainda que esta não é um informação oficial, onde vários aspectos aqui descritos são conclusões de experiências funcionais para algumas pessoas. 11..22.. NNoovvaass VVeerrssõõeess DDeessttee DDooccuummeennttoo Novas versões deste documento serão periodicamente postadas na lista _c_o_m_p_._o_s_._l_i_n_u_x_._a_n_s_w_e_r_s. Serão ainda adicionadas ao vários sites de FTP anônimos que arquivam este tipo de informação, incluindo: Adicionalmente, pode-se normalmente encontrar este documento na página do Projeto de Documentação Linux localizada em: 11..33.. SSuuggeessttõõeess && OOppiinniiõõeess Sugestões e opiniões sobre este documento são certamente bem vindas. Sem este tipo de retorno este documento certamente não existiria. Então, por favor envie as suas contribuições, comentários e críticas para vuksan@veus.hr. 11..44.. CCoollaabboorraaddoorreess Este documento foi modificado a partir da versão original criada por Paul Makeev. As seguintes pessoas contribuíram para este Mini-COMO FAZER. · Heiko Schlittermann · Jonathan Smith · Dan Khabaza · Hal Sadofsky · Henrik Stoerner · Paul Rossington 11..55.. DDiirreeiittooss AAuuttoorraaiiss Este documento está sob os direitos de (c)1998 Vladimir Vuksan e é distribuído dentro dos seguintes termos: · Documentos COMO FAZER do Linux podem ser reproduzidos e distribuídos em todo ou em parte em qualquer meio físico ou eletrônico, desde que as informações sobre os direitos autorais sejam mantidas em todas as cópias · Todas as traduções, trabalhos derivados ou agregados de qualquer documento COMO FAZER do Linux devem ser cobertos por este aviso de direitos autorais. 22.. PPrroottooccoolloo DDHHCCPP DHCP significa Protocolo de Configuração Dinâmica de Máquinas. É usado para controlar parâmetros de controle de rede vitais para as máquinas (ao ser executado em clientes) com a ajuda de um servidor. O DHCP mantém compatibilidade reversa com o BOOTP. Para maiores informações veja a RFC 2131 (antiga RFC 1531) e outras (veja a seção de Recursos Internet no final deste documento). Pode-se verificar ainda o PR sobre DHCP. Este Mini-COMO FAZER aborda tanto o servidor DHCP como o cliente. Muitos usuários necessitarão do cliente o qual é usado nas estações de trabalho para obter as informações de rede de um servidor remoto. O servidor é usado pelos administradores de sistemas para distribuir informações de rede para os clientes. Então caso o leitor seja somente um usuário normal de rede, necessitará somente do programa cliente. 33.. CCoonnffiigguurraaççããoo ddoo CClliieennttee 33..11.. OObbtteennddoo OO PPrrooggrraammaa CClliieennttee kkeerrnneellss 22..00..xx Independente da distribuição que se esteja utilizando será necessário obter um programa cliente DHCP para Linux. O pacote necessário é chamado dhcpcd e a sua versão atual é 0.70. Pode-se obter uma descrição do pacote em aqui. kkeerrnneellss 22..11..xx Devido a mudanças no pacote de rede ipv4 nos kernels da série 2.1.x, em especial na forma como ele configura diversos campos, o programa dhcpcd pode não funcionar adequadamente. Muitos usuários não usam kernels em desenvolvimento, logo isso não será problema. Caso o leitor esteja usando um kernel desta série deve então utilizar o dhcpcd 1.3.3 o qual é uma versão modificada que foi escrita por Sergei Viznyuk sergei@phystech.com a fim de evitar os problemas mencionados anteriormente. Ela pode ser obtida em: 33..22.. CCoonnffiigguurraaççããoo nnoo SSllaacckkwwaarree Pode-se obter a última versão do DHCPcd a partir de qualquer espelho do Metalab ou nos seguintes endereços: · · · (site localizado no Japão) Transfira a última versão do programa dhcpcd.tar.gz · Descompacte-a através do comando: tar -zxvf dhcpcd-0.70.tar.gz · vá para o diretório gerado e crie o dhcpcd, através dos seguintes comandos: cd dhcpcd-0.70 make · Execute a instalação, utilizando-se dos poderes do superusuário na execução desta tarefa, através do comando: make install Este procedimento irá criar o diretório /etc/dhcpc onde o DHCPcd irá armazenar as informações DHCP e o arquivo dhcpcd será copiado em /usr/sbin. Para que o sistema utilize o DHCP durante a inicialização, execute os seguintes comandos: cd /etc/rc.d mv rc.inet1 rc.inet1.antigo Isso moverá o programa antigo de inicialização da rede para rc.inet1.antigo. Agora será necessário criar o novo programa rc.inet1. Utilize o código a seguir: ______________________________________________________________________ #!/bin/sh # # rc.inet1 Este programa inicializa a base de rede do sistema HOSTNAME=`cat /etc/HOSTNAME` # este procedimento não é realmente necessário # mas será mantido # Anexar os dispositivos locais de rede /sbin/ifconfig lo 127.0.0.1 /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo # caso se tenha uma conexão Ethernet, as linhas a seguir devem ser utilizadas # para configurar a interface eth0. Caso se esteja usando a interface local ou # SLIP, não inclua as linhas a seguir no arquivo. /usr/sbin/dhcpcd ______________________________________________________________________ Salve o programa e reinicialize o computador. Ao finalizar vá para a seção ``último passo'' 33..33.. RReedd HHaatt 55..00,, CCoonneeccttiivvaa LLiinnuuxx 33..00 ee ppoosstteerriioorreess Na configuração do DHCPcd sobre estas distribuições de Linux, tudo que se necessita fazer é inicializar o Painel de Controle digitando-se: control-panel Após selecione "Configuração de Rede" e na interface Ethernet desejada (normalmente eth0) defina DHCP como o protocolo. Os demais parâmetros devem ser deixados em branco. Ao finalizar vá para a seção ``último passo'' 33..44.. CCoonnffiigguurraaççããoo nnoo RReeddHHaatt 44..xx ee CCaallddeerraa OOppeennLLiinnuuxx 11..11 O DHCPcd é incluído na distribuição padrão do Red Hat no formato RPM. Ele pode ser encontrado no diretório padrão denominado RPMS ou pode ser obtido em: Para instalá-lo use o seguinte comando: rpm -i dhcpcd-0.6-2.i386.rpm Alternativamente pode-se compilar uma versão própria através dos passos descritos na distribuição Slackware. Esta informação foi provida por nothing@cc.gatech.edu: ______________________________________________________________________ Removi o endereço IP estático e o nome de /etc/resolv.conf. De qualquer forma deixei a linha de pesquisa e as duas linhas do servidor de nomes (por alguma razão meu programa dhcpcd nunca cria um arquivo /etc/dhcpc/resolv.conf, então eu tive que usar um arquivo estático). Em /etc/sysconfig/network removi as entradas para HOSTNAME e GATEWAY. As entradas para NETWORKING, DOMAINNAME e GATEWAYDEV foram deixadas. Em /etc/sysconfig/network-scripts/ifcfg-eth0 foram removidas as entradas IPADDR, NETMASK, NETWORK e BROADCAST. Foram deixados os parâmetros DEVICE e ONBOOT como estavam. A linha BOOTPROTO foi alterada para BOOTPROTO=dhcp. Salve o arquivo e reinicialize o computador. ______________________________________________________________________ Ao finalizar vá para a seção ``último passo'' 33..55.. CCoonnffiigguurraaççããoo nnoo DDeebbiiaann 11..33..11 Há um pacote Debian do DHCPcd em: ftp://ftp.debian.org/debian/stable/binary/net/ ou pode-se seguir as instruções de instalação do Slackware. Para desempacotar um pacote do tipo deb deve-se executar o seguinte comando: dpkg -i /where/ever/your/debian/packages/are/dhcpd*deb Aparentemente não há necessidade de qualquer configuração para o DHCPcd conforme o descrito a seguir: De: Heiko Schlittermann (heiko@os.inf.tu-dresden.de) O pacote dhcpcd instala o programa de inicialização usual para pacotes debian em /etc/init.d/<nome_pacote>, neste caso como /etc/init.d/dhcpcd e estabelece a ligação dos diversos diretórios /etc/rc?.d/. O conteúdo dos diretórios /etc/rc?.d/ será então executado durante a inicialização do sistema. Caso o sistema não seja reinicializado após a instalação, o programa poderá se iniciado manualmente: /etc/init.d/dhcpcd start Ao finalizar vá para a seção ``último passo'' 33..66.. CCoonnffiigguurraaççããoo nnoo LLiinnuuxxPPPPCC ee MMkkLLiinnuuxx A seguinte seção foi escrita por R. Shapiro As versões 0.65 e 0.70 do programa dhcpcd de Yoichi Hariguchi deverão funcionar adequadamente para ambas as versões de Linux em ppc, com as seguintes ressalvas: * Caso se deseje ou se necessite construir executáveis a partir dos fontes, deve-se atentar que os compiladores ppc Linux assumem que 'char' é na verdade 'unsigned char' enquanto os fontes de Hariguchi assumem que 'char' é 'signed char'. Para construí-los a partir dos fontes deve-se editar o arquivo Makefile e incluir a seguinte opção nos CFLAGS: "-fsigned-char". * A versão atual do linuxppc (também conhecida como linux-pmac) é a 2.1.24 e requer o pacote atualização 2.1. Ambas as versões DR 2.1 e DR 3.0 do mklinux usam o kernel 2.0 (2.0.33) e não necessitam desta atualização. Note que o RPM do dhcpcd no CD do linuxppc não inclui a atualização 2.1 e não funcionará com ela. De qualquer forma funcionará com o mklinux. * No kernel do linuxppc 2.1, será apresentado um aviso de roteamento após o dhcpcd ser inicializado. Ele pode ser ignorado. * O programa dhcpcd de Hariguchi demora um pouco mais, cerca de 30 segundos, para fazer a sua conexão inicial com o servidor e configurar o roteamento. No kernel do linuxppc 2.1, o aviso mencionado acima é uma indicação de que o roteamento está pronto. No mklinux será necessário checar através do comando netstat -r o estado da conexão da rede. Não fui capaz de compilar o dhcpcd de Sergei Viznyuk versão 1.3.3 em ambas as versões para o Linux para ppc. Logo não posso comentá-la. Uma vez que o dhcpcd é instalado, execute os seguintes passos no resolv.conf, conforme mencionado na seção ``último passo''. · Apague ou renomeie o arquivo /etc/sysconfig/network-scripts/ifcfg- eth0 · Remova o conteúdo de /etc/sysconfig/network exceto NETWORKING e, caso se tenha um nome fixo para ligações simbólicas, e HOSTNAME. Caso se deseje uma versão pré compilada do dhcpcd 0.70 para kernels 2.1 para linuxppc, envie uma mensagem para reshapiro@mediaone.net. 33..77.. RReeddeess TTookkeenn RRiinngg Caso se esteja tentando executar o dhcpcd em uma rede Token Ring é bom avisar: ele não funcionará. Esta é a solução fornecida por Henrik Stoerner (henrik_stoerner@olicom.dk) O problema reside no fato de dhcpcd funcionar somente em placas Ethernet. Caso seja encontrada uma placa Token-Ring, o programa se recusa a executar qualquer comando e gera a mensagem "não é uma interface Ethernet". A solução é aplicar uma atualização simples dos fontes do dhcpcd. A atualização está disponível na Internet em uma versão binária no formato RPM em A atualização foi enviada para o mantenedor do dhcpcd, a qual espero que seja incluída na próxima versão do dhcpcd. 33..88.. EExxeeccuuttaannddoo oo DDHHCCPPCCDD Após a reinicialização da máquina, a interface de rede deve ser configurada. Digite: ifconfig Deve-se obter algo como: ______________________________________________________________________ lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:302 errors:0 dropped:0 overruns:0 frame:0 TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0 eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45 ------> inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24783 errors:1 dropped:1 overruns:0 frame:1 TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96 Interrupt:10 Base address:0x300 ______________________________________________________________________ Caso se tenha algum número normal no campo endereço inet, então a máquina estará configurada. Caso se obtenha um endereço igual a 0.0.0.0 não se desespere, trata-se de uma configuração temporária antes que o dhcpcd obtenha o endereço IP. Se mesmo alguns minutos após se visualizar somente o endereço 0.0.0.0 por favor verifique a seção DHCPcd ``Resolução de Problemas''. O DHCPcd é um servidor que seguirá sendo executado enquanto o computador estiver ligado. Mesmo três horas depois ele irá contactar o servidor DHCP e tentará renovar o endereço IP. Todas as mensagens serão registradas no arquivo do syslog (no Slackware em /var/adm/syslog, RedHat/Conectiva/OpenLinux em /var/log/syslog). Um detalhe final: É necessário especificar os servidores de nomes. Há duas formas de fazê-lo, pode-se solicitar ao provedor para informar os endereços do servidor de nomes e colocá-los no /etc/resolv.conf ou o DHCPcd obterá uma lista do servidores DHCP e construirá um resolv.conf em /etc/dhcpc. Decidi usar os arquivos gerados pelo DHCPcd da seguinte forma: Gere uma cópia de segurança do /etc/resolv.conf da seguinte forma: mv /etc/resolv.conf /etc/resolv.conf.antifo Caso o diretório /etc/dhcpc não exista, ele deve ser criado da seguinte forma: mkdir /etc/dhcpc Crie uma ligação simbólica de /etc/dhcpc/resolv.conf para /etc/resolv.conf, através do seguinte comando: ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf Caso isso não funcione, pode-se tentar o ajuste sugerido por nothing@cc.gatech.edu, com uma pequena correção de Henrik Stoerner. O último passo é executado somente porque meu dhcpcd não cria o arquivo /etc/dhcpc/resolv.conf. Em /etc/sysconfig/network-scripts/ifup efetuei as seguintes mudanças (as quais são mudanças simples, mas funcionam): ______________________________________________________________________ elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Usando DHCP para ${DEVICE}... " /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE} echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then echo "falhou." exit 1 ______________________________________________________________________ Foi mudada para: ______________________________________________________________________ elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Usando DHCP para ${DEVICE}... " /sbin/dhcpcd echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then ^^^^^^ echo "falhou." exit 1 ______________________________________________________________________ NNoottee oo ssiinnaall ddee eexxccllaammaaççããoo eemm if [ ! -f /var/run/dhcp- wait-${DEVICE}.pid ]; Agora sente-se e aprecie o seu desempenho. :-). 33..99.. NNoottaass DDiivveerrssaass Os seguintes passos não são necessários mas podem ser úteis para algumas pessoas: aa)) Caso se necessite de conectividade de rede somente ocasionalmente, pode-se inicializar o dhcpcd a partir da linha de comando (deve-se reinicializar para se executar este passo) com: /usr/sbin/dhcpcd Quando se quiser finalizar as funcionalidades de rede, digite: /usr/sbin/dhcpcd -k 33..1100.. SSoolluuççõõeess ddee PPrroobblleemmaass Caso se tenha seguido todos os passos descritos anteriormente e não foi possível acessar a rede, há algumas prováveis causas para isso: II.. AA ppllaaccaa ddee rreeddee nnããoo eessttáá ccoonnffiigguurraaddaa ccoorrrreettaammeennttee.. Durante o processo de inicialização o Linux irá tentar localizar a placa de rede e deverá gerar algumas mensagens acerca deste processo: ______________________________________________________________________ eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10. 3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov ______________________________________________________________________ Se uma mensagem como esta não aparecer, aparentemente a placa Ethernet não foi reconhecida pelo Linux. Caso se utilize uma placa genérica (como um clone NE2000), procure por um disco com utilitários DOS que possam ser usados para configurar a placa. Tente diversos IRQs até que o Linux reconheça a placa (IRQs 9,10,12 são normalmente boas tentativas). IIII.. OO sseerrvviiddoorr DDHHCCPP ssuuppoorrttaa RRFFCC 11554411 Tente executar o dhcpcd digitando: dhcpcd -r use o comando ifconfig para verificar se a interface de rede está configurada (espere alguns segundos pelo processo de configuração, pois inicialmente o endereço apresentado será Inet.addr=0.0.0.0) Caso o problema seja resolvido desta forma, deve-se adicionar o indicador "-r" aos programas de inicialização, ou seja além de usar o /sbin/dhcpcd deve-se comandar /sbin/dhcpcd -r IIIIII.. DDuurraannttee aa iinniicciiaalliizzaaççããoo ssee oobbttéémm aa mmeennssaaggeemm ""UUssaannddoo DDHHCCPP ppaarraa eetthh00 ...... ffaallhhoouu"" mmaass oo ssiisstteemmaa ffuunncciioonnaa ppeerrffeeiittaammeennttee.. Aparentemente se está usando RedHat e as instruções não foram seguidas adequadamente :-). Você está esquecendo do ponto de exclamação em um dos comandos, vá até a seção ``aqui'' e verifique como corrigir o problema. IIVV.. AA rreeddee ffuunncciioonnaa ppoorr aallgguunnss mmiinnuuttooss ee ssuubbiittaammeennttee ppaarraa ddee rreessppoonnddeerr.. Há algumas notícias de que o programa gated (servidor de caminho padrão) gera erros em máquinas Linux conforme o descrito acima. Verifique se o programa gated está sendo executado através do seguinte comando: ps -auxww | grep gate Caso ele esteja sendo executado, tente removê-lo com o gerenciador RPM ou da entrada em /etc/rc.d/ VV.. AA ppllaaccaa EEtthheerrnneett éé rreeccoonnhheecciiddaa dduurraannttee aa iinniicciiaalliizzaaççããoo ddoo ssiisstteemmaa mmaass oobbttéémm--ssee aa mmeennssaaggeemm ""NNOO DDHHCCPPOOFFFFEERR"" nnooss aarrqquuiivvooss ddee rreeggiissttrrooss ddee ooccoorrrrêênncciiaass.. IIssssoo ooccoorrrree ttaammbbéémm ccoomm aa ppllaaccaa PPCCMMCCIIAA.. É necessário estar seguro que se tem uma porta 10BaseT (conector do tipo "telefone") ativada na placa de rede. A melhor forma de verificar isso é checar qual o tipo de conector está configurado na inicialização ou seja: ______________________________________________________________________ eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10. ^^^^^^^^^^^^ 3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov ______________________________________________________________________ Tenho recebido notícias de usuários de portáteis que têm tido este tipo de problema com os utilitários PCMCIA (especificamente o ifport) o qual deve ser configurado para um conector de tipo 10Base2 (thinnet). Deve-se estar seguro de estar usando o padrão 10BaseT para a conexão. Caso não se esteja , deve-se reconfigurar a placa e reinicializar o computador. VVII.. SSeegguuii ttooddooss ooss ppaassssooss mmaass aaiinnddaa nnããoo ccoonnssiiggoo ccoonneeccttaarr aa mmááqquuiinnaa àà rreeddee.. O modem a cabo normalmente irá memorizar o endereço Ethernet da placa de rede, então ao se mudar o computador ou se tentar utilizar uma outra placa, será necessário ensinar o modem a reconhecer o novo hardware. Normalmente basta desligar o modem e religá-lo enquanto o computador estiver ligado ou então chamar o suporte técnico e avisá-lo de que a placa de rede foi alterada. A máquina está dentro de uma rede protegida por um firewall que desabilita o tráfego das portas 67/68 usadas pelo DHCP para distribuir informações. Verifique as regras do firewall cuidadosamente. 44.. CCoonnffiigguurraaççããoo ddoo SSeerrvviiddoorr DDHHCCPP 44..11.. SSeerrvviiddoorr DDHHCCPP ppaarraa UUNNIIXX Há diversos servidores DHCP disponíveis para sistema do tipo Unix, comerciais ou de livre distribuição. Um dos mais populares servidores DHCP de livre distribuição é o DHCPd de Paul Vixie/ISC. A versão atual é 1.0 (sugerida por muitos usuários) mas a 2.0 encontra-se em estágio beta. Ela pode ser obtida em: Descompacte-a, vá até o diretório da distribuição e digite: ./configure Levará algum tempo para se configurar todos os parâmetros. Após isto estar finalizado, digite: make e make install 44..22.. CCoonnffiigguurraaççããoo ddee RReeddee Ao finalizar a instalação digite ifconfig -a. Deve-se obter um resultado similar a: ______________________________________________________________________ eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62 inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2875542 errors:0 dropped:0 overruns:0 TX packets:218647 errors:0 dropped:0 overruns:0 Interrupt:11 Base address:0x210 ______________________________________________________________________ Caso o parâmetro MULTICAST não esteja presente, deve-se reconfigurar o kernel para sua adição. Em muitos sistemas isso não será necessário. O próximo passo será adicionar a rota 255.255.255.255. Apresentamos um extrato retirado ao arquivo README do DHCPd: "Para que o dhcpd funcione perfeitamente, escolha alguns clientes DHCP (por exemplo Windows 9x), que sejam capazes de enviar pacotes com um endereço IP de destino 255.255.255.255. Infelizmente o Linux teima em mudar 255.255.255.255 no endereço de divulgação da subrede local (neste caso 192.5.5.223). Isso cria uma violação do protocolo DHCP e enquanto muitos clientes DHCP não avisam do problema, outros (como os clientes DHCP Microsoft) o fazem. Clientes com este tipo de problema não visualizam a mensagem DHCPOFFER enviada pelo servidor." Digite: route add -host 255.255.255.255 dev eth0 caso se obtenha a mensagem "255.255.255.255: máquina desconhecida" deve-se tentar adicionar a seguinte entrada ao arquivo /etc/hosts: 255.255.255.255 all-ones tente então: route add -host all-ones dev eth0 ou route add -net 255.255.255.0 dev eth0 eth0 é obviamente o nome do dispositivo de rede que está sendo usado. Caso seja diferente, faça as devidas alterações. 44..33.. OOppççõõeess ddoo DDHHCCPPdd Agora é necessário configurar o DHCPd. Para se fazer isso deve-se criar ou editar o arquivo /etc/dhcpd.conf. Comumente se deseja definir endereços IP de forma aleatória. Isso pode ser feito da seguinte forma: ______________________________________________________________________ default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "dominio.org.br"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; } ______________________________________________________________________ Isso fará com que o servidor DHCP forneça ao cliente um endereço IP na faixa 192.168.1.10-192.168.1.100 ou 192.168.1.150-192.168.1.200. Ele liberará um endereço por 600 segundos caso o cliente não defina um tempo específico de utilização de endereço. De qualquer forma o tempo máximo permitido será de 7.2 segundos. O servidor irá "avisar" ao cliente que ele pode usar 255.255.255.0 como máscara de subrede, 192.168.1.255 como endereço de distribuição, 192.168.1.254 como roteador ou caminho padrão, 192.168.1.1 e 192.168.1.2 como servidores DNS. Pode-se ainda definir endereços IP específicos baseados nos endereços Ethernet dos clientes, como por exemplo: ______________________________________________________________________ host conec { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222; } ______________________________________________________________________ Este procedimento irá definir o endereço 192.168.1.222 para o cliente com endereço Ethernet igual a 08:00:2b:4c:59:23. Pode-se misturar os procedimentos, definindo-se certos clientes com endereços IP estáticos (por exemplo servidores) e outros com endereços dinâmicos (como por exemplo portáteis). Há diversas opções como: endereços de servidores Windows, servidores de data e horário, etc... Caso se necessite alguma destas opções por favor verifique a página de manual on line do dhcpd.conf. 44..44.. IInniicciiaalliizzaannddoo oo SSeerrvviiddoorr Podemos agora acionar o servidor DHCP. Basta simplesmente digitar ou incluir nos programas de inicialização do sistema: /usr/sbin/dhcpd Caso se deseje verificar se tudo está funcionando perfeitamente, deve- se acionar inicialmente o modo de depuração e colocar o servidor em primeiro plano. Isso pode ser feito através do comando: /usr/sbin/dhcpd -d -f Inicialize algum dos clientes e verifique a console do servidor. Deverão ser apresentadas diversas mensagens de depuração.