Implementacja klienta i serwera DHCPv6 dla systemu Linux

Download Report

Transcript Implementacja klienta i serwera DHCPv6 dla systemu Linux

Implementacja klienta i serwera
DHCPv6 dla systemów:
Linux (Tomasz Mrugalski)
Windows 2000 (Marek Senderski)
Promotor: prof. dr hab. inż. Józef Woźniak
Opiekun: mgr inż. Jacek Światowiak
Obecne rozwiązanie: IPv4 (cz.1)
• Standard opracowany ponad 20 lat temu
• Kończąca się przestrzeń adresowa (32bity –
4.294.967.296 adresów), próby złagodzenia
problemu:
– Routing bezklasowy (CIDR)
– Translacja adresów (NAT)
• Duże obciążenie routerów (zmienny rozmiar
nagłówka, liczenie sum kontrolnych)
• Brak wsparcia dla QoS
Obecne rozwiązanie: IPv4 (cz.2)
• Brak wsparcia dla ochrony kryptograficznej
– Wielość standardów
– Nieobowiązkowa obsługa
• Brak wsparcia dla dużych pakietów (jumbogramy)
• Fragmentacja pakietów
• Sztywna konfiguracja (upadek routera odcina stacje)
IPv6 (cz.1)
Zalety:
• Rozszerzona przestrzeń adresowa (128 bitów – 1023 na m2
powierzchni ziemi)
• Wsparcie dla mobilności
• Obowiązkowe wsparcie bezpieczeństwa
• Stały rozmiar nagłówka (40 bajtów)
• Hierarchiczny sposób podziału przestrzeni adresowej
– prefiksy zamiast klas
– podział adresu na sieć i identyfikator hosta
• Różne zakresy ważności adresów
– Host, link, site, ogranisation, global
• 2 tryby automatycznej adresacji: stanowy i w trybie
stateless
• Jakość usług (QoS): priorytety, etykietowanie strumieni
• Dynamiczne odkrywanie i zmiana routerów
IPv6 (cz.2)
PROBLEMY:
• Brak wygodnej możliwości ręcznej konfiguracji
(kto zapamięta 3ffe:832:112::5468:ad45:dba8:cb1?)
• Dużo bardziej rozbudowane standardy
– Standard na dziesięciolecia
– tysiące stron dokumentacji
WNIOSKI:
• Ręczna konfiguracja jest żmudna, wymaga
wiele pracy i jest podatna na błędy
• Potrzebne są zautomatyzowane metody
• DHCPv6 jest rozwiązaniem powyższych
problemów
Autokonfiguracja w IPv6: Stateless
• Generacja adresów lokalnych łącza
• Brak możliwości określania jakichkolwiek
parametrów
• Komunikacja ograniczona do segmentu sieci
(laboratorium, sala)
• Bez dodatkowych protokołów niewystarczające do
automatycznego podłączenia do sieci
• Stanowi dobrą podstawę do dalszej automatycznej
konfiguracji na wyższych poziomach
Autokonfiguracja w IPv6: Statefull
• Przyznawanie adresów z dowolnego zakresu
ważności (np. globalny)
• Konfiguracja serwerów domenowych (DNS)
• Konfiguracja strefy czasowej
• W zasadzie dowolne opcje
– obecnie w fazie standaryzacji 9 opcji
• Brak konfiguracji routera
– to realizuje protokół Router Renumbering
• Konfiguracją statefull zajmuje się protokół DHCPv6
Dynamic Host Configuration
Protocol for IPv6
• Zastosowanie – automatyczny przydział adresów i
innych parametrów konfiguracyjnych
• Protokół typu klient – serwer (+przekaźniki)
Klienci
DHCPv6
Serwer
DHCPv6
Przekaźnik
Klienci
DHCPv6
DHCPv6 a modele sieci
ISO/OSI
TCP/IP
Aplikacji
Prezentacji
DHCPv6
Aplikacji
Sesji
Transportowa
Transportowa
Sieciowa
Internetowa
Łącza danych
Dostępu
do sieci
Fizyczna
DHCPv6 a TCP/IPv6
• Działa w oparciu o UDP
• Klienty – port 546 UDP
• Serwery i przekaźniki – port 547 UDP
• Używane (ogólnie znane) adresy
• FF02::1:2 - multicastowy adres o zasięgu łącza używany
przez klienta do komunikacji z sąsiadującymi przekaźnikami i
serwerami
• FF05::1:3 - multicastowy adres o zasięgu miejsca używany
przez przekaźniki do komunikacji z serwerami w przypadku,
gdy przekaźnik chce wysłać wiadomość do wszystkich
serwerów albo nie zna unicastowego adresu serwera
DHCPv6 – kilka uwag
• Wymiana informacji między klientem i serwerem ma
postać transakcji tj. pytania klienta i odpowiedzi
serwera
• Każda transakcja identyfikowana przez
TransactionID (ustalany przez klienta)
• Za retransmisję komunikatów odpowiedzialny jest
klient
Czas w DHCPv6
• Złożona struktura czasowa
– Liczniki: T1, T2
– Czasy życia: Prefered lifetime, valid lifetime
• Problemy z retransmisjami
T1
T2
Prefered
Valid
Czas
Etapy pracy
1.
2.
3.
4.
5.
6.
7.
Pogłębienie znajomości nowej rodziny protokołów
IPv6
Zapoznanie się ze standardami dotyczącymi
DHCPv6
Projektowanie
Implementacja
Testowanie i walidacja
Zebranie i określenie wniosków
Przygotowanie propozycji laboratorium
Proces odkrywania serwerów
SOLICIT szukam serwera,
który może …
(przydzielić adres 20::1)
ADVERTISE Tu jestem,
i mogę…
(przydzielić adres 20::1)
Proces przydzielania adresów
REQUEST życzę sobie …
(adresu 20::1)
REPLY Oto co mogę, dla
ciebie zrobić...
(przydzielić adres 20::1)
Proces odświeżania adresów
i parametrów
T1
RENEW chcę odświeżyć …
(Adres 20::1)
REPLY odświeżam...
(adres 20::1)
Proces odświeżania adresów
i parametrów u innych serwerów
T1
T2
REBIND
RENEW
RENEW --chcę
chcę
odświeżyć…
…
chcę odświeżyć
odświeżyć
…
(adres
(Adres 20::1)
20::1)
(Adres
20::1)
REPLY odświeżam...
(adres 20::1)
Proces zwalniania adresów
RELEASE chcę zwolnić …
(Adres 20::1)
REPLY zwolniłem...
(adres 20::1)
DHCPv6: demonstracja
Przykład laboratorium
• Pkt.7: Start serwera (Linux)
• Start klienta (Windows)
– SOLICIT, ADVERTISE, REQUEST, REPLY
• Pkt.8: Odświeżanie adresu
– RENEW,REPLY
• Pkt.9: Symulacja awarii sieci/serwera
– RENEW, REBIND, …
• Odnowienie połączenia
– RENEW zamiast REBIND
• Pkt.10: Wyłączenie klienta
– RELEASE, REPLY
Implementacja – założenia
• Rozbudowana konfiguracja serwera
– Preferencje, wiele klas adresowych do jednego interfejsu,
rezerwacja adresów dla konkretnych klientów itd.
• Zerowa konfiguracja klienta
– out-of-the-box (błyskawiczna instalacja)
• Nieobowiązkowa możliwość konfiguracji
klienta
– request,require,default,prepends,appends
• Przenośność
– Obecnie Windows 2000/XP i rodzina systemów Linux 2.4.x,
przeniesienie na inne środowiska wymaga
zaimplementowania tylko kilku niskopoziomowych funkcji
Implementacja – założenia
• Technologie przyszłości
– IPv6, XML
• Przejrzysta architektura
– Model obiektowy
– Prostota rozbudowy
• Rozszerzalność
– dodatkowe opcje (np. serwer czasu, DNS, serwery
NIS/NIS+…)
• Otwartość
– licencja GNU GPL
Windows vs Linux
Windows
Zalety:
• Obszerna dokumentacja
• Przyjazne środowisko
programistyczne
• Stabilność
Wady:
• niepełna dokumentacja
• Powolne narzędzia (400MHz
Linux około 2 razy szybszy od
1GHz Windows)
• Brak bezpieczeństwa
• Kosztowny, monopolistyczna
polityka Microsoftu (wymagane
uaktualnienia)
Linux
Zalety:
• Obszerna, kompletna
dokumentacja
• Dostęp do kodów źródłowych
• Olbrzymia dostępna baza kodu
(społeczność OpenSource)
• Stabilność
• Szybkość
• Bezpieczeństwo
• Niezawodność
• Skalowalność
• darmowy, otwarta licencja
Wady:
„Linux IS user-friendly, it just
chooses his friends wisely”
Windows i Linux z punktu widzenia
implementacji DHCPv6
Windows
Zalety:
• Dobra dokumentacja
odnośnie usług
• Dobra dokumentacja
gniazd IPv6
• Bogate informacje o IPv6
• Obsługa adresów
dynamicznych
Wady:
• Brak opisu metod operacji
na interfejsach sieciowych
• Niepełne wsparcie dla IPv6
(Windows2000 –
wymagany patch)
• Kosztowne wsparcie
techniczne
Linux
Zalety:
• Obszerna, kompletna
dokumentacja wraz ze
źródłami
• Dostęp do kodów źródłowych
kernela
• Stabilne API
• Bardzo dobre, sprawdzone
wsparcie dla IPv6 (od roku
1997)
• Gotowy zestaw bibliotek
Wady:
• Brak obsługi adresów
dynamicznych
• Brak wsparcia technicznego
Wspierane/wykorzystane standardy
•
•
•
•
•
•
IP Version 6 Addressing Architecture (RFC 2373)
IPv6 Multicast Address Assignments (RFC 2375)
Internet Protocol, Version 6 (IPv6) Specification (RFC 2460)
IPv6 Stateless Address Autoconfiguration (RFC 2462)
Extensible Markup Language 1.0 W3C Recomendation
Dynamic Host Configuration Protocol for IPv6 (RFC 3315)
Windows
Standardy związane z
usługami systemowymi
Linux
Usługi POSIX
Implementacja klienta i serwera
DHCPv6 dla systemów:
Linux (Tomasz Mrugalski)
Windows 2000 (Marek Senderski)
Dziękujemy za uwagę