Eu tenho uma rede VPN baseada no software OpenVPN. Preciso rotear todo tráfego de rede em rede VPN onde o IP de destino é de país específico via um cliente específico nesta rede VPN (endereço IP do cliente VPN) - roteador Mikrotik onde está configurado o NAT (MASQUERADE) para interface principal da internet (PPPoE). Eu preciso obter um endereço IP público e dinâmico pertencente a esse cliente VPN (roteador Mikrotik - interface PPPoE) para todo esse tráfego. Então no servidor VPN eu criei a regra mangle iptables e eu uso o módulo iptables geoip:
iptables -A PREROUTING -t mangle -i tun0 -m geoip --destination-country COUNTRY_CODE -j MARK --set-mark 1
Por isso, marquei todo o tráfego do cliente que tem o IP de destino desse país específico. Em seguida, tentei usar essa solução : crie uma tabela de rotas específica e adicione a rota padrão. Mas a rota padrão pode ser apenas para o próximo salto nessa rede. Então, quando eu uso este comando:
ip route add default via specific_VPN_client dev tun0 table CountryRoute
Eu recebo este erro:
RTNETLINK answers: Network is unreachable
É possível o tráfego específico da rota para um cliente específico, mas não para o próximo salto, por favor?
Eu também tentei esta regra iptables:
iptables -A PREROUTING -i tun0 -m geoip --destination-country COUNTRY_CODE -j DNAT --to-destination Mikrotik_VPN_IP
Mas o tráfego termina no roteador Mikrotik. Talvez seja possível resolver este problema neste roteador?
Tabela de rotas do servidor OpenVPN (10.1.1.1):
default via PUBLIC_IP_VPN_SERVER dev eth0
10.1.1.0/24 via 10.1.1.2 dev tun0
10.1.1.2 dev tun0 proto kernel scope link src 10.1.1.1
PUBLIC_IP_VPN_SERVER/24 dev eth0 proto kernel scope link src PUBLIC_IP_VPN_SERVER
UPDATE
Eu usei este solução para adicionar rota padrão na tabela CountryRoute. Então a tabela CountryRoute tem este conteúdo:
default via 10.1.1.30 dev tun0
Eu tenho a regra mangle ativa do iptables (mencionada acima) e as regras da rota ip:
ip rule show
0: from all lookup local
32765: from all fwmark 0x1 lookup CountryRoute
32766: from all lookup main
32767: from all lookup default
Mas o tráfego marcado ainda termina em 10.1.1.1 - Servidor OpenVPN, não segue para o roteador Mikrotik.
UPDATE2
Valores atuais:
default via PUBLIC_IP_VPN_SERVER dev eth0
10.0.0.0/24 dev veth0 proto kernel scope link src 10.0.0.1
10.0.1.0/24 dev veth3 proto kernel scope link src 10.0.1.2
10.1.1.0/24 via 10.1.1.30 dev tun0
10.1.1.30 dev tun0 proto kernel scope link src 10.1.1.1
PUBLIC_IP_VPN_SERVER/24 dev eth0 proto kernel scope link src PUBLIC_IP_VPN_SERVER
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.1.1.1 P-t-P:10.1.1.30 Mask:255.255.255.255
inet6 addr: PUBLIC_IP_VPN_SERVER/64 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:141437 errors:0 dropped:0 overruns:0 frame:0
TX packets:230785 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:14693683 (14.0 MiB) TX bytes:240387315 (229.2 MiB)
ip route show table CountryRoute
default via 10.1.1.30 dev tun0
Obrigado pela sua ajuda.