我正在尝试使用静态IP AWS将我的网络连接到AWS。我遵循了AWS的指令,正确地配置了我的MikroTik路由器,并且可以平移我在这个VPC中附加的Ubuntu实例。由于我的MikroTik中有两个ISP,所以我在AWS中配置了另一个虚拟专用网,并决定在我的Ubuntu实例中使用两个不同的子网接口:
$ 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。
# 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路由时,我可以在日志中看到以下消息:
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 84Mikrotik正在将包路由到ether3,而不是ether2 ( VPN aws的正确网关-备份<#>),我认为这是个问题,但我不知道如何强制它纠正接口。
/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"以下是政策:
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数据包来纠正网关。这就是问题所在吗?我怎么才能解决这个问题?
发布于 2018-04-29 07:47:11
我认为您不需要BGP,因为子网是独立的。
您需要的是Mikrotik中的源路由(也称为基于策略的路由):
https://wiki.mikrotik.com/wiki/Policy_基座_路由
原则上,你必须:
对第二个subnet+VPN重复这个过程。
https://serverfault.com/questions/908823
复制相似问题