Dynamic NAT differs slightly from static. The essence of it is that several external IP addresses are given by the provider, after which the router itself distributes the addresses according to the need. While static NAT is a constant mapping between inside local and global addresses, dynamic network address translation allows you to automatically map inside local and global addresses (which are usually public IP addresses). Dynamic NAT uses a group or pool of public IPv4 addresses for translation.
As soon as a server or computer wants to go online, the router looks at its list of external addresses issued by the provider, and assign one address from this list, while recording that it has issued such an external address to a server or computer. The life of such a record lasts a very short time, and as soon as the server/computer ceases to require access to the Internet, the address is removed from the router's NAT table.
If the number of local hosts does not exceed the number of public addresses available, each local address will be guaranteed a matching public address. Otherwise, the number of hosts that can simultaneously access external networks will be limited by the number of public addresses. In other words, it would be good for the number of internal addresses to be slightly more than the number of addresses in the pool.
After all, as soon as the router runs out of addresses in the list, it will not be able to start up new computers or servers on the Internet until at least one external address is released. Dynamic NAT uses a pool of public addresses and assigns them according to the "first come, first served" principle.