Eu tenho algum problema com um concentrador OpenVPN ao usar o dispositivo TUN. O cenário é esse:
OpenVPN Server
VPN Subnet: 10.10.10.1/24
PC1 OpenVPN Client
VPN IP: 10.10.10.50
PC Local subnet/IP: 192.168.20.100
PC2 OpenVPN Client
VPN IP: 10.10.10.60
PC Local subnet/IP: 192.168.30.100
RemoteSite1
VPN IP: 10.10.10.70
Local Subnet: 192.168.80.0/24
RemoteSite2
VPN IP: 10.10.10.80
Local Subnet: 192.168.80.0/24
O PC1 se conecta ao RemoteSite1 e o PC2 se conecta ao RemoteSite2, mas ao usar o irout, um dos PCs chega ao site remoto errado. Esta configuração funciona perfeitamente ao usar o dispositivo TAP. Para evitar conflitos de rede no servidor OpenVPN, não há regra de roteamento para os sites remotos, há uma tabela de roteamento de pesquisa específica para cada PC, assim:
root@openvpn~ # ip rule sh
0: from all lookup local
1: from 10.10.10.50 lookup 1024
1: from 10.10.10.60 lookup 1034
10: from all to 10.10.10.0/24 lookup main
E abaixo de cada tabela: root@openvpn~ # ip route show table 1024 192.168.80.0/24 via 10.10.10.70 dev tap0
root@openvpn~ # ip route show table 1034
192.168.80.0/24 via 10.10.10.80 dev tap0
Como posso arquivar a mesma configuração, mas com TUN e irout?
Eu não acho que você pode fazer isso.
O TUN é roteado (camada 3 do OSI) e não é possível ter duas rotas idênticas para uma única sub-rede dessa maneira (você precisaria de pelo menos algum tipo de diferença na métrica). O TAP opera na camada 2 do OSI, onde as pesquisas de MAC são possíveis, que é como sua configuração está funcionando (quando funciona).
Para que o TUN funcione nessa situação, sua melhor aposta pode ser dividir seu /24 em duas redes /25 e atribuir um lado a cada local.