Skip to content

Servidores \ Neo Server \ DHCP Server Master

rthomaz edited this page Jun 16, 2017 · 6 revisions

DHCP Server Master

Atenção: Num segmento de rede só deve existir um único servidor DHCP, pelo que poderá eventualmente ser necessário desactivar o servidor DHCP do router ADSL.

Instalação

root@server:~# apt-get install isc-dhcp-server

Configuração

O serviço DHCP só deverá estar disponível para a rede interna. Por isso só deverá aceitar ligações pela interface interna (eth0, neste caso), o que é definido no ficheiro de configuração /etc/default/isc-dhcp-server:

root@server:~# cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.original

root@server:~# nano /etc/default/isc-dhcp-server

# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# [...]

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

A parte principal da configuração é mantida no ficheiro /etc/dhcp/dhcpd.conf.

Neste ficheiro é indicado o nome de domínio (option domain-name “rthomaz.local”;), os endereços dos servidores DNS (option domain-name-servers da intranet). Na opção domain-name-servers poderá indicar o nome do servidor dns local (exemplo: ns.rtserver1.local) em vez do endereço ip;

É também definida a duração normal e máxima da atribuição do endereço IP atribuído (default-lease-time 600 e max-lease-time 7200;). O cliente poderá sempre pedir uma nova atribuição antes da atual expirar, podendo receber ou não o mesmo endereço IP.

root@server:~# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original

root@server:~# nano /etc/dhcp/dhcpd.conf

#
# Sample configuration file for ISC dhcpd for Debian
#
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "rthomaz.local";
option domain-name-servers 192.168.0.101 192.168.0.100;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# [...]

A configuração do failover é relativamente simples. A principal diferença é que será adicionada uma nova declaração denominada "failover peer", onde definiremos a função do servidor (primário ou secundário) e as portas em que ambos os servidores parceiros irão conversar para sincronizar os empréstimos de endereços.

root@server:~# nano /etc/dhcp/dhcpd.conf

# [...]

## Failover
failover peer "RTDHCP"
{
    primary;                     #define servidor como primário
    address 192.168.0.101;       #endereço do servidor local
    port 647;                    #porta do servidor local
    peer address 192.168.0.100;  #endereço do servidor parceiro
    peer port 647;               #porta do servidor parceiro
    max-response-delay 30;
    max-unacked-updates 10;
    load balance max seconds 3;
    mclt 1800;
    split 128;
}

# [...]

Os parâmetros mclt e split somente devem ser configurados no servidor primário. O parâmetro mclt (maximum client lead time) corresponde à extensão do tempo de lease concedido aos clientes no caso de falha do servidor responsável. O parâmetro split é uma métrica que define a proporção de balanceamento de carga entre os dois servidores, podendo variar de 0 (toda a carga no servidor secundário) até 255 (toda a carga no servidor primário), sendo que 128 equivale ao balanceamento simétrico (50/50).

Finalmente, para o segmento de rede 192.168.0.0, é indicada a gama de endereços disponível para a atribuição (range 192.168.0.10 192.168.0.99;), qual o router a utilizar (option routers 192.168.0.1;) e qual o endereço de broadcast (option broadcast-address 192.168.0.255;)

# [...]

## SubNet local
subnet 192.168.0.0 netmask 255.255.255.0 {
  option routers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  option netbios-name-servers 192.168.0.101;
  pool
  {
      failover peer "RTDHCP";
      range 192.168.0.10 192.168.0.99;
  }
}

# [...]

Finalmente, adicionaremos também a configuração para proxy automático:

# [...]

## Proxy auto configuration
option wpad code 252 = text;
option wpad "http://wpad.rthomaz.local/wpad.dat";

Reiniciar o serviço dhcp:

root@server:~# service isc-dhcp-server restart

Referências

Clone this wiki locally