Ao definir NameSpaces no linux você pode conseguir isso, você pode ter diferentes processos para ter redes ou roteamentos diferentes.
Por exemplo
Para criar um novo namespace chamado test:
ip netns add test
Para atribuir uma interface de rede (ou interface de túnel):
ip link set tun0 netns test
A network interface can just be active in one namespace at a time.
Para executar um programa nesse namespace, você pode fazer isso:% ip netns exec test <command to run against that namespace>
mais informações sobre o ip net-ns
mais informações sobre namespace