1. Adresowanie w sieci IP
1.1 Budowa adresu IP
Każdemu hostowi (urządzeniu) w sieci przyporządkowany jest unikalny adres IP. Dzięki niemu
dane docierają do właściwego odbiorcy (innego komputera w sieci). Adresy IP zarządzane są poprzez NIC
(Network Information Center)
Adres IP w wersji 4 (IPv4) reprezentowany jest przez 32 bitową liczbę binarną
11000000. 10101000. 00000001. 00000010
192. 168. 1. 2
Oczywiście można stosować różne notacje do przedstawienia tej liczby – binarną, decymalną lub
heksadecymalną. Są one jednak niezbyt przejrzyste, a adresy w nich zapisane trudne do
zapamiętania. Wymyślono więc osobną notację. Każdy adres IP przedstawiany jest w postaci 4
oktetów (rozdzielonych kropkami), z czego każdy oktet może opisywać liczbę dziesiętną z zakresu
<0;255>. Jest to tak zwana „kropkowa notacja dziesiętna”.
Przykład:
192.168. 1. 15 - jest poprawnym adresem IP
80.100.3.113
- jest poprawnym adresem IP
135.267.1.5
- jest błędnym adresem IP
Adres IPv4 zawiera tzw. część sieciową (Network) i część hosta (Host). Część sieci adresu IP określa
sieć, do której należy host (urządzenie). Część hosta jest jego numerem w tej sieci.
Podział adresu IPv4 na część sieci i część hosta
Network (część sieci)
Host (część hosta)
192 . 168 . 1 . 2
1
oktet 2
oktet 3
oktet 4
oktet
Rozmiar (liczba bitów) części sieci i hosta zależny jest od maski podsieci, jak również od klasy, do jakiej
należy adres IP. Zostanie to wyjaśnione później.
1.2 Klasy adresów
Adresy IP, w zależności od wartości pierwszego oktetu, należą do jednej z klas: A, B, C, D lub E. W
praktyce najczęściej mamy do czynienia z klasami A, B i C. To, do jakiej klasy należy adres IP, ustalamy
według reguły:
jeżeli pierwszy bit adresu (a dokładnie pierwszego oktetu) ma wartość O, adres należy do klasy
A,
32 bity
jeżeli pierwsze dwa bity adresu mają wartość l O, adres należy do klasy B,
jeżeli pierwsze trzy bity adresu mają wartość 110, adres należy do klasy C.
Jeżeli pierwsze cztery bity adresu mają wartość 1110, adres należy do klasy D,
jeżeli pierwsze cztery bity adresu mają wartość 1111, adres należy do klasy E.
Sieci klasy D wykorzystywane są do multicastu, gdzie pojedynczy adres sieciowy identyfikuje
grupę hostów. To zagadnienie przedstawimy później. Sieci klasy E zarezerwowane są do celów
eksperymentalnych.
Zgodnie z powyższymi regułami możemy przyjąć zakresy wartości, jakie mogą przyjąć pierwsze liczby
(oktety) adresu w poszczególnych klasach:
Podstawowe klasy adresów IP
Klasa
Zakres
(dopuszczalne wartości 1 oktetu)
Przykład adresu:
A
0-126
(127 jest zarezerwowane do specjalnych celów)
10.1.12.4
B
128-191 134.77.1.2
C
192-223 212.160.150.200
Rozmiary części sieci i hosta w poszczególnych klasach:
N - (network) należy do części sieci,
H - (host) należy do części hosta.
Klasa A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
N H H H
Część sieci składa się z 8 bitów, część hosta z 24 bitów.
Każda sieć używająca adresów z klasy A może zawierać 2
24
- 2 hostów (16777214)
Klasa B
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
N N H H
Część sieci składa się z 16 bitów, część hosta z 16 bitów.
Każda sieć używająca adresów z klasy B może zawierać 2
16
- 2 hostów (65534).
Klasa C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
N N N H
Część sieci składa się z 24 bitów, część hosta z 8 bitów.
Każda sieć używająca adresów z klasy C może zawierać 2
8
- 2 hostów (254).
Jak wyliczamy maksymalną liczbę hostów w danej sieci?
2
n
-2,
gdzie: n - liczba bitów części hosta.
Od maksymalnej liczby możliwych do otrzymania adresów hostów odejmujemy 2 skrajne adresy
zarezerwowane dla adresu sieci i adresu rozgłoszeniowego (broadcast). Dane (datagramy) wysyłane na
adres rozgłoszeniowy dotrą do każdego hosta w danej sieci. Przykładowo dla adresu klasy C: adresem
rozgłoszeniowym dla sieci o adresie 192.168.1.0 jest 192.168.1.255.
1.3 Maska sieci
Maska sieci swoją budową przypomina adres IP - składa się z 32 bitów rozdzielonych na cztery
oktety, gdzie każdy z oktetów może przyjąć (jako liczba dziesiętna) wartość od O do 255.
Zadaniem maski sieci jest wydzielenie z adresu IP części sieci (i hosta) Uzyskujemy to przez
wykonanie operacji AND maski z danym adresem IP.
Aby przejrzyście i krótko określić daną sieć wraz z jej maską, stosujemy specjalną notację. Maska to de facto
liczba binarna składająca się z ciągu samych jedynek, po których są same zera. Aby określić maskę wystarczy
więc podać liczbę tych jedynek. Przykładowo zapis 195.162.230.0/24 oznacza sieć klasy C z domyślną maską
255.255.255.0.
Domyślne maski sieci dla podstawowych klas adresów IP
Klasa
Domyślna maska
podsieci
A
255.0.0.0
B 255.255.0.0
C
255.255.255.0
W przypadku domyślnych masek zasada jest prosta:
wszystkie bity należące do części sieci ustawione są na 1,
wszystkie bity należące do części hosta ustawione są na 0.
Jak odbywa się wydzielanie adresu sieci za pomocą maski?
Przykładowo, mamy adres IP hosta 192.168.1.5. Jest to adres z klasy C, zatem domyślną maską sieci
będzie 255.255.255.0 .
11000000
10101000
00000001
00000101 adres IP
AND
11111111 11111111 11111111 00000000 maska
11000000
10101000
00000001 00000000 adres
sieci
192 168 1
0
Zatem, dla adresu IP 195.168.1.5 i maski sieci 255.255.255.0, adresem sieci będzie 192.168.1.0,
natomiast adresem hosta w tej sieci będzie 5.
1.4 Podsieci
Do tej pory, część sieci adresu IP budowana była zawsze z pełnych oktetów i zgodnie ze schematem:
klasa A
–
klasa B
–
klasa C
–
Istnieje jednak możliwość rozszerzenia części sieci przez zapożyczenie bitów z części hosta. Dzięki
temu możemy utworzyć dodatkowy poziom w hierarchii sieci (podsieci). Należy jednak pamiętać, że
zmniejszając liczbę bitów w części hosta, zmniejszamy tym samym ich maksymalną liczbę w każdej
podsieci.
Po co tworzymy podsieci? Podział na podsieci stosuje się w celu usunięcia trudności topologicznych
lub organizacyjnych w strukturze sieci danej organizacji. Dzięki subnettingowi zmniejszamy również
rozmiary domeny broadcastowej. Ruch pakietów broadcastowych obciąża całą sieć. Podzielenie całej sieci
na mniejsze podsieci ogranicza ruch broadcastów do podsieci, której one (broadcasty) dotyczą.
Minimalna liczba zapożyczonych bitów (z części hosta) na potrzeby subnettingu wynosi 2.
Maksymalna, to ogólna liczba bitów należących do części hosta - 2. Podsieci definiujemy za pomocą
maski podsieci. Pamiętamy bowiem, iż zadaniem maski podsieci jest wydzielenie z adresu IP części
sieci i hosta
Przykładowo:
Mamy adres 192.168.1.22. Adres należy do klasy C, zatem domyślną maską podsieci będzie
255.255.255.0, adresem sieci 192.168.1.0, natomiast adresem rozgłoszeniowym (broadcastem)
192.168.1.255.
N - (network) należy do części sieci
H - (host) należy do części hosta.
N . N . N . H
Adres IP
dec
192 . 168 . 1 . 22
Adres IP
bin
11000000 . 10101000 . 00000001 . 00010110
Maska
podsieci
bin
11111111 . 11111111 . 11111111 . 00000000
Maska
podsieci
dec
255 . 255 . 255 . 0
Z części hosta adresu 192.168.1.10, zapożyczymy 4 bity na potrzeby subnettingu.
SN - (subnet) należy do części podsieci.
N . N . N .
SN
H
Adres
IP
dec
192 . 168 . 1 . 22
Adres
IP
bin
11000000 . 10101000 . 00000001 . 0001 0110
N H H H
N N H H
N N N H
Maska
podsieci
bin
11111111 . 11111111 . 11111111 . 1111 0000
Maska
podsieci
dec
255 . 255 . 255 . 240
Mamy zatem 4 dodatkowe bity do tworzenia podsieci oraz 4 bity do zaadresowania hostów w każdej
podsieci.
Podsumujmy:
Po zastosowaniu subnettingu mamy:
adres IP hosta: 192.168.1.22,
maska podsieci: 255.255.255.240,
adres sieci: 192.168. l. 16 (wszystkie 4 bity z części hosta wyzerowane),
adres rozgłoszeniowy: 192.168.1.31 (wszystkie 4 bity z części hosta ustawi one na 1).
Zmieniając kombinacje bitów w części subnettingu (SN) możemy utworzyć 14 oddzielnych
podsieci, w których możemy zaadresować 16 urządzeń w każdej. Wzór na wyliczenie liczby hostów już
znamy: 2
n
- 2, gdzie n to liczba bitów części hosta. W przypadku liczby podsieci, to po prostu liczba
wszystkich możliwych kombinacji 0 i 1 w części subnettingu.
Za pomocą VLSM (Variable Length Subnet Mask) czyli maski zmiennej długości możemy bardziej
efektywnie zarządzać adresami IP. Ta technika podziału sieci wprowadza jeszcze jeden - dodatkowy
poziom w hierarchii. W danej podsieci możemy stworzyć osobne podsieci, powiększając maskę.
1.5 Nadsieci
Bezklasowy ruting międzydomenowy (CIDR – Classless Inter-Domain Routing) usuwa pojęcie
klasy z przydzielania i zarządzania adresami IP. Zamiast wcześniej zdefiniowanych klas alokacje
CIDR są określane za pomocą adresu początkowego i zakresu. Zakres jest tożsamy z maską
podsieci. Takie podejście pozwala na elastyczne zarządzanie adresami IP.
Tak, jak w podsieciach wydłużaliśmy maskę, w nadsieciach ją skracamy. Prowadzi to do łączenia
sieci w tzw. nadsieci. Aby dane sieci można było połączyć za pomocą CIDR muszą one spełniać
jeden warunek. Bity określające sieci muszą być identyczne. Są to ważniejsze bity w numerze
sieci. Ilość tych bitów określa wynikowa maska nadsieci.
1.6 Adresy specjalne
Adresy te czasem nazywane są adresami nierutowalnymi. Nazwa ta powstała, ponieważ pakiety z
takich sieci nie powinny być przekazywane przez rutery. Niektóre z nich już wcześniej pojawiły
się w opracowaniu, ale dla przejrzystości przytoczymy je jeszcze raz i uzupełnimy.
1.6.1 Adres
sieci
Jest to adres, w którym na pozycjach określających numer hosta są zera.
1.6.2 Adresy
rozgłoszeniowe
(broadcast)
Ogólnie można powiedzieć, że adres ten na pozycjach określających numer hosta zawiera same
jedynki. Informacja wysłana na ten adres trafi do wszystkich hostów w danej sieci.
Można wyróżnić kilka przypadków adresu rozgłoszeniowego:
Adres 255.255.255.255 - ograniczone rozgłaszanie; może być używany tylko jako adres
odbiorcy. Datagram zaadresowany w ten sposób zostanie odebrany przez każdą maszynę
w macierzystej sieci, ale nie zostanie rozesłany dalej.
Adres, w którym numer hosta to same jedynki. Typowy adres rozgłoszeniowy.
Rozgłaszanie skierowane jest do podanej sieci, również tylko jako adres odbiorcy.
Kiedy określimy numer podsieci, to broadcast kierowany jest tylko do niej. Jak nie
podamy tego numeru (w jego miejsce wpiszemy jedynki), to zapewnimy sobie broadcast
w danej sieci z wszystkimi jej podsieciami.
1.6.3 Adres
zwrotny
(loopback)
Jest to specjalny adres, postaci:
127.x.x.x
Według standardów jako loopback powinien być stosowany adres 127.0.0.1. Jest to adres, który
zapewnia programowe połączenie obwodów wyjściowych karty sieciowej z jej obwodami
wejściowymi, niezależnie od faktycznego numeru IP. Loopback pozwala zatem na połączenie się
z samym sobą za pośrednictwem protokołów IP. Adres ten zawsze wskazuje na lokalną maszynę i
oprócz funkcji testowych przyczyną wprowadzenia loopback’a (oraz dodatkowego interfejsu
obsługującego ten adres) było dążenie do ujednolicenia i uproszczenia adresacji dla aplikacji
warstwy wyższej
1.6.4 Adresy
grupowe
(klasa D)
Niektóre adresy klasy D są zarezerwowane dla dobrze znanych grup multicastowych:
224.0.0.1 - grupa wszystkich hostów akceptujących multicast; każdy host akceptujący
multicasty zapisuje się do tej grupy przy uruchamianiu
224.0.0.2 - grupa wszystkich ruterów multicastowych
224.0.0.4 - grupa ruterów DVMRP (Distance Vector Multicast Routing Protocol)
224.0.0.5 - grupa ruterów OSPF (Open Short Path First)
. . .
224.0.0.0 - 224.0.0.255 są zarezerwowane na potrzeby lokalne (administrowanie i
konserwowanie urządzeń i usług) i nie są nigdy przekazywane dalej przez rutery
multicastowe
239.0.0.0 - 239.255.255.255 zarezerwowane na potrzeby administrative scoping.
1.6.5 Adres
zerowy
Posiada on same zera (zarówno w części sieci, jak i hosta): 0.0.0.0
Oznacza "ta stacja w tej sieci". Taki adres jest używany tylko jako adres nadawcy w przypadku
pewnych procedur inicjujących, za pomocą których stacje dowiadują się o swoich adresach IP.
Adres, który w części sieci jest zerowy, a część hosta jest poprawnie zapisana jest używany w
tych samych warunkach jak adres zerowy, tylko w odniesieniu do danego hosta.
1.6.6 Prywatne
adresy
nierutowalne
Pewna
grupa adresów została zarezerwowana do powszechnego wykorzystania. Można z
wykorzystaniem tych adresów budować lokalne intranety (sieci IP świadczące takie same
usługi jak Internet, ale dla pojedynczego przedsiębiorstwa). Wynika stąd, że możemy
założyć sobie sieć przestrzenią adresową z takiego zakresu i sieć ta nie będzie widziana
na zewnątrz w Internecie.
Prywatne adresy nierutowalne
Klasa adresu Maska podsieci
Zakres adresów nierutowalnych
A
255.0.0.0
10. 0.0.0 - 10.255.255.255
B
255.255.0.0
172. 16.0.0 - 172. 31.255.255
C
255.255.255.0
192.168.0.0 - 192.168.255.255
Będąc w takiej sieci posiadamy numer IP, który jest lokalnym numerem i nie jest widziany
bezpośrednio w całej sieci. Komunikacja z siecią globalną odbywa się przy pomocy translacji
adresów NAT (Network Address Translation), która daje możliwość zmapowania całej sieci (lub
wielu sieci) do pojedynczego adresu IP. NAT jest niezbędny, gdy liczba adresów IP
przydzielonych przez Dostawcę Usług Internetowych (ISP) jest mniejsza niż całkowita liczba
maszyn, który mają mieć dostęp do Internetu.