Configurando serviço DHCPv6 Stateless

Similar ao protocolo DHCP, o protocolo DHCPv6 também faz uso do protocolo Internet Control Message Protocol, mas na sua versão 6, o ICMPv6, que por seu lado recorre a outro protocolo, o Neighbor Discovery (ND), que vem assim substituir o protocolo de descoberta e resolução ARP pertencente ao protocolo IP.

Ao contrario do serviço DHCPv6 Stateful, o serviço DHCPv6 Stateless não conserva o estado dos dispositivos a que ele atribui endereços. Geralmente o esquema é composto pela atribuição simples ao cliente do endereço DNSv6 e do Domain Name (DN) e do prefixo bem como seu tamanho.

O endereço IPv6 é obtido pela combinação do prefixo (64 bits) e do endereço MAC do dispositivo que sao 48 bits. Como o endereço IPv6 é composto por 128 bits isso significa que ainda restam (64-48)bits = 16 bits. Esses bits sao completados com a inserção da assinatura FFFE (onde o bit 70 é complementado) na metade dos 48 bits ou seja depois do bit 24 do MAC Address. A este tipo de técnica, denomina-se StateLess Address AutoConfiguration (SLAAC) e o formato do de endereço denomina-se EUI-64.

Os comandos ipv6 address autoconfig e ipv6 nd other-config-flag em modo de interface, habilitam a configuração automática do endereço IPv6 e a obtenção do outras configurações enviadas pelas mensagens RA (já falaremos disto parágrafo abaixo) dos servidores-encaminhadores (DHCPv6 Routers).

Aquando da obtenção da informação DHCPv6 o cliente e o servidor trocam mensagens ND. Geralmente um cliente envia uma mensagem Multicast Router Solicitation (RS) a todos agentes DHCPv6 que podem ser servidores-encaminhadores ou servidores de reencaminhamento (relay servers) ao endereço Multicast FF02::1:2 com escopo local, a solicitar uma mensagem Unicast Router Advertisement (RA) do servidor-encaminhador, que, por sua vez responde com o tal RA que também indica o seu tipo de configuração DHCPv6 (stateful ou stateless). O Default Router do cliente é o endereço de link local do servidor-encaminhador.

Geralmente configura-se o servidor-encaminhador para gerar e enviar Unicast RA’s com o comando ipv6 unicast-routing. Dessa forma, ele não irá proceder a geração e envio de mensagens RS.

A topologia abaixo é bastante elucidativa. Temos dois encaminhadores, nomeadamente R2, que faz o papel de servidor-encaminhador, e R3 que faz o papel de cliente. R2 é configurado como servidor DHCPv6 Stateless de modo que envia RA’s com informações sobre o seu prefixo, o seu tamanho, o endereco DNSv6 e o Domain Name.
o cliente R3 na sua interface fastethernet 0/0 por seu lado obtêm de R2 apenas o prefixo, de modo que estando configurado para autoconfiguração ela gera o seu endereço IPv6 por meio do método EUI-64 e obtêm de R2 apenas o DNSv6 e o Domain Name.

 

DHCPv6 Stateless
R2 Configuration

hostname R2

ipv6 unicast-routing

ipv6 dhcp pool SEQEUELE
address prefix 3111:1111:2222:3333::/64 lifetime infinite infinite
dns-server 2001:4860:4860::8888
domain-name http://www.snnangola.co.ao

interface FastEthernet0/0
no ip address
speed auto
duplex auto
ipv6 address 3111:1111:2222:3333::1/64
ipv6 dhcp server SEQEUELE rapid-commit
!
ip forward-protocol nd
!
no cdp advertise-v2

R3 Configuration

hostname Router

interface FastEthernet0/0
ipv6 address autoconfig
ipv6 nd other-config-flag
ipv6 dhcp client pd SEQEUELE rapid-commit

ip forward-protocol nd
!
no cdp log mismatch duplex

Testes

Interfaces associadas em R2

R2#sh ipv6 dhcp int
FastEthernet0/0 is in server mode
Using pool: SEQEUELE
Preference value: 0
Hint from client: ignored
Rapid-Commit: enabled

Confirmação da ausência de estado em R2

R2#sh ipv6 dhcp binding
R2#sh ipv6 dhcp database

Nao retorna qualquer informação de associação. Mas…

Interfaces associadas em R3

#sh ipv6 dhcp interface
FastEthernet0/0 is in client mode
State is SOLICIT
List of known servers:
Reachable via address: 3111:1111:2222:3333::1
DUID: 00030001CA0210EC0000
Preference: 0
Configuration parameters:
IA PD: IA ID 0x00040001, T1 60, T2 120
DNS server: 2001:4860:4860::8888
Domain name: http://www.snnangola.co.ao
Prefix name: SEQEUELE
Rapid-Commit: enabled

 

DHCPv6 um exemplo simples (I)

Nao quis terminar o ano 2015 sem publicar um artigo. O que era para ser um passeio tornou-se um pesadelo, próprio de quem andou algum tempo fora de assuntos técnicos. Entretanto a rapidez com que voltei a dominar os conceitos só provaram que afinal acabamos por não esquecer aquilo que bem aprendemos.

I Won’t finish the 2015 season without publish a post. The runawaylder was turned into a nightmare, because I wasn’t refreshed regarding to new Cisco IPv6 concepts. However after a self taught CCNP ROUTE lessons and packet tracer or GNS3 practises I’m sure that i never forgot the old concepts, so I’m feeling ready and confident now.

Como sabem o protocolo IPv6 está aos poucos a transformar-se no padrão the facto das transmissões em comutação de pacotes. Ja escrevi muitos artigos sobre IPv6, você pode consulta-los aqui e aqui. Quase a sete (7) anos atrás quando escrevi o primeiro artigo sobre IPv6 pensava-se sempre em implementações dual stack, ou seja hosts e servers com interfaces com endereços em IPv4 e IPv6. Ora, penso que isto deve ser de evitar no futuro. Em alguns casos, por questões de falta de interoperabilidade, obsolência, resistência a mudanças e segurança de aplicações, ainda se observa com alguma frequência este tipo de implementação.

As you know the IPv6 protocol is becoming bit by bit the the facto protocol for IP switching networks transmissions. I have wrote some articles about IPv6 standard, so you can check here and here. Almost a seven (7) years ago when i have wrote my first article about IPv6 we thought ever in dual stack implementations. Even thinking the public IPv4 numbers for AFRINic are exhausting we need to get ready for the changes that are becoming standard. There are cases where the IPv6 isn’t recommended such as those who insist to have hard control of some OSI or IP model layers. There are situations where we can face resistance for changes, lack of interoperability and some obsolency too.

O nosso exemplo é muito simples. Temos um encaminhador de pacotes (router) com duas sub-redes atras dele, que podem ser dois andares ou dois departamentos. Queremos que o nosso encaminhador Router0 seja o nosso servidor DHCPv6 e forneça os endereços IPv6, DNS e Domain Name:

The diagram below is quite simple. We have a Router with two (2) sub-networks behind them, who should be two floors or departments. We want Router0 to be our DHCPv6 server in order to supply the IPv6 address, DNS and Domain Name:

Sub-Redes tudo IPv6

Sub-Redes tudo IPv6

 

Temos duas sub-redes por detrás de Router0: Sub-Rede LUANDA  por detrás da interface Fa0/0 e Sub-Rede KILAMBA por detrás de Fa0/1. Um servidor DNS configurado como estático e um outro servidor também com endereçamento estático. Dois computadores pessoais. Um configurado para ser cliente (host) STATEFUL e outro para ser cliente (host) STATELESS. A razão porque fazemos isso é muito simples: verificar se mesmo com o server Router0 configurado para não enviar Router Advertisements (RA) com o comando ipv6 nd managed-config-flag , ou seja forçar os hosts a não obter endereçamento em autoconfiguration (SLAAC) e usar o DHCPv6 eles ainda assim procedem, gerando configuração IPv6 pelo método EUI-64 e obtendo de Router0 apenas o DNS e o Domain Name.

Endereçamento IPv6 (IPv6 Addressing):

Luanda Prefix -> 3111:1:2:4::/64
Router0, Fa0/0 -> 3111:1:2:4::1/64
Kilamba Prefix -> 3111:1:2:6::/64
Router0, Fa0/1 -> 3111:1:2:6::1/64
Luanda DNS Server -> 3111:1:2:4::3/64

Router0 Configuration:

Activar encaminhamento de pacotes IPv6 (Enable IPv6 packet forwarding between interfaces on Cisco Router)

ipv6 unicast-routing

 

Configurar duas pools de endereços para LUANDA e KILAMBA

ipv6 local pool STATEFUL-LUANDA 3111:1:2:4::/64 64
ipv6 local pool STATEFUL-KILAMBA 3111:1:2:6::/64 64

Configuração em modo global de DHCPv6 pool para LUANDA

ipv6 dhcp pool STATEFUL-LUANDA
prefix-delegation pool STATEFUL-LUANDA
dns-server 3111:1:2:4::2
domain-name http://www.snnangola.co.ao

Configuração em modo global de DHCPv6 pool para KILAMBA

ipv6 dhcp pool STATEFUL-KILAMBA
prefix-delegation pool STATEFUL-KILAMBA
dns-server 3111:1:2:4::2
domain-name http://www.snnangola.co.ao
!

Configuração de interface Fa0/0 como provedora de endereçamento a pool STATEFUL-LUANDA

interface FastEthernet0/0
no ip address
duplex auto
speed auto
ipv6 address 3111:1:2:4::1/64
ipv6 nd managed-config-flag
ipv6 dhcp server STATEFUL-LUANDA
!

Configuração de interface Fa0/1 como provedora de endereçamento a pool STATEFUL-KILAMBA

interface FastEthernet0/1

no ip address
duplex auto
speed auto
ipv6 address 3111:1:2:6::1/64
ipv6 nd managed-config-flag
ipv6 dhcp server STATEFUL-KILAMBA

PC1, configurado como autoconfig:

PC>ipv6config /all

FastEthernet0 Connection:(default port)

Physical Address…………….: 0090.0C7E.BD87
Link-local IPv6 Address………: FE80::290:CFF:FE7E:BD87
IPv6 Address………………..: 3111:1:2:4:290:CFF:FE7E:BD87/64
Default Gateway……………..: FE80::201:C9FF:FE09:E301
DNS Servers…………………: 3111:1:2:4::2
DHCPv6 IAID…………………: 249352694
DHCPv6 Client DUID…………..: 00-01-00-01-28-93-5C-6E-00-90-0C-7E-BD-87

PC2, configurado como DHCPv6 STATEFUL:

PC>ipv6config /all

FastEthernet0 Connection:(default port)

Physical Address…………….: 00E0.8FBE.4A06
Link-local IPv6 Address………: FE80::2E0:8FFF:FEBE:4A06
IPv6 Address………………..: 3111:1:2:4:2E0:8FFF:FEBE:4A06/64
Default Gateway……………..: FE80::201:C9FF:FE09:E301
DNS Servers…………………: 3111:1:2:4::2
DHCPv6 IAID…………………: 486531192
DHCPv6 Client DUID…………..: 00-01-00-01-27-86-D6-26-00-E0-8F-BE-4A-06

Verificando associação em Router0

RW0#sh ipv6 dhcp binding

Client: (FastEthernet0/0)
DUID: 00-01-00-01-27-86-D6-26-00-E0-8F-BE-4A-06
IA PD: IA ID 486531192, T1 0, T2 0
Prefix: 3111:1:2:4::/64
preferred lifetime 604800, valid lifetime 2592000
expires at janeiro 31 2016 2:44:3 am (2592000 seconds)

Client: (FastEthernet0/0)
DUID: 00-01-00-01-28-93-5C-6E-00-90-0C-7E-BD-87
IA PD: IA ID 249352694, T1 0, T2 0
Prefix: 3111:1:2:4::/64
preferred lifetime 604800, valid lifetime 2592000
expires at janeiro 31 2016 2:44:3 am (2592000 seconds)

Client: (FastEthernet0/1)
DUID: 00-01-00-01-E5-E7-A9-E6-00-05-5E-B8-5A-BD
IA PD: IA ID 825564713, T1 0, T2 0
Prefix: 3111:1:2:6::/64
preferred lifetime 604800, valid lifetime 2592000
expires at janeiro 31 2016 2:44:3 am (2592000 seconds)

Client: (FastEthernet0/1)
DUID: 00-01-00-01-A1-7C-76-89-00-D0-BC-02-4D-CE
IA PD: IA ID 774598856, T1 0, T2 0
Prefix: 3111:1:2:6::/64
preferred lifetime 604800, valid lifetime 2592000
expires at janeiro 31 2016 2:44:3 am (2592000 seconds)

Como podemos ver, houve associação. No próximo artigo vamos abordar aspectos mais profundos sobre DHCPv6.