Kiedy mówimy o NAT to musimy wiedzieć, że translacje mogą być dokonywane statycznie (dokonywane ręcznie) lub dynamicznie. W pierwszym przypadku przydział adresu NAT-IP dla oryginalnego adresu IP jest jednoznaczny w drugim nie jest. W statycznym NAT pewien stały źródłowy adres IP jest zawsze translowany do tego samego adresu NAT-IP i żaden inny adres IP nie będzie translowany do tego samego adresu NAT-IP. Natomiast w przypadku translacji dynamicznej NAT, adres NAT-IP jest zależny od różnorodnych warunków działania i może być kompletnie inny dla każdej pojedynczej sesji.
Maski podsieci
Wszystkie adresy IP składają się z numeru sieci oraz numeru hosta w tej sieci. Jednakże granica pomiędzy numerem sieci a numerem hosta przebiega różnie w każdej z sieci. Aby można było w łatwy sposób określić gdzie ta granica leży, każdy z adresów ma dołączoną informacje w postaci maski podsieci. Jest to liczba podobnie jak adres IP 32 bitowa, gdzie wszystkie bity określające sieciową część adresu ustawione są na 1 a bity określające część adresu będącą numerem hosta ustawione są na 0.
Na przykład:
11111111 11111111 00000000 00000000
Oznacza to, że pierwsze 16 bitów adresu IP, z którym skojarzona jest ta maska reprezentuje adres sieci, natomiast pozostałe 16 bitów określa adres hosta w tej sieci.
Podobnie jak adres IP, maska sieciowa jest tradycyjnie reprezentowana przy użyciu zapisu kropkowo-dziesietnego lub szesnastkowego. A zatem maska może być zapisana jako: 255.255.254.0 lub jako 0xfffffe00.
W związku z tym, że obecnie maskę sieci zapisuje się jako nieprzerywalny ciąg bitów 1, możliwe jest posługiwanie się pojęciem maski 24 bitowej. Określenie to oznacza, że mamy do czynienia z maską gdzie wszystkie pierwsze 24 bity ustawione są na 1 a następne 8 na 0. Pozwala to adres 192.168.0.1 z maska 255.255.255.0 zapisać w postaci: 192.168.0.1/24 co nazywane jest zapisem w postaci adres/maska.
Podsieci i supersieci
W miarę jak protokół IP stawał się protokołem coraz częściej używanym przez administratorów sieci, zaczęto dochodzić do wniosku, że ustanowione na początku klasy sieci często nie odpowiadały na rzeczywiste potrzeby związane z zapotrzebowaniem na adresy IP. Często było tak, że marnowało się dużo adresów tylko dlatego, że każda z klas miała ściśle określoną rozpiętość adresową.
Np. Administrator potrzebując zaadresować 1200 hostów musi posłużyć się siecią z klasy B gdzie maksymalnie można zaadresować 65000 hostów, więc jest marnowana bardzo duża ilość adresów, tak szybko się wyczerpujących.
W związku z tym opracowano rozwiązanie podziału sieci na podsieci, gdzie po raz pierwszy tak naprawdę w pełni wykorzystano maski sieciowe.
Twórcy protokołu IP doszli do wniosku, że można wykorzystać bity w adresie IP opisujące numer hosta na podział sieci na mniejsze podsieci, tak, aby jak najefektywniej wykorzystać durze sieci z klasy A, B lub C.
Na przykład sieć z klasy A 10.0.0.0 jest opisana 8 pierwszymi bitami a następne 24 bity tworzą numer hosta. Można, więc podzielić tę sieć na mniejsze podsieci wykorzystując dodatkowe 8 bitów z części adresu opisującej numer hosta, które z adresu zostaną przypisane do adresu sieci. W ten sposób można stworzyć 256 podsieci, a w każdej z nich zaadresować 6500 hostów. Możliwe jest również wykorzystanie 16 bitów z numeru hosta dla określenia adresów podsieci, co zwiększa liczbę podsieci do 65000, a liczbę hostów w każdej z nich do 256.
Maska podsieci ma zawsze przynajmniej tyle bitów 1, ile jest ich w naturalnej masce dla danej klasy sieci. Oznacza to, że podsieć jest zawsze mniejsza od sieci, bez względu na to, z jakiej klasy ta sieć pochodzi. Kilka lat temu jak zaczęły się problemy z wyczerpywaniem się adresów IP zwrócono uwagę na fakt, że nie ma powodu, aby tak sztywno traktować maski sieciowe jak do tej pory. Dlaczego nie przydzielać sieci z maskami większymi niż naturalne dla klasy C i nie stworzyć bloków kilku sieci C traktowanych jako jedna sieć.
Takie rozwiązania są podstawą bezklasowego rutowania pomiędzy domenami (Classless Interdomain Routing – CIDR), które tworzy stosowaną obecnie w sieci architekturę bezklasową.