Protocolo DHCP

Propaganda
Protocolo DHCP
Redes de Computadores
Módulo 8 – OP3
Motivação
• Obtenção dos parâmetros de configuração IP de forma
dinâmica
• Simplificação da tarefa de gestão do endereçamento e
configuração
• Consistência de configuração entre máquinas.
• Reutilização de endereços IP
DHCP
2
Cenários
Mobilidade!
DHCP
3
Parâmetros essenciais ao funcionamento do TCP/IP •
Endereço IP
• Máscara de rede
• Endereço dos routers por omissão
• Endereços IP dos servidores DNS
DHCP
4
História
• 1985 - BOOTP publicado a primeira vez como RFC 951
• 1988 - BOOTP vendor extensions definidas no RFC 1048
• 1993 - DHCP primeira publicação como RFC 1531 (standard
proposto)
• 1997 - DHCP revisto:
i t
- RFC2131 - Dynamic Host Configuration Protocol
- RFC2132 - DHCP Options and BOOTP Vendor Extensions
• 2000 - Definidos os procedimentos formais para as opções
alocadas (RFC 2939)
• Actualmente - Grande número de opções continuam por
definir
DHCP
5
Origens do protocolo
• Extensão do protocolo Bootstrap Protocol (BOOTP)
- Usa UDP (User Datagram Protocol) como transporte (o servidor usa
o porto 67 e o cliente o 68)
• Inter-operável com clientes de BOOTP
- As opções DHCP têm o mesmo formato que as BOOTP vendor
options
• Diferenças mais notáveis:
- Define mecanismos para que os endereços sejam dispensados
durante um tempo finito
- Contempla o fornecimento de outros parâmetros necessários para
o funcionamento do TCP/IP
DHCP
6
DHCP na pilha de protocolos da família TCP/IP
APP
Ping
g
DHCP
TRA
NET
DNS
HTTP
UDP
FTP
SMTP
TCP
ICMP
IP
IGMP
D-L
802.11
802.3
PPP
PHY
RF
10/100/
1000BaseX
POTS
DHCP
7
Procedimentos para gestão de parâmetros
• Obtenção de configuração: Servidor desconhecido •
Obtenção de configuração: Servidor conhecido •
Obtenção de configuração: Renovação do "aluger“
• Renovação de aluguer: Servidor não responde
• Obtenção de informações por aplicações •
Dispensa de recursos
• Servidor muda parâmetros
• Obtenção de configuração via Relay Agent
DHCP
8
Obtenção de configuração: Servidor desconhecido
DHCP1
DHCP2
Cliente DHCP
DISCOVER (B)
OFFER (1)
OFFER (2)
REQUEST (B)
ACK
DHCP
9
Obtenção de configuração: Servidor desconhecido
INIT
Recebe: DHCPACK
Faz: Não aceita condições
Envia: DHCPDECLINE
Envia: DHCPDISCOVER (B)
Recebe: DHCPNAK
Faz: Esquece oferta
SELECTING
Recebe: DHCPOFFER
Faz: Recolhe ofertas
Faz:
Selecciona
oferta
Envia: DHCPREQUEST (B)
REQUESTING
BOUND
Recebe: DHCPACK
Faz: Guarda parâmetros e
acerta os tempos de «aluguer».
DHCP
10
Obtenção de configuração: Servidor conhecido
DHCP1
Cliente DHCP
DHCP2
REQUEST
ACK
DHCP
11
Obtenção de configuração: Servidor conhecido
INIT/REBOOT
Envia: DHCPREQUEST
REBOOTING
Recebe: DHCPNAK
Faz: Restart
INIT
Recebe: DHCPACK
Faz: Guarda parâmetros e
acerta os tempos de «aluguer».
Envia: DHCPDISCOVER (B)
BOUND
DHCP
12
Obtenção de configuração: Renovação do “aluguer”
DHCP1
Cliente DHCP
DHCP2
REQUEST
ACK
DHCP
13
Obtenção de configuração: Renovação do “aluguer”
INIT
Envia: DHCPDISCOVER (B)
Recebe: DHCPNAK
Faz: Pára comunicações
T1 Expira (Renew Timeout)
Envia: DHCPREQUEST (p/ servidor)
BOUND
RENEWING
Recebe: DHCPACK
Faz: Guarda parâmetros e acerta
os tempos de «aluguer».
DHCP
14
Renovação de aluguer: Servidor não responde
DHCP1
Cliente DHCP
DHCP2
REQUEST
REQUEST
REQUEST (B)
ACK ou NAK
DHCP
15
Renovação de aluguer: Servidor não responde
INIT
Recebe: DHCPNACK ou
termina o tempo de «aluguer»
Faz: Pára comunicações
Envia: DHCPDISCOVER (B)
T2 Expira (Rebind Timeout)
Envia: DHCPREQUEST (B)
T1 Expira (Renew Timeout)
Envia: DHCPREQUEST (p/ servidor)
BOUND
RENEWING
REBINDING
Recebe: DHCPACK
Faz: Guarda parâmetros e acerta
os tempos de «aluguer».
DHCP
16
Dispensa dos recursos
DHCP1
Cliente DHCP
DHCP2
RELEASE
DHCP
17
Dispensa dos recursos
INIT
BOUND
Cliente deixa de precisar da configuração (shutdown)
Envia: DHCPRELEASE
Faz: Pára comunicações
DHCP
18
Obtenção de informações por aplicações
DHCP1
Cliente DHCP
DHCP2
INFORM
ACK
DHCP
19
Servidor muda parâmetros: Avisar clientes
• RFC3203 acrescenta esta possibilidade
• Ainda não implementado
p
nos servidores e clientes em uso
corrente
• Servidor envia DHCPFORCERENEW a cada cliente •
Clientes processam o pedido passando do estado BOUND
para RENEWING
DHCP
20
Máquina de Estados
Estados de cada «Interface» que use DHCP (RFC2131)
INIT/REBOOT
Cliente deixa de precisar da configuração (shutdown)
Envia: DHCPRELEASE
Faz: Pára comunicações
Envia: DHCPREQUEST
REBOOTING
Recebe: DHCPNAK
Faz: Restart
Recebe: DHCPNAK
Faz: Esquece oferta
INIT
Recebe: DHCPACK
Faz: Não aceita condições
Envia: DHCPDECLINE
Envia: DHCPDISCOVER (B)
SELECTING
Recebe: DHCPOFFER
Faz: Recolhe ofertas
Faz: Selecciona oferta
Envia: DHCPREQUEST (B)
Recebe: DHCPNACK ou
termina o tempo de «aluguer»
F
Faz:
Pá comunicações
Pára
i
õ
REQUESTING
Recebe: DHCPACK
Faz: Guarda parâmetros e
acerta os tempos de «aluguer».
Recebe: DHCPACK
Faz: Guarda parâmetros e
acerta os tempos de «aluguer».
Recebe: DHCPACK,
DHCPOFFER ou DHCPNAK
Faz: Ignora
BOUND
T1 Expira
Timeout))
p (Renew
(
Envia: DHCPREQUEST (p/
servidor)
Recebe: DHCPNAK
Faz: Pára comunicações
RENEWING
T2 Expira (Rebind Timeout)
Envia: DHCPREQUEST (B)
REBINDING
Recebe: DHCPACK
Faz: Guarda parâmetros e acerta
os tempos de «aluguer».
DHCP
21
Redes e servidores
• Cliente descobre os servidores usando broadcast
• Em situações normais os routers não propagam broadcasts
• Alternativas:
- Um servidor por rede (domínio de broadcast) ? Um intermediário por rede
DHCP
22
O Relay Agent
• Re-encapsula os pedidos em broadcast do cliente em
mensagens dirigidas ao(s) servidor(es)
• Como sabe o servidor que configuração fornecer ao cliente ?
- O Relay Agent altera as mensagens em que é intermediário
- A interface de entrada do pedido no Relay Agent está na rede do
cliente!
li t !
t
diá i ttambém
bé nas respostas
t ao cliente
li t
•S
Serve dde iintermediário
DHCP
23
Obtenção de configuração via Relay Agent
Router com
Relay Agent
Router
Cliente DHCP
DHCP1
DHCP2
DISCOVER (B)
DISCOVER
OFFER (1)
OFFER (2)
REQUEST (B)
REQUEST
ACK
DHCP
24
Mensagem DHCP
MAC
h d
header
IP header UDP header
DHCP
DHCP :::
25
O cabeçalho DHCP - Campos
•
Opcode: 8 bit
- 1 - BOOTREQUEST, Boot request
– 2 - BOOTREPLY, Boot reply
•
Hardware type: 8 bit
- Os mais comuns:
•
•
•
•
•
1 - Ethernet
14 - SMDS
15 - Frame Relayy
18 - Fibre Channel
24 - IEEE1394 (RFC2855)
– Ver: Lista completa dos atribuídos pela IANA
•
•
•
•
Hardware address length: 8 bit - Dimensão em bytes dos endereços físicos/MAC.
Hop count: 8 bit - Usado pelos relay agents para limitar a propagação das mensagens.
Transaction ID: 32 bit - Número aleatório escolhido pelo cliente e usado para associar os
pedidos às respostas.
Number of seconds: 16 bit - Tempo
p decorrido desde qque o cliente iniciou o pprocesso de
aquisição ou renovação de endereço.
Flags. 16 bit (RFC 1542) - Só definido o bit de maior peso, quando activo, o cliente pretende
que a resposta do servidor ao pedido seja enviada em broadcast.
DHCP
26
Cabeçalho DHCP - Campos
•
•
•
•
Client IP address: 32 bit - Endereço actual do cliente (0.0.0.0 inicialmente)
Your IP address: 32 bit - Endereço oferecido ao cliente.
Server IP address: 32 bit - Endereço do servidor (para comunicações directas)
Gateway IP address: 32 bit - Endereço primário da interface do relay agent por onde
entrou o pedido do cliente.
• Client hardware address: 16 byte
y - Endereço
ç fisico/MAC do cliente.
• Server host name: 64 byte - Nome do servidor de arranque do S.O. (também usado
para overload de opções)
• Boot filename: 128 byte - Nome completo (com caminho) do ficheiro de arranque do
S.O. (também usado para overload de opções)
•BOOTP/DHCP options: Dimensão variàvel - Os 4 primeiros bytes têm o valor «mágico»
de 0x63825363 (o mesmo que havia sido definido para o BOOTP). O resto
deste campo consiste numa lista de parâmetros «etiquetados» chamados de opções
segundo o típico formato TLV (type, length, value). Todas as vendor extensions
definidas para o BOOTP são também válidas com opções DHCP.
DHCP
27
Opções DHCP mais relevantes
Code Dimensão
Descrição
4
Subnet
Mask.
1
4
4+
R t
Router.
3
4+
Domain Name Server.
6
1+
Host Name.
12
1+
Domain Name.
15
4+
NetBIOS over TCP/IP name server.
44
1
NetBIOS over TCP/IP Node Type.
46
4
Requested IP Address.
50
4
IP address lease time.
51
1
Option
overload.
52
1
DHCP message type.
53
4
Server identifier.
54
1+
Parameter
request
q
list.
55
1+
Message.
56
2
Maximum DHCP message size.
57
4
Renew time value.
58
4
Rebinding time value.
59
0
End.
255
•
Detalhes em:
RFC 1533, RFC 2132
RFC 1533, RFC 2132
RFC 1533, RFC 2132
RFC 1533, RFC 2132
RFC 1533, RFC 2132
RFC 1533, RFC 2132, RFC 3203
RFC 1533, RFC 2132
RFC 1533,, RFC 2132
RFC 1533, RFC 2132
RFC 1533, RFC 2132
RFC 1533, RFC 2132
RFC 1533, RFC 2132
Valor
1
2
3
4
5
6
7
8
9
Tipo
DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
DHCPDECLINE
DHCPACK
DHCPNAK
DHCPRELEASE
DHCPINFORM
DHCPFORCERENEW
Definida em:
RFC2132
RFC2132
RFC2132
RFC2132
RFC2132
RFC2132
RFC2132
RFC2132
RFC3203
Valores definidos para a opção 53
(DHCP Message Type)
Lista completa pode ser obtida na IANA
(Internet Assigned Numbers Authority)
DHCP
28
Exemplo prático
Internet Port
LA
DHCP Server
DHCP
29
DHCP
30
Exemplo prático
Nível de rede
(IP)
Nível de ligação
(ADSL)
DHCP
31

O DHCP pode atribuir endereço IP para um
equipamento de rede de três formas:
◦ C
Configuração
fi
ã manual;
l
◦ Configuração automática;
g
ç dinâmica.
◦ Configuração


Neste caso, é possível
um endereço
IP
í l atribuir
b
d
a uma determinada máquina na rede. Para
isso, é necessária a associação de um
endereço existente na base de dados do
servidor DHCP ao endereço MAC do
adaptador de rede da máquina
máquina, configurado
desta forma.
Esse endereço
ç “agarrado"
g
ao equipamento
q p
não poderá ser utilizado por outro, a não ser
que estes utilizem a mesma placa de rede.

Nesta forma, o servidor DHCP é configurado
para atribuir um endereço IP a um
equipamento por tempo indeterminado.
Quando este liga pela primeira vez à rede
rede, é
atribuído um endereço permanente. A
diferença
ç existente entre esta e a p
primeira
configuração é que nesta não é necessária
uma especificação do equipamento que
utilizará
tili
ád
determinado
t
i d endereço.
d
É atribuído
t ib íd
de forma automática.

Neste tipo de configuração,
configuração é que reside a
característica principal do DHCP. Desta forma o
endereço IP é atribuído temporariamente a um
equipamento e periodicamente,
periodicamente é necessária a
actualização dessa atribuição. Com essa
configuração, é possível ser utilizado por
diferentes equipamentos, em momentos
diferentes, o mesmo endereço IP. Basta, para
isso, que o primeiro a receber o endereço, deixe
de utilizá-lo. Quando o outro equipamento
q p
solicitar ao servidor DHCP um endereço IP poderá
ser fornecido ao mesmo o endereço deixado pelo
primeiro.


O servidor DHCP deve ser configurado pelo
administrador da rede para disponibilizar aos
seus clientes, endereços IP numa das três
formas de atribuição
atribuição.
Nas configurações
configurações, é estabelecido o prazo de
atribuição de um endereço. Esse prazo pode
variar de horas a dias ou simplesmente ser
ilimitado.


Um cliente DHCP é um equipamento que está
configurado para solicitar a um servidor
DHCP um endereço IP.
Alguns equipamentos na rede devem possuir
endereços IP fixos
fixos, já configurados na própria
máquina, em função dos serviços que eles
disponibilizam na rede. Essas máquinas não
são consideradas como clientes DHCP.

Um cliente DHCP pode passar por seis
estados de aquisição :
◦
◦
◦
◦
◦
◦
INICIALIZA
SELECCIONA
SOLICITA
LIMITE
RENOVA
VINCULA NOVAMENTE

Quando um cliente inicializa pela primeira
vez, este difunde uma mensagem para todos
os servidores DHCP da rede local a fim de
adquirir as configurações de inicialização na
rede. O cliente envia um pacote denominado
DHCPDISCOVER para a rede, após o envio
deste pacote o cliente passa ao estado
SELECCIONA.

Neste estado, o cliente permanece a aguardar a
resposta dos servidores DHCP que receberam o
DHCPDISCOVER. Aqueles servidores que
estiverem configurados para responder, enviam
ao cliente uma mensagem DHCPOFFER. Nesta
mensagem, estão embutidas as informações
necessárias para a configuração do cliente
jjuntamente com um endereço
ç IP q
que o servidor
lhe oferece como empréstimo. Após a recepção
de todas as mensagens enviadas pelos
servidores, o cliente irá optar por uma e entrará
em negociação
i ã d
de aluguer
l
com o servidor.
id
P
Para
iniciar a negociação, o cliente envia a mensagem
DHCPREQUEST. Neste momento, passa ao estado
SOLICITA.
SOLICITA

O cliente aguarda uma resposta de
confirmação do servidor DHCP em que entrou
em negociação. Essa confirmação é remetida
através da mensagem DHCPACK
DHCPACK. Com a
recepção da confirmação, o cliente passa a
ter um endereço
ç IP e utiliza-o,, bem como
todas as outras informações de configuração
que foram enviadas pelo servidor e passa ao
estado
t d LIMITE
LIMITE.

É o estado
durante
a
d em que permanece o cliente
li
d
utilização do endereço IP até que atinja o período
de renovação ou decida não utilizar mais o
endereço alugado. Para este último caso, onde o
cliente não espera o término do prazo de
aluguer,
g
, ele envia uma mensagem
g
DHCPRELEASE
para o servidor, a fim de provocar a libertação do
endereço IP reservado. Desta forma, o cliente não
pode enviar mais pacotes IP utilizando o
endereço que possuía e passa para o estado
INICIALIZA.


q
ç do p
Ao receber um DHCPACK,, o cliente adquire
a informação
período de
aluguer do endereço. De posse dessa informação, este inicia três
temporizadores. Estes são utilizados para controlar os períodos de
renovação, vincular novamente e do fim do aluguer. O servidor pode
especificar o valor de cada temporizador. Não havendo essa
especificação o cliente utiliza os valores padrões
padrões, que são de 50%,
50% 85% e
100%, respectivamente.
Quando o temporizador ultrapassa o valor da renovação, o cliente
tentará renovar o aluguer. Para isso, faz uso novamente do DHCREQUEST
ao servidor. Assim passa para o estado RENOVA e aguarda a resposta.
N mensagem, segue embutido
Na
b id o endereço
d
IP actuall d
do cliente
li
e uma
solicitação de extensão de aluguer do mesmo. O servidor poderá
responder autorizando a renovação do aluguer que necessariamente não
possuirá o período anteriormente destinado, ou poderá responder de
forma negativa.
g
No primeiro
p
caso,, o servidor envia um DHCPACK ao
cliente. A recepção dessa mensagem faz com que o cliente retorne ao
estado limite. No segundo caso, o servidor envia um DHCPNACK, que faz
com que o cliente interrompa o uso do endereço IP e passe para o
estado INICIALIZA.


Ao entrar no estado RENOVA, um cliente fica a aguardar
resposta do servidor. Caso essa resposta não chegue (é possível
que o servidor tenha sido desligado, ou tenha sido desligado da
rede), o cliente permanece nesse estado e comunicando
que seja
j ultrapassado
p
o limite do segundo
g
normalmente até q
temporizador. Nesse ponto, o cliente passa do estado RENOVA
para o estado VINCULA NOVAMENTE. A partir daí, o cliente
pressupõe que o servidor que lhe alugou o endereço IP não
estará mais disponível e tenta obter a renovação com qualquer
outro
t servidor
id DHCP da
d sua rede
d llocall através
t é d
da dif
difusão
ã d
de
DHCPREQUEST. Caso receba um DHCPACK de algum servidor
habilitado para tal, o cliente retornará para o estado LIMITE.
Recebendo um DHCPNACK, ele passará para o estado INICIALIZA.
N
No caso d
do cliente
li t não
ã receber
b qualquer
l
resposta,
t este
t
permanecerá a utilizar o endereço IP inicialmente alugado até
que seja atingido o valor limite do terceiro temporizador, o que
fará com que este passe para o estado INICIALIZA.
Download