Sieci Komputerowe

NAT, DHCP, DNS *

NAT

Ze względu na rosnącą liczbę urządzeń w sieci oraz ograniczoną liczbę adresów najczęściej stosowanym obecnie rozwiązaniem jest tzw. translacja adresów, czyli udostępnianie jednego adresu IP dla całej podsieci oraz zarządzanie komunikacją poprzez serwer lub ruter. Czasem mówimy w takim wypadku, że komputery w sieci loklanej znajdują się "za NAT-em".

Wyróżniamy trzy rodzaje NAT:

Statyczny NAT: Udostępnia odzorowanie 1-1 między adresami zewnętrznymi a adresami lokalnymi (czyli każdy komputer lokalny ma swoje IP, a serwer tylko pośredniczy w przekazywaniu pakietów).
Dynamiczny NAT: Serwer dysponuje pulą adresów IP, które przyporządkowuje lokalnym jednostkom dynamiczne w odpowiedzi na ich żądania skierowane do sieci zewnętrznej
PAT: Port address translation Najpopularniejsza, odwzorowuje wiele komputerów sieci lokalnej na jeden adres sieci IP poprzez kierowanie ruchu na określone porty.

a1

a2

a3

Kiedy komputer z sieci lokalnej wysyła zapytanie do sieci, urządzenie NAT zmienia adres nadawcy pakietu (i czasem numer portu) na publiczny adres IP.

W momencie, gdy wraca do nas odpowiedź na ten pakiet urządzenie NAT przypisuje pakietowi odpowiedni adres lokalnego węzła. Odwzorowania między pakietami a adresami zapamietywane są w tablicy translacji NAT.

Na przykład: Klient o adresie IP 192.168.10.2 chce skomunikować się z serwerem o adresie 131.110.30.4. Klient ma ustawioną bramę domyślną (ujście komunikacje) na adres 192.168.1.1, czyli adres serwera obsługującego NAT. Zewnętrzny adres serwera to 131.110.5.1. Komunikacja między klientem a serwerem zachodzi w następujący sposób:

Klient przesyła pakiet do serwera. Nagłówek pakietu wskazuje, że pochodzi on z komputera o adresie 192.168.10.2 z portu 1074 i zmierza na port 80 adresu 131.110.30.4.
Serwer (ruter) podmienia nagłówek przypisując adres nadawcy jako 131.110.5.1 oraz port na 1563. Adres docelowy pozostaje bez zmian. Serwer przesyła pakiet w sieci Internet do adresata.
Adresat odbiera wiadomości i przesyła swoją odpowiedź. Nagłówek komunikatu mówi, że pochodzi on z portu 80 hosta o adresie 131.110.30.4 i zmierza na port 1563 adresu 131.110.5.1.
Serwer (ruter) odbiera komunikat z sieci i sprawdza w tabeli NAT informacje na temat węzła sieci lokalnej, który zainicjował komunikację. Serwer podmienia nagłówek komunikatu ustwiając jako cel port 1074 oraz adres 192.168.10.5 i przesyła komunikat do klienta. Adres i port nadawcy pozostają bez zmian.

W przypadku komputera w sieci lokalnej nasz adres zewnętrzny możemy poznać korzystając z serwisów takich jak https://www.whatismyip.com/ lub (w Linux) np wykorzystując serwer DNS:

dig +short myip.opendns.com @resolver1.opendns.com

Sprawdż, czy znajdujesz się w sieci lokalnej.

Komputery w sieci zewnętrznej nie są w stanie ustanowić bezpośredniego połączenia z komputerem znajdującym się w sieci lokalnej. Dostęp do komputera w sieci lokalnej możemy uzyskać poprzez ustawienia przekazywania ruchu w ustawieniach rutera, lub w przypadku serwera na linuxie poprzez zmiany w iptables:

Zadanie (1 pkt)

Która z poniższych komend umożliwia ustawienie dostępu do serwera FTP o adresie lokalnym 10.5.9.100 przez Serial 0 interface (tj bezpośrednio z internetu)?

A. ip nat inside source static tcp interface serial 0 21 10.5.9.100 21
B. ip nat inside source static tcp 10.5.9.100 21 interface serial 0 21
C. ip nat inside destination static tcp interface serial 0 21 10.5.9.100 21
D. ip nat inside destination static tcp 10.5.9.100 21 interface serial 0 21

Zmieniłeś adres IP komputera w sieci lokalnej i nie łączy się on z siecią Internet. Sprawdziłeś że ustawienia podsieci i bramy są prawidłowe. Jaką operację wykonasz na routerze, aby być pewnym że cache'wane informacje nie sa przyczyną tego błędu? (wybierz 2 operacje)

A. clear arp
B. clear ip route
C. clear ip nat translations *
D. clear startup-config

Zadanie (2 pkt)

W pliku Plik1 znajduje się log komunikacji pomiędzy klientem w sieci lokalnej a siecią zewnętrzną

w Plik2 znajduje się ta sama komunikacja podsłuchana ze strony sieci zewnętrznej (pośrodku znajduje się urządzenie NAT).

W programie Wireshark użyj filtra http w celu wyfiltrowania komunikatów związnych tylko z tą komunikacją.

Odpowiedz na pytania: Jaki jest adres IP klienta (lokalny)? Przeanalizuj komunikat HTTP GET wysłany o czasie 7.109267. Podaj numery portów i adresy pakietów nadawcy i odbiorcy w tym przypadku. Znajdź ten sam komunikat w logu po stronie sieci zewnętrznej, podaj jego czas otrzymania (uwaga może on być niższy niż czas powyżej gdyż czasy są mierzone niezależnie) Podaj numery portów i adresy pakietów nadawcy i odbiorcy po stronie sieci zewnętrznej.

Które z wymienionych elementów nagłówka IP uległy zmianie pomiędzy komunikacją w sieci lokalnej a w sieci zewnętrznej: Version, Header Lenght, Flags, Checksum.

Jeżeli któryś z nich zmienił wartość, wyjaśnij dlaczego tak się stało.

DHCP

DHCP (ang. Dynamic Host Configuration Protocol) to protokół komunikacyjny, który jest wykorzystywany przez usługę DHCP, zbudowaną w architekturze klient-serwer. Usługa ta daje możliwość pozyskania od serwera DHCP danych konfiguracyjnych (i ich dynamiczne przydzielanie) np.

adresu IP
maski sieci
adresy IP serwerów DNS
adresu IP bramy sieciowej

Dane te mogą służyć konfigurowaniu urządzeń połączonych z siecią tak, żeby mogły komunikować się w niej używając protokołu IP.

Wiadomości wysyłane w usłudze DHCP:

DHCPDiscover - klient nadaje wiadomość w poszukiwaniu dostępnych serwerów DHCP.
DHCPOffer - serwer odpowiada klientowi na wiadomość DHCPDISCOVER z oferowanymi parametrami konfiguracyjnymi.
DHCPRequest - klient wysyła żądanie oferowanych parametrów od konkretnego serwera
DHCPAcknowledge (DHCPAck) - wybrany serwer DHCP potwierdza żądanie klienta DHCP wysyłając pakiet DHCPAck
DHCPNak - Jeżeli adres IP nie jest już ważny lub jest w danym momencie używany przez inny komputer, serwer DHCP odpowiada pakietem DHCPNak i klient musi rozpocząć proces dzierżawienia od początku.
DHCPDecline - jeżeli klient określi oferowane parametry konfiguracyjne jako niepoprawne, wysyła pakiet DHCPDecline do serwera i musi rozpocząć porcez od początku.
DHCPRelease - klient DHCP wysyła pakiet DHCPRelease aby zwolnić adres IP i anulować dzierżawienie
DHCPInform - Klient zapytuje serwer DHCP o parametry konfiguracyjne TCP?IP hosta (host ma już przydzielony adres IP)

a5

Opcje komunikatów można znaleźć tutaj:

Zadanie (1 pkt)

W pliku Plik3 znajduje się log komunikacji pomiędzy komputerem a serwerem dhcp.

Odpowiedz na pytania:

Czy komunikaty DHCP są wysyłane po UDP czy po TCP?

Podaj adres komputera przypisany mu przez serwer DHCP. Podaj adres serwera DHCP.

Podaj jakie informacje serwer DHCP przekazał do klienta (spójrz na opcje w komunikatach od serwera).

Co oznacza pole IP Adress Lease Time w protocole DHCP?

DNS

Domain Name System (DNS) zamienia nazwy stron i serwerów internetowych (np. amu.edu.pl) na adres IP (150.254.65.253). Jest to o tyle ważne, że w internecie to wyznaczania drogi i celu pakietów korzystamy z adresów IP.

Typy komunikatów DNS:

A - Internet address of the host hostname to IP mapping.
CNAME - canonical name of an alias, a machine may have several names (aliases) associated with it, but only one of them is the real one.
MX - mail exchanger, mail server for the domain. This is used by SMTP.
NS - nameserver, which nameserver is responsible for the domain.
PTR - Pointer to a canonical name, IP to hostname mapping.
SOA - domain's start-of-authority information, who is in charge for the administration of the domain.

Pełną listę komunikatów można znaleźć tutaj:

Zadanie (1 pkt)

Narzędziem systemowym pozwalającym na odnalezienie adresu serwera za pomocą jego nazwy jest np nslookup.

nslookup amu.edu.pl

Odpowiedz na pytanie: Co znaczy, że otrzymana odpowiedź jest "non-authoritative" ?

---

Spróbuj wykonać zapytanie

nslookup -type=NS amu.edu.pl

Zadanie (2 pkt)

W pliku Plik4 znajduje się log komunikacji pomiędzy komputerem a serwerem DNS.

Odpowiedz na pytania:

Czy komunikacja z serwerem DNS odbywa się poprzez TCP czy UDP? Na jakim porcie działa serwer DNS? Jakie typy zapytań DNS można odnaleźć w logu?

Czy z jedną maszyną może być związane więcej niż jedna nazwa domenowa? więcej niż jeden adres IP ?

Proszę o przesłanie rozwiązań mailem jako tekst w treści wiadomości. W temacie powinien znajdować się numer indeksu i słowo SIK.

*

Wykorzystano materiały z:

http://www.tech-faq.com/nat-network-address-translation.html

https://www.pluralsight.com/blog/software-development/nat-network-address-translation-pat-port-address-translation

"Computer Networking: A Top-Down Approach", 6th ed., J.F. Kurose and K.W. Ross

https://en.wikibooks.org/wiki/Communication_Networks/NAT_and_PAT_Protocols

https://it-szkola.edu.pl/upload/kuznia/technologie_akademii_Cisco/main.html

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch18_:_Configuring_DNS