Sim, tenho um problema idêntico e exatamente pelo mesmo motivo, lol. Seria muito mais fácil usar dois roteadores, mas, infelizmente, aqui vamos nós.
-
Crie uma interface virtual do tipo macvlan no eth0, o gateway para a Internet do seu roteador.
-
Configure sua configuração de cliente OpenVPN para usar a opção route-noexec no arquivo client.conf. De acordo com o manual ,
--route-noexec Don't add or remove routes automatically. Instead pass routes to --route-up script using environmental variables.
-
Configure uma tabela para o roteamento, que você configurará exatamente como o OpenVPN a configuraria, exceto que você usa a interface macvlan em vez da eth0.
-
Configure a tabela de roteamento padrão como você faria se não houvesse OpenVPN.
-
Configure as regras para escolher a tabela de roteamento para que alguns PCs com IPs fixos usem a tabela de roteamento com o OpenVPN, enquanto o pc não especificado usa a tabela de roteamento padrão.
Você terá que usar uma interface virtual macvlan que não é nada além de outro endereço para sua interface WAN, exceto que é dotado de um endereço MAC (falso) para que todo o tráfego, incluindo o ARP, possa ser separado entre eth0 e macvlan.
Você pode encontrar uma boa introdução para macvlans aqui , enquanto em esta postagem no fórum do OpenVPN , que lida com um problema idêntico ao seu, eles sugerem um bom link, here , explicando o roteamento baseado na origem.