Dans un routeur, NAT ou pas, il y a toujours une table de routage, et chaque entrée de la table de routage indique à quelle gateway envoyer un paquet en fonction de son adresse source. La table de routage contient généralement (mais c'est pas obligatoire) une route par défaut qui indique la gateway à utiliser si aucune route plus précise n'est trouvée dans la table.
Bon, exemple:
PC (192.168.2.2) <-> (192.168.2.1) UDM (192.168.1.2) <-> (192.168.1.1) Freebox (IPv4WAN).
1) PC initie une connexion TCP vers l'extérieur. Adresse source 192.168.2.2.
2) PC envoie le paquet à sa route par défaut (192.168.2.1)
3) UDM reçoit le paquet et le route (sans NAT: adresse source inchangée) vers sa route par défaut (192.168.1.1)
4) Freebox reçoit le paquet et le NAT => l'adresse source devient IPv4WAN.
5) Freebox reçoit la réponse. Adresse destination IPv4WAN.
6) Freebox regarde sa "table NAT" et change l'adresse destination => 192.168.2.2
7) Freebox regarde sa table de routage pour 192.168.2.2: Si pas de route statique, le paquet repart par la route par défaut, soit IPv4WAN.
Le routage, contrairement au NAT, se fait sans état, la box ne se souvient pas d'où vient un paquet pour pouvoir faire parvenir la réponse. Pour que ça fonctionne, il faut donc une route statique dans la box indiquant que pour joindre 192.168.2.0/24 il faut envoyer le paquet à 192.168.1.2.
Ensuite coté box pour le NAT, il y a 2 manières de faire, au choix du développeur:
1) "si un paquet arrive sur mon interface LAN et que la table de routage m'indique que je dois l'envoyer sur le WAN, alors je NATTE"
2) "si un paquet arrive avec une adresse source 192.168.1.0/24 et que la table de routage m'indique que je dois l'envoyer sur le WAN, alors je NATTE"
Si les développeurs ont choisi la méthode 1, alors avec une route statique pour le paquet retour ça va marcher. Par contre s'ils ont choisi la méthode 2, même avec une route statique ça ne marchera pas puisque le paquet sortira non natté (avec une adresse source privée donc), et aucune réponse ne reviendra.