在起IX的隧道的时候,我将三台机器都DD成RouterOS CHR,然后在上面打算起一个通用的隧道协议,首先起的是L2TP协议的隧道,但是不知道为什么无法联通,后面换成了IPsec的IKEV2协议的隧道

第一个坑 加密协议

iPhone与Android支持的加密协议是不一样导致连上秒断,也没有日志,一直在排查,最后排查到了Profiles里面的Hash Algorithm,安卓是可以使用SHA512进行密钥交换,但是苹果似乎只支持SHA256,然后加密算法一定要勾选上AES128/AES256还有任意一个DH Group(可能影响速度以及隧道性能,非必要不用上高位)

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/ip ipsec mode-config
add address-pool=ikev2-pool name=ikev2-cfg static-dns=1.1.1.1 system-dns=no
/ip ipsec policy group
add name=ikev2-group
/ip ipsec profile
add dh-group=modp2048 dpd-interval=2m dpd-maximum-failures=5 enc-algorithm=\
aes-256,aes-128 hash-algorithm=sha256 name=ikev2-profile proposal-check=\
claim
/ip ipsec peer
add exchange-mode=ike2 name=ikev2-peer passive=yes profile=ikev2-profile \
send-initial-contact=no
/ip ipsec proposal
add auth-algorithms=sha256 name=ikev2-proposal pfs-group=modp4096
/ip ipsec identity
add generate-policy=port-strict mode-config=ikev2-cfg my-id=\
fqdn:cnbgp.ipsec.0n.ink peer=ikev2-peer policy-template-group=ikev2-group
/ip ipsec policy
add group=ikev2-group proposal=ikev2-proposal template=yes

第二个坑 IPsec DPD保活

iPhone上面用IPsec/iKev2 PSK进行连接会话时间随机断(安卓未测)

使用网上出的方法:使用证书
结果问题依旧,后面发现了IPsec的DPD检测设备存活状态