[[oktatas:hálózat:cisco_szerint_a_hálózat|< Cisco szerint a hálózat]]
====== DHCP ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2018, 2020
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== A DHCP =====
A DHCP a Dynamic Host Configuration Protocol rövidítése.
Magyarul dinamikus állomáskonfiguráló protokoll.
A DHCP szerver lehet egy szerverszámítógép vagy
egy router. A routerek is képesek DHCP szerverként működni.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:szeretnek_ip_cimet.png|}}
==== Cím bérlése ====
Egy PC, amikor DHCP-vel akar IP címet beállítani,
a hálózatot felderíti, hogy van-e DHCP szerver.
Ezt egy DHCPDISCOVER üzenettel teszi.
Ha a hálózatban van ilyen szerver, akkor
a DHCPOFFER üzenettel válaszol, ajánlatot tesz.
A PC elfogadja az ajánlatot, akkor ezt a
DHCPREQUEST üzenettel mondja meg a DHCP
szervernek. A szerver pedig DHCPACK paranccsal
nyugtázza.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:dhcp_kommunikacio.png|}}
==== Cím bérlés megújítása ====
Egy IP cím bérlése nem szól örökre. Ha lejár
a bérlés ideje, a kliens újból kéri egy
DHCPREQUEST üzenettel. A DHCP szerver pedig
egy DHCPACK üzenettel nyugtázza, hogy megkapta
újra a bérelt IP címet.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:dhcp_megujitas.png|}}
==== Router DHCP szerver ====
=== Beállítás forgalomirányítón ===
DHCP szerver beállításához kell egy IP cím tartomány.
Mondjuk legyen, 192.168.10.0 255.255.255.0
Ebből a címtartományból mindig lesz olyan résztartomány,
amit nem szeretnénk ha a DHCP szerver kiosztana. Ilyenek
a szerverek vagy az átjárók, switchek számára fenntartott
IP címek, vagy van a hálózatban néhány PC-aminek szeretnénk
fixen beállítani. Például 192.168.10.1-től 192.168.10.99-ig
nem szeretnék a címet kiosztani. Ekkor:
R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.99
De megadhatunk egyetlen IP címet is.
Ezek után jöhet a kiosztandó IP címtartomány beállítása.
Ezt nevezzük medencének. Létre fogunk hozni egy
medencét, valamilyen néven. Majd megmondjuk, milyen
IP cím tartományt osztunk ki.
R1(config)# ip dhcp pool LAN-POOL-1
R1(dhcp-config)# network 192.168.10.0 255.255.255.0
Megszokás még mondani, hogy az IP cím mellé még milyen
információkat osztunk ki:
R1(dhcp-config)# default-router 192.168.10.1
R1(dhcp-config)# dns-server 192.168.11.5
R1(dhcp-config)# domain-name zold.hu
A példában, kiosztjuk még: ki az átjáró, ki a
DNS szerver, és mi a tartománynév.
Teljes lista:
R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.99
R1(config)# ip dhcp excluded-address 192.168.10.254
R1(config)# ip dhcp pool LAN-POOL-1
R1(dhcp-config)# network 192.168.10.0 255.255.255.0
R1(dhcp-config)# default-router 192.168.10.1
R1(dhcp-config)# dns-server 192.168.11.5
R1(dhcp-config)# domain-name zold.hu
R1(dhcp-config)# end
Ellenőrzés:
R1# show running-config | section dhcp
...
R1# show ip dhcp binding
...
R1# show ip dhcp server statistics
==== DHCP közvetítő ====
Adott két hálózat, amelyeket egy router köt össze. Lásd a következő ábrát.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:dhcp_kozvetitok.png|}}
A jobboldali hálózatban van egy DHCP szerver. A baloldaliban nincs.
A router képes a DHCP kéréseket és válaszokat közvetíteni a baloldali
hálózatba is. Ez a DHCP közvetítés. Ennek beállítását látjuk:
R1 routeren:
R1(config)# interface g0/0
R1(config-if)# ip helper-address 192.168.20.2
R1(config)# end
R1# show ip interface g0/0
==== Router kliensként ====
Egy router interfészén is beállítható, hogy DHCP-vel kérjen
IP címet:
SOHO(config)# interface g0/1
SOHO(config-if)# ip address dhcp
SOHO(config-if)# no shutdown
SOHO# show ip interface g0/1
{{:oktatas:hálózat:cisco_szerint_a_hálózat:router_dhcp_kliens.png|}}
===== DHCPv6 =====
==== SLAAC ====
A kliens RS üzenetben keresi a routert, amely segíti őt
egy IPv6 cím meghatározásában. A router egy RA üzenettel
válaszol.
A SLAAC a StateLess Address AutoConfiguration rövidítése.
Magyarul: Állapotmentes automatikus címkonfiguráció.
Mit jelent az állapotmentes. Például sehol nem tároljuk
milyen szabad IP címek maradtak.
SLAAC esetén nincs külön DHCP szerver és a routeren sem állítottunk
be DHCP szervert.
Ha szeretnénk, hogy a router támogassa a PC-k SLAAC kéréseit,
akkor a szükséges beállítanunk:
R1(config)# ipv6 unicast-routing
Csak ez után mennek az RA üzenetek.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:slaac.png|}}
==== RA lehetőségek ====
Az RA üzenet háromféle lehet.
* csak SLAAC használata
* SLAAC használata, de bizonyos információk DHCP szervertől
* csak DHCP szervertől lehet IP-t kapni
{{:oktatas:hálózat:cisco_szerint_a_hálózat:ra_lehetosegek.png|}}
==== Jelzőbitek ====
Az ICMPv6 RA üzenetben két bit jelzi, hogy a kliens mit választhat.
Az egyiket egy "M" betű, a másikat egy "O" betűvel jelöljük.
Jelzőbitek:
* M -- Managed Address Configuration
* O -- Other Configuration flag
==== Csak SLAAC használata ====
Az RA üzenetben két bit:
* jelezőbitek
* M = 0
* O = 0
* A kliens a következőkre képes:
* előtag (IP)
* előtag hossz (pl. /64)
* DNS
* MTU
* több információ nincs
Beállítás:
R1(config-if)# no ipv6 nd managed-config-flag
R1(config-if)# no ipv6 nd other-config-flag
==== SLAAC és DHCPv6 ====
A SLAAC és DHCPv6 egy állapotmentes konfiguráció mivel a DHCPv6 szerver
a kalkulált IP címmel kapcsolatban semmilyen információt nem tárol.
Például szabad IPv6 címek stb.
Az RA üzenetben két bit:
* jelezőbitek
* M = 0
* O = 1
* A kliens a következőkre képes:
* előtag (IP)
* előtag hossz (pl. /64)
* DNS
* MTU
* további információk egy DHCP szervertől érkeznek
Beállítása:
R1(config-if)# no ipv6 nd managed-config-flag
R1(config-if)# ipv6 nd other-config-flag
A kliens átveszi a forgalomirányítótól a 64 bites előtagot, majd az IP
cím többi részét EUI-64 vagy véletlen algoritmussal előállítja.
A kliens ezek után lekéri a hiányzó adatokat a DHCPv6 szervertől.
==== DHCPv6 ====
A konfiguráció **állapottartó**, mivel a szerver minden változást tárol és karbantart.
Az RA üzenetben két bit:
* jelezőbitek
* M = 1
* O = x
* A kliens minden információ megkap a DHCPv6 szervertől:
* előtag (IP)
* előtag hossz (pl. /64)
* DNS
* MTU
* stb.
Beállítás
R1(config-if)#ipv6 nd managed-config-flag
Az O jelző állapota nem lényeges.
==== DHCPv6 tevékenységek ====
Láthattuk, hogy a mindenképpen egy RS, RA üzenetváltással kezdődik a
címkonfiguráció.
A forgalomirányító küldheti a periodikusan az RA üzenetet,
de kliens is kérhet RS üzenettel.
Ha állapotmentes vagy állapottartó konfigurációt hirdet az RA üzenet,
akkor a kliens elkezd kommunikálni a DHCPv6 szerverrel.
A DHCPv6 szerver ezek után UDP kapcsolaton keresztül küldi az adatokat,
az 547-es célportot használva. A kliens az FF02::1:2 csoportcímre küldve
keresi a DHCPv6 szervert. Ennek a címnek a neve all-DHCPv6-servers, amit
a forgalomirányítók nem továbbítanak más hálózatokba, mivel link-local
hatókörű. A szerver egy ADVERTISE nevű üzenettel válaszol, tudatva, hogy
ő DHCPv6 szerver.
A kliens ekkor REQUEST vagy INFORMATION-REQUEST üzenet küld, attól függően,
hogy állapottartó vagy állapotmentes információkat kér.
* REQUEST -- állapottartó információk kérése
* INFORMATION-REQUEST -- állapotmentes információk kérése
A szerver végül egy REPLY üzenetben küldi az adatokat.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:dhcpv6_kommunikacio.png|}}
További DHCP üzenetek az [[https://tools.ietf.org/html/rfc3315|RFC-ben]].
==== Állapotmentes DHCPv6 ====
{{:oktatas:hálózat:cisco_szerint_a_hálózat:router_dhcpv6_stateless_server_01.png|}}
{{:oktatas:hálózat:cisco_szerint_a_hálózat:router_dhcpv6_stateless_server_02.png|}}
{{:oktatas:hálózat:cisco_szerint_a_hálózat:router_dhcpv6_stateless_server_03.png|}}
==== Állapottartó DHCPv6 ====
Az address paranccsal adjuk meg, hogy milyen tartományból
adjon IP címeket a DHCP szerver:
R1(config-dhcpv6)# address prefix 2001:db8:def:1::/64
Megadható az bejegyzés élettartama is:
R1(config-dhcpv6)# address prefix 2001:db8:def:1::/64 lifetime 660000
A másodpercben megadott érték a következő tartományba kell essen:
* 5-4294967295
* infinite
Az infinite beállíts végtelen, korlátozás nélküli értéket jelent.
Az infinite érték nem létezik **Packet Tracerben**.
R1(config-dhcpv6)# address prefix 2001:db8:def:1::/64 lifetime infinite
A beállítható elavultsági érték is.
R1(config-dhcpv6)# address prefix 2001:db8:def:1::/64 lifetime 2592000 604800
A második érték megadása esetén bejegyzés még használható, de már elavult.
Az első érték alapértelmezetten 2592000, azaz 30 nap. A második éréték
alapértelmezetten 604800, azaz 7 nap.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:router_dhcpv6_stateful_server_01.png|}}
Vegyük észre, hogy nincs beállítva az átjáró. A DHCPv6 szerver átjárónak saját
interfészének IP címét automatikusan elküldi, ezért nincs beállítva.
{{:oktatas:hálózat:cisco_szerint_a_hálózat:router_dhcpv6_stateful_server_02.png|}}
{{:oktatas:hálózat:cisco_szerint_a_hálózat:router_dhcpv6_stateful_server_03.png|}}
==== DHCPv6 közvetítő ====
{{:oktatas:hálózat:cisco_szerint_a_hálózat:dhcpv6_kozvetito.png|}}
R1(config)# interface g0/0
R1(config-if)# ipv6 dhcp relay destination 2001:db8:def:1::2
R1(config-if)# end
R1# show ipv6 interface g0/0
GigabitEthernet0/0 is in relay mode
Relay destinations:
2001:db8:def:1::2
R1#