DNS - WPROWADZENIE DNS pochodzi z angielskiego Domain Name Service DNS - jest "klejem" łączącym adresy sieciowe z obiektami (komputerami/host'ami) z nazwami jakimi się posługują wszyscy użytkownicy. Nazwy domen zaczynają się od najbardziej szczegółowej czyli hosta i przesuwają się do najbardziej ogólnej, czyli nazwy root. Nazwa domenowa, która zaczyna się od hosta i przechodzi całą drogę do korzenia jest zwana w pełni kwalifikowana nazwą domeny (ang. fully gualified domain name FQDN). Cel stosowanie DNS to zapewnienia odpowiedzi na następujące pytania: W jaki sposób można się z tym host'em skontaktować i gdzie powinna być przechowywana informacja o tym, z jakim adresem sieciowym należy nawiązać połączenie? Jeżeli host zmieni adres (np. z przyczyn technicznych), jak w takim razie inni użytkownicy Internetu będą się mogli o tym dowiedzieć?
SYSTEM NAZW DNS hostname.(subdomain).topleveldomain gdzie odpowiednio: - hostname - nazwa host'a (komputera, któremu jest przypisywana nazwa) - subdomain - poddomena (może ich być kilka) - topleveldomain - główna domena Przykład: riad.usk.pk.edu.pl gdzie odpowiednio: - riad - nazwa konkretnego komputera - usk - domena Uczelniana Sieć Komp. - pk - domena Politechnika Krakowska - edu - strefa edukacyjna w Polsce - pl - domena Polska (topleveldomain)
ZAPYTANIA DNS - CZ.I Serwer główny nie odpowiada bezpośrednio na zapytanie o adres, natomiast wskazuje lokalnemu serwerowi serwer, który może odpowiedzieć na zapytanie dotyczące domeny gumiak.com. Serwer główny przesyła serwerowi lokalnemu rekord zawierający nazwę odpowiedniego serwera dla domeny gumiak.com oraz rekord adresowy określający adres tego serwera. Następnie lokalny serwer wysyła do serwera domeny gumiak.com zapytanie o adres www. gumiak.com i otrzymuje odpowiedź.
ZAPYTANIA DNS - CZ.II Jeżeli ma dojść do komunikacji między dwoma komputerami, program pobiera nazwę host'a i wysyła pytanie do specjalnego serwera (name server) o powiązany z tą nazwą adres sieciowy. Name server zna adresy wszystkich lokalnych komputerów w zdefiniowanej strefie, jaką obsługuje (sieci lokalnej). Name server zna adresy innych name server'ów w Internecie. Jeżeli więc skądś nadchodzi zapytanie (query) o adres komputera po podaniu nazwy tego komputera, name server może: odczytać (resolve) adres lokalnie spytać inne name server'y czy one nie znają adresu komputera, o który pyta komputer-klient.
KOMUNIKAT DNS - CZ.I Komunikat DNS ma 12 bajtowy nagłówek stałej długości i cztery pola zmiennej długości. Identyfikacja - pole wypełniane przez klienta, tak aby mógł zidentyfikować odpowiedź serwera DNS; parametr - klasyfikuje komunikat
KOMUNIKAT DNS - CZ.II QR - typ operacji dla pytania, l dla odpowiedzi Oc - O pytanie standardowe, l pytanie odwrotne, 2 pytanie o status serwera, AA - odpowiedź autorytatywna (Prawda/Fałsz), TC - komunikat skrócony (Prawda/Fałsz), RD - żądana jest rekursja (Prawda/Fałsz), RA - rekursja jest dostępna (Prawda/Fałsz), Zero - zarezerwowane, ma wartość, Rc - typ odpowiedzi, bez błędów, 3 błąd nazwy;
KOMUNIKAT DNS - CZ.III liczba pytań - 1 lub więcej dla pytania, dla odpowiedzi; liczba odpowiedzi - dla pytania, l lub więcej dla odpowiedzi; liczba autorytetów - dla pytania, l lub więcej dla odpowiedzi; liczba dodatkowych informacji - dla pytania, l lub więcej dla odpowiedzi; pytania - każde pytanie składa się z napisu zawierającego adres internetowy, którego dotyczy pytanie, typu pytania i klasy pytania.
KOMUNIKAT DNS - CZ.IV 1 A Adres IP, 2 NS Serwer nazw dla domeny (ang. Name setrer), 5 CNAME Nazwa kanoniczna (jeśli komputer odpowie na więcej niż jedną nazwę,jest to nazwa główna) (ang. canonical name), 12 PTR Rekord wskaźnikowy (wskazuje nazwę odpowiadającą adresowi IP) (ang. pointer record), 13 HINFO Informacja o hoście (szczegóły związane z komputerem) (ang. host Information), 15 MX Rekord wymiennika poczty (ang. mail exchange), 252 AXFR Żądanie przesłania strefy (ang. Request for zone transfer), 255 ANY Żądanie wszystkich rekordów (ang. reąuestfor all record); Odpowiedź, Autorytety, Dodatkowe informacje - wszystkie działają na tym samym formacie rekordu zasobów
KOMUNIKAT DNS - CZ.V Rekord zasobów RR (ang resource record) zawiera następujące składowe: Pole nazwa domeny jest nazwą, do której odnoszą się zawarte w odpowiedzi informacje o zasobach. Pole typ określa jeden z kodów typu stosowanych w RR. Kody te są takie same, jak wartości typów zapytań, Pole klasa jest zwykle wartością 1 dla danych dotyczących sieci Internet. Pole czas życia jest liczbą sekund, określającą czas przechowywania informacji w pamięci podręcznej przez klienta. RR mają zwykle TTL ustawiony na 2 dni. Pole długość danych zasobu określa ilość danych w polu dane zasobu. Format tych danych zależy od pola: typ. Jeśli typ jest określony jako 1 (rekord A), to dane zasobów są zapisane w postaci 4- bajtowego adresu IP.
DOMENA ODWROTNA DNS Programy komunikacyjne przesyłają dane w postaci pakietów TCP/IP, które mogą zawierać jedynie adresy adres TCP/IP nadawcy. Jednak host - odbiorca chciałby znać także nazwę a nie tylko adres host'a - nadawcy. Potrzebny jest więc mechanizm ponownej translacji z adresu na pełną nazwę komputera (full domain name). Oczywiście można do tego użyć name server'a. Do tego celu stworzono specjalną domenę w sieci Internet, nazwaną.inadress.arpa, która spełnia wyżej wymienione założenie. Wszystkie sieci TCP/IP są ulokowane w tej domenie. Przykład: Adres: 149.156.96.9 Reverse Name: 9.96.156.149.in-addr.arpa Nazwa komputera: galaxy.uci.agh.edu.pl Dzięki tej domenie możliwy jest mechanizm bezbłędnego mapowania (mapping) adresu Internetowego na nazwę host'a, jak również lokalizacji wszystkich gateways w danej sieci lokalnej podłączonej do Internetu.
SERWERY DNS ROOT SERVER Zna wszystkie top level domains w sieci Internet. Informacje o host'ach jest zbierana z tych domen poprzez przeprowadzenie zapytania dla komputera z innej strefy (name server query) MASTER SERVER Jest "miarodajny" dla całego obszaru bieżącej domeny, prowadzi bazy danych dla całej strefy. Istnieją dwa rodzaje MASTER SERVER'ow: PRIMARY MASTER SERVER oraz SECONDARY MASTER SERVER Może się zdarzyć, że serwer jest zarazem MASTER SERVER'em dla kilku domen dla jednych PRIMARY MASTER SERVER'em, dla innych SECONDARY MASTER SERVER'em. CACHING SERVER Wszystkie serwery (PRIMARY jak i SECONDARY) prowadzą cache'owanie informacji, które otrzymują Korzystają z nich aż do zdezaktualizowania danych. Wygasanie określone jest w polu ttl, które jest zawsze dołączanedo danych dostarczanych serwerowi. CACHING SERVER'y nie mają pełnomocnictw dla żadnej strefy.
USŁUGA DHCP - CZ.I Protokoły konfiguracji sieci wykorzystywane są najczęściej do zarządzania ustawieniami sieci lokalnej z jednego komputera - serwera. Umożliwiają przenoszenie informacji dotyczących konfiguracji sieciowej stacji roboczych. Serwer DHCP wykorzystuje trzy metody przypisywania adresów: przydział statyczny IP do danego komputera (ustawienie ręczne ), automatyczny przydział statyczny przy pierwszym starcie komputera i kontakcie z serwerem, przydział dynamiczny, w którym serwer wynajmuje adres IP na określony czas. Serwer DHCP definiuje trzy zegary, które są inicjowane w komputerze klienta (mogą być jawne lub domyślne): czasu wynajmu, czasu odnawiania standardowo 5% czasu wynajmu, czasu przewiązywania standardowo 87,5% czasu wynajmu.
USŁUGA DHCP - CZ.II [ ] / DHCPDISCOVER INICJUJ DHCPNAK / [ ] WYBIERZ DHCPNACK LUB skończył się czas wynajmu DHCPOFFER / [ ] PRZEWIĄŻ DHCPREQUEST (minął czas przewiązywania stand. 87,5% czasu wynajmu) ODNÓW [ ] / DHCPRQUEST PROŚBA DHCPACK / [ ] DHCPACK / [ ] DHCPACK / [ ] POWIĄZANIE [ ] / DHCPREQUEST (minął czas odnawiania - stand. 5% czasu wynajmu) [ ] / DHCPRELEASE (skasowanie wynajmowania) Komunikaty zapisywane są w notacji: komunikat otrzymany od serwera / komunikat wysłany. Nawiasy kwadratowe [ ] oznaczają brak komunikatu.
KOMUNIKTY DHCP DHCPDISCOVER Klient wykorzystując transmisję broadcast wyszukuje dostępne serwery DHCP w sieci lokalnej, DHCPOFFER - Serwer do klienta w odpowiedzi na komunikat DHCPDISCOVER z ofertą konfiguracji parametrów, DHCPREQUEST Klient wykorzystując transmisję broadcast wysyła do serwerów żądanie otrzymania parametrów od jednego z serwerów, DHCPACK Serwer do klienta z parametrami konfiguracyjnymi oraz przyznanym adresem sieciowym, DHCPNAK Serwer do klienta z odmową zapytania o parametry konfiguracyjne (np. żądany adres IP został już przydzielony), klient po otrzymaniu komunikatu DHCPNAK za każdym razem rozpoczyna proces konfiguracji parametrów sieci, DHCPDECLINE Klient do serwera ze wskazaniem niepoprawnych parametrów (np. adres sieciowy), DHCPRELEASE Klient do serwera zwalania adres sieciowy i anuluje pozostałe dzierżawy.
PODSTAWY PROTOKOŁU FTP Protokół FTP różni się od innych usług tym, iż wykorzystuje dwa połączenia TCP do przesyłania plików: połączenie sterujące (control connection) jest zestawiane w opisywanej wcześniej architekturze klient/serwer. Serwer otwiera pasywnie dedykowany port FTP (najczęściej 21) i oczekuje na połączenie klienta. Klient wykonuje aktywne otwarcie portu i zestawia połączenie kontrolne, które pozostaje aktywne przez cały czas trwania komunikacji klienta z serwerem. Połączenie sterujące jest wykorzystywane do przesyłania oraz odbierania rozkazów pomiędzy klientem i serwerem. Połączenie sterujące powinno posiadać ustawione parametry pakietu IP TOS jako minimize delay połączenie przesyłu danych (data connection) jest zestawiane każdorazowo przy przesyle pojedynczego pliku. Połączenie przesyłu danych powinno posiadać ustawioną wartość pola TOS w nagłówku IP jako maximize throughput
USŁUGI A POLE TOS (IPv4) Usługa Minimize delay Maximize throughput Maximize reliability Minimize monetary cost Wart. hex Telnet/Rlogin 1 x1 FTP control data 1 1 x1 x8 any bulk data 1 x8 TFTP 1 x1 SMTP command phase data phase 1 1 x1 x8 DNS UDP query TCP query zone transfer 1 1 x1 x x8 ICMP error query x x any IGP 1 x4 SNMP 1 x4 BOOTP x NNTP 1 x2
TRANSFER DANYCH FTP user terminal CLIENT user interface Zadaniem interfesu użytkownika jest więc tłumaczenie wykonywanych akcji (kopiowanie, zakładanie katalogów, kasowanie,...) na komendy FTP i przesyłanie ich przez łącze sterujące. A także, upraszczając, interpretacja otrzymywanych od serwera odpowiedzi i przedstawianie je w formie zrozumiałej dla użytkownika (np. komunikaty błędów). SERVER user protocol interpreter control connection (FTP commands) (FTP replies) server protocol interpreter file system user data transfer function data connection server data transfer function file system
KOMUNIKATY PROTOKOŁU FTP Linia sterująca Wykorzystanie protokołu FTP opiera się na przesyłaniu komend do serwera oraz odbieraniu od niego odpowiedzi poprzez połączenie sterujące. Rozkazy te są przesyłane jako znaki w formacie NVT ASCII i muszą być zakończone parą znaków kontrolnych CR/LF. Długość rozkazu wynosi 3 lub 4 bajty i składa się z drukowanych znaków ASCII, czasem z dodatkowymi argumentami. Rozkaz ABORT LIST filelist PASS password PORT n1,n2,n3,n4,n5,n6 QUIT RETR filename STOR filename SYST TYPE type USER username Opis przerwanie wcześniejszego rozkazu, bądź transferu danych wylistowanie katalogów lub plików hasło na serwerze adres IP klienta (nl.n2.n3.n4) i nr portu (n5 x 256 + n6) zamknięcie sesji z serwerem otrzymanie (get) pliku wysłanie (put) pliku serwer zwraca typ pliku określenie typu pliku: A = ASCII, I = image użytkownik na serwerze
FORMAT KOMUNIKATÓW FTP Linia sterująca Każdy rozkaz przesyłany od klienta do serwera powoduje wygenerowanie odpowiedzi w przeciwnym kierunku. Składa się ona z trzech cyfr w formacie ASCII (xyz) wraz z opcjonalnie zawartym dodatkowym kodem wiadomości. Odpowiedź 1yz Pozytywna wstępna odpowiedź. Opis 2yz 3yz 4yz 5yz xz x1z x2z x3z x4z x5z Pozytywne przyjęcie rozkazu. Może zostać przesłany kolejny rozkaz. Pozytywne przejściowe przyjęcie rozkazu, ale w tej sytuacji powinien zostać wysłany inny rozkaz. Przejściowe odrzucenie rozkazu, który powinien zostać ponownie później przesłany. Trwałe odrzucenie rozkazu, który nie powinien być ponawiany. Błąd składni. Informacja. Połączenie. Odpowiedź na połączenie sterujące lub transferu danych. Autoryzacja w systemie użytkowników serwera. Niesprecyzowana komenda. Status systemu plików.
OPIS KOMUNIKATÓW FTP Linia sterująca Wykorzystanie wszystkich trzech cyfr do przesłania komunikatu odpowiedzi, rozszerza znacznie jej wartość informacyjną. Poniżej przedstawiono kilka przykładowych spotykanych komunikatów, wraz z wygenerowanym przez klienta opisem słownym: 125 Data connection already open; transfer starting. 2 Command OK. 214 Help message (for human user). 331 Username OK, password required. 425 Can't open data connection. 452 Error writing file. 5 Syntax error (unrecognized command). 51 Syntax error (invalid arguments). 52 Unimplemented MODE type.
REPREZENTACJA DANYCH Cecha Wartość Opis ASCII Domyślne ustawienie. Wymaga od klienta i serwera konwersji plików z własnych systemów na NVT ASCII. Podobnie jak w TFTP (netascii) każda linia musi być zakończona znakami sterującymi CR/LF. Oznacza to w praktyce, że odbiorca musi skanować każdy odbierany bajt w poszukiwaniu tych znaków, co wpływa na obniżenie wydajności transmisji. file type EBCDIC Alternatywny format przesyłu danych tekstowych wykorzystujący mechanizm EBCDIC znajdowania końca linii. image, binary Dane wysyłane są jako ciągły strumień bitów. Ten typ wykorzystywany jest najczęściej do przesyłu danych binarnych lub multimedialnych. Local Wykorzystywany w przesyle danych pomiędzy systemami o różnej długości bajtu. Liczba bitów w bajcie jest określana przez nadawcę. Dla systemów 8-bit typ ten jest tożsamy z image. Wartość domyslna. Plik nie zawiera innych informacji Nonprint formatujących oprócz znaków CR/LF. format Plik zawiera formatowanie pionowe w formacie Telnet control Telnet zgodne z kodami sterującymi drukarek. (ASCII) Pierwszy znak każdej linii jest kodem sterującym w Fortran formacie Fortran. File structure Ustawienie domyślne. Plik jest traktowany jako ciągły strumień bajtów i nie posiada wewnętrznej struktury pliku. structure record structure Ten format struktury jest wykorzystywany tylko w przypadku plików tekstowych (ASCII i EBCDIC). page structure Każda strona jest transmitowana z unikatowym numerem do odbiornika. Stream Ustawienie domyślne. Plik przesyłany jest jako strumień bitów. Transfer pliku odbywa się w postaci serii bloków transmission Block poprzedzonych nagłówkami. mode Wykorzystanie kompresji pliku przy wysyłaniu (w Compressed transmisji tekstowej kompresowane są puste znaki, a w binarnej. Linia sterując a
NAWIĄZYWANIE POŁĄCZENIA FTP - CZ.I Linia transmisji danych Można wyszczególnić trzy sposoby wykorzystania łącza data connection: przesył pliku z klienta do serwera przesył pliku z serwera do klienta przesył listingu plików lub katalogów z serwera do klienta Proces nawiązywania połączenia: wywołanie połączenia data connection jest kontrolowane przez stację klienta, ponieważ to one wysyła komendę wymuszającą transfer pliku (pobranie pliku, zapis pliku, wylistowanie katalogu) stacja klienta dokonuje wyboru portu dla łącza danych, z puli portów dostępnych i przeprowadza pasywne otwarcie wskazanego portu (prowadzi nasłuch) stacja klienta wysyła wybrany numer portu przez łącze sterujące komendą PORT do serwera,serwer odbiera numer i otwiera aktywne połączenie przez wskazany port ze stacją klienta
NAWIĄZYWANIE POŁĄCZENIA FTP - CZ.I FTP client FTP server (control connection) port 1173 port 21 PORT 14,252,13,34,4,15 port 1174 (passive open) IP 14.252.13.34 FTP client FTP server (control connection) port 1173 port 21 port 1174 (passive open) SYN to 14,252,13,34 port 1174 port 2 (active open) IP 14.252.13.34 Stacja klienta wybiera numery portów dla łącz odpowiednio: 1173 kontrolne, 1174 danych i otwiera pasywnie port 1174. Następnie wysyłana jest komenda PORT, której argumentami jest sześć liczb 8-bit w kodzie ASCII oddzielonych przecinkami. Pierwsze cztery liczby określają adres IP stacji klienta (tu 14.252.13.34), a następne dwie określają 16-bit numer portu liczony jako: 4 x 256 +15 = 1174. W tym momencie serwer otwiera aktywnie port 2 (domyślnie) dla łącza danych stacji klienta