我已经在一个 aws 子网中使用 tinc 构建了一个 VPN 端点:-
[ eu-west-1a tinc ]------
| |
[ us dc] -- ipsec -- [ uk dc ]
一些故障情况可以通过 tincs 网格处理:-
[ eu-west-1a tinc ]------
| |
^ x
| |
[ us dc] -<- ipsec -- [ uk dc ]
[ eu-west-1a tinc ]------
| |
x ^
| |
[ us dc] ->- ipsec -- [ uk dc ]
因此,作为 aws 中 tinc 故障的一个选项,我可以在另一个子网中构建另一个 tinc 盒,并使用 keepalived 在两个服务器之间移动 eni,但我找不到任何关于如何检测子网故障的优秀文档。如果子网 a 和 b 之间的链接断开,keepalived 会发生什么情况,即如何处理裂脑?
[ eu-west-1a tinc ]--keepalived---[ eu-west-1b tinc ]
|
vip
|
[ uk dc ]
另一个选项是运行 2 个 tincs 并使用某种“见证”服务来决定哪个应该处于活动状态并更新 aws vpc 中的路由表。我找不到任何关于如何在 aws 中构建见证服务的官方文档,例如,您可以使用 aws lambda 吗?不过我知道 aws vpn 服务。