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

Podobne dokumenty