EMotaWeb - Linux - DHCP
Data: 22/03/2004


1. 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.


2. Download
Site Oficial - http://www.isc.org/index.pl?/sw/dhcp/
Pacote: DHCP 3.0.1rc13


3. 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


4. Configurando
Notei que não existe um arquivo padrão/modelo para ser editado, então, segue abaixo um exemplo:
/etc/dhcpd.conf

4.1 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";
  }
}


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

5.1 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


6. LOG
Os LOGs podem ser encontrados em:

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

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


Qualquer dúvida ou informação, entre em contato emota@emota.com.br

EMotaWeb | Textos | Programação | Linux | Wireless | Contato | Topo ^