1 Automatyczne wyszukiwanie komputerów i usług Piotr Strzyżewski
2 Agenda Krótki wstęp Prehistoria Automatyczna konfiguracja adresów IP Rozgłaszanie nazw węzłów w sieci Wyszukiwanie usług w sieci Podsumowanie
3 Bardzo krótki wstęp O czym będę mówił To nie będzie wykład mocno techniczny Proszę pytać w trakcie prezentacji
4 Prehistoria Automatyzacja obecna w sieciach „od zawsze” RARP BOOTP DHCP (v6) Inne (WPAD) Wady Bezpieczeństwo Centralny serwer (administrator!)
5 Automatyczna konfiguracja adresów IP Nie DHCP! Komputery muszą się ze sobą móc porozumiewać W zależności od wersji protokołu IP: v4 – IPv4LL v6 – IPv6 Stateless Address Autoconfiguration
6 IPv4LL (1) Adresy ze specjalnej klasy – 169.254.0.0/16 (pierwsze i ostatnie /24 zarezerwowane) Wybór z użyciem generatora liczb pseudolosowych Mechanizm rozwiązywania (mało prawdopodobnych) konfliktów adresów przy: wyborze adresu, łączeniu sieci. Zabezpieczenia przed ARP floodem
7 IPv4LL (2) Adresy nie umieszczane w systemie DNS (niestały charakter adresów (*)) Klasa zarezerwowana – nie przeznaczona do konfiguracji ręcznej oraz przez DHCP Zabroniony routing poza sieć lokalną (*) Zaleca się „niezmienność” adresu (np. bazując na MAC), co ułatwia rozwiązywanie problemów
8 IPv6 Stateless Address Autoconfiguration (1) Adresy ze specjalnej klasy – FE80::0/64 Bazują na identyfikatorze urządzenia (np. MAC) Dla sieci ethernet adresy postaci: FE80::ID/64 ID -> identyfikator EUI-64 utworzony na podstawie MAC; dodatkowo ustawiony bit Universal/Local (bit 6 licząc od 0 od lewej)
9 IPv6 Stateless Address Autoconfiguration (2) Dla MAC: 01:23:45:67:89:AB wybrany zostanie adres FE80::2123:45FF:FE67:89AB/64 Sprawdzanie unikalności adresu wada – brak automatycznego rozwiązywania konfliktów (powód: ręczne konfiguracje, DHCPv6, inne metody ustalania identyfikatora urządzenia), konieczność ingerencji administratora.
10 IPv6 Stateless Address Autoconfiguration (3) Adresy nie umieszczane w systemie DNS Klasa zarezerwowana – nie przeznaczona do konfiguracji ręcznej oraz przez DHCPv6 Zabroniony routing poza sieć lokalną
11 IPv6 Stateless Address Autoconfiguration (4) Możliwość konfiguracji adresów o zasięgu globalnym Prefiks sieci pobierany z pakietów Router Advertisement Identyfikator lokalny ustalany np. tak jak dla adresów lokalnych Konieczne sprawdzenie unikalności! Względy bezpieczeństwa (adres MAC fragmentem adresu IPv6) – propozycja rozwiązania w RFC 3972
12 Rozgłaszanie nazw węzłów Brak serwera DNS lub WINS Multicast DNS Link-Local Multicast Name Resolution Peer Name Resolution Protocol
13 Multicast DNS – mDNS (1) Bazuje na DNS (jednolite API) Pseudodomena głównego poziomu – local. Znaczenie jedynie w sieci lokalnej (zapytania spoza niej są ignorowane) mDNS obsługuje również domeny odwrotne
14 Multicast DNS (2) Zarezerwowany adres multicast: dla sieci v4 – 224.0.0.251, dla sieci v6 – FF02::FB. Wykorzystuje port UDP 5353 Korzysta z UTF-8 Trzy rodzaje zapytań: pojedyncze, pojedyczne w oczekiwaniu na wiele odpowiedzi, ciągłe.
15 Multicast DNS (3) Zapytanie pojedyncze jest podobne do zwykłego zapytania DNS – niewielka zmiana w kodzie Oczekiwanie na wiele odpowiedzi (wykorzystywane np. przez DNS-SD) wymaga poprawnej retransmisji pakietów (albo do czasu uzyskania oczekiwanych wyników albo do czasu upłynięcia czasu przewidzianego na odpowiedź), eliminacji znanych odpowiedzi.
16 Multicast DNS (4) Zapytania ciągłe podobne do oczekujących na wiele odpowiedzi, retransmitowane „w nieskończoność” z coraz dłuższymi przerwami (aż do godziny), eliminują niepotrzebny ruch w sieci,
17 Multicast DNS (5) Utrzymywana jest lokalna pamięć podręczna (czas ważności informacji) Węzły widzą wzajemnie swoje pytania i odpowiedzi (multicast) co wpływa na pamięć podręczną Mechanizm „wyłączania się” z sieci (czas ważności informacji = 0 sek.)
18 LLMNR (1) Zbliżony do mDNS (niekompatybilny) Dostępny jedynie w MS Windows Vista i MS Windows Server 2008 (ograniczone zastosowanie) Zarezerwowany adres multicast: dla sieci v4 – 224.0.0.252, dla sieci v6 – FF02::1:3. Wykorzystuje port 5355
19 LLMNR (2) Płaska struktura nazw (znane klienty usuwają część „local”) – problemy z bezpieczeństwem Odpowiedzi z wykorzystaniem unicast (brak oddziaływania na pamięci podręczne pozostałych węzłów) Jedynie pojedyncze zapytania
20 PNRP (1) Wyłącznie dla sieci opartych o IPv6 Implementacje głównie dla Windows Wersja 2.0 niekompatybilna z 1.0 (ograniczone zastosowanie) Specjalna domena pnrp.net Zarezerwowany port 3540 (TCP oraz UDP)
21 PNRP (2) Zabezpieczenia wykorzystujące infrastrukturę klucza publicznego Możliwość wskazania zasięgu publikowanej informacji sieć lokalna, sieć firmowa, Internet.
22 Wyszukiwanie usług w sieci Wiele protokołów: Web Proxy Autodiscovery Protocol, Bluetooth Service Discovery Protocol, Simple Service Discovery Protocol, Dynamic Host Configuration Protocol. DNS Service Discovery (DNS-SD)
23 DNS-SD (1) Razem z mDNS wchodzi w skład Bonjour Zaprojektowany do wyszukiwania usług w sieci lokalnej („local” – mDNS) oraz globalnej (system domen DNS) Elastyczne wykorzystanie rekordów SRV, TXT oraz PTR Używa UTF-8
24 DNS-SD (2) Wyszukiwanie usługodawców „nierównorzędnych” – np. drukarek, serwisów wsółdzielących pliki Problem klasycznego wykorzystania SRV (np. _ldap._tcp.polsl.pl)
25 DNS-SD (3) Rekordy PTR postaci:.. np.: _http._tcp.local _http._tcp.apple.com _http._tcp.dns-sd.org _ftp._tcp.dns-sd.org Zapytanie do mDNS lub do DNS
26 DNS-SD (4) Odpowiedzi postaci:... np.: Apple\032Developer\032Connection._http._tcp.apple.com. \032*\032Google,\032searching\032the\032Web._http._tcp.dns-sd.org. Apple\032QuickTime\032Files._ftp._tcp.dns-sd.org.
27 DNS-SD (5) Możliwe podtypy usług postaci:._sub... np. zapytanie: _anon._sub._ftp._tcp.dns-sd.org odpowiedź: Apple\032QuickTime\032Files._ftp._tcp.dns-sd.org.
28 DNS-SD (6) Po wybraniu przez użytkownika „odpowiedzi” wyszukiwane są rekordy SRV i TXT SRV – klasyczne użycie (równorzędne serwery danej usługi) TXT – parametry usługi w postaci klucz=wartość, np.: path=/
29 DNS-SD (7) Możliwość listowania zarejestrowanych usług: _services._dns-sd._udp.domena Możliwe jest rekomendowanie domen do „przejrzenia”: b._dns-sd._udp. db._dns-sd._udp. r._dns-sd._udp. dr._dns-sd._udp. lb._dns-sd._udp. może być konstruowana na podstawie wielu różnych informacji – statyczna, DHCP, IP/Maska, „local”
30 Podsumowanie Automatyczna konfiguracja ułatwia korzystanie z sieci laikowi (budowanie sieci „z klocków – podobnie jak zestawu kina domowego) Bezwzględnie należy przestrzegać zasad BHP ;-) („rozgłoszone” informacje nie mogą być traktowane jako bezpieczne) Otwarty standard szybciej się rozprzestrzenia
31 Czy są pytania?
32 Dziękuję za uwagę