Подтвердите пожалуйста, если это работает так.
Совсем не так. Постараюсь попроще. Для понимания работы через NAT вам нужно сложить три факта:
1. В рамках клиентской сети провайдера нет проблем с тем, что адреса у клиентов серые. Потому что провайдер сам назначает эти серые адреса (автоматически) и понимает кто есть кто, и где находится каждый клиент.
2. Провайдер
помнит, что такой-то клиент установил соединение с таким-то сервером, с такого-то порта на такой-то порт. Грубо говоря, помнит до тех пор, пока соединение не будет разорвано.
3. Ответ сервера идёт не на ваш серый адрес, а
на белый адрес самого провайдера.