一、背景
1. 需求
外联机构接入成方金科互联网联调测试环境进行联调验收测试,需要与人行侧设备建立IPSecVPN。
以下我们将人行统称为A端,外联机构统称为B端。本次我们作为B端外联机构与A端人行设备进行联调。
A端路由器厂商:华三
B端路由器厂商:华为
B端路由器具体型号、版本:AR6710-L14T2X4 (AR6700 V600R024C00SPC100)
A端信息
1.IPSECVPN中的IKE版本为Version1
2.公网IP36.110.19.234
3.机构使用ID类型是证书主题方式的:人行端取值为 CN=IPSECVPN
4.附件中已提供CA根证书:
ca.cer ---> 除思科路由器外,其他厂商设备使用(本次我们设备厂商是华为,所以导入的根证书选ca.cer)
CA_base64.cer ---> 思科路由器专用
5.成方金科地址段(A端内网业务网段)172.17.240.0/24
B端信息
B端网络由于公网IP是放在出口防火墙上的,所以华为路由器只能接在防火墙下面,A端要求B端必须要有公网IP,所以需要出口防火墙将公网IPudp500和4500映射给华为路由器的WAN口IPudp500和4500。
2. 拓扑图

3. 流程图

二、华为路由器具体配置
1. 校准时钟
查看路由器上时钟,是否与CA服务器时钟(以北京时间为准,不要相差太大)一致,时钟不一致有可能导致CA证书失效或未启用,查看时钟命令如下:
注意时区要改成北京时UTC+8后,校准时间
display clock2. 测试网络连通性
测试路由器外网口能ping通金科VPN网关设备外口地址**36.110.19.234**

3. 配置pki实体
pki entity IPSECVPN
common-name IPSECVPN4. 配置pki域
pki rsa local-key-pair create IPSECVPN
#
pki realm IPSECVPN
entity IPSECVPN
rsa local-key-pair IPSECVPN
certificate-check none5. 证书相关配置
5.1 申请根证书并导入到路由器中,(此证书由成方金科提供)
下载证书后,导入路由器中:
注意ca.cer建议修改为其它名称(例ipsec_ca.cer),不然可能会导入报错(ca.cer好像和路由器本身证书名称冲突)
需先ipsec_ca.cer通过U盘或者FTP/TFTP上传到路由器flash:/pki/public目录
pki import-certificate ca realm IPSECVPN der filename ipsec_ca.cer提Info: Succeeded in importing the certificate.就标识导入CA根证书成功了。
导入成功后可能会提示你需不需要删ipsec_ca.cer这个文件,如果这ipsec_ca.cer文件你在flash的其他目录有备份副本,可以选Y删除,此flash:/pki/public下ipsec_ca.cer文件就没有了。
查看当前 PKI 域 IPSECVPN 下已导入的根 CA 证书 ,用于确认根证书是否正确安装、获取 CA 的 DN(Subject)信息。
dis pki certificate ca realm IPSECVPN查看输出,主要需要关注以下参数:
Issuer: CN=CFIT
Subject: CN=CFIT
Pki realm name: ipsecvpn ------>华为路由器这里会自动字母小写
Certificate file name: ipsec_ca.cer5.2 在路由器上生成证书申请字符串
pki enroll-certificate realm IPSECVPN pkcs10 filename ipsecvpn执行后,会flash:/pki/public目录下生成名ipsecvpn.req的文件。

.req 和 .csr 本质是同一个文件,都是 PKCS#10 格式的证书请求文件,只是后缀名不同。
通过执行查看命令,直接将字符串复制出来到文本即可,文本格csr或txt都可以
more /pki/public/ipsecvpn.req 注意红色框选的区域内容都要复制出来

>将路由器生成的字符串(标红部分),上传提交到成方互联平台-工作台-项目详情-环境管理-网络管理界面申请准入证书。成方金科会根据此字符串再次生成一个准入证书,并把此证书上传平台,机构可自行下载。
5.3 将准入证书导入到H3C路由器中
商业银行在收到准入证书后将证书导入到路由器里。
拿到审批后准入证书后,建议将名称改为英文,例abc.cer
执行如下命令
pki import-certificate local realm ipsecvpn der filename abc.cer提Succeeded in importing the certificate.就标识导入准入证书成功了。
同样会提示是否删除目录下文件。
查看 PKI 域 IPSECVPN 下已导入的本地实体证书 (准入证书),核心是获取证书里的 Subject(即你的 DN 字符串),用于配置 local-id dn。
dis pki certificate local realm IPSECVPN查看输出,主要需要关注以下参数:
Issuer: CN=CFIT
Subject: CN=IPSECVPN
Pki realm name: ipsecvpn ------>华为路由器这里会自动字母小写
Certificate file name: abc.cer6. IPSecVPN相关配置
6.1 定义商业银行到成方金科感兴趣流,触发VPN建立的流量。
在拿到准入证书的同时,人行侧A端会同时分配给外联机构B端一段指定互联IP地址(例如172.17.90.160/27),B端测试机1通过路由器的NAT转换成这段指定互联地址并通ACL进入IPSecVPN隧道从而访问人行侧后端的业务服务172.17.240.0/24
配置感兴趣流
允172.17.90.160/27访172.17.240.0/24
acl number 3000
rule 5 permit ip source 172.17.90.160 0.0.0.31 destination 172.17.240.0 0.0.0.2556.2 配置IKE安全提议,使用证书验证
注意本次涉及的B端华为路由器(型号:AR6710-L14T2X4 版本:V600R024C00SPC100),默认不支持ikev1版本,ike peer视图下没有version命令,需要去华为官网下载对应版本插件。
插件名称AR6700L-5700H_V600R024C00SPC100_IKEV1_MOD001.MOD
复制到设flash:/$_install_mod目录下,执行命令无需重启即可生效
install-module AR6700L-5700H_V600R024C00SPC100_IKEV1_MOD001.MOD查看系统动态加载的软件模块信息

算法参数与A段路由器保持一致即可
ike proposal 10
encryption-algorithm 3des
dh group2
authentication-algorithm md5
authentication-method rsa-signature
integrity-algorithm hmac-sha2-256 ---->华为路由器隐性默认配置,无视
prf hmac-sha2-256 ---->华为路由器隐性默认配置,无视
#
ike peer test1
undo version 2 ---->关闭v2,只保留v1生效
ike-proposal 10
local-id-type dn
remote-id-type dn
remote-id CN=IPSECVPN ---->A端信息第3条:机构使用ID类型是证书主题方式的:人行端取值为CN=IPSECVPN
remote-address 36.110.19.234
pki realm ipsecvpn6.3 配置IPSec安全提议
参数与A段路由器保持一致即可
ipsec proposal test1
esp authentication-algorithm sha2-256 sha1
esp encryption-algorithm aes-128 3des 6.4 配置IPSEC策略并在外网接口上调用
ipsec policy IPSEC 10 isakmp
security acl 3000
ike-peer test1
proposal test1
sa trigger-mode auto ---->配置完成后自动触发 IKE/IPSec SA 协商,无需业务流量在B端华为路由器的外网口GE0/0/0上挂载ipsec策略
interface GE0/0/0
ip address 192.0.208.7 255.255.255.0
ipsec policy IPSEC 7. 配置NAT
A端人行测业务网段172.17.240.0/24
B端外联机构业务网段172.17.90.160/27(人行侧分配指定的)
根据业务需求:
B端测试机1会主动访问A端业务网段某个IP例172.17.240.1tcp443端口,由于A端人行测要求访问A端业务网段的源IP必须是人行测分配给B端的指定网172.17.90.160/27中的某个IP例172.17.90.160
所以需要在B端华为路由器上新增源地址转换。
A端业务服务172.17.240.1因为业务需求也需要主动访问B172.17.90.160tcp1443端口
所以需要在B端华为路由器上新增目的地址转换。
总结下来需要在B端华为路由器上面同时SNAT和DNAT
命令如下:
B端测试机1IP192.168.210.8 转换成 A端分配的指定IP172.17.90.160
同时因为在B端路由器的WAN和LAN口都开启了NAT功能,所以:当WAN口流量进来,访172.17.90.160也会转换192.168.210.8
注意这里NAT都是1对1NAT转换且不转换端口的模式
nat server nat1 global 172.17.90.160 inside 192.0.210.8
nat server nat2 global 172.17.90.161 inside 192.0.210.9 --->假设添加第二条
#
interface GE0/0/1
ip address 192.0.210.7 255.255.255.0
nat enable ---->在B端华为路由器的LAN口下面开启NAT功能
#
interface GE0/0/0
ip address 192.0.208.7 255.255.255.0
ipsec policy IPSEC
nat enable ---->在B端华为路由器的WAN口下面开启NAT功能三、防火墙具体配置
需要根据现场环境调整配置,比如B端路由器本身WAN口具有公网IP地址,那么就不需要出口防火墙做端口映射
1.在B端出口防火墙上将GE0/0/0口上的公网I60.52.211.218udp500和udp4500映射到B端华为路由GE0/0/0口上的I192.168.208.7udp500和4500
60.52.211.218 udp500 --------> 192.168.208.7 udp500
60.52.211.218 udp4500 --------> 192.168.208.7 udp45002.在B端出口防火墙上进行安全策略放通,指定源安全域和源IP36.110.19.234),指定目的安全域和目的IP192.168.208.7),协议选udp500和4500
四、故障排查
1. IPSecVPN问题排查
1.1 查看 IKE SA
查看第一阶段 + 第二阶段
display ike sa
Phase1: RD = 第一阶段成功(证书 / 身份认证通)
Phase2: RD = 第二阶段成功(隧道真正通)
Phase2: NEG = 正在协商 / 协商失败
Phase2 没有 = 没触发流量 / 配置不匹配
1.2 查看 IPSec SA
查看加密隧道是否建立
display ipsec sa有 Inbound SPI / Outbound SPI = 隧道建立成功
正常:显示正确的十六进制值(如 702461289),不为 0。
异常:如果 SPI 为 0 或空,说明隧道未建立或协商失败。
有 Encapsulation/Decapsulation 数据包计数 = 流量正在加密传输
Outbound: SA encrypted packets (number/bytes): 11/606
Inbound: SA decrypted packets (number/bytes): 11/584
什么都没有 = 隧道没建立
1.3 查看设备时钟
对比北京时间,时钟不一致有可能导致CA证书失效或未启用
display clock1.4 查看NAT会话
通过查看NAT会话,确认测试机流量已经过华为路由器且命中了NAT策略
dis session all verbose
1.5 清除故障、重置隧道
重置 IKE + IPSec 所有状态,并重新查看IPSecVPN隧道状态
reset ike sa all
reset ipsec sa all如有问题或者建议可以发送邮箱到itcat672@126.com
(END)