Tive a necessidade de instalar um servidor DHCP estável em uma empresa com a distribuição de 510 IPs por questões de segurança, pois provavelmente 254 IPs não seriam suficientes.
Executei inicialmente os seguintes comandos:
root@proxy:~ # cd /usr/ports/
root@proxy:/usr/ports # make search name=dhcp | grep Port
Port: dhcp6-20080615_2
Port: dhcpcd-3.2.3
Port: dhcpd-pools-2.23
Port: dhcpdump-1.8
Port: dhcperf-1.0.1.0
Port: dhcping-1.2
Port: dhcprelay-1.2_1
Port: dhcprelya-4.7
Port: isc-dhcp41-client-4.1.e_2,2
Port: isc-dhcp41-relay-4.1.e_5,2
Port: isc-dhcp41-server-4.1.e_7,2
Port: isc-dhcp42-client-4.2.5
Port: isc-dhcp42-relay-4.2.5
Port: isc-dhcp42-server-4.2.5
Port: p5-Net-DHCP-0.693
Port: p5-Net-DHCPClient-1.0
Port: pxe-pdhcp-0.0.2007
Port: wide-dhcp-1.4.0.7
Port: p5-Text-DHCPLeases-1.0
Port: net/dhcp-agent
Port: net/isc-dhcp3-server
Port: net/isc-dhcp3-relay
Port: net/isc-dhcp3-client
Port: net/isc-dhcp30-client
Port: net/isc-dhcp30-relay
Port: net/isc-dhcp30-server
Port: net/isc-dhcp3-devel
Port: net/isc-dhcp31-client
Port: net/isc-dhcp31-server
Port: net/isc-dhcp31-relay
root@proxy:/usr/ports # cd net
root@proxy:/usr/ports/net # cd isc-dhcp42-server/
root@proxy:/usr/ports/net/isc-dhcp42-server #
Agora basta executar o ‘make install’:
root@proxy:/usr/ports # make install
O endereço de IP local deste servidor está na placa bce4, logo é sobre ela que eu vou levantar o DHCP para a distribuição de ips em minha rede local, assim adiciono as seguintes linhas ao rc.conf:
dhcpd_enable="YES" # dhcpd enabled?
dhcpd_flags="-q" # command option(s)
dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file
dhcpd_ifaces="bce4" # ethernet interface(s)
dhcpd_withumask="022" # file creation mask
O IP do servidor é 192.168.0.1, entretanto, vou distribuir os IPs do 192.168.0.20 ao 192.168.1.254. Assim temos o seguinte cálculo de IP:
Address: 192.168.0.1 11000000.10101000.0000000 0.00000001 Netmask: 255.255.254.0 = 23 11111111.11111111.1111111 0.00000000 Wildcard: 0.0.1.255 00000000.00000000.0000000 1.11111111 => Network: 192.168.0.0/23 11000000.10101000.0000000 0.00000000 (Class C) Broadcast: 192.168.1.255 11000000.10101000.0000000 1.11111111 HostMin: 192.168.0.1 11000000.10101000.0000000 0.00000001 HostMax: 192.168.1.254 11000000.10101000.0000000 1.11111110 Hosts/Net: 510 (Private Internet)
Veja como ficou o dhcpd.conf:
root@proxy:/usr/local/etc # cat dhcpd.conf
option domain-name-servers 192.168.0.254;
option subnet-mask 255.255.254.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.254.0 {
range 192.168.0.20 192.168.1.249;
option routers 192.168.0.254;
}
Iniciando o processo do servidor de DHCP:
root@proxy:/usr/local/etc # cd rc.d
root@proxy:/usr/local/etc/rc.d # ls
apache24 htcacheclean isc-dhcpd isc-dhcpd6 mysql-server
root@proxy:/usr/local/etc/rc.d # ./isc-dhcpd restart
Stopping dhcpd.
Waiting for PIDS: 19030.
Starting dhcpd.
root@proxy:/usr/local/etc/rc.d #
Pronto!