有时候,我们会在一台路由器上使用多个ISAKMP密钥,来连接不同的VPN节点。比如L2L和L2TP,它们需要使用不同的密钥。
如果你的所有L2L节点都使用静态IP,那么这将不会存在什么问题。
但是如果你的L2L节点使用动态IP,那么将L2L和L2TP的密钥进行区分可能会很困难。
特别提示一点,ISAKMP是需要先交换密钥才能交换Identity。密钥不正确,Identity都没法交换,所以不要指望ISAKMP Profile中匹配了Identity,就能使用对应的密钥了。
我的个人建议是,使用IP+掩码指配密钥。(因为用域名指定密钥会出现一些难以预料的错误)
当然,这可能会跟L2TP的使用相冲突。我举个例子。
比如节点A是HUB,节点B(SPOKE)的IP经常变化,你指配密钥时使用了120.0.0.0/8这个地址段,密钥是123。你用0.0.0.0/0来指配L2TP的密钥,密钥是456。
如果你有一个远程用户,IP地址恰好也在这个地址段里,那么A将会试图使用密钥123来验证远程接入用户,很显然这是行不通的,因为远程用户知道的密钥是456。
一个不错的解决方法就是,在你所有可能用到的节点上都部署L2TP拨入,移动用户采取就近拨入原则。比如节点B的IP是120.0.0.1,一个移动用户分配到的IP是120.0.0.2,那么这位移动用户,就拨入节点B的L2TP。
别问我为什么这么麻烦,你要是有动态IP,密钥用IP+32位掩码指定,什么都好办!