Laborationer

En enkel men intressant övning på DHCPv6. Jag använder mig av två 1841 routrar för att visa Stateless autoconfiguration. Det är bra att komma ihåg att en router ger instruktioner till klienter på hur de själva kan konstruera en egen GUA adress. Instruktionerna i stateless konfiguration görs via RA-meddelande som svar till klienter som skickar RS-meddelande.

En sådan konfiguration kan göras på två sätt:

  • Rapid-Commit: använder RS- och RA-meddelande
  • Normal-Commit: använder RS, RA, REQUEST, OCH REPLAY meddelande.

I konfigurationer av dynamiskt adressallokering för SLAAC krävs det att man förstår EUI-64 metoden. Denna metod går ut på att klienter bygger upp egna link-local adresser med hjälp av deras MAC-adresser.

EUI-64 link-local adresskonstruktion

Standardiseringsorganisationen IEEE definierar EUI-64 metoden (Extended Unique Identifier). Enligt EUI-64 ska användas MAC adresser (48 bitar) för att konstruera link-local adresser. Link-local adresser har som global prefix fe80::/64 och den slumpmässiga konstruktionen kan illustreras som följande:

Bild 1: EUI-64
  1. MAC adressen konverteras från hexadecimalt till binärt
  2. MAC adressen delas upp i mitten, det vill säga 24 bitar OUI och 24 bitar DI.
  3. Hexadecimal tal fffe (16 bitar) eller 1111 1111 1111 1110 sätts in i mitten av MAC adressen, det vill säga mellan OUI och DI. fffe är ett fördefinierat värde som regleras av IEEE.
  4. Invertera den universal/lokal bit (sjunde bit i första byte) för att indikera om link-local adressen är unique (0) eller lokal administrerat (1).

Stateless Autoconfiguration

På bild 2 routern R2 konfigureras som den router som ska tillhandahålla stateless adresskonfiguration för klienter som skickar RS-meddelande. Stateless innebär inte att R2 allokerar IPv6 GUA adresser, den ger instruktioner hur klienter kan själva bygga upp en IPv6 GUA adress, samt en LLA adress. Med kompletterande adresseringsinformation menas här främst PREFIXEN (nätverksadressen), prefixlängden, MTU, DNS server adresser, och kanske domännamn (kräver konfigurering).

R2(config)# do show int fa0/0

Bild 3: MAC adress
Bild 3 illustrerar att interfacet fa0/0 har en MAC adress: 00-900cec0701
R2(config)# do show ipv6 int br visar ingen IPv6 adress
Konfigurationer:
R2(config)# ipv6 unicast-routing IPv6 routing aktiveras
R2(config)# int fa0/0
R2(config-if)# no ip adress tar bort eventuella IPv4 adresser
R2(config-if)# ipv6 address 2001:1234::/64 eui-64 ställs in IPv6 GUA adress som ska kompletteras med MAC adressen.
R2(config-if)# no shut
R2(config-if)# end

R2# show ipv6 int br

Bild 4: R2 MAC adresser och SLAAC
Hur har LLA adressen konstruerats?

FE80:: är prefixet

290:CFF:FEEC:0701 är Interface ID

Hur har GUA adressen konstruerats?

2001:1234:: är prefixet

290:CFF:FEEC:0701 är Interface ID

  • LLA har konstruerats som FE80::290:CFF:FEEC:701
  • GUA har konstruerats som 2001:1234::290:CFF:FEEC:701
R1(config)# do show ipv6 int br

Bild 5: R1 MAC adress
R1(config)# do show int fa0/0
R1(config)# int fa0/0
R1(config-if)# no ip address
R1(config-if)# ipv6 address autoconfig

Bild 6: R1 konfigurationer och resultat
R1(config-if)# no shut
R1(config)# do show ipv6 int br
R1 och R2 börjar direkt att växla meddelande, RS och RA. Bild 6 visar vilka meddelande router R2 tar emot och skickar till R1. Observera att MTU, prefix och prefixlängd skickas till R1.

Stateful DHCPv6 server

En sådan server allokerar GUA adresser och kompletterande adresseringsparametrar. Till skillnad från IPv4 DHCP server registrerar varenda allokerade adresser och klienten till vilken allokerades adressen. Två enkla PT nätverk använder jag för att illustrera Stateful DHCPv6 server. I exemplen finns en DHCPv6 server (1841 cisco router) och en DHCPv6 klient.

DHCPv6 klienten konfigureras till IPv6 DHCP

R1(config)# ipv6 unicast-routing
R1(config)#ipv6 dhcp pool ip-pool
R1(config-dhcp)# prefix-delegation pool ip6pool
R1(config-dhcp)# exit
R1(config)# ipv6 general-prefix ip6pool 2001:10:10:10::/64
R1(config)# ipv6 local pool ip6pool 2001:10:10:10::/40 64
R1(config)#int fa0/0
R1(config-if)# ipv6 address 2001:10:10:10::1/64
R1(config-if)# ipv6 dhcp server ip6pool
R1(config-if)# no shut
R1(config-if)# exit
Switch1(config)# vlan 10
Switch1(config-vlan)# vlan 20
Switch1(config-vlan)# exit
Switch1(config)# int fa0/10
Switch1(config)# switchport mode access
Switch1(config)# switchport access vlan 10
Switch1(config)# exit
Switch1(config)# int fa0/20
Switch1(config)# switchport mode access
Switch1(config)# switchport access vlan 20
Switch1(config)# exit
Switch1(config)# int fa0/1
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# exit
 
R2(config)# int fa0/0
R2(config-if)# no ip address
R2(config-if)# no shut
R2(config)# int fa0/0.10
R2(config-subif)# encapsulation dot1Q 10
R2(config-subif)# ipv6 address 2001:10:10:10::1/64
R2(config)# int fa0/0.20
R2(config-subif)# encapsulation dot1Q 20
R2(config-subif)# ipv6 address 2001:20:20:20::1/64
R2(config-subif)# exit
R2(config)# ipv6 unicast-routing
R2(config)# ipv6 dhcp pool ip6pool10
R2(config-dhcp)# prefix-delegation pool ip6pool
R2(config-dhcp)# exit
R2(config)# ipv6 general-prefix ip6pool10 2001:10:10:10::/64
R2(config)# ipv6 local pool ip6pool10 2001:10:10:10::/40 64
R2(config)#int fa0/0.10
R2(config-subif)# ipv6 dhcp server ip6pool10
R2(config-subif)# exit
R2(config)# ipv6 dhcp pool ip6pool20
R2(config-dhcp)# prefix-delegation pool ip6pool20
R2(config-dhcp)# exit
R2(config)# ipv6 general-prefix ip6pool20 2001:20:20:20::/64
R2(config)# ipv6 local pool ip6pool20 2001:20:20:20::/40 64
R2(config)#int fa0/0.20
R2(config-if)# ipv6 dhcp server ip6pool20
R2(config-if)# exit