Skalowanie adresów IP
Adresy prywatne
W dokumencie RFC 1918 rozróżniono następujące trzy bloki prywatnych adresów IP:
1 adres klasy A,
16 adresów klasy B,
256 adresów klasy C
Wprowadzenie do mechanizmów NAT i PAT
Technologia NAT umożliwia ograniczenie liczby publicznych adresów IP i wykorzystanie prywatnych adresów IP w sieciach wewnętrznych. Te prywatne, wewnętrzne adresy są poddawane translacji na adresy publiczne, które mogą być routowane. Operacja ta wykonywana jest przez znajdujące się między sieciami urządzenia, na których działa wyspecjalizowane oprogramowanie obsługujące funkcję NAT, pozwalające na zwiększenie poziomu prywatności w sieci przez ukrycie wewnętrznych adresów IP. Urządzenie realizujące translację NAT zazwyczaj działa na granicy sieci stub. Sieć stub to sieć, która ma pojedyncze połączenie z sąsiednią siecią.
Gdy host w sieci stub chce przesłać dane do hosta znajdującego się na zewnątrz, przekazuje pakiet do routera brzegowego. Router brzegowy realizuje proces NAT, czyli proces translacji prywatnego adresu wewnętrznego hosta na publiczny adres zewnętrzny, który może być routowany.
W terminologii mechanizmu NAT sieć wewnętrzna to zbiór sieci, których adresy poddawane są translacji. Sieć zewnętrzna obejmuje wszystkie pozostałe adresy.
Wewnętrzny adres lokalny - adres IP przypisany do hosta w sieci wewnętrznej. Ten adres IP zazwyczaj nie jest przypisany przez organizację InterNIC (ang. Internet Network Information Center) ani dostawcę usług. Najczęściej jest to adres prywatny zgodny ze standardem RFC 1918.
Wewnętrzny adres globalny - legalny adres IP przypisany przez organizację InterNIC lub dostawcę usług. Adres ten reprezentuje dla sieci zewnętrznych jeden lub więcej wewnętrznych, lokalnych adresów IP.
Zewnętrzny adres lokalny - adres IP zewnętrznego hosta, który znany jest hostom znajdującym się w sieci wewnętrznej.
Zewnętrzny adres globalny - adres IP przypisany do hosta w sieci zewnętrznej. Ten adres przypisany jest przez właściciela hosta.
Główne funkcje mechanizmów NAT i PAT
Statyczna translacja NAT umożliwia utworzenie odwzorowania typu jeden-do-jednego pomiędzy adresami lokalnymi i globalnymi. Jest to szczególnie przydatne w wypadku hostów, które muszą mieć stały adres dostępny z Internetu. Takimi wewnętrznymi hostami mogą być serwery lub urządzenia sieciowe w przedsiębiorstwie.
Dynamiczna translacja NAT służy do odwzorowania prywatnego adresu IP na adres publiczny. Hostowi w sieci jest przypisywany dowolny adres z puli publicznych adresów IP. Natomiast technika przeciążenia, lub inaczej translacji PAT (ang. Port Address Translation), służy do odwzorowania wielu prywatnych adresów IP na jeden publiczny adres IP. Istnieje możliwość odwzorowania wielu adresów na jeden adres IP, ponieważ z każdym adresem prywatnym związany jest inny numer portu.
W technologii PAT tłumaczone adresy są rozróżniane przy użyciu unikatowych numerów portów źródłowych powiązanych z globalnym adresem IP.
Numer portu zakodowany jest na 16 bitach. Całkowita liczba adresów wewnętrznych, które mogą być przetłumaczone na jeden adres zewnętrzny, może teoretycznie wynosić nawet 65 536. W rzeczywistości do jednego adresu IP może zostać przypisanych około 4000 portów.
Zastosowanie technologii NAT zapewnia następujące korzyści:
Eliminacja konieczności ponownego przypisania adresów IP do każdego hosta po zmianie dostawcy usług internetowych (ISP). Użycie mechanizmu NAT pozwala na uniknięcie zmiany adresów wszystkich hostów, dla których wymagany jest dostęp zewnętrzny, a to wiąże się z oszczędnościami czasowymi i finansowymi.
Zmniejszenie liczby adresów przy użyciu dostępnej w aplikacji funkcji multipleksowania na poziomie portów. Gdy wykorzystywany jest mechanizm PAT, hosty wewnętrzne mogą współużytkować pojedynczy publiczny adres IP podczas realizacji wszystkich operacji wymagających komunikacji zewnętrznej. W takiej konfiguracji do obsługi wielu hostów wewnętrznych wymagana jest bardzo niewielka liczba adresów zewnętrznych. Pozwala to zaoszczędzić adresy IP.
Zwiększenie poziomu bezpieczeństwa w sieci. Ponieważ w wypadku sieci prywatnej nie są rozgłaszane wewnętrzne adresy ani informacje o wewnętrznej topologii, sieć taka pozostaje wystarczająco zabezpieczona, gdy dostęp zewnętrzny odbywa się z wykorzystaniem translacji NAT.
Weryfikowanie konfiguracji mechanizmu PAT
Po skonfigurowaniu usługi NAT należy użyć poleceń clear i show , aby sprawdzić, czy mechanizm ten działa poprawnie.
Domyślnie dynamicznie przetłumaczony adres zostanie usunięty z tablicy translacji NAT po pewnym czasie nieużywania. Gdy nie jest skonfigurowany mechanizm translacji portów, przekroczenie limitu czasu dla wpisów dotyczących translacji następuje po 24 godzinach, o ile ustawienia liczników czasu nie zostały zmodyfikowane przy użyciu polecenia ip nat translation timeout liczba_sekund w trybie konfiguracji globalnej. Należy usunąć odpowiednie wpisy zanim nastąpi przekroczenie limitu czasu, używając jednego z poleceń przedstawionych na rysunku
Informacje o translacji mogą zostać wyświetlone przy użyciu jednego z poleceń trybu EXEC
Można również użyć polecenia show run i wyszukać polecenia mechanizmu NAT, listy dostępowej, interfejsu lub puli z wymaganymi wartościami.
Wady i zalety mechanizmu NAT
Z wykorzystaniem mechanizmu NAT wiąże się szereg korzyści, takich jak:
Zachowanie przyjętego schematu adresowania dzięki możliwości stosowania adresów prywatnych w sieciach intranet.
Zwiększenie elastyczności połączeń z siecią publiczną. W celu zapewnienia niezawodnych połączeń z siecią publiczną istnieje możliwość zaimplementowania wielu pul połączeń, zapasowych pul połączeń i pul równoważących obciążenie.
Zapewnienie spójności schematu adresowania sieci wewnętrznej. Zmiana publicznych adresów IP w sieci, w której nie są używane prywatne adresy IP ani translacja NAT, wymaga zmodyfikowania numerów wszystkich hostów w istniejącej sieci. Koszty modyfikacji numerów hostów mogą być znaczące. Użycie funkcji NAT pozwala na zachowanie istniejącego schematu i obsłużenie nowego publicznego schematu adresowania.
Istnieją także niekorzystne efekty użycia translacji NAT. Włączenie translacji adresów powoduje utratę funkcjonalności, szczególnie w przypadku protokołów lub aplikacji wykorzystujących wysyłanie informacji o adresie IP w treści zasadniczej pakietu IP. Wymaga to dodatkowej obsługi na urządzeniu realizującym translację NAT.
Użycie translacji NAT wydłuża opóźnienia. Opóźnienia występujące podczas przełączania ścieżek są spowodowane operacjami translacji wszystkich adresów IP w nagłówkach pakietów. Pierwszy pakiet będzie zawsze przesyłany wolną ścieżką. Oznacza to, że dla pierwszego pakietu używane jest przełączanie procesowe. Pozostałe pakiety będą przesyłane ścieżką z szybkim przełączaniem, o ile istnieje odpowiedni wpis w pamięci podręcznej.
Spadek wydajności może stanowić poważny problem, ponieważ translacja NAT jest obecnie realizowana przy użyciu przełączania procesowego. Procesor musi zbadać każdy pakiet, aby stwierdzić, czy podlega on translacji. Procesor musi też zmodyfikować nagłówek IP, ewentualnie również nagłówek TCP lub UDP.
Jedną z istotnych wad wdrażania i stosowania usługi NAT jest utrata możliwości śledzenia pakietów IP na całej ścieżce transportowej (end-to-end). Śledzenie pakietów jest znacznie utrudnione, ponieważ w kolejnych przeskokach z translacją NAT adres w pakiecie wielokrotnie się zmienia. Hakerzy nie mogą łatwo określić źródła pakietu, ponieważ utrudnione jest uzyskanie adresu źródłowego i docelowego.
Użycie translacji NAT wymusza także wyłączenie niektórych aplikacji wykorzystujących adresowanie IP, ponieważ ukryte są źródłowe i docelowe adresy IP. Aplikacje wykorzystujące adresy fizyczne zamiast kwalifikowanych nazw domen nie będą mogły określić adresu docelowego, ponieważ jest on poddawany translacji na routerze z obsługą NAT. Czasami istnieje możliwość uniknięcia tego problemu przez zaimplementowanie statycznych odwzorowań NAT.
Mechanizm NAT w systemie IOS firmy Cisco obsługuje następujące typy ruchu w sieci:
ICMP
protokół FTP (ang. File Transfer Protocol), łącznie z poleceniami PORT i PASV
usługi związane z przesyłaniem danych NetBIOS przez sieci TCP/IP, obsługą datagramów, nazw i sesji
usługa RealAudio firmy RealNetworks
usługa CUSeeMe firmy White Pines
StreamWorks firmy Xing Technologies
zapytania DNS typu „A" i „PTR"
H.323/Microsoft NetMeeting, IOS wersja 12.0(1)/12.0(1)T lub nowsza
VDOLive firmy VDOnet, IOS wersja 11.3(4)11.3(4)T lub nowsza
Web Theater firmy VXtreme, IOS wersja 11.3(4)11.3(4)T lub nowsza
IP Multicast, IOS wersja 12.0(1)T tylko z translacją adresu źródłowego
Mechanizm NAT w systemie IOS firmy Cisco nie obsługuje następujących typów ruchu w sieci:
aktualizacje tablic routingu
przenoszenie stref DNS
BOOTP
protokoły talk i ntalk
protokół SNMP (ang. Simple Network Management Protocol)