- How much does this link last? It is allocated for a single petition or it is allocated for an stream of datagrams?
For a stateful protocol such as TCP, the NAT router can see when the connection is established and when it's closed. To avoid zombified connections the router uses an additional timeout (e.g. TCP aging) to clean up old entries that presumably(!) aren't used any more. Usually, this is between 5 and 60 minutes.
For a stateless protocol such as UDP, the router just relies on its internal timeout (UDP aging). This is usually between 30 seconds and a few minutes. Note that the NAT router can't really know when the connection isn't used any more - premature closing of the connection causes loss of data from the outside.
As @jonathanjo has aptly pointed out, the necessity of aging and eventually deleting a connection is one of the many problems of NAT. In principle, a packet router is supposed to be a stateless device, ie. it matches each ingress packet to its routing table and forwards according to the result - nothing more. NAT requires a router to store, process and clean up considerable amounts of stateful data.
- The link between a port and an interface is done at the Data Link level by MAC address or at Network Level by IP address?
You're mixing different layers. A port can mean an interface at the physical layer or a host's subaddress on many transport layer protocols (such as TCP and UDP). A link is established between two physical ports. Transport layer protocols may establish a socket connection.
The whole point is essentially one of multiplexing: a physical port can theoretically transport data for millions of different logical connections in a single second. A transport layer source-destination port pair only stands for a single, logical connection between two applications (e.g. a web browser requests an HTML page from a web server).
after edit
- The link between a IP:port of router and an IP:port of host is done at the Data Link level by MAC address or at Network Level by IP address? If it is done at Network Level how does the router prevent answering to another interface in case that the original interface changes its IP in the middle of the conversation?
A NAT (or rather NAPT) router holds a translation table, most basically inside IP:TCP/UDP port ~ outside IP:TCP/UDP port pairs. Translation is done entirely on the network (IP) and the transport layer (TCP, UDP, ...). Ethernet's MAC addresses are completely unrelated.
If it is done at Network Level how does the router prevent answering to another interface in case that the original interface changes its IP in the middle of the conversation?
Actually, it doesn't matter which interface is used to transmit traffic to/from a certain IP address. However, once a logical connection is established, neither IP address can change.
- In the case of a very big private network with more hosts than ports avaliable, how does the router handle the overflow?
Large private networks usually don't only use a single public IP address to handle NAT but a pool. Also, ports are dynamically allocated as needed, not statically per host. Additionally, a connection consists of source IP, source port, destination IP, and destination port. A NAT router could therefore use the same source port for different destinations.