Servidor DHCP- servidor de IP automatico, dicas e tutoriais.

Atualizado em: 23/07/2006



Sobre este documento

Configurar servidor de IP, dhcpd, exemplos de configuração e dicas.

Os comandos e dicas podem não atender as suas necessidades, não ser compatível com sua instalação, use como referencia, tente adaptar ao seu ambiente.

O que é dhcp?

O DHCP, Dynamic Host Configuration Protocol, é um serviço de rede com servidor e cliente, do lado servidor roda o dhcpd para fornecer endereços IP os clientes, configurar a rede automaticamente nas estações com opção de obter IP automaticamente no boot (DHCP), ou quando reinicia o serviço de rede, a parte básica é fornecer IP dinamico para estações, tanto Linux e Windows, serve também como configurador de rede, além do IP pode configurar o servidor de DHCP para fornecer também a mascara de rede, gateway, DNS e outras opções, muito útil e prático.

Consome o minimo de recursos da maquina, desprezivel, considere usar um micro da rede que fique sempre ligado, entre eles pode ser o servidor Samba, proxy, firewall, o importante é manter ligado para não falhar no fornecimento ou renovação do IP, não precisa ser o micro que compartilha internet ou servidor proxy, pode usar qualquer maquina da rede.

Em redes com servidor DHCPD rodando, ao dar boot por um Live CD (Kurumin, Ubuntu ou qualquer outr Live CD) no boot já pega o IP, gateway e DNS, portanto configura a rede automaticamente no boot, já sai navegando quando tem internet compartilhada, quem usa proxy precisa somente configurar no navegador, considere manter um servidor DHCP e servidor web com suas colinhas para copiar e colar, ao dar boot por um Live CD, basta abrir o navegador e acessar os documentos que pode ser texto simples no servidor web interno, no navegador copie a linha de comando e cole no konsole, ou acessa via ssh e use seu editor preferido para editar as linhas de comando e copiar, pode ser uma simples linha de comando ou varias, scripts ou rotinas de manutenção, configuração, backup e muito mais, faça um teste, vale a pena conferir....

Digite na caixa de pesquisa do google, define:dhcp não entendeu porque está em ingles? então use tradutor do próprio google, copie a URL atual e no final da página, clique em "Ferramentas de idiomas", cole o endereço, clique em "traduzir", ou acesse diretamente o tradutor em http://translate.google.com/translate_t ou CTRL+T abre outra aba no browser para colar a URL.

Já que está procurando no google, na caixa de pesquisa, acrescente ao termo pesquisado +dhcpd ~linux, exemplo: dhcpd tutorial ~linux

Use e abuse da criatividade, tente com outras variações, use também expressões em ingles e o tradutor.

Consulte as páginas do manual; man dhcp

Existem outras formas de fornecer IP dinamico para sua rede, alguns modem ADSL tem este recurso, tem alguns equipamentos barato que faz isto (router), fazendo via Linux, basta configurar um serviço e dar manutenção no arquivo de configuração, também tem como forçar a passagem pelo proxy/firewall Linux que melhora o controle e segurança, com muito mais recursos de controle, muito mais prático que ficar alterando o modem ou router.

Comandos e algumas dicas

Ver as mensagens nos logs; tail -f /var/log/messages

Quem está conectado no servidor, IP e estatus; dhcpd -f ou /usr/sbin/dhcpd -f

Estações pegam o IP no inicio do boot, quando falha, requer script ou comandos para recarregar o serviço, para evitar problemas, mantenha o servidor de IP ligado e rodando DHCPD, lembre de ligar o servidor antes das estações.

Algumas distro não cria na instalação o arquivo /etc/dhcpd.conf, neste caso precisa criar com seu editor de texto, use um dos modelos deste documento.

Cliente Kurumin 5 ou (beta 6) rodando a partir do CD, quando falhar no boot, execute o script de configuração da rede, reiniciar o serviço de rede não resolve, precisa rodar o script, entre em; menu K -> Internet -> Conectar na internet ou configurar a rede -> Configurar rede local, IP fixo, cabo ...., siga o dialogo até chegar na opção de escolha do DHCP;

Configurar a rede via DHCP? sim

O restante o script resolve...

CL10 - instalar e configurar o servidor de IP - DHCPD

SERVIDOR DE DHCPD CL10

Verificar se está instalado; rpm -qa | grep dhcp

Instalar; apt-get install dhcp

As configurações ficam no arquivo /etc/dhcpd.conf, que nem é criado na instalação, ou vem vazio, sem nada, caso não encontre, use seu editor preferido para criar e incluir as configurações; exemplo; rede, por exemplo:

  #  Use seu editor preferido para criar e editar ou simplesmente vi /etc/dhcpd.conf
  
  #[root@sambacl10 etc]# cat /etc/dhcpd.conf
  
  ### Managed by Linuxconf, you may edit by hand.
  ### Comments may not be fully preserved by linuxconf.
  
  ### Managed by Linuxconf, you may edit by hand.
  ### Comments may not be fully preserved by linuxconf.
  
  server-identifier sambacl10.zago.eti.br;
  ddns-update-style ad-hoc;
  default-lease-time 36000;
  max-lease-time 36000;
  option broadcast-address        192.168.1.255;
  option domain-name      "localhost.localdomain";
  option domain-name-servers      200.204.0.10;
  option routers  192.168.1.2;
  option subnet-mask      255.255.255.0;
  subnet 192.168.1.0 netmask 255.255.255.0{
          range  192.168.1.230 192.168.1.253;
  }
  

Em servidores com mais de uma placa de rede, a exemplos micros que compartilham a internet, precisa eleger, definir qual a placa de rede vai fornecer IP, exemplo de configuração onde somente a eth0 vai fornecer IP;

  vi /etc/rc.d/init.d/dhcpd
  
  porocurar pela linha
  daemon /usr/sbin/dhcpd
  alterar para
  daemon /usr/sbin/dhcpd eth0
  
  onde eth0 é a placa de rede local que está conectada na rede interna e vai servir (alugar) ip para toda a rede interna.

Configurar para iniciar o servidor junto com o boot da maquina nos niveis 3 e 5 e também iniciar o serviço para esta sessão.

  chkconfig dhcpd on
  service dhcpd start

Prontinho, servidor de DHCPD rodando, faça boot em um estação configurada para obter IP automanticamente, ou por um Live CD, acompanhe os logs, por exemplo:

tail -f /var/log/messages

Quem está conectado no servidor, IP e estatus...

  dhcpd -f
  
  /usr/sbin/dhcpd -f

Sempre que alterar qualquer configuração do servidor dhcpd, precisa reiniciar o serviço, execute; service dhcpd restart

Registra os IP fornecidos em ``/var/state/dhcp/dhcpd.leases ``

Resultado dos comandos desta intalação;

  [root@sambacl10 root]# apt-get install dhcp
  Lendo Listas de Pacotes... Feito
  Construindo Árvore de Dependências... Feito
  Os seguintes pacotes NOVOS serão instalados:
    dhcp
  0 atualizados, 1 novos instalados, 0 removidos e 0 não atualizados.
  É preciso pegar 0B/667kB de arquivos.
  Após desempacotar 1617kB de espaço adicional serão utilizados.
  Aplicando modificações...
  Preparando...               ########################################### [100%]
     1:dhcp                   ########################################### [100%]
  Feito.
  [root@sambacl10 root]# rpm -qa | grep dhcp
  dhcpcd-1.3.22pl4-57368cl
  dhcp-3.0pl2-51744cl

Explicando - dicas...

As linhas que iniciam com # são comentarios e não tem efeito no servidor, pode acrescentar mais comentarios ou remove-las.

server-identifier sambacl10.zago.eti.br; = altere para o nome de sua maquina, pegue este nome em /etc/hosts

  ddns-update-style ad-hoc;
  default-lease-time 36000;
  max-lease-time 36000;

Mantenha estes dados ou pesquise sobre eles quando tiver problemas com tempo de renovação do IP, perda de IP ou falhas semelhantes.

option broadcast-address 192.168.1.255; = ao broadcast de sua rede

option domain-name "localhost.localdomain"; = procure manter esta opção ou pegue o utilizado em /etc/hosts

option domain-name-servers 200.204.0.10; = coloque o DNS utilizado em sua rede, obrigatório somente em redes com internet compartilhada e que requer configuração de DNS nas estações para navegar.

option routers 192.168.1.2; = gateway da sua rede, geralmente é o IP do micro que compartilha a conexão de internet.

option subnet-mask 255.255.255.0; = mascara de rede, procure manter esta opção quando não tiver motivos para usar mascara diferente.

  subnet 192.168.1.0 netmask 255.255.255.0{
          range  192.168.1.230 192.168.1.253;
  }
  Mantenha este formato, altere aí dentro, os dados conforme sua rede, neste exemplo a rede é 192.168.1.0
  que permite IP de 192.168.1.1 até 192.168.1.254, a mascara de rede é 255.255.255.0 mas o servidor de 
  DHCP vai fornecer IP somente para 23 estações, estes IP vão ficar dentro da faixa de 192.168.1.230 
  até 192.168.1.253, geralmente o primeiro IP é o mais alto e vai decrescendo a cada nova estação que
  entra na rede, portanto a primeira estação deverá pegar o IP 192.168.1.253 e vai acabar os IP quando
  conectar 23 maquinas via DHCP.
  
  Os demais IP desta rede poderão ser usados livremente na configuração de estações com IP fixo, ou
  a alterar a faixa de IP no exemplo acima.

FC5 - Server e client

Ambiente; FC5 x86_64 instalado com perfil defaul Gnome, gerenciador de pacotes smart.

Cliente DHCP. Nesta configuração já instala automaticamente o cliente DHCP, com a placa de rede configurada para pegar IP por DHCP, no boot procura o servidor e paga as configurações.

Server DHCP Precisa instalar e configuar o servidor,

  [root@localhost ~]# smart search dhcp
  dhclient - Provides the dhclient ISC DHCP client daemon and dhclient-script .
  dhcp - A DHCP (Dynamic Host Configuration Protocol) server and relay agent.

Instale o pacote dhcp, via smart execute;

smart install dhcp -y

Na instalação cria um dhcp.conf em /etc/dhcpd.conf, não funciona com esta configuração, aliás não tem configuração alguma, somente a linha comentada indicando onde salvou um modelo que poderá ser utilizado para fazer suas alterações e substituir o /etc/dhcpd.conf

Precisa editar o dhcpd.conf conforme as configurações da sua rede, ou substituir por outro previamente configurado, pode se orientar pelo modelo em /usr/share/doc/dhcp-3.0.3/dhcpd.conf.sample, este endereço pode mudar conforme a versão, procure abaixo de /usr/share/doc/dhcp, pode editar este arquivo e subtstituir o vazio em /etc, a seguir o meu /etc/dhcpd.conf, foi modificado a partir do exemplo da instalação, serve como comparativo ou até mesmo para copiar.

cat /etc/dhcpd.conf

  ddns-update-style interim;
  ignore client-updates;
  
  subnet 192.168.1.0 netmask 255.255.255.0 {
  
  # --- default gateway
          option routers                  192.168.1.2;
          option subnet-mask              255.255.255.0;
  
  #        option nis-domain               "domain.org";
          option domain-name              "localhost.localdomain";
          option domain-name-servers      200.204.0.10;
  
          option time-offset              -18000; # Eastern Standard Time
  #       option ntp-servers              192.168.1.1;
  #       option netbios-name-servers     192.168.1.1;
  # --- Selects point-to-point node (default is hybrid). Don't change this unless
  # -- you understand Netbios very well
  #       option netbios-node-type 2;
  
          range dynamic-bootp 192.168.1.200 192.168.1.220;
          default-lease-time 21600;
          max-lease-time 43200;
  
          # we want the nameserver to appear at a fixed address
  #    Este tópico é opcional para quem quer fixar IP conforme o MAC da placa de rede.
  #        host ns {
  #                next-server maq01.zago.eti.br;
  #                hardware ethernet 12:34:56:78:AB:CD;
  #                fixed-address 192.168.1.212;
  #        }
  }
  

Depois de configurado, inicie o servidor dhcpd; service dhcpd start

Configurar para iniciar junto com o boot; chkconfig dhcpd on

Prontinho, estações configuradas para obter IP via DHCP, no boot já configura a rede com IP, gateway e servidor de DNS, só testar para ver os resultados.

SUSE 10.1 - server e client

Ambiente; SUSE 10.1 instalado com perfil default e ambiente KDE, maquina contém somente uma placa de rede, gerenciador de pacotes smart. (veja também exemplo com 2 placas de rede).

Cliente DHCP. Nesta configuração já instala automaticamente o cliente DHCP, com a placa de rede configurada para pegar IP por DHCP, no boot procura o servidor e paga as configurações, para alterar de IP fixo para DHCP, execute yast -> Dispositivo de Rede -> Placa de Rede, selecione a placa de rede e clique em "Editar", selecione "Configuração de Endereço Automática (via DHCP).

Server DHCP Precisa instalar e configuar, tem diversos pacotes, para o server instale o dhcp-server, veja parte da pesquisa;

  opensuse101:/etc # smart search dhcp
  dhcp - Common Files Used by ISC DHCP Software
  dhcp-client - ISC DHCP Client
  dhcp-server - ISC DHCP Server
  dhcp-tools - DHCP Tools
  dhcpcd - A DHCP Client Daemon

Instale o pacote dhcpd, via smart execute;

smart install dhcp-server -y

Configurar para iniciar o servidor dhcpd junto com a inicialização do sistema.

chkconfig dhcpd on

Instalou e criou o /etc/dhcpd.conf, um modelo bem extenso e comentado, precisa ajustar conforme para sua rede, pode substituir por outro previamente configurado, editar o arquivo diretamente, ou pelo configurador do SUSE, execute yast, entre em "Serviços de rede -> Servidor DHCP, preencha os campo conforme sua instalação, alguns são obrigatórios e outros opcionais, configure a faixa de IP que vai fornecer, nome do dominio, servidor de nomes (DNS) e gateway quando houver, depois que funcionar, implemente os demais serviços.

Antes de executar yast, faça copia do dhcpd.conf para outro nome ou local, o yast remove todas as linhas comentadas.

Configure uma estação para obter IP por DHCP e reinicie o serviço de rede, no servidor deve registrar algo como;

  suse101:/etc # tail -f /var/log/messages
  Apr  2 18:13:49 opensuse101 dhcpd: DHCPACK on 192.168.1.220 to 00:11:09:41:73:e9 via eth0

OK, servidor de dhcp rodando....

Configuração que funciona sem problema, foi criada pelo yast conforme indicado acima.

  opensuse101:/home/zago # cat /etc/dhcpd.conf
  option domain-name "zago.eti.br";
  option domain-name-servers 200.204.0.10;
  option routers 192.168.1.2;
  default-lease-time 14400;
  ddns-update-style none;
  subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.200 192.168.1.220;
    default-lease-time 14400;
    max-lease-time 172800;
  }

Conferir se está rodando;

opensuse101:/home/zago # rcdhcpd status Checking for DHCP server: running

Parar o servidor dhcp rcdhcpd stop

Iniciar ou reiniciar manualmente o servidor dhcpd rcdhcpd start

Quando OK deve retornar.

  rcdhcpd restart
  Shutting down DHCP server                                             done
  Starting DHCP server [chroot]                                         done

Não testei mas este procedimento deve servir também para o SUSE 10.0

Com 2 placas de rede e MAC ADRESS

Em servidores de IP com duas placas de rede precisa definir qual placa de rede vai fornecer IP, ou vai dar erro na inicialização do DHCP, receberá esta mensagem quando iniciar o serviço dhcpd.

  Starting DHCP server ... cannot... DHCPD_INTERFACE in /etc/sysconfig/dskipped empty!

Como e onode definir qual a placa de rede, eth0 ou eth1 ou ...

Edite o arquivo /etc/sysconfig/dhcpd para alterar DHCPD_INTERFACE="", entre aspas informe o interface de rede que vai fornecer IP, exemplo para fornecer IP somente para conexões na placa de rede eth1.

  Configuração original, onde consta;
  DHCPD_INTERFACE=""
  
  informe a interface de rede, exemplo eth1, altere para;
  DHCPD_INTERFACE="eth1"

Exemplo em instalação do SUSE 10.1, maquina com duas placas de rede, micro rodando firewall, compartilhando internet e também como servidor de DHCP.

Prefiro fazer copia de outra instalação, editar com novas regras, o resultado é o mesmo, porem mais rápido e mais prático, exemplo de /etc/dhcpd.conf que utilizo para copiar em instalações do SUSE 10.1, configuração com IP amarrado ao MAC.

  option domain-name "zago.eti.br";
  option domain-name-servers 200.204.0.10;
  option routers 192.168.1.2;
  default-lease-time 14400;
  ddns-update-style none;
  subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.200 192.168.1.253;
    default-lease-time 14400;
    max-lease-time 172800;
  }
  
    host m7vig   {
    option host-name "m7vig.intranet.net";
    hardware ethernet 00:08:54:2C:DD:FD;
    fixed-address 192.168.1.204;
    }
  
    host msi64   {
    option host-name "msi64.intranet.net";
    hardware ethernet 00:11:09:41:73:E9;
    fixed-address 192.168.1.205;
    }
  
    host ecsb760   {
   option host-name "ecsb760.intranet.net";
   hardware ethernet 00:14:2A:0D:33:95;
   fixed-address 192.168.1.211;
    }
  
    host a7s333   {
   option host-name "a7s333.intranet.net";
   hardware ethernet 00:E0:7D:E3:5F:1E;
   fixed-address 192.168.1.211;
  
    }
  

Depois da copia, reiniciie o serviço com rcdhcpd restart

Não esqueça dos logs, copia de parte dos logs (conexão da maquina a7s333)

tail -f /var/log/messages

Retorna nos logs.

  May 19 01:48:29 linux-speedy dhcpd: Dynamic and static leases present for 192.168.1.211.
  May 19 01:48:29 linux-speedy dhcpd: Remove host declaration a7s333 or remove 192.168.1.211
  May 19 01:48:29 linux-speedy dhcpd: from the dynamic address pool for 192.168.1/24
  May 19 01:48:29 linux-speedy dhcpd: DHCPREQUEST for 192.168.1.211 from 00:e0:7d:e3:5f:1e via eth1
  May 19 01:48:29 linux-speedy dhcpd: DHCPACK on 192.168.1.211 to 00:e0:7d:e3:5f:1e via eth1

pegar MAC-ADRESS

Tem varias maneiras de pegar o MAC da placa de rede, são 6 bytes em hexadecimal, separados por dois pontos (:), exemplo de um MAC-ADRESS 00:0E:A6:36:47:40, a seguir alguns exemplos de comando e resultados.

Com ifconfig Execute o comando ifconfig no console da maquina e procure na primeira linha do resultado,

  [root@servsamba zago]# ifconfig
  eth0      Encapsulamento do Link: Ethernet  Endereço de HW 00:0E:A6:36:47:40
  

Com dmesg Execute no console dmesg | grep eth, retorna somente as linhas referente a placa de rede, resultado;

  [root@servsamba zago]# dmesg | grep eth
  eth0: VIA VT6102 Rhine-II at 0xe800, 00:0e:a6:36:47:40, IRQ 11.

Com arp -a arp -a retorna o IP e MAC das maquinas conectadas, quando não estão conectadas mas sabe o IP da maquina remota, a partir de qualquer maquina da rede, execute o comando ping e depois arp -a, exemplo de comando e resultado para descobrir o MAC de outra maquina com ip 192.168.1.233

  ping -c3 192.168.1.233
  
  suse64:~ # arp -v
  Address                  HWtype  HWaddress           Flags Mask            Iface
  192.168.1.120            ether   00:0E:A6:36:47:40   C                     eth0
  192.168.1.233            ether   00:08:54:2C:DD:FD   C                     eth0
  --corta--

No SUSE 10 arp está no pacote arptables, comando para instalar via smart; smart install arptables -y

Criar um arquivo texto com a lista de IP e MAC

arp -v | awk '{print $1" "$3}' >> /tmp/ipmac.txt

Criar variável contendo o MAC da eth0

  MEUMAC=`LC_ALL= LANG= /sbin/ifconfig eth0 | grep HWaddr | awk '{print $5}'`

No servidor Samba, procure no resultado de smbstatus para listar o MAC de quem está conectado.

Fixar IP conforme a placa de rede (por MAC)

Pode forçar a distribuição de IP conforme o MAC da placa de rede, tem suas vantagens, força a estação trabalhar sempre com o mesmo IP, por outro lado tem o incoveniente na troca da placa de rede nas estações, sempre que acrescentar novos micros ou trocar a placa de rede, precisa alterar também no /etc/dhcpd.conf, ou combinar o uso de algumas maquinas com IP fixo pelo MAC e demais estações sem este controle, tem muitas opções de configuração...

Pegar o MAC das placas de rede.

Vá na estação e dispare um ping para o servidor e depois execute arp no servidor, veja a sequência:

  Na estação:
  
    ping -c3 192.168.1.53
  
  No servidor o comando arp retorna:
  
    arp
  Endereço                 TipoHW  EndereçoHW          Flags Máscara         Iface
  192.168.1.121            ether   00:0C:76:8F:27:2F   C                     eth0

O MAC aparece abaixo de EndereçoHW, peque este codigo para usar no dhcpd.conf como neste exemplo;

  # IP fixo, micro do DP - dpessoal
  host dpessoal {
      hardware ethernet 00:0C:76:8F:27:2F;
      fixed-address 192.168.1.234;
  }

Precisa repetir este procedimento para cada maquina, pode incluir opções de gateway, DNS e outras diretivas, procure por fixed-address no FAQ indicado no final deste documento para ver mais exemplos.

Exemplo de um dhcpd.conf configurado para fixar IP para diversas maquinas.

  opensuse101:/home/zago # cat /etc/dhcpd.conf
  option domain-name "zago.intranet.net";
  option domain-name-servers 200.204.0.10;
  option routers 192.168.1.2;
  default-lease-time 14400;
  ddns-update-style none;
  subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.200 192.168.1.240;
    default-lease-time 14400;
    max-lease-time 172800;
    }
    host m7vig   {
   option host-name "m7vig.intranet.net";
   hardware ethernet 00:08:54:2C:DD:FD;
   fixed-address 192.168.1.204;
    }
  
    host ecsb760   {
   option host-name "ecsb760.intranet.net";
   hardware ethernet 00:14:2A:0D:33:95;
   fixed-address 192.168.1.211;
    }
  
    host a7s333   {
   option host-name "a7s333.intranet.net";
   hardware ethernet 00:E0:7D:E3:5F:1E;
   fixed-address 192.168.1.211;
    }

Localizar servidor - descobir IP do servidor de DHCP

Descobrir se tem servidor de DHCP e qual o IP.

Utilize nmap, para instalar, procure nmap no gerenciador de pacotes da sua distro, consultar o manual (man nmap).

Exemplo de linha de comando;

nmap -sU -p 67 192.168.1.1-254

No resultado identifica o servidor com este ip"Interesting ports on 192.168.1.120:";, veja resultado completo;

  Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at 2006-04-18 02:09 BRT
  Interesting ports on 192.168.1.2:
  PORT   STATE  SERVICE
  67/udp closed dhcps
  MAC Address: 00:02:E3:0E:EE:29 (Lite-on Communications)
  
  Interesting ports on suse64.site (192.168.1.53):
  PORT   STATE  SERVICE
  67/udp closed dhcps
  
  Interesting ports on 192.168.1.120:
  PORT   STATE  SERVICE
  67/udp closed dhcps
  MAC Address: 00:0E:A6:36:47:40 (Asustek Computer)
  
  Nmap finished: 254 IP addresses (3 hosts up) scanned in 5.565 seconds

CL7 e CL8 compartilhar internet e servidor DHCPD

CL7 instalado com todos os pacotes e kernel 2.4...

com duas placas de rede;

  eth0 speedy
  eth1 rede local

Compartilhar a conexão sem regras de firewall, colocar no final de /etc/rc.d/rc.local

      modprobe iptable_nat
      iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      echo 1 > /proc/sys/net/ipv4/ip_forward

Configurar para iniciar junto com o boot da maquina, execute ntsysv e selecione o dhcpd

Criar o arquivo de configuração;

cd /etc

use seu editor preferido para criar um arquivo dhcpd.conf ou pelo vi;

# vi dhcpd.conf

  # Sample /etc/dhcpd.conf
  # inicio
  
  default-lease-time 36000;
  max-lease-time 36000;
  
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.0.255;
  option routers 192.168.0.1;    # ip do servidor linux
  option domain-name-servers 200.204.0.10;  # DNS da telefonica
  option domain-name "Servidor.localdomain"; # nome do servidor linux
  
  subnet 192.168.0.0 netmask 255.255.255.0 {
     range 192.168.0.2 192.168.0.254;
  }
  
  # fim
  

OBS. No CL8 esta falhando na inicialização, basta entrar no linuxconf e acessar o item servidor de dhcp e colocar o nome do servidor, depois confera o arquivo /etc/dhcpd.conf, nesta instalação ficou assim;

  #inicio
  ### Managed by Linuxconf, you may edit by hand.
  ### Comments may not be fully preserved by linuxconf.
  
  ### Managed by Linuxconf, you may edit by hand.
  ### Comments may not be fully preserved by linuxconf.
  
  server-identifier serv.linux.com;
  ddns-update-style ad-hoc;
  default-lease-time 36000;
  max-lease-time 36000;
  option broadcast-address        192.168.0.255;
  option domain-name      "Servidor.localdomain";
  option domain-name-servers      200.204.0.10;
  option routers  192.168.0.1;
  option subnet-mask      255.255.255.0;
  subnet 192.168.0.0 netmask 255.255.255.0{
          range  192.168.0.4 192.168.0.254;
  }
  
  #fim

em /etc/rc.d/init.d; edite o arquivo de configuração dhcpd; vi dhcpd

  porocurar pela linha
  daemon /usr/sbin/dhcpd
  alterar para
  daemon /usr/sbin/dhcpd eth1
  
  onde eth1 é a placa de rede local.

Problemas e soluções

Evite ligar ao mesmo tempo, servidor e clientes, primeiro ligue o servidor e aguarde completar o boot para depois ligar as maquinas cliente DHCP, tente evitar que estações peguem IP antes do servidor completar o boot e rodar o servidor de IP.

Falha ao obter o IP, os motivos mais comuns são; servidor não está rodando o DHCPD, algum problema com cabos, HUB desligado, ou outra causa que provoque a interrupção da conexão, uma boa tecnica é tentar isolar o problema, usar um cabo crossover entre a estação e o servidor, nem sempre é possível, mas tente fazer o teste com alguma maquina mais próxima do servidor.

Quando a estação não consegue pegar o IP no servidor, o normal é ficar sem IP, em algumas situações, mesmo com servidor desligado, as estações pegam um IP que inicia com 169.xxx.xxx.xx, algo neste formato, 169.254.34.32, isto é um indicio que o servidor não está rodando ou não tem comunicação entre eles.

Quando falha a obtenção de IP, tem mensagem no boot, algo como "Bringing up interface eth0", esta mensagem depende da distro e versão.

Informações - na linha de comando, como root, ifconfig retorna o IP em uso e outras informações da placa de rede.

Verifique qual o comando de sua distro para reiniciar o serviço de rede, normalmente quando falha no boot, este comando é suficiente para pegar o IP e lenvantar a placa de rede.

Instalar SUSE 10.1 RC1 via rede, instalação com boot pela mini-iso para pegar o DVD exportado via NFS. Estação com MAC configurado para pegar IP fixo, não consegue montar o compartilhamento NFS, comentando a configuração por MAC desta placa, passa a pegar aleatório e desta forma funciona sem problemas. Também selecionando para não configurar via DHCP, exibe os dados que pegaria por DHCP, pode dar enter e manter os valores que funciona. Fica a impressão que tem algo a ver com host, nome da maquina ou outro detalhe que não notei. Depois de instalado, voltei a configuração por MAC e continuo funcionando, falha somente na instalação via NFS.

Documentação e manual

Mais dicas e FAQ com mensagens da lista Linux-br, exemplos de configuração com IP amarrado ao MAC da placa de rede e outros exemplos de configuração do servidor, veja em;
http://www.zago.eti.br/dhcpd.txt

Veja também no manual:

     man dhcpd
  
     man dhclient
  
     man dhcrelay
  
     man dhcpd.conf
  
     man dhcpd.leases
  
     man dhcp-options
  
  também as indicações de outras páginas que aparecem em SEE ALSO

URL com documentação sobre DHCP.
Site oficial, tutoriais e HOWTO
http://www.dhcp.org/
http://www.linux-mag.com/2000-04/networknirvana_01.html
http://www.tldp.org/HOWTO/DHCP/index.html
http://www.linuxjournal.com/article/8820

HowTo sobre como fazer um proxy NAT baseado no PAR IP/MAC address
http://www.linuxit.com.br/modules.php?name=Sections&op=viewarticle&artid=154

Mini-COMO FAZER DHCP (DHCPd/DHCPcd)
http://br.tldp.org/projetos/howto/arquivos/html/DHCP/DHCP.pt_BR.html
http://br.tldp.org/projetos/howto/arquivos/txt/DHCP.pt_BR.txt

Outros FAQ, DHCP, MAC-ADRESS e Iptables

FAQ e dicas sobre ip-tables
http://www.zago.eti.br/firewall/A-menu-firewall.html
http://www.zago.eti.br/firewall/iptables-mac.txt
FAQ com mensagens e indicações na Linux-br
http://www.zago.eti.br/dhcpd.txt

Pesquise no Google que encontra muitos documentos em Português.

Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html