这也是我心中的意难平啊,13届新华三杯国赛的第一阶段最后一道大题就是考的gre over ipsec的野蛮模式,当时我也惨败在此题上,最后无缘国一,话不多说看下面的案例
案例需求
目前有一家企业,R1作为企业总部的出口路由器,R2作为企业分部的出口路由器。之间与LSP相连接;为保证企业内部用户数据的通信安全,采用IPsec vpn的方式建立隧道传输数据。
R1出接口采用运营商固定分配的ip地址100.1.1.1/24
R2出接口通过自动获取200.1.1.0网段的IP地址
由于R2出接口的IP地址不固定,故本实验采用的是野蛮模式,在R1上与对端设备名称进行建立对等体关系。
实验拓扑图
配置命令
第一步:基础配置
R1
[H3C]sysname R1
[R1]int g0/0
[R1-GigabitEthernet0/0]ip add 100.1.1.1 24
[R1-GigabitEthernet0/0]int g0/1
[R1-GigabitEthernet0/1]ip add 192.168.1.254 24
[R1-GigabitEthernet0/1]qu
LSP
[H3C]sysname LSP
[LSP]int g0/0
[LSP-GigabitEthernet0/0]ip add 100.1.1.2 24
[LSP-GigabitEthernet0/0]int g0/1
[LSP-GigabitEthernet0/1]ip add 200.1.1.1 24
[LSP-GigabitEthernet0/1]qu
R2
[H3C]sysname R2
[R2]int g0/1
[R2-GigabitEthernet0/1]ip add 172.16.1.254 24
[R2-GigabitEthernet0/1]qu
(因为R2的g0/0是自动获取这里不做配置)
第二步:在LSP上配置dhcp服务为R2的g0/0口分配ip地址,并且在R1上配置默认路由下一跳为100.1.1.2目的实现R1与R2能够通信(这是建立ipsec隧道的前提)(如果R1不能和R2通信那么隧道是不能建立成功的)
R1
[R1]ip route-static 0.0.0.0 0 100.1.1.2
LSP
[LSP]dhcp enable
[LSP]dhcp server ip-pool pool
[LSP-dhcp-pool-pool]gateway-list 200.1.1.1
[LSP-dhcp-pool-pool]network 200.1.1.0 24
[LSP-dhcp-pool-pool]qu
R2
[R2]int g0/0
[R2-GigabitEthernet0/0]ip add dhcp-alloc //开启自动获取ip地址功能
此时,查看R2g0/0口是否获取到200.1.1.0网段ip地址,并测试与R1的连通性
此时已经将公网打通,下面开始配置ipsec
第一阶段:配置IKE的SA
R1
[R1]ike proposal 1 //配置ike的安全提议(名称为1)
[R1-ike-proposal-1]encryption-algorithm 3des-cbc //加密算法3des-cbc(双方一致)
[R1-ike-proposal-1]authentication-algorithm sha256 //认证算法 sha256(一致双方)
[R1-ike-proposal-1]dh group5 //ike处于那个组(这里可以默认)
[R1-ike-proposal-1]qu
[R1]ike keychain 1 //key密钥(由于对端ip地址不固定,这里采用名称建立对等体关系)
[R1-ike-keychain-1]pre-shared-key hostname R2 key simple 123456 //密码要一致
[R1-ike-keychain-1]qu
[R1]ike profile 1 //将配置的提议和密钥放进ike 配置文件中(文件命为1)
[R1-ike-profile-1]exchange-mode aggressive //修改模式为野蛮模式,默认是主模式main
[R1-ike-profile-1]proposal 1 //引用安全提议1
[R1-ike-profile-1]keychain 1 //引用密钥1
[R1-ike-profile-1]match remote identity fqdn R2 //引用对端fqdn 如果是ip地址,则是address
[R1-ike-profile-1]qu
R2
[R2]ike identity fqdn R2 //(这步很重要,设置自己的fqdn为R2,要和R1引用的fqdn名称一致)
[R2]ike proposal 1 //安全提议和对端保持一致
[R2-ike-proposal-1]encryption-algorithm 3des-cbc
[R2-ike-proposal-1]authentication-algorithm sha256
[R2-ike-proposal-1]dh group5
[R2-ike-proposal-1]qu
[R2]ike keychain 1 //密钥要一致,对端ip地址固定,所以与对端ip建立对等体关系
[R2-ike-keychain-1]pre-shared-key address 100.1.1.1 key simple 123456
[R2-ike-keychain-1]qu
[R2]ike profile 1 //一样创建ike配置文件调用安全提议和密钥
[R2-ike-profile-1]proposal 1
[R2-ike-profile-1]keychain 1
[R2-ike-profile-1]exchange-mode aggressive
[R2-ike-profile-1]match remote identity address 100.1.1.1
[R2-ike-profile-1]qu
此时,第一阶段的IKE协商完成(通过dis ike proposal)查看协商使用的加密以及认证方式(双方必须一致)
第二阶段:配置IPsec的 SA
R1
[R1]ipsec transform-set my //创建ipsec安全提议
[R1-ipsec-transform-set-my]encapsulation-mode tunnel //传输模式为隧道,默认也是隧道
[R1-ipsec-transform-set-my]esp encryption-algorithm 3des-cbc
[R1-ipsec-transform-set-my]esp authentication-algorithm sha256
[R1-ipsec-transform-set-my]qu
[R1]acl number 3000 //创建感兴趣流,双方要相反
[R1-acl-ipv4-adv-3000]rule permit ip source 192.168.1.0 0.0.0.255 destination 172.16.1.0 0.0.0.255 //注意:destination不要写错为description
[R1-acl-ipv4-adv-3000]qu
[R1]ipsec policy-template mytem 1 //配置策略模板,名称为mytem,优先级为1(越小越优先)
[R1-ipsec-policy-template-mytem-1]ike-profile 1 //引用ike配置文件1
[R1-ipsec-policy-template-mytem-1]transform-set my //引用ipsec安全提议my
[R1-ipsec-policy-template-mytem-1]security acl 3000 //引用acl
[R1-ipsec-policy-template-mytem-1]qu
[R1]ipsec policy mypolicy 1 isakmp template mytem //创建安全策略名称为mypolicy 优先级1,并引用策略模板mytem
[R1]int g0/0
[R1-GigabitEthernet0/0]ipsec apply policy mypolicy //在接口上调用安全策略组
[R1-GigabitEthernet0/0]qu
R2
[R2]ipsec transform-set my
[R2-ipsec-transform-set-my]encapsulation-mode tunnel
[R2-ipsec-transform-set-my]esp encryption-algorithm 3des-cbc
[R2-ipsec-transform-set-my]esp authentication-algorithm sha256
[R2-ipsec-transform-set-my]qu
[R2]acl number 3000
[R2-acl-ipv4-adv-3000]rule permit ip source 172.16.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
[R2-acl-ipv4-adv-3000]qu
[R2]ipsec policy mypolicy 1 isakmp
[R2-ipsec-policy-isakmp-mypolicy-1]ike-profile 1
[R2-ipsec-policy-isakmp-mypolicy-1]security acl 3000
[R2-ipsec-policy-isakmp-mypolicy-1]transform-set my
[R2-ipsec-policy-isakmp-mypolicy-1]remote-address 100.1.1.1
[R2-ipsec-policy-isakmp-mypolicy-1]qu
[R2]int g0/0
[R2-GigabitEthernet0/0]ipsec apply policy mypolicy
[R2-GigabitEthernet0/0]qu
验证实验结果(采用分部PC去访问总部PC)
这里可以探讨一下第一个数据包为什么会丢包
以下发言纯属个人行为,如与官方解释不一致,请以官方为准
我认为是第一个数据包发送时未建立起ipsec隧道,触发了ike协商,当ike协商通过后,才会建立起ipsec隧道。故第一个包没有进入隧道只是触发ike协商,所以丢包。