route
é um comando que exibe, adiciona e exclui entradas da tabela de roteamento TCP / IP do kernel (também conhecida como "Base de Informações de Encaminhamento").
iptables
é um comando que exibe, adiciona e exclui entradas do Netfilter, o subsistema de filtragem e manipulação de pacotes do kernel do Linux. Ele lida com NAT.
Como o encaminhamento de IP, ou seja, roteamento, é basicamente reescrevendo um pacote com um endereço de origem diferente e enviando-o de uma interface de rede diferente, acredito que você poderia tecnicamente fazer o roteamento estático com as regras iptables
adequadas no mangle
tabela, mas acredito que geralmente é mais rápido deixar a parte de roteamento do kernel fazer isso.
Existem muitos diagramas que ilustram exatamente como um pacote TCP / IP atravessa o kernel (incluindo o Netfilter e o recurso de roteamento) - um exemplo é este: