17 de fev de 2011

Nota de sysadmin sobre o DHCP

O Dynamic Host Configuration Protocol [1] é um serviço de rede bastante simples que responde as requisições enviadas por broadcast para o endereço "255.255.255.255" e responde com um endereço de rede e demais informações como gateway, dns, etc. Seus arquivos de logs geralmente fica em /var/lib/dhcp3/dhcpd.leases. 

O #sysadmin pode utilizar o dhcp e utilizá-lo como um componente de segurança da sua rede, uma vez que poderá atribuir endereços à maquinas pelo seu mac (endereço de hw) e então cruzar esta informação no seu firewall, ajustando serviços de rede de acordo com sua política.

A instalação do dhcp em uma máquina com Debian por exemplo, é muito simples, basta usar o aptitude e instalar os pacotes como no exemplo:


aptitude install dhcp3-server

O arquivo de configuração fica em /etc/dhcp3/dhcpd.conf, conforme exemplo abaixo:


# dhcpd.conf
authoritative;
# configuracao do wpad
option wpad code 252 = text;
option wpad "http://10.10.10.2/wpad.dat\n";
option wpad "http://10.10.10.2/wpad.dat{RESPOSTA}00";
#

ddns-update-style             ad-hoc;

option subnet-mask            255.255.255.0;
option broadcast-address      192.168.1.255;
option routers                192.168.1.254;
option domain-name-servers    208.67.220.220,208.67.222.222;
option domain-name            "servidor";   # You really should fix this
option option-128 code 128 = string;
option option-129 code 129 = text;
option netbios-name-servers 192.168.1.2;
option ntp-servers 192.168.1.254;
get-lease-hostnames           true;

#configuracao para maquinas boot remoto
next-server                   192.168.1.10;
option root-path              "192.168.1.10:/opt/ltsp-4.2/i386";
#
subnet 192.168.1.0 netmask 255.255.255.0 {
    range   192.168.1.41   192.168.1.253;
    if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
        filename "/lts/2.6.16.1-ltsp-1/pxelinux.0";
    }
    else{
         filename "/lts/vmlinuz-2.6.17.3-ltsp-1";
    }
}

#identificacao para maquinas com ip fixo
host host1 {
  hardware ethernet    01:1e:01:1a:87:84;
  fixed-address 192.168.1.48;
}

host phaser3250 {
  hardware ethernet  00:00:aa:af:53:7e;
  fixed-address 192.168.1.12;
}

Sempre que ocorrer qualquer tipo de problema na obtenção de um ip por uma máquina cliente, deve-se observar o que diz o log. Em situações em que o ip mostrado na máquina cliente for da classe 169.254.0.0/255.255.0.0, indica um recurso do Windows que atribui um ip APIPA para que a máquina possa se comunicar com outras para o caso de não encontrar um servidor dhcp, geralmente em pequenas redes. Este endereço não é válido na internet  e os recursos são bastante limitados, geralmente permitindo o compartilhamento entre máquinas locais. APIPA é a abreviatura de Automatic Private IP Addressing, introduzida a partir do Windows 98.




[1] http://pt.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol