É certamente possível fazer isso, e atualmente é possível fazer isso com os módulos do kernel existentes:
LAN - > (nic módulo) - > (módulo dot1q) - > (módulo ponte) - > (módulo dot1q) - > (nic módulo) - > WAN
Ou:
eth0 - > eth0.10 - > br0 - > eth1.20 - > eth1
(pega qualquer coisa marcada como vlan 10 off eth0, re-identifica como vlan 20 e envia eth1, e vice-versa. Controle de acesso adicional pode ser feito usando ebtables.)
Se você não precisar alterar as tags, simplifique para:
eth0 - > br0 - > eth1
E aplique ebtables para br0.
Dito isso, se o seu aplicativo puder fazer a peça "eth0.10 - > br0 - > eth1.20" internamente, embora não exija que os dispositivos de toque façam isso, pois você pode ler quadros de uma interface, filtrar e escrever para o outro.