Para a primeira parte, para conectar duas redes ao mesmo tempo, eu configuraria rotas estáticas. Supondo que as redes estejam em sub-redes diferentes, você está basicamente informando ao sistema: "Se você precisar se conectar a uma máquina com um endereço 192.168.2.X, use eth0. Se você precisar se conectar a uma máquina com um endereço de 192.168.3.X, use eth1. E aqui está o gateway que você deve usar. "
Então, em / etc / network / interfaces, adicione essas linhas (com suas próprias informações de rede, é claro):
auto eth0
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1
auto eth1
iface eth1 inet static
address 192.168.3.2
netmask 255.255.255.0
up route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.1
No que diz respeito à lógica necessária para o sistema identificar e manipular uma mensagem de uma determinada maneira, acredito que isso dependeria de certos softwares que você está usando para processar as mensagens.