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 1 Serwer DNS 5 ArekKomp KarolKomp 2 Sieć rozległa JacekKomp Plik LMHOSTS 192.168.1.13 KarolKomp 192.168.2.14 MaciekKomp 3 Plik HOSTS 192.168.1.123 MateuszKomp 192.168.2.14 MaciekKomp 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)
Transfer stref DNS Transfer strefy
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 32- bitowy 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