En fait, le routage en soi ne nécessite pas beaucoup de puissance. Passer des paquets d'une interface à une autre avec une table de routage ridiculement petite, ça coûte peanuts au CPU.
Par contre, le NAT, ça c'est tueur. Ouvrir chaque paquet et modifier celui-ci pour convertir IP privée <> IP publique, ça nécessite nettement plus de cycles CPU. Les performances peuvent s'effondrer assez rapidement sur de petits CPU où le %sys s'envole.
Attention, le NAT des NAT-box ne consiste pas seulement à modifier les adresses IP et mettre à jour le CRC; ça c'est ce qu'implique le NAT symétrique qui ne sert pas à économiser les adresses IP, mais à cacher le choix d'adresses privées au reste du monde.
Le NAT de partage d'adresse IP des box implique au minimum d'examiner les numéros de ports, de vérifier si la connexion (protocole, IP-source, IP-dest, port-source, port-dest) existe dans une table, de mettre à jour un timer, de modifier adresse IP et numéro de port, dans le cas le plus simple. Les cas compliqués sont ouvertures ou fermetures de connexions, sans compter le nettoyage régulier de la table et les protocoles particuliers qui donnent lieu à une analyse du contenu.