Koliko imate racunara u toj privatnoj mrezi? 10? 100? 200?
Verovatno ti je ovo sto cu ti reci vec poznato, ali ponavljanje nikada nije naodmet:
NAT ima teorijski i praktican limit.
Najpre par reci o ovom prvom, teorijskom.
Za svaku TCP sesiju koju web browser na racunaru 1.1.1.1 uspostavi sa udaljenim web serverom na adresi 2.2.2.2, na strani klijenta se alocira port, najcesce iz opsega 1025-65534 (npr. 49151), sto daje TCP sesiju: (1.1.1.1, 49151) <=> (2.2.2.2, 80). U opstem slucaju, web browser obicno uspostavi vise paralelnih HTTP sesija, po kojima skida razlicite elemente web stranica (slike, tekstove, menije ...), pa kad otkucas "netstat -an" dobijes:
TCP 192.0.2.56:52467 91.222.6.99:80 ESTABLISHED
TCP 192.0.2.56:52468 91.222.6.66:80 ESTABLISHED
TCP 192.0.2.56:52469 91.222.6.66:80 ESTABLISHED
...
U idealnom slucaju, kada se NAT ne koisti (tj. svaki racunar u mrezi ima svoju jedinstvenu javnu IP adresu), svaki od njih raspolaze opsegom portova 1025-65534, sto priblizno daje 64500 TCP portova.
Kada se koristi NAT N:1 (N privatnih => 1 javna adresa), N privatnih adresa se na ruteru prevodi u jednu javnu. Samim tim, opseg od 64500 portova se deli na N masina, pa svakoj masini na privatnoj mrezi moze da se garantuje najvise 64500/N portova. Kada se NAT tabela
U opstem slucaju, kada se koristi NAT N:P (N privatnih => P javnih adresa), ukupan broj portova kojima se raspolaze je 64500*P koji se deli na N masina, pa svakoj masini sleduje: 64500*P/N.
Primera radi, ako u mrezi imas 200 racunara i koristis NAT 200:1 svaki od njih moze da otvori najvise 322 porta. U mrezi sa 1000 racunara (NAT 1000:1) svakome sleduje svega 64 porta. Ako imas 1000 racunara i za NAT pool rezervises /29, odnosno 8 adresa (NAT 1000:8) vec si drasticno popravio stvar - svakom racunaru moze da se garantuje 512 portova.
Koliko ti je portova po klijentu potrebno zavisi od aplikacija koje se koriste. Ako aplikacije pristupaju jednostavnim sajtovima koji nemaju puno web elemenata broj TCP sesija ce retko preci 100-200. Ali ako ljudi koriste RS Downloader, koji otvara enorman broj paralelnih HTTP sesija, racunaj na 500-1000 portova po klijentu. Za 200 racunara u mrezi ce ti u tom slucaju biti idealan opseg od 4-8 javnih adresa.
Ali to je samo lepa teorija.
Svaki ruter ima i svoj prakticni limit NAT tabele, koji zavisi od arhitekture, kolicine memorije itd. i taj limit je jos manji. I sto je najgore, taj limit ne mozes da resis povecanjem broja javnih adresa.