Mikrotik roteando pacotes VPN para interface errada

1

Estou tentando conectar minha rede ao AWS VPC usando o Static IP AWS VPN. Eu segui as instruções da AWS e configurei corretamente o meu roteador MikroTik e posso executar ping na instância do Ubuntu que acompanhei neste VPC. Como eu tenho 2 ISPs no meu MikroTik, configurei outra VPN na AWS e decidi usar duas interfaces em sub-redes distintas na minha instância do Ubuntu AWS:

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 0A:72:28:AF:C7:CE  
          inet addr:192.168.254.4  Bcast:192.168.254.15  Mask:255.255.255.240
          inet6 addr: fe80::872:28ff:feaf:c7ce/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:24297 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21627 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7074474 (6.7 MiB)  TX bytes:2362441 (2.2 MiB)

eth1      Link encap:Ethernet  HWaddr 0A:A2:0F:7C:75:FC  
          inet addr:192.168.254.20  Bcast:192.168.254.31  Mask:255.255.255.240
          inet6 addr: fe80::8a2:fff:fe7c:75fc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:24996 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25227 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2307467 (2.2 MiB)  TX bytes:5382812 (5.1 MiB)

Agora, mesmo tendo duas VPN configuradas corretamente nos lados de inicialização, apenas uma VPN funciona no momento. Por exemplo: imagine que a VPN nomeada aws-main esteja configurada para trabalhar com a sub-rede 192.168.254.0/28 e a VPN aws-backup esteja configurada para trabalhar com a sub-rede 192.168.254.16/28 , se eu quiser pingar o ip 192.168.254.4 eu preciso desabilitar a rota # 2, e se eu quiser pingar o ip 192.168.254.20 eu preciso desabilitar a rota # 1

#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
1 A S  ;;; ISP 1
    0.0.0.0/0                          yyy.yyy.yyy.yyy           1
2   S  ;;; ISP 2
    0.0.0.0/0                          zzz.zzz.zzz.zzz           1
4 ADC  yyy.yyy.yyy.0/24    y.y.y.y        ether3                 0
6 ADC  zzz.zzz.zzz.0/30    z.z.z.z        ether2                 0
9 ADC  192.168.15.0/24    192.168.15.254  ether5                 0

Se eu tentar o ping 192.168.254.20 quando as rotas # 1 e # 2 estiverem ativadas, posso ver essa mensagem no log:

backup-out srcnat in:(unknown 0) out:ether3, src-mac xxx, proto ICMP(type 8,code 0), 192.168.15.31 ->192.168.254.20, len 84

O Mikrotik está roteando o pacote para o ether3 ao invés do ether2 (o gateway correto para o VPN aws-backup ), acho que esse é o problema, mas não sei como forçar para corrigir a interface.

/ip firewall nat> print
0    chain=srcnat action=accept src-address=192.168.15.0/24 
  dst-address=192.168.254.0/28 log=yes log-prefix="main-out" 

1    chain=srcnat action=accept src-address=192.168.15.0/24 
  dst-address=192.168.254.16/28 log=yes log-prefix="backup-out" 

2    chain=srcnat action=accept src-address=192.168.254.0/28 
  dst-address=192.168.15.0/24 log=yes log-prefix="main-in" 

3    chain=srcnat action=accept src-address=192.168.254.16/28 
  dst-address=192.168.15.0/24 log=yes log-prefix="backup-in" 

4    chain=srcnat action=masquerade log=no log-prefix="masquerade"

estas são as políticas:

0  A  ;;; AWS Tunnel 2 - BACKUP
   src-address=0.0.0.0/0 src-port=any dst-address=192.168.254.16/28 
   dst-port=any protocol=all action=encrypt level=require 
   ipsec-protocols=esp tunnel=yes sa-src-address=zzz.zzz.zzz.zzz 
   sa-dst-address=x.x.x.x proposal=AWS ph2-count=9 

2  A  ;;; AWS Tunnel 1 - MAIN
   src-address=0.0.0.0/0 src-port=any dst-address=192.168.254.0/28 
   dst-port=any protocol=all action=encrypt level=require 
   ipsec-protocols=esp tunnel=yes sa-src-address=yyy.yyy.yyy.yyy 
   sa-dst-address=K.K.K.K proposal=AWS ph2-count=8

Pelo menos para mim, o mikrotik não está roteando os pacotes da VPN usando a sub-rede correta para corrigir o gateway. Esse é o problema? Como posso resolver isso?

    
por brevleq 21.04.2018 / 14:17

1 resposta

0

Eu não acho que você precisa do BGP como foi sugerido nos comentários, porque as sub-redes são independentes.

O que você precisa é de roteamento de origem (também conhecido como roteamento baseado em políticas) no Mikrotik:

link

Em princípio, você precisa:

  • Crie uma regra de mangle na cadeia PREROUTING que corresponda aos pacotes que vão para uma das sub-redes
  • Marque todos os pacotes que vão para essa sub-rede com uma única marca de roteamento
  • Adicione uma rota para todos os pacotes que correspondem a essa marca de roteamento para usar a VPN correspondente como gateway

Repita o processo para a segunda sub-rede + VPN.

    
por 29.04.2018 / 09:47