身份类型为什么重要
阶段一除了验证密钥或证书,还要确认对端身份:本端声明一个身份,对端按自己的规则去匹配。身份可以是 IP 地址、FQDN 域名或证书里的 DN,具体用哪种取决于对端配置与地址条件。问题往往就出在两侧不对称:一端按地址匹配、另一端声明的却是域名,密钥完全正确,认证依然失败。因此配置时的原则是显式声明双方身份并保证匹配关系成立——本端声明的身份必须落在对端允许的匹配范围内,反之亦然。地址固定的场景用地址型最直观,地址会变化或使用证书的场景用 FQDN 更合适。
基本信息
| 地址型 | 身份使用 IP,适合两端都有固定公网地址 |
|---|---|
| FQDN 型 | 身份为域名,适合动态地址与证书场景 |
| DN 型 | 证书主题名,与 PKI 配合使用 |
| 通配匹配 | 部分实现支持模糊匹配,仍建议显式声明 |
| 匹配规则 | 本端声明与对端匹配条件必须能互相对应 |
| 查看 | show crypto ikev2 profile 中的 identity 配置 |
典型使用场景
- 固定地址互联:用地址型身份,配置最简单
- 分支地址动态变化:用 FQDN 声明身份
- 证书认证:身份与证书主题保持一致
- 与第三方对接:在参数表中明确双方身份类型与取值
- 排障:确认是密钥问题还是身份不匹配
两端配置对照
两端配置对照
# Cisco IKEv2 profile:声明本端身份并匹配对端
crypto ikev2 profile P1
identity local fqdn site1.example.com
match identity remote fqdn site2.example.com
# strongSwan 侧对应设置
# local { id = site1.example.com }
# remote { id = site2.example.com }
! 查看 profile 与身份相关配置
show crypto ikev2 profile P1
show crypto ikev2 sa detail | include identity身份类型对照
| 类型 | 适用条件 | 常见误配 |
|---|---|---|
| IP 地址 | 两端地址固定 | 对端换了地址后认证失败 |
| FQDN | 动态地址或证书场景 | 域名与实际证书主题不一致 |
| DN | 使用证书 | 主题字段拼写或顺序差异 |
| 通配匹配 | 多站点共用配置 | 范围过宽导致匹配到意外对端 |
IPsec 的身份与隧道可达性无关:即使地址可以互相 ping 通,身份声明不匹配仍然会导致认证失败,这是与链路问题最容易混淆的地方。
使用通配匹配虽然减少配置量,但会放宽接受范围;安全评审时应说明使用理由与补偿措施。