Red Hat Enterprise Linux 3: Guia de Administração de Sistemas | ||
---|---|---|
Anterior | Capítulo 25. Protocolo de Configuração Dinâmica de Máquina (Dynamic Host Configuration Protocol - DHCP) | Próxima |
Para configurar um servidor DHCP, altere o arquivo de configuração /etc/dhcpd.conf.
O DHCP também usa o arquivo /var/lib/dhcp/dhcpd.leases para armazenar o banco de dados de aluguel de clientes. Consulte a Seção 25.2.2 para mais informações.
O primeiro passo para configurar um servidor DHCP é criar o arquivo de configuração que armazena as informações de rede dos clientes. É possível declarar opções globais para todos os clientes, e também declarar opções para cada sistema cliente separadamente.
O arquivo de configuração pode conter espaços tab ou linhas em branco para uma formatação mais fácil. As palavras-chave são sensíveis a caixa alta e baixa, e as linhas iniciadas com a marca do jogo da velha (#) são consideradas comentários.
Atualmente são implementados dois esquemas de atualização do DNS — o modo de atualização do DNS improvisado e o modo de atualização do esquema de interação do intervalo DHCP-DNS. Se e quando estes dois são aceitos como parte do processo padrão IETF, haverá um terceiro modo — o método de atualização do DNS padrão. O servidor DHCP deve ser configurado para usar um dos dois esquemas atuais. A versão 3.0b2pl11 e a anterior usaram o modo improvisado; no entanto, este foi desaprovado. Para manter o mesmo comportamento, adicione a linha seguinte no topo do arquivo de configuração:
ddns-update-style ad-hoc; |
Para usar o modo recomendado, adicione a seguinte linha no topo do arquivo de configuração:
ddns-update-style interim; |
Consulte a página man do dhcpd.conf para detalhes sobre os diferentes modos.
Há dois tipos de declarações no arquivo de configuração:
Parâmetros — determinam como executar uma tarefa, se deve-se executar a tarefa, ou quais opções de configuração de rede devem ser enviadas ao cliente.
Declarações — descrevem a topologia da rede e os clientes, provêm endereços para os clientes, ou aplicam um grupo de parâmetros a um grupo de declarações.
Alguns parâmetros devem iniciar com a palavra-chave option e são referidos como opções. Elas configuram as opções DHCP; enquanto os parâmetros configuram os valores não-opcionais ou controlam o modo como o servidor DHCP se comporta.
Os parâmetros (incluindo as opções) declarados antes do fechamento de uma seção com chaves ({ }) são considerados globais. Os parâmetros globais são aplicados a todas as seções abaixo deles.
![]() | Importante |
---|---|
Se o arquivo de configuração é alterado, as alterações não terão efeito até que o daemon DHCP seja reiniciado com o comando service dhcpd restart. |
No Exemplo 25-1, as opções routers, subnet-mask, domain-name, domain-name-servers e time-offset são usadas para qualquer declaração de host abaixo delas.
Conforme mostra o Exemplo 25-1, uma subnet pode ser declarada. Uma declaração da subnet deve ser inclusa para cada sub-rede na rede. Se não for, o servidor DHCP falha na inicialização.
Neste exemplo há opções globais para cada cliente DHCP da sub-rede e um range (intervalo) declarado. Clientes são atribuídos com um endereço IP dentro do range.
subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time range 192.168.1.10 192.168.1.100; } |
Exemplo 25-1. Declaração de Sub-rede
Todas as sub-redes que compartilham a mesma rede física devem ser indicados em uma declaração shared-network, conforme mostra o Exemplo 25-2. Os parâmetros dentro da shared-network mas fora das declarações subnet fechadas são considerados globais. O nome da shared-network dever ser um título descritivo da rede, como test-lab, para descrever todas as sub-redes de um ambiente de laboratório de testes.
shared-network name { option domain-name "test.redhat.com"; option domain-name-servers ns1.redhat.com, ns2.redhat.com; option routers 192.168.1.254; more parameters for EXAMPLE shared-network subnet 192.168.1.0 netmask 255.255.255.0 { parameters for subnet range 192.168.1.1 192.168.1.31; } subnet 192.168.1.32 netmask 255.255.255.0 { parameters for subnet range 192.168.1.33 192.168.1.63; } } |
Exemplo 25-2. Declaração de Rede Compartilhada
Como demonstrado na Exemplo 25-3, a declaração de group pode ser usada para aplicar parâmetros globais a um grupo de declarações. Por exemplo: redes compartilhadas (shared networks), sub-redes (subnets), máquinas (hosts) ou outros grupos podem ser agrupados.
group { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; } } |
Exemplo 25-3. Declaração de Grupo
Para configurar um servidor DHCP que aluga um endereço IP dinâmico para um sistema em uma sub-rede, modifique o Exemplo 25-4 com seus valores. Este declara um tempo default de aluguel, um tempo máximo de aluguel e valores de configuração de rede dos clientes. Este exemplo atribui endereços IP no range 192.168.1.10 a 192.168.1.100 para sistemas cliente.
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "example.com"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; } |
Exemplo 25-4. Parâmetro de Escala
Para atribuir um endereço IP a um cliente, baseado no endereço MAC da placa de interface da rede, use o parâmetro hardware ethernet em uma declaração host. Conforme mostra o Exemplo 25-5, a declaração host apex especifica que a placa de interface de rede com o endereço MAC 00:A0:78:8E:9E:AA sempre recebe o endereço IP 192.168.1.4.
Note que o parâmetro opcional host-name pode ser usado para atribuir um nome de máquina para o cliente.
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } |
Exemplo 25-5. Endereço IP Estático usando DHCP
![]() | Dica | |
---|---|---|
A amostra do arquivo de configuração provido pode ser usada como um ponto de partida. Opções personalizadas de configuração podem ser adicionadas a ele. Para copiá-lo à localidade apropriada, use o segunte comando:
|
Para uma lista completa das opções de declaração e suas funções, consulte a página man dhcp-options.
No servidor DHCP, o arquivo /var/lib/dhcp/dhcpd.leases armazena o banco de dados de aluguel do cliente DHCP. Este arquivo não deve ser modificado manualmente. As informações de aluguel DHCP de cada endereço IP recentemente atribuído são armazenadas automaticamente no banco de dados de aluguel. As informações incluem datas do aluguel e os endereços MAC da placa de interface de rede usada para recuperar o aluguel.
Todos os horários do banco de dados de aluguel estão em GMT (Greenwich Mean Time) e não horário local.
O banco de dados de aluguel é recriado de tempos em tempos para que não fique muito grande. Primeiramente, todos os aluguéis conhecidos são salvos em um banco de dados temporário de aluguel. Então, o arquivo dhcpd.leases é renomeado para dhcpd.leases~, e o banco de dados temporário é salvo como dhcpd.leases.
O daemon DHCP pode ser finalizado (killed) ou o sistema pode falhar (crash) após o banco de dados de aluguel ter sido renomeado como o arquivo backup, mas antes do novo arquivo ser salvo. Se isto acontecer, o arquivo dhcpd.leases não existe, mas é necessário para iniciar o serviço. Não crie um novo arquivo de aluguel. Se você o fizer, todos os aluguéis antigos serão perdidos e causarão muitos problemas. A solução correta é renomear o arquivo backup dhcpd.leases~ como dhcpd.leases e então iniciar o daemon.
![]() | Importante |
---|---|
Quando o servidor DHCP é iniciado pela primeira vez, ele falhará a não ser que o arquivo dhcpd.leases exista. Use o comando touch /var/lib/dhcp/dhcpd.leases para criar este arquivo se ainda não existir. |
Para iniciar o serviço DHCP, use o comando /sbin/service dhcpd start. Para parar o servidor DHCP, use o comando /sbin/service dhcpd stop. Para configurar o daemon para inciar automaticamente no momento da inicialização, consulte o Capítulo 21 para informações sobre a administração dos serviços.
Se houver mais de uma interface de rede ligada ao sistema, mas o servidor DHCP deve ser iniciado em apenas uma das interfaces, configure o servidor para iniciar somente naquele dispositivo. No /etc/sysconfig/dhcpd, adicione o nome da interface à lista de DHCPDARGS:
# Command line options here DHCPDARGS=eth0 |
Isto é útil para uma máquina firewall com duas placas de rede. Uma placa de rede pode ser configurada como um cliente DHCP para recuperar um endereço IP para a Internet. A outra placa de rede pode ser usada como um servidor DHCP da rede interna por trás do firewall. Especificar somente a placa de rede ligada à rede interna torna o sistema mais seguro, porque os usuários podem conectar ao daemon via Internet.
Outras opções de comando de linha que podem ser usadas no /etc/sysconfig/dhcpd incluem:
-p <portnum> — Especifica o número da porta udp que deve ser escutada pelo dhcpd. A porta default é a 67. O servidor DHCP transmite respostas aos clientes DHCP em uma porta de um número maior que a porta udp especificada. Por exemplo: se a porta default usada é a 67, o servidor escuta na porta 67 por pedidos e responde ao cliente na porta 68. Se a porta é especificada aqui e o agente DHCP relay é usado, deve-se especificar a mesma porta na qual o agente DHCP relay escuta. Consulte o Seção 25.2.4 para mais detalhes.
-f — Roda o daemon como um processo em primeiro plano. Isto é usado principalmente para a depuração.
-d — Registra o daemon do servidor DHCP no descirtor de erro padrão. Isto é usado principalmente para a depuração. Se não é especificado, o registro é salvo como /var/log/messages.
-cf <filename> — Especifica a localidade do arquivo de configuração. A localidade default é /etc/dhcpd.conf.
-lf <filename> — Especifica a localidade do arquivo de banco de dados de aluguel. Se este arquivo já existir, é muito importante usar o mesmo arquivo toda vez que o servidor DHCP é iniciado. É altamente recomendado que esta opção seja usada somente para fins de depuração em máquinas que não sejam de produção. A localidade default é /var/lib/dhcp/dhcpd.leases.
-q — Não imprime a mensagem de direitos autorais na íntegra ao iniciar o daemon.
O Agente DHCP Relay (dhcrelay) permite o revezamento de pedidos DHCP e BOOTP de uma sub-rede sem um servidor DHCP, para um ou mais servidores DHCP em outras sub-redes.
Quando um cliente DHCP solicita informações, o Agente DHCP Relay encaminha o pedido à lista de servidores DHCP especificada quando o Agente DHCP Relay é iniciado. Quando um servidor DHCP retorna uma resposta, esta deve ser transmitida amplamente ou somente para a rede que enviou o pedido original.
O Agente DHCP Relay escuta pedidos DHCP em todas as interfaces, a não ser que as interfaces estejam especificadas no /etc/sysconfig/dhcrelay com a diretiva INTERFACES.
Para iniciar o Agente DHCP Relay, use o comando service dhcrelay start.