В чем принципиальное различие NAT и PROXY?
Сосед попросил вас позвонить в газовую службу. Вы - прокси для соседа.
Несколько соседей попросили позвонить вас в газовую службу. Вы позвонили по первой просьбе, а на другие ответили, что уже звонили. Вы - кеширующая прокси для соседей.
Сосед взял ваш телефон и позвонил в газовую службу с вашего номера. Вы - NAT для соседа.
чутка дополню @vvpoloskin
NAT это когда сидишь во дворе, чувствуешь запах газа и кричишь "позвоните в службу газа". кто-то из соседей звонит, от газовщиков естественно идет набор вопросов по ситуации, которые тебе сосед озвучивает в окно а и твои ответы пересказывает в трубку :)
комп в локальной сети имеет адрес 192.168.1.100. он локальный и не имеет право хождения сети интернет.
ты хочешь зайти на страничку яндекса. браузер на основе твоих желаний формирует пакет запроса данных (по идее http-канал, но опустим подробности) с твоего 192.168.1.100 на ip-адрес сервера яндекса и посылает в сеть.
роутер, находящийся на границе локальной сети и интернета отлавливает пакет, получатель которого находится в интернете и пересылает его из локалки в интернет.
но т.к. адрес источника пакета 192.168.1.100 не имеет права быть в интернете,  он подменяется на интернет-адрес роутера, это и есть source NAT (один из вариантов Network Address Translation - преобразование сетевых адресов) - подмена адреса отправителя.
а также создается временное правило для того чтобы ответные пакеты от яндекса были пересланы к тебе (так-то сервера яндекса полностью уверены что общаются с интернет-адресом роутера и посылают пакеты данных на этот ip). это уже будет destination NAT - подмена адреса получателя.
много чего опущено и не описано, но суть попытался донести попрощеее.