[[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#