Uma boa pergunta.
Primeiro: por que você não consegue acessar a Internet quando está na VPN? As VPNs são feitas para permitir o acesso remoto a máquinas locais, como se a máquina remota pertencesse à LAN, e para permitir a navegação WAN novamente como se a máquina remota pertencesse à LAN, ie com o IP (público) da LAN. Você está claramente aproveitando o primeiro recurso, não o segundo. Talvez você deva contatar o administrador local da máquina que está acessando via VPN para esclarecer por que ele / ela não está concedendo a você o direito de navegar na WAN através da VPN.
Segundo. Estritamente falando, não, não há soluções mais leves para este problema. A razão é que as soluções mais leves criadas até agora (containers Linux e namespaces de rede) existem no kernel do Linux, e não no Mac (ou qualquer outro kernel UNIX, pelo que eu saiba).
Os contêineres do Linux (ou uma variante dele, Docker ) foram portados para o MAC, mas, infelizmente, eles são baseados em uma máquina VM Linux subjacente em execução no MAC , de novo. Você pode encontrar mais informações aqui e experimentá-lo, se quiser. Mas não tenho certeza de quanta simplificação isso implicaria para você, já que no final você sempre tem uma VM executando suas conexões. Provavelmente, a simplificação ocorreria se você tivesse várias conexões simultâneas distintas, porque então uma única VM Linux poderia lidar com todas elas. Mas, para uma única conexão extra, não consigo ver uma grande melhoria.
Em terceiro lugar, a coisa real que está faltando no kernel Darwin, no entanto, ainda mais do que essas soluções de virtualização, é o roteamento de política (às vezes também chamado de roteamento de origem ) ie a possibilidade de ter duas tabelas de roteamento simultâneas. Com um pequeno número de interfaces virtuais (que foram portadas para Darwin), isso significaria resolver seu problema levemente. Até então, não há dados.