Instalando e Configurando DHCP Server no Windows Server 2012 Server Core

O DHCP, Dynamic Host Configuration Protocol (Protocolo de configuração dinâmica de host), é um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede. Este protocolo é o sucessor do BOOTP que, embora mais simples, tornou-se limitado para as exigências atuais. O DHCP surgiu como padrão em Outubro de 1993. O RFC 2131 contém as especificações mais atuais (março de 1997). O último standard para a especificação do DHCP sobre IPv6 (DHCPv6) foi publicado a Julho de 2003 como RFC 3315.

Resumidamente, o DHCP opera da seguinte forma:

  • Um cliente envia um pacote UDP em broadcast (destinado a todas as máquinas) com um pedido DHCP
  • Os servidores DHCP que capturarem este pacote irão responder (se o cliente se enquadrar numa série de critérios — ver abaixo) com um pacote com configurações onde constará, pelo menos, um endereço IP, uma máscara de rede e outros dados opcionais winks , como o gateway, servidores de DNS, etc.

O DHCP usa um modelo cliente-servidor, no qual o servidor DHCP mantém o gerenciamento centralizado dos endereços IP usados na rede.

Agora vamos instalar a função de Servidor DHCP

C:\Users\Administrator>dism /online /enable-feature /featurename:DHCPServer

Deployment Image Servicing and Management tool
Version: 6.2.8400.0

Image Version: 6.2.8400.0

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.

C:\Users\Administrator>

Vamos conferir se ele esta para inicializar junto com o Windows

C:\Users\Administrator>sc qc DHCPServer
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: DHCPServer
        TYPE               : 20  WIN32_SHARE_PROCESS
        START_TYPE         : 2   AUTO_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\Windows\system32\svchost.exe -k DHCPServer
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : DHCP Server
        DEPENDENCIES       : RpcSs
                           : Tcpip
                           : SamSs
                           : EventLog
                           : EventSystem
        SERVICE_START_NAME : NT AUTHORITY\NetworkService

C:\Users\Administrator>

Caso ele não esteja para inicializar junto com o Windows podemos colocar ele da seguinte forma

C:\Users\Administrator>sc config dhcpserver start= auto
[SC] ChangeServiceConfig SUCCESS

Para iniciar o serviço caso ele ainda não esteja rodando podemos executar o seguinte comando

C:\Users\Administrator>net start dhcpserver
The DHCP Server service is starting...
The DHCP Server service was started successfully.

Para para o serviço de dhcpserver podemos fazer da seguinte forma

C:\Users\Administrator>net stop dhcpserver
The DHCP Server service is stopping.
The DHCP Server service was stopped successfully.

Caso este servidor DHCP esteja rodando em uma rede com AD precisamos autorizar ele da seguinte forma

netsh dhcp server \\%COMPUTERNAME% initiate auth

Para que o servidor DHCP forneça um pacote com as configurações de TCP/IP da sua rede é necessário configurar um escopo DHCP. O escopo contém dados de configuração do TCP/IP que serão transmitidos aos clientes.

Entre as principais informções que podemos definir em um escopo estão:

  • Nome do escopo: Nome que identifica o escopo, pois podemos ter vários escopos dentro de uma organização
  • Rede: A rede IP vinculada ao escopo
  • Intervalo de endereços IPs: São os endereços IPs que os clientes irão receber.
  • Máscara de sub-rede: A máscara de sub-rede que os clientes irão receber.
  • Intervalo de IPs excluídos: IPs que estarão definidos no escopo, mas que não serão entregues aos clientes (exemplo: os IPs dos servidores)
  • DNS: O endereço IP do servidor DNS da rede.
  • WINS: O endereço IP do servidor WINS da rede.
  • Gateway: O endereço do gateway da rede
  • Reservas: São endereços IPs que sempre serão entregues para as mesmas máquinas; isso é possível graças ao MAC Address do cliente.

Para obter o endereço ip podemos obter com o comando

ipconfig /all

Podemos tambem obter da seguinte forma

ping ip_cliente
arp -a

Outro comando que podemos utilizar é o seguinte

nbstat -a nome_maquina

Agora vamos definir como que vai ser o nosso DHCP

  • Nome do escopo: Win2012-C01
  • Descrição do Escopo: DHCP Windows 2012 Core
  • Rede: 192.168.1.0
  • Máscara de sub-rede: 255.255.255.0
  • Intervalo de endereços: 192.168.1.1 até 192.168.1.50
  • Intervalo de exclusão de IPs: 192.168.1.1 até 192.168.1.10
  • Reserva: IP 192.168.1.11 MAC Address: 7d-5f-b6-f1-77-de
  • Endereço IP do Gateway: 192.168.1.1
  • Endereço IP do Servidor DNS: 192.168.1.1
  • Período de concessão (Lease): 8 Dias

Agora vamos criar e ativar o nosso escopo DHCP

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% add scope 192.168.1.0 255.255.255.0 Win2012-C01 "DHCP Windows 2012 Core"

Command completed successfully.

C:\Users\Administrator>

Agora vamos definir o intervalo de ips que vamos disponibilizar para os usuários

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 add iprange 192.168.1.1 192.168.1.50

Changed the current scope context to 192.168.1.0 scope.

Command completed successfully.

C:\Users\Administrator>

Agora vamos criar a exclusão de alguns ips em nosso escopo

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 add excluderange 192.168.1.1 192.168.1.5

Changed the current scope context to 192.168.1.0 scope.

Command completed successfully.

C:\Users\Administrator>

Agora vamos definir o IP do servidor DNS no escopo DHCP

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 set optionvalue 006 ipaddress 192.168.1.1

Changed the current scope context to 192.168.1.0 scope.

Command completed successfully.

C:\Users\Administrator>

Para obter uma lista das possiveis opções para o servidor dhcp podemos executar o seguinte comando

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% show optiondef

Agora vamos definir o ip do Gateway no escopo DHCP

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 set optionvalue 003 ipaddress 192.168.1.1

Changed the current scope context to 192.168.1.0 scope.

Command completed successfully.

Agora precisamos criar uma reserva no DHCP

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 add reservedip 192.168.1.11 7d5fb6f177de

Changed the current scope context to 192.168.1.0 scope.

Command completed successfully.

Agora vamos ativar o escopo do DHCP caso ele ainda não esteja ativo, podemo verificar se ele está ativo com o seguinte comando

netsh dhcp server \\%COMPUTERNAME% show scope

Caso ele não esteja ativo podemos ativar ele com o seguinte comando.

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 set state 1

Changed the current scope context to 192.168.1.0 scope.

Command completed successfully.

Caso precise autorizar no AD

netsh dhcp server \\%COMPUTERNAME% initiate auth

Com isso o nosso servidor DHCP já esta funcionando agora vamos ver algumas tarefas básicas dele.

Vamos visualizar a configuração do nosso DHCP

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% show all

MIBCounts:
        Discovers = 0.
        Offers = 0.
        Delayed Offers = 0.
        Requests = 0.
        Acks = 0.
        Naks = 0.
        Declines = 0.
        Releases = 0.
        ServerStartTime = domingo, 19 de agosto de 2012 12:02:52
        Scopes = 1.
        Scopes with Delay configured= 0.
        Subnet = 192.168.1.0.
                No. of Addresses in use = 1.
                No. of free Addresses = 44.
                No. of pending offers = 0.


Server Database Properties :

        DatabaseName              = dhcp.mdb
        DatabasePath              = C:\Windows\system32\dhcp
        DatabaseBackupPath        = C:\Windows\system32\dhcp\backup
        DatabaseBackupInterval    = 60 mins.
        DatabaseLoggingFlag       = 1
        DatabaseRestoreFlag       = 0
        DatabaseCleanupInterval   = 60 mins.


Server Status:
        Server Attrib - Rogue Authorization Succeeded :TRUE
        Server Attrib - Dynamic BootP Support Enabled :TRUE
        Server Attrib - DHCP Server Part Of DS        :FALSE
        Server Attrib - DHCP Server Bindings Aware    :TRUE
        Server Attrib - Administrative Rights         :TRUE

Para excluir uma reserva no escopo do DHCP podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 delete reservedip 192.168.1.11 7d5fb6f177de

Changed the current scope context to 192.168.1.0 scope.

Command completed successfully.

Podemos fazer um backup da nossa configuração do dhcp da seguinte forma

C:\Users\Administrator>netsh dhcp server dump > dhcp.cfg

Para restaurar um backup do dhcp podemos fazer da seguinte forma

netsh exec dhcp.cfg

Para listar os clientes que estão usando endereços ips fornecidos pelo dhcp podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 show clients

Changed the current scope context to 192.168.1.0 scope.

Type : N - NONE, D - DHCP B - BOOTP, U - UNSPECIFIED, R - RESERVATION IP
================================================================================
==
IP Address      - Subnet Mask    - Unique ID           - Lease Expires        -T
ype
================================================================================
==

192.168.1.11    - 255.255.255.0  -7d-5f-b6-f1-77-de   - INACTIVE             -R

No of Clients(version 4): 1 in the Scope : 192.168.1.0.

Command completed successfully.

C:\Users\Administrator>

Para listar o range do nosso scopo podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 show  iprange

Changed the current scope context to 192.168.1.0 scope.

=============================================================
   Start Address   -    End Address    -     Address Type
=============================================================
   192.168.1.1     -   192.168.1.50    -  DHCP ONLY

No of IP Ranges : 1 in the Scope : 192.168.1.0.

Command completed successfully.

C:\Users\Administrator>

Para listar as opções que estão definidas em nosso dhcp podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 show
  optionvalue

Changed the current scope context to 192.168.1.0 scope.

Options for Scope 192.168.1.0:

        DHCP Standard Options :
        General Option Values:
        OptionId : 51
        Option Value:
                Number of Option Elements = 1
                Option Element Type = DWORD
                Option Element Value = 691200
        OptionId : 6
        Option Value:
                Number of Option Elements = 1
                Option Element Type = IPADDRESS
                Option Element Value = 192.168.1.1
        OptionId : 3
        Option Value:
                Number of Option Elements = 1
                Option Element Type = IPADDRESS
                Option Element Value = 192.168.1.1
        OptionId : 81
        Option Value:
                Number of Option Elements = 1
                Option Element Type = DWORD
                Option Element Value = 5
Command completed successfully.

C:\Users\Administrator>

Para listar o range que excluimos da concessão podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 show excluderange

Changed the current scope context to 192.168.1.0 scope.

=======================================
   Start Address   -    End Address
=======================================
   192.168.1.1     -   192.168.1.5

No of ExcludeRanges : 1 in the Scope : 192.168.1.0.

Command completed successfully.

C:\Users\Administrator>

Para listarmos as reservas de endereço ip em nosso dhcp podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 show reservedip

Changed the current scope context to 192.168.1.0 scope.

===============================================================
  Reservation Address -    Unique ID
===============================================================

    192.168.1.11      -    7d-5f-b6-f1-77-de-


No of ReservedIPs : 1 in the Scope : 192.168.1.0.

Command completed successfully.

C:\Users\Administrator>

Para consultar o status do nosso scopo podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 show state

Changed the current scope context to 192.168.1.0 scope.

Current State of the Scope 192.168.1.0 : Active

Command completed successfully.

Para excluirmos um escopo do dhcp podemos fazer da seguinte forma

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% delete scope 192.168.0 dhcpfullforce

Command completed successfully.

C:\Users\Administrator>

Se quiser testar o backup que fizemos anteriormente é só executar então

netsh exec dhcp.cfg

Agora vamos listar o nosso escopo novamente

C:\Users\Administrator>netsh dhcp server \\%COMPUTERNAME% scope 192.168.1.0 show  state

Changed the current scope context to 192.168.1.0 scope.

Current State of the Scope 192.168.1.0 : Active

Command completed successfully.

Se quiser parar o serviço do DHCP

C:\Users\Administrator>net stop dhcpserver
The DHCP Server service is stopping.
The DHCP Server service was stopped successfully.

C:\Users\Administrator>