首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mikrotik将VPN数据包路由到错误的接口

Mikrotik将VPN数据包路由到错误的接口
EN

Server Fault用户
提问于 2018-04-21 12:17:09
回答 1查看 1.1K关注 0票数 1

我正在尝试使用静态IP AWS将我的网络连接到AWS。我遵循了AWS的指令,正确地配置了我的MikroTik路由器,并且可以平移我在这个VPC中附加的Ubuntu实例。由于我的MikroTik中有两个ISP,所以我在AWS中配置了另一个虚拟专用网,并决定在我的Ubuntu实例中使用两个不同的子网接口:

代码语言:javascript
复制
$ 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)

现在,即使我在引导端正确配置了两个VPN,也只有一个VPN可以同时工作。例如:假设名为aws-main的VPN配置为与192.168.254.0/28子网一起工作,而VPN <>aws-backup配置为与192.168.254.16/28子网一起工作,如果我想要平ip 192.168.254.4,我需要禁用路由#2,如果我想关闭ip 192.168.254.20,我需要禁用路由#1。

代码语言:javascript
复制
#      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

如果我尝试ping 192.168.254.20,当启用#1和#2路由时,我可以在日志中看到以下消息:

代码语言:javascript
复制
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

Mikrotik正在将包路由到ether3,而不是ether2 ( VPN aws的正确网关-备份<#>),我认为这是个问题,但我不知道如何强制它纠正接口。

代码语言:javascript
复制
/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"

以下是政策:

代码语言:javascript
复制
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

至少对我来说,mikrotik没有使用正确的子网路由VPN数据包来纠正网关。这就是问题所在吗?我怎么才能解决这个问题?

EN

回答 1

Server Fault用户

发布于 2018-04-29 07:47:11

我认为您不需要BGP,因为子网是独立的。

您需要的是Mikrotik中的源路由(也称为基于策略的路由):

https://wiki.mikrotik.com/wiki/Policy_基座_路由

原则上,你必须:

  • 在PREROUTING链中创建一个与子网中的数据包匹配的mangle规则
  • 用唯一的路由标记标记所有进入该子网的数据包。
  • 为所有匹配该路由标记的数据包添加路由,以使用相应的VPN作为网关。

对第二个subnet+VPN重复这个过程。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/908823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档