Jump to Navigation

LinuxDhcp

SoftwareLivre

=  Apresentação  =
DHCP - Dynamic Host Configuration Protocol
Protocolo de Configuração Dinâmica de Estação

Sua função principal é de enviar as configurações básicas de rede para as estações solicitantes.
Essas configurações são as necessárias para uma estação poder acessar a rede.
Exemplo: Endereço de IP, Máscara, Gateway e DNS

Trabalhando em conjunto com o TFTP, o DHCP poderá definir uma arquivo para ser enviado a estação solicitante ao ter sua placa de rede inicializada.
Esses arquivo, seria o Kernel, no qual irá fazer a estação concluir o sistema de boot, usando esse arquivo" enviado.

Trabalhando em conjunto com o NFS, o DHCP também poderá definir um diretório no qual a estação solicitante irá usar para seu processso de inicialização do sistema.
Sendo assim, não é necessário a presença de um disco rídigo nas estações de trabalho.

Agora, para um melhor controle, o DHCP pode enviar configurações personalizadas para as estações, esse controlo é feito através do número de MAC Address da placa de rede.


=  Download  =
Site Oficial - http://www.isc.org/index.pl?/sw/dhcp/
Pacote: [ftp://ftp.isc.org/isc/dhcp/dhcp-3.0.1rc13.tar.gz DHCP 3.0.1rc13]


=  Compilando e Instalando  =
Após baixar o arquivo, descompacte-o usando o comando:
 # tar -xvzf dhcp-3.0.1rc13.tar.gz

Depois, basta entrar no diretório criado:
 # cd dhcp-3.0.1rc13
 # ./configure
 # make
 (eu precisei rodar 7x ele, para ele corrigir as dependência, o make depend num rolou aqui)
 # make install


=  Configurando  =
Notei que não existe um arquivo padrão/modelo para ser editado, então, segue abaixo um exemplo:
[http://www.emota.com.br/linux/dhcpd.conf /etc/dhcpd.conf]

==  Configurando: dhcpd.conf  ==
Vamos aos comenários ...

 # Arquivo: dhcpd.conf - gerado por EMota
 
 # Usado para interagir com o servidor de DNS
 # ddns-update-style           [none|ad-hoc|interim]
 ddns-update-style             none;
 
 default-lease-time            600;
 max-lease-time                7200;
 
 # O parâmetro 'shared-network', nos permiti separar as configurações por classes.
 # Neste caso, estamos usando a classe: WORKSTATIONS
 shared-network WORKSTATIONS {
 
   # Aqui, informamos qual rede que fazemos parte.
   # Para servidores que 'participem' de diversas redes, são criados vários 'subnet'
   # Caso, não queiramos trabalhar nela, declarea em banco ...
   # Exemplo: subnet 200.x.x.0 netmask 255.255.255.0 { }
 
   subnet 192.168.1.0 netmask 255.255.255.0 {
     # Bloco de IPs reservados para serem clientes DHCP
     range 192.168.1.50 192.168.1.60;
     # Máscara da Rede
     option subnet-mask            255.255.255.0;
     # Broadcast da Rede
     option broadcast-address      192.168.1.255;
     # Gateway da Rede
     option routers                192.168.1.1;
     # Servidor de DNS
     option domain-name-servers    200.190.77.11;
     # Domínio da Rede
     option domain-name            "meta";
     option option-128 code 128 = string;
     option option-129 code 129 = text;
 
     # Servidor de LOG
     option log-servers        192.168.1.1;
 
     # As próximas 3 linahs são usadas quando trabalhamos com Terminais Remotos/Burros
     # Se não for o seu caso, simplesmente comente essas linhas
     option root-path        "192.168.1.1:/trm/00";
     option option-129       "root=/dev/nfs nfsroot=192.168.1.1:/trm";
     filename                "vmlinuz";
     # A opção filename, é o arquivo contendo um Kernel para o boot-Remoto
   }
 }
 
 # GROUP neste caso, é usado para definir IPs para determinados HOSTs
 # Essa opção é feita através do MAC Address das placas.
 # Outra coisa que podemos fazer, é informar um diretório para ser o / (RAIZ)
 # dos terminais remotos.
 group   {
   # Ativa declaração de names para as máquinas.
   use-host-decl-names       on;
 
   # Define o NOME do HOST e suas configurações especiais
   host work01 {
     # Define o MAC Address do terminai que irá receber essas configurações
     hardware ethernet       00:E0:7D:F4:7C:16;
     # Fixa um IP para esse MAC Address
     fixed-address           192.168.1.11;
     # Define o diretório local, onde está a partição ROOT deste terminal
     option root-path        "192.168.1.1:/trm/01";
   }
 }


=  Executando  =
Quando for executar pela primeira vez, você precisa criar o arquivo de controle.
 # touch /var/state/dhcp/dhcpd.leases

==  Carregano o DHCPd  ==
Digite apenas:
 # dhcpd

Se der alguma mensagem, leia atentamente, pois ela informará exatamente onde está o erro.
Uma dica importante é para aqueles que possuem mais de 1 placa de rede.
Para rodar o dhcpd em interfaces específicas, digite: dhcpd ethX
Exemplo usando eth0:
 # dhcpd eth0


=  LOG  =
Os LOGs podem ser encontrados em:

==  HOST Cadastrados  ==
 # /var/state/dhcp/dhcpd.leases

==  Chamadas do Sistema  ==
 # /var/log/message | grep dhcpd


=  Autor  =
[:Usuário:EMota: Eduardo Mota]