Как работает NAT и правда ли что он такой непробивной?
Представьте себе компьютер в виде многоквартирного дома, где каждый сервис - квартира. У дома есть адрес (белый IP) и номера квартир (порты). Прислать письмо в такой дом очень просто, достаточно указать адрес и квартиру.
Теперь возьмём микрорайон, огородим его стеной с КПП, сделаем в нём внутренние (серые) адреса домов, неизвестные снаружи и оставим известным (белым) только адрес самого микрорайона. Очевидно, что адреса микрорайона и номера квартиры недостаточно для того, чтобы письмо попало по адресу. Есть вариант, когда все письма отправляются в один конкретный дом (DMZ), есть переадресация (port mapping), когда письмо, пришедшее в микрорайон с указанием определённой квартиры переадресуется с КПП в заранее определённый дом/квартиру.
Если же мы пишем письмо из микрорайона наружу, то на КПП (NAT) запоминают адрес/квартиру отправителя и получателя и все приходящие в микрорайон письма с адреса получателя переправляют отправителю исходного письма.
Клиент отправляет серверу запрос через роутер (nat же)
Роутер видит адрес источника и назначения, и подменяет адрес источника (который за nat, серый) на свой собственный (белый)
Сервер отправляет ответ на адрес роутера, т.к. запрос был от него. роутер опять подменяет адрес назначения со своего обратно на серый и шлет пк