« poprzedni punkt  następny punkt »


8. Adresy nadające się do użytku przy danej masce sieci

Do tej pory mówiłem, że w każdej sieci z maską 24-bitową można umieścić do 256 hostów. Nie jest to do końca prawda. Przypomnij sobie, że adres zawierający bity 1, w części określającej numer hosta, to adres broadcast. Przypomnij sobie również, że w niektórych starszych implementacjach dla określenia adresu broadcast stosowane są bity 0. W związku z tym adresy zawierające bity 1 i bity 0 w części określającej numer hosta nie mogą być stosowane do adresowania hosta w sieci. Daje to rzeczywistą liczbę dostępnych adresów hostów w takiej sieci, która wynosi 254. Takie same restrykcje dotyczą wszystkich sieci i podsieci, niezależnie od długości maski.

Na przykład maska o długości 31 bitów w zapisie szesnastkowym 0xfffffffe powinna dać możliwość wydzielenia podsieci, w której będą pracowały dwa hosty, idealnej dla konfiguracji łącza punkt-punkt. Ponieważ jednak nie możemy nadawać hostom numerów złożonych z samych bitów 1 ani samych bitów 0, to sieć utworzona taką maską jest bezużyteczna. Poprawną maską dla sieci, w której będą dostępne dwa adresy hostów, jest maska 30-bitowa -0xfffffffc. Pierwszy host w sieci będzie miał numer 1, a drugi 2. Numer 0 nie jest dostępny dla hostów, a numer 3 będzie adresem broadcast.

Wyżej opisana niejednoznaczność występuje także w przypadku podsieci, dla których numer podsieci składa się z samych bitów 0 lub 1. Niektóre wersje oprogramowania sieciowego nie potrafią poprawnie obsługiwać tego typu podsieci. Inne wersje wymagają wyraźnego skonfigurowania funkcji programu, tak by te dwie sieci były obsługiwane poprawnie. Na przykład system operacyjny Cisco IOS będzie obsługiwał podsieć 0, jeśli zostanie skonfigurowany poleceniem

ip subnet-zero

wchodzącym w skład konfiguracji protokołu. Nie zachęcam jednak do używania tej możliwości, ponieważ możemy w jej wyniku uzyskać numery podsieci i sieci, które będą nierozróżnialne. Może to nawet spowodować błędy w działaniu dynamicznego protokołu rutowania używanego w Twojej sieci! Jeśli nie masz pewności, czy całe wykorzystywane w Twojej sieci oprogramowanie obsługuje jedną lub obie wymienione podsieci (wszystkie bity 0 i wszystkie bity 1), powinieneś unikać stosowania takich numerów podsieci.

W tabeli 2 pokazano liczbę podsieci i hostów dla wszystkich masek podsieci w trzech blokach sieci o różnej wielkości. Na przykład jeśli wykorzystywany przez Ciebie blok sieci ma długość 16 bitów, to możesz użyć 25-bitowej maski podsieci w celu uzyskania 510 podsieci i 126 hostów w każdej z nich. Jeśli jednak długość bloku sieci wynosi 20 bitów, to taka sama 25-bitowa maska pozwoli na zaadresowanie 30 podsieci i 126 hostów w każdej z nich. Zwróć uwagę na to, że niektóre maski nie tworzą użytecznej liczby podsieci. Takie przypadki oznaczono za pomocą kreski poziomej. Podobne numery sieci można łatwo podzielić na bloki sieci o innej długości. Gdy będziesz się zastanawiał nad wyborem maski dla Twoich podsieci, pamiętaj o przykładach z poniższej tabeli.

Tabela 2. Liczba podsieci i hostów w zależności od długości maski i sieci

Liczba
bitów

Maska podsieci

Liczba podsieci w bloku sieci

Efektywna liczba hostów

16 bitów

20 bitów

24 bity

16

255.255.0.0

1

-

-

65534

17

255.255.128.0

-

-

-

32766

18

255.255.192.0

2

-

16382

19

255.255.224.0

6

-

-

8190

20

255.255.240.0

14

1

-

4094

21

255.255.248.0

30

-

-

2046

22

255.255.252.0

62

2

-

1022

23

255.255.254.0

126

6

-

510

24

255.255.255.0

254

14

1

254

25

255.255.255.128

510

30

-

126

26

255.255.255.192

1022

62

2

62

27

255.255.255.224

2046

126

6

30

28

255.255.255.240

4094

254

14

14

29

255.255.255.248

8190

510

30

6

30

255.255.255.252

16382

1022

62

2

31

255.255.255.254

32766

2046

126

-

32

255.255.255.255

65534

4094

254

-


2.8. Adresy prywatne i publiczne

Powiedziałem, że adres IP musi jednoznacznie identyfikować host, ale nie określiłem, w jakim zakresie. Aby adres IP mógł być jednoznacznie używany przez algorytm rutowania w celu określenia trasy do punktu przeznaczenia, musi być jednoznaczny wśród wszystkich sieci osiągalnych z danego hosta, przy wykorzystaniu protokołu IP. Taki zbiór sieci IP jest nazywany intersiecię. Najlepiej znanym przykładem intersieci jest Internet.

W sieci Internet unikalność adresów IP zapewnia system ich przydzielania. Centralna władza administracyjna, znana jako Internet Registry, przydziela numer sieci do miejsca, które dołączane jest do sieci Internet. Taki sposób przydzielania adresów gwarantuje, że żadne inne miejsce w sieci nie będzie miało przydzielonego tego samego numeru sieci. Dlatego dopóki jedna organizacja będzie przydzielała różne numery poszczególnym hostom w swojej sieci, każdy adres IP będzie unikalny. Tak więc Internet Registry zapewnia unikalne numery sieci, a użytkownicy tych sieci zapewniają unikalny przydział numerów wewnątrz własnych sieci. Takie globalnie unikalne adresy znane są jako publiczne adresy IP.

W związku z ogromnym wzrostem liczby komputerów przyłączanych do sieci Internet istniały obawy dotyczące wyczerpywania się przestrzeni adresowej IP. Toteż ustalono, że pewien zestaw numerów sieci IP zostanie przeznaczony do prywatnego adresowania hostów wewnątrz sieci wchodzących w skład różnych miejsc w Internecie. Sieci te nie są przydzielane przez Internet Registry, lecz można ich używać w każdym miejscu (dołączonym do sieci Internet lub nie), które zdecyduje się wykorzystywać prywatną przestrzeń adresową. Adresy IP muszą być unikalne wewnątrz prywatnej sieci, ale ich unikalność nie jest gwarantowana pomiędzy adresowanymi w ten sposób sieciami prywatnymi. Dwie sieci prywatne mogą bez problemu używać tego samego numeru, a więc przydzielić taki sam adres IP dwóm hostom (każdy z nich pracuje w innej sieci). Ponieważ adresy prywatne nie są unikalne, komunikacja pomiędzy adresowanymi w ten sposób sieciami nie jest możliwa bez odpowiednich uzgodnień administracji tych sieci, dotyczących przydziału poszczególnych numerów hostów. W wyniku skoordynowania przydzielanych w dwóch sieciach adresów prywatnych będziemy mieli do czynienia właściwie z jedną prywatną przestrzenią adresową.

Niektóre przedsiębiorstwa mogą czerpać wiele korzyści z zalet prywatnych przestrzeni adresowych. Są wśród nich przedsiębiorstwa, które raczej nie będą dołączone do Internetu, przedsiębiorstwa mające dużą liczbę maszyn, które wymagają specjalnych warunków bezpieczeństwa i nie powinny być ogólnie dostępne, oraz przedsiębiorstwa, które mają więcej komputerów niż adresów w przyznanej im już przestrzeni adresowej lub przestrzeni, o którą mogą się starać. Przykładem podawanym przez zwolenników prywatnych adresów jest duże lotnisko, na którym monitory wyświetlające informacje o przylotach i odlotach mają przydzielone adresy i są dostępne przez TCP/IP. Jest mało prawdopodobne, by monitory te były dostępne z innych sieci. Innym przykładem jest firma, której przydzielono niewielką przestrzeń adresów, mająca dużą liczbę komputerów w sieci laboratoryjnej lub produkcyjnej. Komputery te powinny mieć dostęp do wspólnych zasobów korporacji, ale wyjście z nich do sieci zewnętrznych nie jest konieczne, a może być nawet niewskazane. W takim przypadku prywatne adresy pozwalają zachować ograniczoną publiczną pulę adresową firmy.

Adresy przeznaczone do prywatnego użytku wymienione zostały w tabeli 3. Adresy te nie są unikalne w całej sieci Internet, lecz tylko wewnątrz sieci przedsiębiorstwa, które je stosuje. Hosty mające prywatne adresy są w stanie komunikować się ze wszystkimi innymi hostami o adresach prywatnych, działającymi w przedsiębiorstwie, jak również z hostami pracującymi w sieci tego przedsiębiorstwa, które mają adresy publiczne. Hosty te nie mogą jednak komunikować się z hostami pracującymi w sieci innego przedsiębiorstwa. Także hosty z adresami publicznymi mogą komunikować się ze wszystkimi hostami o adresach publicznych, niezależnie od tego, czy pracują one w sieci tego samego, czy innego przedsiębiorstwa, a także z hostami o adresach prywatnych z sieci przedsiębiorstwa. Nie mogą jednak komunikować się z hostami o prywatnych adresach pracującymi w sieci innego przedsiębiorstwa.

Tabela 3. Adresy zarezerwowane jako prywatna przestrzeń adresowa

Początek

Koniec

Zapis bezklasowy

10.0.0.0 172.16.0.0 192.168.0.0

10.255.255.255 172.31.255.255 192.168.255.255

10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

Na rysunku 6 pokazano trzy połączone ze sobą przedsiębiorstwa. Przedsiębiorstwa A i B zastosowały adresy z prywatnej przestrzeni adresowej dla niektórych hostów i adresy publiczne dla innych hostów. Przedsiębiorstwo C postanowiło używać tylko adresów publicznych. Hosty adresowane z puli prywatnej w sieci przedsiębiorstwa A, takie jak A3, mogą komunikować się z hostami wewnątrz przedsiębiorstwa A, ale nie mogą komunikować się z żadnym hostem poza siecią A, niezależnie od tego, jak zaadresowane są pracujące tam komputery. Także hosty adresowane z puli prywatnej w sieci przedsiębiorstwa B, takie jak B2, mogą komunikować się z hostami wewnątrz przedsiębiorstwa B, niezależnie od tego, czy mają one adresy publiczne, jak Bl, czy też prywatne, jak B3, ale nie mogą komunikować się z żadnym hostem poza siecią A. Natomiast hosty pracujące w sieci przedsiębiorstwa C, które mają publiczne adresy, mogą komunikować się ze wszystkimi hostami o publicznych adresach pracującymi w trzech przedsiębiorstwach, ale nie mogą komunikować się z adresowanymi z puli prywatnej hostami w przedsiębiorstwie A oraz B.

Jeśli chcesz dowiedzieć się więcej na temat zasad stosowania adresów prywatnych zapoznaj się z dokumentem RFC 1918. Wskazówki, jak je zdobyć, znajdują się w dodatku B.

Adresy prywatne należy stosować bardzo ostrożnie. Użycie tego typu adresów ma pewne zalety, np. przestrzeń adresowa znacznie większa niż przestrzeń, jaką przedsiębiorstwo może uzyskać w postaci puli adresów publicznych, oraz większy stopień bezpieczeństwa sieci, w której stosowane są takie adresy. Hosty z adresami prywatnymi nie są całkowicie odporne na atak z sieci, ale przynajmniej znacznie trudniej je zlokalizować i zaatakować spoza sieci przedsiębiorstwa. Stosowanie tego typu adresów nie jest wolne od wad. Podstawową wadą jest konieczność zmiany adresu hosta, gdy chcemy, by z prywatnego stał się on hostem pracującym w sieci o adresach publicznych. Ponadto należy przedsięwziąć pewne środki ostrożności, by informacje o strukturze prywatnych adresów sieci nie wyciekały na zewnątrz. Kolejną wadą jest konieczność konfigurowania grup hostów pracujących w innej klasie, które będą mogły komunikować się z hostami pracującymi w sieci Internet. Problemów tych można częściowo uniknąć przez zastosowanie serwerów proxy lub funkcji translatora adresów (Network Address Translator - NAT), ale należy pamiętać, że rozwiązania te komplikują konfigurację sieci. Mogą tam powstawać błędy konfiguracyjne wpływające na pracę sieci.

Ten ostatni powód doprowadził wielu użytkowników Internetu do wniosku, że nie należy stosować adresów prywatnych. Preferują oni raczej rozwiązanie, które doprowadzi do zlikwidowania problemu wyczerpujących się adresów IP. Choć takie podejście można uznać za właściwe jako rozwiązanie docelowe, to na razie nie ma żadnych rozwiązań, które pomogłyby przedsiębiorstwom rozwiązać problemy z adresacją swoich hostów. Wierzę, że przy właściwym podejściu i zrozumieniu problemu możliwe jest stosowanie prywatnych przestrzeni adresowych zarówno w sieciach przedsiębiorstw, które są dołączone do Internetu, jak i tych, które raczej się do niego nie dołączą.

W kursie tym we wszystkich przykładach używane będą adresy prywatne. U podstaw tej decyzji leży wiele powodów. Nie chcę dostawać pocztą elektroniczną listów od zagniewanych użytkowników, którzy stosują podane w kursie adresy. Przede wszystkim jednak chciałem mieć pewność, że nie będziesz mógł po prostu skopiować podanych w kursie przykłady do plików konfiguracyjnych swojego rutera. W przeciwieństwie do przykładów umieszczanych w innych książkach 0'Reilly, przykłady konfiguracji rutera muszą być zaadaptowane do potrzeb Twojego miejsca; nie można ich po prostu skopiować.


« poprzedni punkt  następny punkt »