Znajdywanie hostów w sieci
Transkrypt
Znajdywanie hostów w sieci
Znajdywanie hostów w sieci Podstawy ADRES IP ALIAS Po co nam nazwy Korzyści z definiowania nazw: • Nazwy są łatwiejsze do zapamiętania • Stabilność w przypadku dynamicznych zmian adresów IP (środowiska mobilne, równoważenie obciążenia itp.) • Możliwość definiowania różnych nazw dla tego samego hosta • Rozwiązywanie nazwy hosta – lokalnie (hosts)/zdalnie (DNS) Historia • Nazwy to kolory -> problem: mężczyzna rozróżnia 7 kolorów ☺ (nazwy tylko dla serwerów) • Peggy Karp (1971) – RFC 226 -> określenie krótkich (4 litery) nazw hostów • Pierwsze serwery nazw SRI-NIC – serwery ftp z plikiem hosts.txt -> klient raz dziennie łączy się i pobiera plik nazw – Dla dużych plików nazw spadek przepustowości sieci ze względu na rozmiar pliku i liczbę klientów – Pobieranie raz dziennie to za mało w mobilnych środowiskach – Problem utrzymania pliku (jego administracji) • Domain Name System (DNS), 1997 -> RFC 1034 i 1035 -> hierarchiczna baza danych Definicje • Podstawowe nazwy hostów – stringi, max 256 symboli earth, sun itp. • Pełne złożenie domeny: (FQDN – Fully Qualified Domain Name) – połączenie nazwy hosta z nazwą DNS • Aliasy (etykiety) – alternatywne nazwy hostów np. „www” najczęściej jest aliasem dla hosta posiadającego oryginalnie inną nazwę (przydomek dla nazwy hosta) – aliasy w plikach hostów definiowane są przez nazwy kanoniczne (CNAME) Rozpoznawanie nazw przez plik hosts • Pierwsza metoda rozwiązywania nazw – pliki hosts (windows: C:\Windows\System32\drivers\etc\) • Budowa: # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost 157.158.131.163 sun 157.158.131.110 wenus Rozwiązywanie nazw Procedura • Wprowadzenie żądania danej aplikacji np. przeglądarka + napis w pasku adresu • Weryfikacja czy wprowadzona nazwa nie jest identyczna z nazwą własną hosta – jak tak użyj własnego IP • Przegląd pliku hosts z góry do dołu w celu znalezienie IP • Komunikat o błędzie NetBIOS • Standard RFC 1001 i 1002 • System zaprojektowany dla IBM (1983r) • Podstawa starych systemów Windows (aplikacje NetBIOS:przeglądarka sieci) – nowe (od W2K bazują na rozwiązywaniu nazw DNS) • Domyślnie nie stosowany przez systemy Unixo-podobne (bazuje na protokole SMB) – W systemach Unikso-podobnych implementacja poprzez SAMBA • Sposób działania podobny do DNS • Założenia – rezygnacja z architektury klient serwer (każdy może być serwerem i klientem) Cechy Nazwy NetBIOS – reprezentacja różnych obiektów: użytkowników, komputery, grupy robocze, usługi NT, domeny Cechy nazw: • Nie rozróżnianie wielkości liter (UWAGA!!! Win98 duże litery, SAMBA litery takie jak wpisano) • Długość do 15 znaków • Alfanumeryczne (bez spacji, kropek i symboli) NetBIOS Sposób działania Nazwa NetBIOS połączona z nazwą usługi przez sufiks liczbowy: Nazwa usługi Nazwa NetBIOS Sufiks liczbowy Typ Stacja robocza Nazwa komputera 00 UNIQUE Serwer Nazwa komputera 20 UNIQUE Przeglądarka główna Nazwa domeny 1B UNIQUE Wymuszenie elekcji Grupa robocza lub domena 1E UNIQUE Kontroler domeny Domena 1C GROUP Przesyłanie wiadomości Użytkownika/komputer/domna 03 UNIQUE Rozwiązywanie nazw - sposoby • Przez rozgłoszenie (zasięg tylko lokalny – jeden segment sieci, brak forwardowania przez routery) – jeśli odbiorca odebrał rozgłoszenie odpowiada swoim adresem IP • Serwery WINS (Windows Internet Name Server) – ograniczenie ruchu w sieci poprzez centralizację • LMHOSTS – plik rozwiązujący nazwy • HOSTS – podobnie jak wyżej • DNS – wykorzystanie serwerów DNS Hierarchia procesu rozwiązywania nazw Serwer WINS Serwer DNS 1 5 ArekKomp KarolKomp Sieć rozległa 2 JacekKomp Plik LMHOSTS 192.168.1.13 KarolKomp 192.168.2.14 MaciekKomp Plik HOSTS 192.168.1.123 MateuszKomp 192.168.2.14 MaciekKomp 3 4 NetBIOS – problemy i rozwiązania Problemy • Brak unifikacji nazw • Generacja dużego ruchu w sieci Rozwiązania • Możliwość definiowania typów węzłów (sposobu realizacji zapytań) • Przejście z aplikacji typu NetBIOS na aplikacje działające na Sockets (gniazdach) – przejście z domyślnego portu NetBIOS (NetBIOS over TCP) 137, 138 (UDP) 139(TCP) na SMB over TCP – port 445 Domain Name System Możliwości wykorzystania • znajdywania hostów o określonej nazwie • znajdywania nazw hostów o określonym adresie IP • definiowanie alternatywnych nazw (aliasów) • Możliwość równoważenia obciążenia serwerów poprzez dynamiczne łączenie nazwy z określonymi adresami IP Domain Name System - pojęcia • Domena DNS – węzeł w przestrzeni nazw. Składa się z pierwotnej nazwy + nazw położonych poniżej. Zasada grupowania nazw • Serwer nazw – Serwer usług DNS – odpowiada za rozwiązanie nazwy, umożliwia aktualizację/edycję plików strefy • Resolver – klient usługi DNS wysyłający zapytanie do serwera DNS • Przestrzeń nazw – nienazwany węzeł główny oraz rozchodzące się gałęzie zwane domenami ICANN – Internet Corporation for Assigned Names and Numbers – organizacja odpowiedzialna za domeny najwyższego poziomu Przestrzeń nazw Poziom główny Korzeń com edu gov Poziom pierwszy politechnika abc org Poziom drugi Pojęcia - CD • Serwery poziomu głównego – zawierają wpisy wszystkich domen najwyższego poziomu (korzeń drzewa symbol „.”) – Uwaga – przy rozwiązywaniu nazw odwołanie do serwerów poziomu głównego jest najgorszą sytuacją – najdłuższa możliwa droga przeszukiwania Domeny poziomu głównego (TLD – top level domains) – podział organizacji wg. typu/funkcji/lokalizacji • Domenu ogólne – .com – dla przedsiębiorstw – .net – dla sieci – .org – dla organizacji typu niedochodowego • Domeny specjalnego przeznaczenia – .edu – edukacyjne – .gov – rządowe – .mil – wojskowe • Domeny narodowe – .pl – Polska – .ru - Rosja Domeny poziomu drugiego • Problem z rozproszeniem, • Nie są zarządzane przez ICANN • Wewnątrz domen drugiego poziomu możliwość zarządzania własną przestrzenią nazw (mogą zawierać hosty, serwery, poddomeny) • Uwaga: rejestracja domeny drugiego poziomu wymaga udostępnienia przynajmniej dwóch serwerów DNS. Reszta wymagań na stronie ICANN Strefy Obszar przestrzeni nazw za który odpowiada dany serwer DNS. Strefa może obejmować • Pojedynczą domenę • Podobszar domeny • Kilka poddomen Strefa podstawowa • Tylko jeden serwer DNS może być podstawowy dla danej strefy. Tutaj następuje aktualizacja wpisów. Zawiera plik konfiguracyjny i rekordy zasobów Strefa wtórna • Posiada rekordy zasobów i danych konfiguracyjnych otrzymane od innych serwerów DNS - od serwera typu master. Serwer typu master nie musi być serwerem podstawowym, może to być inny serwer wtórny. Podział na strefy • Problem obciążenia serwerów – jeden serwer to konieczność odpowiadania dla wszystkich klientów • Problem przeciążenia łączy – patrz wyżej – jeden serwer DNS niezbędna duża przepustowość – problem z odległymi siedzibami i łączami komutowanymi • Problem szybkości realizacji zapytań ze strony klienckich hostów– problem opóźnień • Redukcja kosztów administracji – centralne zarządzanie wpisami (w siedzibach lokalnych brak konieczności zatrudniania sepcjalistów) Tr an s fe rs tr e fy Transfer stref DNS Wyszukiwanie w przód i wstecz • Strefy wyszukiwania w przód – Rozwiązywanie nazw (FQDN-Fully Qualified Domain Name) na adresy IP – Serwery DNS bez stref – serwery buforujące • Nie dochodzi do transferu stref • Zadanie to buforowanie adresów IP – host zadaje pytanie serwerowi, ten sprawdza swój bufor jak nie zawiera wpisu to odpytuje inny serwer DNS. Adresy IP w buforze przechowywane są około 1h • Zastosowanie – sieci domowe, małe filie przedsiębiorstw • Strefy wyszukiwania w tył – Odnajdywanie nazwy hosta na podstawie adresu IP Zapytania iteracyjne i rekurencyjne Typy rekordów w serwerach DNS • • • • • • • • • rekord A lub rekord adresu (ang. address record) mapuje nazwę domeny DNS na jej 32bitowy adres IPv4. rekord AAAA lub rekord adresu IPv6 (ang. IPv6 address record) mapuje nazwę domeny DNS na jej 128-bitowy adres IPv6. rekord CNAME lub rekord nazwy kanonicznej (ang. canonical name record) ustanawia alias nazwy domeny. Wszystkie wpisy DNS oraz poddomeny są poprawne także dla aliasu. rekord MX lub rekord wymiany poczty (ang. mail exchange record) mapuje nazwę domeny DNS na nazwę serwera poczty oraz jego priorytet. rekord PTR lub rekord wskaźnika (ang. pointer record) mapuje adres IPv4 lub IPv6 na nazwę kanoniczną hosta. Określenie rekordu PTR dla nazwy hosta (ang. hostname) w domenie in-addr.arpa (IPv4), bądź ip6.arpa (IPv6), który odpowiada adresowi IP, pozwala na implementację odwrotnej translacji adresów DNS (ang. reverse DNS lookup). rekord NS lub rekord serwera nazw (ang. name server record) mapuje nazwę domenową na listę serwerów DNS dla tej domeny. rekord SOA lub rekord adresu startowego uwierzytelnienia (ang. start of authority record) ustala serwer DNS dostarczający autorytatywne informacje o domenie internetowej, łącznie z jej parametrami (np. TTL). rekord SRV lub rekord usługi (ang. service record) pozwala na zawarcie dodatkowych informacji dotyczących lokalizacji danej usługi, którą udostępnia serwer wskazywany przez adres DNS. TXT – rekord ten pozwala dołączyć dowolny tekst do rekordu DNS. Rekord ten może być użyty np. do implementacji specyfikacji Sender Policy Framework. Źródło: Wikipedia Protokół DNS • Zwykle protokół UDP. (Zapytanie musi mieścić się w 512 bajtach) • Może również wykorzystywać protokół TCP Format komunikatu DNS: • NAGŁÓWEK – (Header) • ZAPYTANIE – (Question) do serwera nazw • ODPOWIEDŹ – (Answer) zawiera rekordy będące odpowiedzią • ZWIERZCHNOŚĆ – (Authority) wskazuje serwery zwierzchnie dla domeny • DODATKOWA – (Additional) sekcja informacji dodatkowych Zródło: Wikipedia Format protokołu DNS Opis pól • • • • • • • • • • • • • ID [16 bitów] – (IDentifier) – identyfikator tworzony przez program wysyłający zapytanie; serwer przepisuje ten identyfikator do swojej odpowiedzi, dzięki czemu możliwe jest jednoznaczne powiązanie zapytania i odpowiedzi QR [1 bit] – (Query or Response) – określa, czy komunikat jest zapytaniem (0) czy odpowiedzią (1) OPCODE [4 bity] – określa rodzaj zapytania wysyłanego od klienta, jest przypisywany przez serwer do odpowiedzi. Wartości: – 0 – QUERY – standardowe zapytanie, – 1 – IQUERY – zapytanie zwrotne, – 2 – STATUS – pytanie o stan serwera, – 3-15 – zarezerwowane do przyszłego użytku AA [1 bit] – (Authoritative Answer) – oznacza, że odpowiedź jest autorytatywna. TC [1 bit] – (TrunCation) – oznacza, że odpowiedź nie zmieściła się w jednym pakiecie UDP i została obcięta. RD [1 bit] – (Recursion Desired) – oznacza, że klient żąda rekurencji – pole to jest kopiowane do odpowiedzi RA [1 bit] – (Recursion Available) – bit oznaczający, że serwer obsługuje zapytania rekurencyjne Z [3 bity] – zarezerwowane do przyszłego wykorzystania. Pole powinno być wyzerowane. RCODE (Response CODE) – kod odpowiedzi. Przyjmuje wartości: – 0 – brak błędu – 1 – błąd formatu – serwer nie potrafił zinterpretować zapytania – 2 – błąd serwera – wewnętrzny błąd serwera – 3 – błąd nazwy – nazwa domenowa podana w zapytaniu nie istnieje – 4 – nie zaimplementowano – serwer nie obsługuje typu otrzymanego zapytania – 5 – odrzucono – serwer odmawia wykonania określonej operacji, np. transferu strefy – 6-15 – zarezerwowane do przyszłego użytku QDCOUNT [16 bitów] – określa liczbę wpisów w sekcji zapytania ANCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji odpowiedzi NSCOUNT [16 bitów] – określa liczbę rekordów serwera w sekcji zwierzchności ARCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji dodatkowej Żródło: Wikipedia Protokół SecDNS • Protokół umożliwiający autoryzację utrzymywanych odpowiedzi od serwera DNS • Serwery DNS – poważne zagrożenie bezpieczeństwa – Atak typu: zatrucie DNS – wprowadzenie nieautoryzowanych wpisów, szczególnie niebezpieczne w przypadku stosowania usług DHCP – umożliwienie ataków typu Web Page Spoofing (Podszywanie się pod stronę Internetową) • Rozwiązanie: dodanie czterech nowych dodatkowych typów rekordów : – – – – Resource Record Signature (RRSIG), DNS Public Key (DNSKEY), Delegation Signer (DS), Next Secure (NSEC). • Działanie: grupa rekordów jest zaszyfrowana prywatnym kluczem strefy. Użytkownik systemu może sprawdzić informacje za pomocą publicznego klucza strefy. DynDNS