小结:ipsec-ike

IPSec 手动配置与自动配置(IKE动态协商)


手动配置IPSec 逻辑图

开始 手动定义参数 静态SPI值 固定密钥
authentication/encryption-hex 无IKE协商 直接建立SA 流量匹配ACL时加密 通过SPI+密钥加解密 隧道维持至手动删除

关键逻辑:

  1. 无协商过程:所有参数(SPI、密钥)预先静态配置
  2. 对称配置:两端必须镜像设置SPI(入/出方向相反)
  3. 密钥固定:无自动更新机制,安全性较低

自动配置(IKE动态协商)逻辑图

关键逻辑:

  1. 两阶段协商
    • 阶段1:建立管理通道(IKE SA),使用UDP 500/4500端口
    • 阶段2:建立数据通道(IPSec SA),生成动态SPI和密钥
  2. 动态密钥:支持PFS(完美前向保密),定期更新密钥
  3. 自动恢复:网络中断后自动重新协商

核心区别对比图

阶段 手动配置 自动配置(IKE)
参数定义 管理员静态指定 IKE协议动态协商
密钥管理 固定不变 定期自动更新
SPI生成 手动配置 系统自动分配
加密算法 预定义 两端协商最优算法
适用场景 测试/简单环境 生产环境/复杂网络
协议依赖 仅需ESP/AH 依赖IKE(UDP 500+4500)
配置复杂度 简单但易错 复杂但灵活

手动IPSec 协议交互流程图

总部路由器(R1) 分部路由器(R3) 阶段1:管理员预配置(无协议交互) 人工同步SPI和密钥 配置示例: acl 3001\nrule permit 192.168.10.0→192.168.20.0 ipsec sa manual\n spi inbound=1001 outbound=1002\n hex-key=1234.../5678... 镜像配置\n spi inbound=1002 outbound=1001\n hex-key相同 阶段2:流量触发加密 数据包+ESP头(SPI=1002)\nAES-256加密/SHA-256认证 数据包+ESP头(SPI=1001)\n相同算法解密 总部路由器(R1) 分部路由器(R3)

关键配置指令对应点:

  1. SPI同步

    • R1出方向SPI 1002 = R3入方向SPI 1002
    huawei 复制代码
    ! R1配置
    ipsec sa manual sa-to-r3 10
     outbound esp spi 1002
    ! R3配置
    ipsec sa manual sa-to-r1 10
     inbound esp spi 1002
  2. 加密过程

    • 出站数据匹配ACL 3001后,使用SPI 1002的密钥加密
    huawei 复制代码
    display ipsec sa brief  # 查看加密计数

自动IPSec (IKEv1)协议交互流程图

总部(R1) 分部(R3) 阶段1:IKE SA协商(Main Mode) UDP 500: HDR,SA_i(proposal=10:aes-256/sha2-256) UDP 500: HDR,SA_r(同意proposal 10) KE,Nonce KE,Nonce IDi,Hash(预共享密钥验证) IDr,Hash(验证通过) 阶段2:IPSec SA协商(Quick Mode) HDR*,Hash,SA(proposal:aes-256),Nonce HDR*,Hash,SA(同意),Nonce HDR*,Hash(确认) 动态生成SPI和会话密钥 数据包+ESP头(动态SPI)\nAES-256加密 总部(R1) 分部(R3)

配置指令与协议交互对照:

  1. 阶段1配置

    huawei 复制代码
    ! 两端必须匹配的IKE参数
    ike proposal 10
     encryption-algorithm aes-256
     authentication-algorithm sha2-256
     dh group14
    ike peer R3
     pre-shared-key cipher Huawei@123
     remote-address 23.0.0.3
  2. 阶段2配置

    huawei 复制代码
    ipsec proposal tosH
     esp encryption-algorithm aes-256
     esp authentication-algorithm sha2-256
    ipsec policy POLICY1 10 isakmp
     ike-peer R3
     proposal tosH
  3. 动态SPI查看

    huawei 复制代码
    display ipsec sa  # 输出示例:
    SPI: 0x12345678 (动态生成)
    Encrypt algorithm: AES-256

关键配置与协议字段映射表

协议字段 华为配置指令 作用说明
IKE SA_i/SA_r ike proposal 10 协商加密算法/DH组
KE (Key Exchange) dh group14 决定密钥交换强度
Hash Payload pre-shared-key cipher 身份认证凭证
IPSec SPI 自动生成(手动配置则固定) 唯一标识安全关联
ESP Encryption esp encryption-algorithm aes-256 数据加密算法

  • 现象display ike sa无输出

  • 排查步骤

    1. 检查UDP 500可达性:

      huawei 复制代码
      ping -c 1 -p 500 23.0.0.3
    2. 验证提议匹配:

      huawei 复制代码
      display ike proposal  # 确认两端aes-256/sha2-256一致
  • 现象display ipsec statistics无计数增长

  • 排查步骤

    1. 检查ACL匹配:

      huawei 复制代码
      display acl 3001  # 确认规则命中测试流量
    2. 验证策略应用:

      huawei 复制代码
      display ipsec policy  # 查看接口绑定状态
  1. 启用NAT穿透(适用于中间有NAT设备):

    huawei 复制代码
    ike peer R3
     nat-traversal enable  # 自动使用UDP 4500封装
  2. 配置PFS增强安全

    huawei 复制代码
    ipsec policy POLICY1 10 isakmp
     pfs dh-group14  # 每次重协商使用新DH密钥
  3. 设置SA生存时间

    huawei 复制代码
    ipsec policy POLICY1 10 isakmp
     sa duration time-based 86400  # 24小时后自动重协商

示例

复制代码
[PC1] --- (Ethernet0/0/1) --- [AR1] --- (GE0/0/1: 2.2.2.1/24) --- [AR2 (ISP)] --- (GE0/0/0: 2.2.2.3/24) --- [AR3] --- (Ethernet0/0/1) --- [PC2]
  |                              |                                         |
  | IP: 192.168.10.0/24         | GE0/0/0: 192.168.10.254/24            | GE0/0/0: 192.168.20.254/24           | IP: 192.168.20.0/24
  |                              |                                         |                                       |
[Headquarters]                 [IPSec Tunnel]                       [Shangrao Branch]

一、基础网络配置(R1和R3必须先完成)

R1配置(总部)
huawei 复制代码
sysname R1
# 配置内网接口(连接总部PC)
interface GigabitEthernet0/0/0
 ip address 192.168.10.1 255.255.255.0
 dhcp select interface  # 可选:为PC分配IP
# 配置公网接口(连接ISP)
interface GigabitEthernet0/0/1
 ip address 2.2.2.1 255.255.255.0
# 配置默认路由指向ISP
ip route-static 0.0.0.0 0.0.0.0 2.2.2.2
R3配置(分部)
huawei 复制代码
sysname R3
# 配置内网接口(连接分部PC)
interface GigabitEthernet0/0/0
 ip address 192.168.20.1 255.255.255.0
 dhcp select interface
# 配置公网接口
interface GigabitEthernet0/0/1
 ip address 2.2.2.3 255.255.255.0
# 默认路由
ip route-static 0.0.0.0 0.0.0.0 2.2.2.2

二、手动配置IPSec (静态密钥)

R1配置
huawei 复制代码
# 定义需要加密的流量(总部→分部)
acl number 3000
 rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255

# 1. 定义IPSec提案(加密/认证算法)
ipsec proposal a
 esp authentication-algorithm sha2-256  # ESP认证算法(完整性保护)
 esp encryption-algorithm aes-256       # ESP加密算法(数据加密)
 
# 2. 创建手动IPSec策略
ipsec policy a 1 manual            # 策略名HF,序号1,手动模式
 security acl 3000                     # 绑定ACL 3000(定义感兴趣流)
 proposal a                        # 引用上述提案
 tunnel local 12.0.0.1                 # 本端隧道源IP
 tunnel remote 23.0.0.3                # 对端隧道目的IP
 
# 3. 配置安全关联 Security Association(SA)参数
 sa spi inbound esp 12345              # 入方向SPI值(对端出方向需匹配)
 sa string-key inbound esp cipher aaa # 入方向密钥(cipher表示加密存储)
 sa spi outbound esp 54321             # 出方向SPI值(对端入方向需匹配)
 sa string-key outbound esp cipher aaa # 出方向密钥

# 4. 应用到物理接口
interface GigabitEthernet0/0/1          # 公网接口
 ipsec policy a    # 应用名为a  的IPSec策略
R3配置
huawei 复制代码
acl number 3000
 rule 5 permit ip source 192.168.20.0 0.0.0.255 destination 192.168.10.0 0.0.0.255
ipsec proposal b
 esp authentication-algorithm sha2-256
 esp encryption-algorithm aes-256

ipsec policy b 1 manual
 security acl 3000
 proposal b
 tunnel local 23.0.0.3                # 本端IP与R1的remote IP对应
 tunnel remote 12.0.0.1               # 对端IP与R1的local IP对应
 
# 注意SPI和密钥与R1相反!
 sa spi inbound esp 54321             # 对应R1的outbound spi
 sa string-key inbound esp cipher 123456
 sa spi outbound esp 12345            # 对应R1的inbound spi
 sa string-key outbound esp cipher 123456

interface GigabitEthernet0/0/1
 ipsec policy  b

三、自动配置IPSec (IKE动态协商)

R1配置
huawei 复制代码
# 阶段1:IKE提议(加密管理通道)
ike proposal 10
 encryption-algorithm aes-256  # 加密算法
 dh group14                   # 密钥交换组
 authentication-algorithm sha2-256  # 完整性校验
 authentication-method pre-share    # 认证方式
 sa duration 86400000
 
# 阶段1:IKE对等体
ike peer R3
 ike-proposal 10
 pre-shared-key cipher Huawei@123  # 预共享密钥
 remote-address 2.2.2.3           # 对端IP
 
# 阶段2:IPSec提案(加密数据通道)
ipsec proposal r3-prop
 esp encryption-algorithm aes-256  # 数据加密
 esp authentication-algorithm sha2-256  # 数据完整性
 
# 绑定策略
ipsec policy policy-to-r3 10 isakmp
 security acl 3001      # 匹配加密流量
 ike-peer R3            # 引用IKE对等体
 proposal r3-prop       # 引用IPSec提案
 
# 应用到接口
interface GigabitEthernet0/0/1
 ipsec policy policy-to-r3
R3配置
huawei 复制代码
ike proposal 10  # 参数必须与R1完全一致!
 encryption-algorithm aes-256
 dh group14
 authentication-algorithm sha2-256
 authentication-method pre-share
ike peer R1
 ike-proposal 10
 pre-shared-key cipher Huawei@123
 remote-address 2.2.2.1  # 指向R1的IP
ipsec proposal r1-prop
 esp encryption-algorithm aes-256
 esp authentication-algorithm sha2-256
ipsec policy policy-to-r1 10 isakmp
 security acl 3001
 ike-peer R1
 proposal r1-prop
interface GigabitEthernet0/0/1
 ipsec policy policy-to-r1

四、NAT豁免配置(防止IPSec流量被NAT干扰)

R1和R3均需配置
huawei 复制代码
acl number 2000  # 创建NAT豁免ACL
 rule 5 deny ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255  # 阻止总部→分部NAT
 rule 10 permit ip  # 允许其他流量NAT
# 应用到公网接口
interface GigabitEthernet0/0/1
 nat outbound 2000

五、验证命令

huawei 复制代码
# 查看IKE SA(阶段1)
display ike sa
# 预期结果:State字段为"RD"(已建立)

# 查看IPSec SA(阶段2)
display ipsec sa brief
# 预期结果:有inbound/outbound ESP记录

# 测试连通性
ping -a 192.168.10.1 192.168.20.1  # 从总部PC ping分部PC

关键问题排查表

现象 可能原因 解决方法
IKE SA无法建立 预共享密钥不匹配/UDP 500被阻断 检查密钥/抓包确认UDP 500可达性
IPSec SA无流量 ACL未匹配测试流量 使用ping -a指定源IP或调整ACL规则
能ping通但数据未加密 NAT未豁免流量 检查ACL 2000规则和nat outbound绑定
相关推荐
L10732034823 分钟前
深度学习笔记40_中文文本分类-Pytorch实现
笔记·深度学习·分类
观无2 小时前
Nginx部署Vue+ElementPlus应用案例(基于腾讯云)
前端·javascript·vue.js
猿来入此小猿3 小时前
基于SpringBoot+Vue实现的电影推荐平台功能一
vue.js·spring boot·毕业设计·毕业源码·免费学习·猿来入此·电影推荐平台
不太可爱的叶某人3 小时前
【学习笔记】深入理解Java虚拟机学习笔记——第2章 Java内存区域与内存溢出异常
java·jvm·笔记·学习
寻丶幽风5 小时前
论文阅读笔记——TesserAct: Learning 4D Embodied World Models
论文阅读·笔记·机器人·具身智能·世界模型
Always_away6 小时前
数据库系统概论|第五章:数据库完整性—课程笔记1
数据库·笔记·sql·学习
江安的猪猪6 小时前
大连理工大学选修课——机器学习笔记(3):KNN原理及应用
人工智能·笔记·机器学习
cliff,7 小时前
关于在vscode终端不能执行npm
笔记·vscode·学习·npm
海绵宝宝的月光宝盒7 小时前
[STM32] 4-2 USART与串口通信(2)
c语言·开发语言·笔记·stm32·单片机
Humble-H9 小时前
Vue 3 动态 ref 的使用方式
前端·javascript·vue.js