Usluga DHCP

Transkrypt

Usluga DHCP
Sieci Komputerowe
Protokół DHCP
Dynamic Host Configuration Protocol
dr Zbigniew Lipiński
Instytut Matematyki i Informatyki
ul. Oleska 48
50-204 Opole
[email protected]
Zagadnienia
Protokół DHCP
DHCP w systemie Windows
System Windows: Konfiguracja klienta DHCP
Fazy konfigurowania klienta DHCP
Usługa APIPA
Narzędzia: ipconfig (Win2000), winipcfg (Win98)
DHCP Relay Agent
Instalacja i konfiguracja serwera DHCP
Narzędzie: ping
DHCP w systemie Linux
Struktura komunikatu DHCP
Protokół BOOTP
Struktura komunikatu BOOTP
2
Protokół DHCP
Protokół DHCP, (ang.) Dynamic Host Configuration Protocol.
Protokół opracowany przez Dynamic Host Configuration Working Group działający przy Internet
Engineering Task Force (IETF).
Aktualne standardy:
RFC 2131, R. Droms, Dynamic Host Configuration Protocol, 1997.
RFC 2132, S. Alexander, R. Droms, DHCP Options and BOOTP Vendor Extensions, 1997.
RFC 3315, DHCP v6, DHCP dla IPv6, 2003.
RFC 3456, konfiguracja IPsec w trybie tunelowym z DHCP, 2003.
RFC 3634, konfiguracja kerberosa i DHCP, 2003.
RFC 4014, Remote Authentication Dial-In User Service (RADIUS) i DHCP, 2005.
RFC 6225, Lokalizacja klienta przez serwer DHCP na podstawie współrzędnych geograficznych, 2011.
3
Protokół DHCP
Protokół DHCP wykorzystywany jest przez usługę DHCP, której zadaniem jest dynamiczne
konfigurowanie parametrów TCP/IP hosta na podstawie adresu MAC karty sieciowej.
Usługa DHCP jest zbudowana w architekturze klient-serwer.
Serwer DHCP dostarcza danych, które służą klientowi DHCP do konfiguracji parametrów TCP/IP hosta:
• adres IP hosta,
• maska sieci,
• adres IP domyślnej bramy,
• adresy IP serwerów DNS,
• czas dzierżawy adresu IP hosta,
• inne.
DHCP jest ulepszoną wersją protokołu BOOTP, (ang.) bootstrap protocol, RFC 951, 1084.
Protokół BOOTP używany podczas logowania się hosta do sieci.
Protokół BOOTP umożliwia hostowi przy uruchamianiu systemu operacyjnego automatyczną
konfigurację parametrów TCP/IP (adres IP, maskę podsieci, adres IP domyślnej bramy, adres IP
serwera DNS, adres IP serwera WINS).
4
DHCP Relay Agent
Klient DHCP może uzyskiwać parametry TCP/IP hosta z serwera DHCP znajdującego się w innej sieci,
tzn. routery mogą przykazywać datagramy z wiadomościami DHCP do innych podsieci.
Relay Agent jest programem który przekazuje wiadomości DHCP/BOOTP wysyłane między klientem a
serwerem znajdującym się w rożnych podsieciach.
W każdym segmencie sieci w którym są klienci DHCP musi być zainstalowany serwer DHCP lub DHCP
Relay Agent.
W systemie Windows DHCP Relay Agent jest usługą o nazwie ‘Routing and Remote Access’.
5
Usługi serwera DHCP
Usługi DHCP, tryby dzierżawy adresów IP:
•
dhcp scope -
zakres adresów możliwych do przydzielenia przez serwer DHCP,
•
dhcp reservation - zarezerwowanie adresu IP dla konkretnego adresu MAC.
6
DHCP w systemie Windows
DHCP korzysta w warstwie transportowej z protokołu UDP,
wykorzystując porty: serwer 67 UDP, klient 68 UDP.
RFC 2131
host2
Host bez klienta DHCP
host3
Klient DHCP
Adres IP hosta3
Zadanie adresu IP
Adres IP hosta1
host1
Klient DHCP
Zadanie adresu IP
Wyslanie adresow
do klientow DHCP
serwer DHCP
Baza adresow IP:
IP hosta1
IP hosta3
Zadanie klienta DHCP adresu IP hosta od serwera DHCP
7
Fazy konfigurowania TCP/IP hosta
1. IP lease discover (lokalizacja serwera DHCP)
Klient DHCP wysyła broadcast’em zapytanie aby zlokalizować serwery DHCP i uzyskać informacje o
adresie IP hosta (na podstawie adresu MAC).
2. IP lease offer (oferta ‘dzierżawy’ adresu IP i oferta usługi DHCP)
Wszystkie serwery DHCP posiadające informacje o adresie IP dla danego adresu MAC odpowiadają
klientowi (oferta usługi DHCP, serwery wysyłają: adres IP, maskę, adres IP domyślnej bramy).
3. IP lease request (żądanie dzierżawy adresu IP)
Klient DHCP wybiera serwer DHCP, pierwszego który odpowiedział na zapytanie, wysyła na adres
broadcast’owy żądanie rezerwacji i wysłania parametrów TC/IP dla hosta.
4. IP lease acknowledgment (potwierdzenie dzierżawy adresu IP)
Serwer DHCP który został wybrany odpowiada na zadanie wysyłając informacje o konfiguracji
TCP/IP hosta (te same dane które były w ofercie). Inne serwery DHCP anulują ofertę usługi DHCP i
usuwają ze swojej bazy adres MAC hosta (przy kolejnym zadaniu adresu IP te serwery nie przysyła
oferty).
1: DHCP
Discover
Klient DHCP
2: DHCP
Offer
3: DHCP
Request
4: DHCP
Acknowledge
Wymiana wiadomosci DHCP
serwery
DHCP
serwery
DHCP
8
Faza I: IP Lease Discover
Faza I: IP Lease Discover.
Podczas uruchamiania systemu operacyjnego klient DHCP wysyła na adres broadcastowy
wiadomość 'DHCPDiscover' szukając serwerów DHCP.
Ponieważ host nie ma adresu IP i nie zna adresu serwera DHCP w polu 'adres IP klienta'
wiadomości 'DHCPDISCOVER', wpisuje adres IP 0.0.0.0 i adres 255.255.255.255 (broadcast) jako
adres docelowy.
Wiadomość DHCPDISCOVER zawiera:
•
adres MAC karty sieciowej hosta,
•
nazwę hosta.
Wysłanie informacji o adresie IP hosta przez serwer DHCP następuje gdy:
•
konfiguracja TCP/IP hosta odbywa się po raz pierwszy (np. przy uruchamianiu systemu
operacyjnego)
•
klient zażądał przydzielania konkretnego adresu IP
•
klient żąda wysłania nowego adresu IP po zwolnieniu (ang. release) wcześniej przyznanego adresu.
Zwolnienie adresu następuje po wysłaniu wiadomości DHCPRELEASE.
9
Faza I: IP Lease Discover
Sytuacja: brak serwera DHCP
Gdy w sieci brak jest serwera DHCP klient po wysłaniu zapytania o serwer DHCP czeka 1 sekundę na
ofertę, gdy oferta nie nadejdzie wysyła trzykrotnie zapytanie co 9, 13, 16 sekund.
Jeżeli oferta nie nadejdzie klient rozsyła zapytanie o serwer DHCP co 5 min.
System operacyjny Windows 2000 ma wbudowana usługę APIPA, (ang.) Automatic Private IP
Addressing służącą do automatycznej konfiguracji TCP/IP gdy nie jest dostępny serwer DHCP.
Gdy klient nie może zlokalizować serwera DHCP automatycznie konfiguruje TCP/IP.
Poprzez usługę APIPA przydziela sobie adres IP z klasy zarezerwowanej przez Microsoft (klasa B,
169.254.0.0) przydziela maskę 255.255.0.0.
Przed przydzieleniem adresu IP klient DHCP testuje czy adres nie został już przydzielony innemu
hostowi w sieci.
Jeżeli adres jest już w użyciu klient wybiera inny adres IP i ponownie testuje sieć.
Czynność ta powtarzana jest max 10 razy.
Jeżeli adres IP jest już przydzielony i nie ma konfliktów w sieci klient konfiguruje parametry TCP/IP hosta.
Mimo autokonfiguracji klient rozsyła co 5 min. zapytanie o serwer DHCP.
Jeżeli znajdzie serwer DHCP zwalnia swoją konfigurację TCP/IP i pobiera adres z serwera DHCP.
10
Faza II: IP Lease Offer
Faza II: IP Lease Offer.
Wszystkie serwery DHCP które posiadają ważny adres IP dla danej karty MAC wysyłają
broadcast’em ofertę, wiadomość DHCPOFFER, zawierającą:
•
adres MAC karty sieciowej klienta
•
ofertę adresu IP
•
maskę podsieci
•
czas na jaki adres jest przydzielony, (ang.) length of the lease
•
adres IP serwera DHCP, (ang.) server identifier
•
inne.
Serwer DHCP nie musi rezerwować zaoferowanego adresu IP klientowi (RFC 2131) ale musi sprawdzić
czy zaoferowany adres nie został już przydzielony (testuje sieć za pomocą wiadomości ICMP Echo
Request).
Klient DHCP wybiera adres IP z oferty serwerów DHCP (wybiera pierwszy serwer który przysłał ofertę).
11
Faza III: IP Lease Request
Faza III: IP Lease Request.
Klient wybiera serwer DHCP i wysyła boradcastem do wszystkich serwerów DHCP informację jaki serwer
DHCP został wybrany.
Informacja jest wysłana w wiadomości DHCPREQUEST.
Pole Options zawiera informacje o adresie IP wybranego serwera DHCP.
12
Faza IV: IP Lease Acknowledgment
Faza IV: IP Lease Acknowledgment (Successful).
Serwer DHCP który został wybrany wysyła broadcastem potwierdzenie przydzielonego adresu IP w
wiadomość DHCPACK message.
Wiadomość DHCPACK zawiera:
przydzielony klientowi adres IP i inne informacje potrzebne klientowi do konfiguracji TCP/IP.
Po uzyskaniu potwierdzenia klient konfiguruje TCP/IP. Następnie sprawdza czy adres IP nie został
już przydzielony innemu hostowi (używając protokołu ARP). Jeżeli tak, to klient wysyła wiadomość
DHCPDECLINE i rozpoczyna proces dzierżawy od początku.
.
Faza IV: IP Lease Acknowledgment (Unsuccessful).
Wiadomość DHCPNACK zostaje wysłana przez serwer DHCP gdy
•
klient próbuje ‘wydzierżawić’ swój adres IP (adres przydzielony poprzednio) a który już nie jest
dostępny.
•
klient zmienił maskę podsieci, tzn. został przeniesiony do innej podsieci.
Gdy klient otrzyma wiadomość DHCPNACK od początku rozpoczyna proces dzierżawy adresu IP.
13
Wiadomości DHCP
DHCPDISCOVER - Klient wysyła wiadomość broadcastem w celu zlokalizowania serwerów DHCP.
DHCPOFFER
hosta.
- Serwery DHCP wysyłają klientowi ‘ofertę’ z parametrami niezbędnymi do konfiguracji
DHCPREQUEST - Klient wysyła do serwera DHCP wiadomość o tym, że
(a) requesting offered parameters from one server and implicitly declining offers from all others,
(b) confirming correctness of previously allocated address after, e.g., system reboot, or
(c) extending the lease on a particular network address.
DHCPACK
- Serwer wysyła do klienta potwierdzenie zaoferowanych parametrów (przed wysłaniem
wiadomości serwer sprawdza czy zaoferowany adres IP nie jest już przydzielony).
DHCPNAK
- Serwer wysyła do klienta wiadomość nie potwierdzającą oferty z powodu np. zmiany
maski przez klienta, wygaśnięcia czasu dzierżawy.
DHCPDECLINE - Klient wysyła do serwera DHCP wiadomość o tym, że zaoferowany adres IP jest już
przydzielony.
DHCPRELEASE - Klient wysyła wiadomość do Serwera DHCP w celu zwolnienia dzierżawy adresu IP.
DHCPINFORM - Klient wysyła wiadomość do Serwera DHCP z pytaniem o parametry konfiguracyjne
TCP/IP hosta (host ma już przydzielony adres IP).
14
Parametry konfiguracyjne TCP/IP
IP-layer_parameters,_per_host:_
Be a router
on/off
Non-local source routing
on/off
Policy filters for non-local source routing
Maximum reassembly size integer
Default TTL
integer
PMTU aging timeout
integer
MTU plateau table
(list)
(list)
IP-layer_parameters,_per_interface:_
IP address
(address)
Subnet mask
(address mask)
MTU
integer
All-subnets-MTU
on/off
Broadcast address flavor 0x00000000/0xffffffff
Perform mask discovery
on/off
Be a mask supplier
on/off
Perform router discovery on/off
Router solicitation address (address)
Default routers, list of:
router address
(address)
preference level
integer
Static routes, list of:
destination
(host/subnet/net)
destination mask (address mask)
type-of-service
integer
first-hop router
(address)
ignore redirects
on/off
PMTU
integer
perform PMTU discovery on/off
Link-layer_parameters,_per_interface:_
Trailers
on/off
ARP cache timeout
integer
Ethernet encapsulation (RFC 894, 1042)
TCP_parameters,_per_host:_
TTL
integer
Keep-alive interval
integer
Keep-alive data size 0/1
Skróty:
PMTU = Path MTU (RFC 1191)
15
Struktura wiadomości DHCP
1
2
3
4
5
6
7
Bity
4
8
12
16
20
24
28
32
Operacja (op)
Typ sprzetu
Dl. adresu M AC
Skoki (hops)
Id transakcji (xid)
Czas (secs)
Znaczniki (flags)
Adres IP klienta (ciaddr)
Adres IP klienta (yiaddr)
Adres IP serwera (siaddr)
Adres IP agenta (giaddr)
8
Adres M AC klienta (chaddr, 16 bajtow)
9
Nazwa hosta serwera (sname, 64 bajty)
10
Nazwa pliku (file, 128 bajtow)
11
Opcje (options)
Struktura wiadomosci DHCP
16
Struktura wiadomości DHCP
Pole: Typ wiadomości, (op). Wielkość: 8 bitów
Pole określa typ wiadomości pytanie = 1, odpowiedz =2.
Pole: Typ sprzętu, (htype). Wielkość: 8 bitów.
Pole określa typ interfejsu sieciowego (typ karty sieciowej). Np. dla karty typu ethernet (10Mb) pole htype=1.
Pole: Dl. adresu MAC, (hlen). Wielkość: 8 bitów.
Pole określa długość adresu fizycznego karty sieciowej.
Np. dla karty typu ethernet (10Mb) hlen = 6.
Pole: Etapy, (hops). Wielkość: 8 bitów.
Klient ustawia wartość pola hops=0. Pole służy 'relay agents' do określania liczby przeskoków.
Pole: Id transakcji, (xid). Wielkość: 32 bity.
Losowa liczba generowana przez klienta DHCP.
Służy do identyfikacji wymienianych wiadomości miedzy klientem a serwerem DHCP.
Pole: Czas, (secs). Wielkość: 16 bitów.
Czas jaki upłynął od rozpoczęcia uzyskiwania adresu IP.
Wartość parametru jest ustawiana przez klienta DHCP.
17
Struktura wiadomości DHCP
Pole: Znaczniki, (flags). Wielkość: 16 bitów.
Flagi:
B
-
BROADCAST.
Wartość flagi 1 oznacza, ze klient DHCP może odebrać wiadomość wysłaną tylko w trybie broadcastowym.
MBZ - MUST BE ZERO (flaga zarezerwowana). Specyfikacja flag znajduje się w RCF 1542.
Pole: Adres IP klienta, (ciaddr). Wielkość: 32 bity.
Pole zawiera adres IP klienta DHCP.
Pole jest wypełnianie tylko gdy klient jest w stanie BOUND, RENEW, REBINDING.
Pole: Adres IP klienta, (yiaddr). Wielkość: 32 bity.
Pole zawiera adres IP proponowany przez serwer DHCP klientowi. yiaddr, ozn. 'your IP address’.
Pole: Adres IP serwera, (siaddr). Wielkość: 32 bity.
Adres IP serwera DHCP.
Zwracany w wiadomościach DHCPOFFER, DHCPACK wysyłanych przez serwer.
Pole: Adres IP agenta, (giaddr). Wielkość: 32 bity.
Pole zawiera adres IP relay agenta.
18
Struktura wiadomości DHCP
Pole: Adres MAC klienta, (chaddr). Wielkość: 16 bajtów.
Pole zawiera adres MAC klienta DHCP. chaddr, ozn. ‘client hardware address’.
Pole: Nazwa hosta serwera, (sname). Wielkość: 64 bajty.
Pole zawiera nazwę serwera DHCP.
Pole: Nazwa pliku startowego, (file). Wielkość: 128 bajtów.
Pole zawiera ścieżkę i nazwę pliku (boot file name) w DHCPOFFER.
Pole: Opcje, (options). Wielkość: zmienna.
Pole zawiera opcjonalne parametry.
Np.
- klient może regulować wielkość wiadomości, opcja: 'maximum DHCP message size'
- klient może wpisać swój identyfikator ('client identifier'), np. nazwę dns’ową.
- serwer może wpisać swój identyfikator (‘server identifier'), np. nazwę dns’ową.
19
Przykład: wiadomość DHCP Discover
# ----- Naglowek Ethernetowy -----
.......0 = Last fragment in datagram
ETYPE = 0x0800 : Protocol = IP: DOD Internet Protocol
......0. = May fragment datagram if necessary
Destination address : FFFFFFFFFFFF
Fragment Offset = 0 (0x0) bytes
.......1 = Group address
Fragment Offset = 0 (0x0) bytes
......1. = Locally administered address
Time to Live = 128 (0x80)
Source address : 00600801D303
Protocol = UDP - User Datagram
.......0 = No routing information present
Checksum = 0x3886
......0. = Universally administered address
Source Address = 0.0.0.0
Frame Length : 342 (0x0156)
Destination Address = 255.255.255.255
Ethernet Type : 0x0800 (IP: DOD Internet Protocol)
Data: Number of data bytes remaining = 308 (0x0134)
Ethernet Data: Number of data bytes remaining = 328 (0x0148)
# ----- Naglowek UDP -----
# ----- Naglowek IP ----ID = 0x120; Proto = UDP; Len: 328
IP Multicast: Src Port: BOOTP Client, (68); Dst Port: BOOTP
Server (67); Length = 308 (0x134)
Version = 4 (0x4)
Source Port = BOOTP Client
Header Length = 20 (0x14)
Destination Port = BOOTP Server
Precedence = Routine
Total length = 308 (0x134) bytes
Type of Service = Normal Service
UDP Checksum = 0xDC08
Total Length = 328 (0x148)
Data: Number of data bytes remaining = 300 (0x012C)
Identification = 288 (0x120)
# ----- Naglowek DHCP -----
Flags Summary = 0 (0x0)
…
20
Przykład: wiadomość DHCP Discover
# ----- Naglowek DHCP ----Discover
(xid=43474883)
Op Code
(op) = 1 (0x1)
Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
Hardware Address Length (hlen) = 6 (0x6)
Hops
(hops) = 0 (0x0)
Transaction ID (xid) = 1128745091 (0x43474883)
Seconds
(secs) = 0 (0x0)
Flags
(flags) = 0 (0x0)
0............... = No Broadcast
Client IP Address (ciaddr) = 0.0.0.0
Your IP Address (yiaddr) = 0.0.0.0
Server IP Address (siaddr) = 0.0.0.0
Relay IP Address (giaddr) = 0.0.0.0
Client Ethernet Address (chaddr) = 00600801D303
Server Host Name (sname) = <Blank>
Boot File Name (file) = <Blank>
Magic Cookie = 99.130.83.99
Option Field
(options)
DHCP Message Type
AutoConfigure
Client-identifier
= YES
= (Type: 1) 00 60 08 01 d3 03
Requested Address
Host Name
= DHCP Discover
= 12.12.12.12
= KAPOHO10
Client Class information = (Length: 8) 4d 53 46 54 20 35 2e 30
Parameter Request List = (Length: 10) 01 0f 03 06 2c 2e 2f 1f 21 2b
End of this option field
21
Przykład: wiadomość DHCP Offer
# ----- Naglowek DHCP -----
Magic Cookie = 99.130.83.99
Offer
Option Field
(xid=43474883)
Op Code
(op)
Hardware Type
= 2 (0x2)
(htype) = 1 (0x1) 10Mb Ethernet
(options)
DHCP Message Type
Subnet Mask
= DHCP Offer
= 255.255.255.0
Hardware Address Length (hlen) = 6 (0x6)
Renewal Time Value (T1) = 4 Days, 0:00:00
Hops
Rebinding Time Value (T2) = 7 Days, 0:00:00
(hops) = 0 (0x0)
Transaction ID
(xid)
= 1128745091 (0x43474883)
IP Address Lease Time = 8 Days, 0:00:00
Seconds
(secs) = 0 (0x0)
Server Identifier
Flags
(flags) = 0 (0x0)
Domain Name
0...............
= No Broadcast
Router
= 10.10.1.100
= kapoho.com
= 10.10.1.100
Client IP Address (ciaddr) = 0.0.0.0
Domain Name Server
= 10.10.1.200 10.10.2.200
Your IP Address (yiaddr) = 10.10.1.51
NetBIOS Name Service = 195.152.236.200
Server IP Address (siaddr) = 10.10.1.100
End of this option field
Relay IP Address (giaddr) = 0.0.0.0
Client Ethernet Address (chaddr) = 00600801D303
Server Host Name (sname) = <Blank>
Boot File Name
(file) = <Blank>
22
Protokół BOOTP
Protokół Bootp, (ang.) bootstrap protocol.
RFC 951, 1084
Protokół bootp służy do uzyskiwania z serwera Bootp adres IP i inne parametry niezbędne do konfiguracji z TCP/IP
hostowi logującemu się do sieci.
Program komunikujący się z serwerem Bootp, klient bootp, jest zainstalowany w pamięci PROM karty sieciowej.
Klient bootp wysyła broadcastem wiadomość 'Bootp request' zawierającym adres MAC hosta z zapytaniem o swój
adres IP.
Protokół Bootp używa w warstwie transportowej protokołu UDP.
BOOTP client' używa portu 68, 'BOOTP server' portu 67.
Proces uruchamiania systemu składa się z dwóch faz.
Faza pierwsza: wyznaczenie adresu IP hosta i wybór pliku konfiguracyjnego (bootfile).
Faza druga: pobranie pliku konfiguracyjnego.
W pierwszej fazie wykorzystywany jest protokół UDP. W drugiej fazie do transfer pliku może być wykorzystywany
protokół TFTP lub FTP (protokół TCP w warstwie Transportowej).
Serwer bootp odpowiada podając informacje o:
•
adresie IP klienta, adres maski, adres IP domyślnej bramy
•
adres IP i nazwę hosta serwera bootp
•
adres IP serwera na którym znajduje się obraz systemu operacyjnego który klient będzie ładował (boot server).
WinNT z Service Pack 3 i następny posiada obsługę klienta bootp.
23
Struktura wiadomości BOOTP
1
2
3
4
5
6
7
B ity
4
8
12
16
20
24
28
32
O peracja (op)
Typ sprzetu
D l. adresu M AC
S koki (hops)
Id transakcji (xid)
C zas (secs)
P ole nieuzywane
Adres IP klienta (ciaddr)
Adres IP klienta (yiaddr)
Adres IP serwera (siaddr)
Adres IP agenta (giaddr)
8
Adres M AC klienta (chaddr, 16 bajtow)
9
N azwa hosta serwera (sname, 64 bajty)
10
N azwa pliku (file, 128 bajtow)
11
O pcje (options)
S truktura wiadomosci B ootp
24
Narzędzie ipconfig
Aplikacja ipconfig służy do sprawdzania konfiguracji TCP/IP na lokalnym hoście.
Opcje release, renew służą do komunikacji z serwerem DHCP.
Opcje:
/all
Produces a detailed configuration report for all interfaces
/flushdns
Removes all entries from the DNS name cache
/registerdns
DNS domain name for client resolutions
/displaydns
Displays the contents of the DNS resolver cache
/release <adapter>
Releases the IP address for a specified interface
/renew <adapter>
Renews the IP address for a specified interface
/showclassid <adapter> Displays all the DHCP class IDs allowed for the adapter specified
/setclassid <adapter>
<classID to set> Changes the DHCP class ID for the adapter specified
/?
Help
25
Ćwiczenia. Diagram sieci z danymi dla DHCP scope.
26
Cwiczenia. Diagram sieci z danymi dla DHCP reservation.
27

Podobne dokumenty