“技术”限制
说是技术限制其实是没有大公司有这个需求又不能砸自己AutoVPN的场子所以没有实现一些功能。
- 只支持IKEv1的main mode,不支持aggressive mode或IKEv2
- 只支持Tunnel mode,不支持Transport mode
- 只支持IPSec,不支持上面打别的隧道,所以没法跑动态路由
- 只支持PSK认证
- 非Meraki一端必须是静态公网IP
- 同一组的MX会共享相同的设置和相同的PSK
网络拓扑
Meraki MX100:
- 公网IP:1.1.1.1
- 本地子网:192.168.1.0/24
RouterOS 6.42.11:
- 公网IP:2.2.2.2
- 本地子网:192.168.2.0/24
Meraki MX设置
Transform Set
打开Security & SD-WAN -> Site-to-site VPN设置页面。
VPN settings -> Local networks中填写本地IPSec Tunnel内子网,Use VPN选yes。这边如果启用了Client VPN那么Client VPN的IP段会自动出现,不需要额外设置。
Organization-wide settings -> Non-Meraki VPN peers添加一条,Public IP填写另一端的IP地址,Private subnets填写对端IPSec Tunnel内子网。
Phase 1 & Phase 2
Non-Meraki VPN peers->IPSec policies->Custom,可以在默认设置中选择一项或者自定义加密参数。
RouterOS设置
Phase 1
1 2 |
/ip ipsec peer add address=1.1.1.1 local-address=2.2.2.2 auth-algorithms=sha1 enc-algorithm=aes-128 dh-group=modp1024 lifetime=8h notrack-chain=prerouting secret="IPSec PSK" |
Phase 2
1 2 |
/ip ipsec proposal add auth-algorithms=sha1 enc-algorithms=aes-256-cbc pfs-group=modp1024 lifetime=8h name=Meraki |
Transform Set
1 2 |
/ip ipsec policy add proposal=Meraki tunnel=yes src-address=192.168.1.0/24 dst-address=192.168.2.0/24 sa-src-address=2.2.2.2 sa-dst-address=1.1.1.1 |
如果Meraki那边填写了多段本地IP的话,这里也需要为每一段对面的本地IP段创建一条。
参考资料
- DH Group编号和RouterOS显示的名字的对应关系参见Diffie-Hellman Groups
- 查看Meraki MX的VPN日志的方法参见Troubleshooting with the Event Log
- Meraki的IPSec设置文档Site-to-site VPN Settings
- MX to Cisco ASA Site-to-site VPN Setup
- MX Design: Integrating Non-Meraki VPN into AutoVPN