这是我×××书中的GET×××的第一部分,现在还处于草稿阶段,可能还会有些问题,希望大家多多提出意见,我会陆续发布我书中的重要部分,希望大家对我新书的关注与支持。谢谢!

两种GET×××的密钥
图8-13 GET×××的密钥



 
GET×××一共有如下两种加密数据的密钥:
1. 加密密钥的密钥(KEK)
在密钥服务器和组成员之间,加密密钥更新(Rekey Message)信息的密钥。
2. 加密流量的密钥(TEK)
在组成员之间,加密组成员身后网络之间流量(用户流量)的密钥。
两种 GET××× 的安全关联( SA
图8-14 GET×××的安全关联
 



 
GET×××一共存在如下三种类型的安全关联:
1. IKE安全关联(IKE SA)
密钥服务器使用IKE认证组成员,并且使用协商的IKE SA加密GDOI的注册信息。
2. 密钥更新安全关联(Rekey SA)
密钥服务器周期性的发送密钥更新信息(Rekey Message),用此来更新组成员即将过期的安全关联和密钥。密钥更新安全关联就是用来加密更新信息。
3. IPSec安全关联(IPSec SA)
配置GET×××的本质就是用来加密组成员之间的客户流量,由密钥服务器推送给组成员的IPSec安全关联就是用于加密组成员间的客户流量。
GET××× 的网络流量
通过分析GET×××三种类型的安全关联,我们了解到在密钥服务器和组成员之间,存在ISAKMP流量(GDOI被IKE第一阶段的安全关联进行保护)和密钥更新的流量。我们以前学习过标准的ISAKMP流量使用UDP/500来进行传输。但是在GET×××环境ISAKMP流量使用UDP/848进行传输。并且密钥更新信息(使用的其实也是GDOI协议,被REKEY SA的策略与KEK的密钥进行加密保护)也是使用UDP/848进行传输。所以在密钥服务器和组成员之间只需要放行UDP/848的GDOI流量。因为注册是有GM主动发起连接,密钥更新是由KS主动发起连接,所以需要双向放行密钥服务器和组成员之间的UDP/848。
在GM与GM之间不存在GDOI和ISAKMP的流量,有的只是IPSec加密后的数据。所以根据采用的封装协议不同,适当放行ESP或AH流量即可。但是需要注意的是,这些流量的源和目的不是GM的地址,而是GM所保护网络之间的ESP或AH流量。
协作密钥服务器( Cooperative Key Server
GET×××可以支持多个密钥服务器,它们通过Cisco私有的密钥服务器协作协议(KS Cooperative Protocol)选举出一个首要(Primary)密钥服务器和多个次要(Secondary)密钥服务器。下面介绍一下首要密钥服务器和次要密钥服务器分别承担的任务。
首要密钥服务器(Primary KS):
1. 接受组成员的注册
2. 产生密钥
3. 分发密钥
4. 通知次要密钥服务器同步(同步密钥)
5. 发送密钥更新信息
次要密钥服务器(Secondary KS):
1. 接受组成员的注册
2. 检测首要密钥服务器是否存在
3. 通知首要密钥服务器新的组成员(同步组成员信息)
4. 不发送密钥更新信息
通过上述对首要和次要密钥服务器的介绍,我们能够了解到,在这两种密钥服务器之间密钥(TEK与KEK)和组成员清单是同步的。但是关于IPSec安全关联的内容并不同步,所以我们需要在首要和次要密钥服务器之间手动同步如下内容:
1. IPSec安全关联相关内容
a) 感兴趣流(Proxy Identity)
b) 转换集(Transforms)
c) 生存时间(Lifetimes)
2. 用于对密钥更新信息(Rekey Message)进行签名的RSA密钥对
密钥服务器会对发送的密钥更新信息,使用RSA密钥进行签名,确保密钥更新信息源自于受信任的密钥服务器。为了让次要密钥服务器切换成为首要密钥服务器后,发送的密钥更新信息能够被所有组成员接收,需要在配置时手动同步首要和次要密钥服务器之间的RSA密钥。
GET××× 密钥更新特点
1. 密钥更新信息总是由首要密钥服务器(Primary KS)发送。
2. 密钥更新信息内包含新的IPSec策略,时间同步信息和新的密钥
3. 两种类型的密钥更新信息
a) 加密密钥的密钥(KEK)密钥更新信息
b) 加密数据的密钥(TEK)密钥更新信息
4. 两种密钥更新信息传输方式
a) 组播密钥更新(默认方式)
b) 单播密钥更新
5. 密钥更新信息可以周期性触发(密钥生存时间超过),也可以条件触发(修改了策略)。
GET××× 中的防重放
GET×××是一种特殊IPSec ×××类型,和其它的IPSec ×××一样依然需要防御重放***。但是GET×××又和其它类型的IPSec ×××不同,它可以采用两种不同类型的防重放技术。第一种就是基于计数器的防重放(Counter-Based Anti-Replay),这是所有IPSec ×××的默认防重放策略,也就是使用序列号技术,由于传统的IPSec技术总是点对点的安全关联,发送方不管发送多少个的数据包,都会被接收方收到,发送方每多加密一个数据包序列号就增加一,接收方收到的序列号也会增加一。这种基于计数器的防重放技术,在传统的点对点IPSec安全关联的环境下是可以正常工作的,但是在GET×××这种一对多个IPSec安全关联环境就无法正常的防止重放***了,因为假设发送方加密一百个数据包,可能其中五十个送往了组成员甲,另外五十个去往了组成员乙。如果采用传统的基于计数器的防重放模式,发送方序列号增加一百,但是甲和乙两个组成员序列号只增加五十。所以在GET×××这种一对多个IPSec安全关联环境,无法使用传统的计数器模式的防重放技术。
GET×××的另外一种防重放技术为基于时间的防重放,首先所有组成员通过密钥更新信息从密钥服务器获取伪时间(和真实的时间不同)和防重放窗口。当某组成员加密数据时,在数据包中附上加密时的时间。另外一个组成员收到这个数据包后,就通过图8-15来判断是否应该接收此数据包。
图8-15 基于时间的防重放
 



 
接收方会从数据包中提取这个数据包的发送时间,如果这个时间落在图8-15中“接收数据包”的时间范围,此数据包就将会被解密。如果在这个时间范围以外,接收这个数据包的组成员就会认为它为重放的数据包,并且予以拒绝。
GET××× 感兴趣流访问控制列表配置指南
1. GET×××的主要工作环境是一个大企业的内部网络,一般来说企业内部网络地址都是可以汇总的,例如:部门一网络为10.1.1.0/24,部门二为10.1.2.0/24,等等等等,依此类推。这样我们就可以使用10.0.0.0/8来对整个企业内部网络实现汇总。在这种网络环境配置感兴趣流就比较简单,我们可以使用如下的访问控制列表来加密整个网络内任意到任意的流量。
Access-list 101 permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255
2. 如果GET×××加密的网络不能进行汇总,例如:部门一网络为10.1.1.0/24,部门二的网络为172.16.1.0/24。在这种网络状况部署GET×××,感兴趣流的配置就会变得比较繁琐了,我们需要配置如下的访问控制列表,才能有效的加密部门一和部门二之间的流量。
Access-list 101 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255
Access-list 101 permit ip 172.16.1.0 0.0.0.255 10.1.1.0 0.0.0.255
很明显,如果不可汇总的网段越多,GET×××的感兴趣流配置就会变得越复杂。
3. 可能在网络内部,有些网段之间的流量不希望被某组成员加密,这个时候我们可以在特定组成员上配置访问控制列表,来旁路掉某些流量,不进行加密处理。这种列表叫做组成员访问控制列表(GM ACL),例如:我们可以配置如下GM ACL,来旁路源自于10.1.1.0/24到10.1.3.0/24的流量。
Access-list 102 deny 10.1.1.0 0.0.0.255 10.1.3.0 0.0.0.255
这个列表只需配置“deny”条目,他会被运用到从中心获取的“permit”条目前面来旁路特定网络之间的流量。
实验一 :GET××× 实验
第一部分 : 实验目标
配置GET×××
第二部分 : 实际接线状况
图8-16:GET×××实验实际接线图
 



 
第三部分 : 实验拓扑
图8-17: GET×××实验拓扑
 



 
拓扑介绍:本次实验的主要目的在于模拟在一个企业网内部部署GET×××,这个企业由运营商提供的MPLS ×××网络进行连通,这个MPLS ×××网段为172.16.1.0/24。在这个GET×××拓扑中,有两个密钥服务器和两个组成员。组成员保护网络分别为10.1.1.0/24和10.1.2.0/24。密钥服务器身后为10.1.101.0/24,设计这个网络的主要目的在于告诉大家,密钥服务器虽然能够给组成员分发策略和密钥,但是它本生是不能加密数据的。我们会在后续实验中通过GM ACL技术来旁路去往首要密钥服务器身后的流量。GET×××需要一个全局可路由的网络环境,在这个网络拓扑中,我们选择OSPF为原生路由(Native Routing),整个拓扑都包括在OSPF区域零内。全局可路由是GET×××相比于其它×××的最大特点,也决定了这个技术只能部署在企业内部,或者即将全球部署的IPv6网络。
第四部分 : 基本网络与 OSPF 配置
KS1基本网络与OSPF配置

enable
configure terminal
!
hostname KS1
!
interface Loopback0
ip address 10.1.101.1 255.255.255.0
!
interface FastEthernet0/0
ip address 172.16.1.101 255.255.255.0
no shutdown
!
router ospf 1
network 10.1.101.0 0.0.0.255 area 0
network 172.16.1.0 0.0.0.255 area 0
!
end
KS2基本网络与OSPF配置

enable
configure terminal
!
hostname KS2
!
interface FastEthernet0/0
ip address 172.16.1.102 255.255.255.0
no shutdown
!
router ospf 1
network 172.16.1.0 0.0.0.255 area 0
!
end
GM1基本网络与OSPF配置

enable
configure terminal
!
hostname GM1
!
interface Loopback0
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
no shutdown
!
router ospf 1
network 10.1.1.0 0.0.0.255 area 0
network 172.16.1.0 0.0.0.255 area 0
!
end
GM2基本网络与OSPF配置

enable
configure terminal
!
hostname GM2
!
interface Loopback0
ip address 10.1.2.1 255.255.255.0
!
interface FastEthernet0/0
ip address 172.16.1.2 255.255.255.0
no shutdown
!
router ospf 1
network 10.1.2.0 0.0.0.255 area 0
network 172.16.1.0 0.0.0.255 area 0
!
end
第五部分 : 首要和次要密钥服务器同步 RSA 密钥
首要密钥服务器产生RSA密钥

KS1(config)#ip domain name yeslab.net
<为了产生密钥,配置域名>
!
KS1(config)#crypto key generate rsa modulus 1024 label get***key exportable
<产生一个名字为“get***key”,长度为1024位,可导出的RSA密钥对。>
!
KS1(config)#crypto key export rsa get***key pem terminal 3des yeslabccies
<导出名字为“get***key”的RSA密钥对,使用3DES加密算法来加密导出后的私钥,加密的密码为“yeslabccies”>
% Key name: get***key
Usage: General Purpose Key
Key data:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyIeltVTKA9t1aCLwRnD0M3Wko
4ZEJNsRRqZ/42m50OLafgZJX/bdJhsTXScc/YTmJcKi7ZjWurILaEg4UKbBUPYz/
7svVSQ/TUV4DNFk4M8ScWsqa8N8nhNc9Q4BfJCctCf4HY4s12HD/R8JxsiO4SzPQ
YvjNIRJVT9GH9UKy1QIDAQAB
-----END PUBLIC KEY-----
<上面是明文的公钥>
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CD0C48C098608AC0
TD5Eu0LSixQzf4GlZTVyOQSkrkr+qVmh8hoNmbu8UZTAHtUzDe0LQuQm9cKe3Gvc
4orXLdhcL1QrlUo4WhvIZ/t+bew5XKpuwyI4d/3wdQYGNY8zlHuXpOkeGTHn5w/f
0RyqY1sDY6xQEvobowc8Aztm28/a/62JbWTdtQXqnbOsuVEQ/97yRm1bZ446aRBC
lDi9aoHuVzYsPNs4WlVVZSMudx7K3lfS2UYgOoLRgQpTq7SbAU/F09zpnJotIxyn
izOpUkcJCcUA8tAiLuPVzxnEJf2akfu9ktx+aIqX8K1gUCXDBbjBiChXdpT2vZlJ
ANTRzCtkHmjAHZfUrJ+KNqYQ8j54zD1ADuuKV9DN6ZL75LsHUy5dB6Ef5xg9Bw2M
RnfBiBDERvKwEw+tAfD8u6mGMnyxrWziSCvIFgD5qP1L+dr20wKi+DQufMbMXcYF
0l3mlkkIWzf9RfyrVgGlEcbjIyGGAvMy47EUcLdPZ8rk9p0pwUeKeQQIUOM1r3vN
lARBQicfEhCteZ3q6wq9XJkUfHUPi+fvY0Zdlp/HcEXuMncaBC22r6i1RdSQ9z4q
zEtJ526AukU6nf4HrASkldvpxMlrZWgTBwfYBSDCJ5RBcvKwwCIQqzgiK6fyI0VN
x0cL/PHA0n2FTmYtclbMUaVTgeuG5Vny8dXIGZXJ0tkc4omavCFho5bOrZprJuU9
KPotVfWj175e4Tjh37fnT3Y70kLhtrNFUJ808YD//g1k7+tZt/nsg4ZXlSv4uAhg
W7gWAR9AlGU1khF9yxUWFUmdRoP3OawMXAdmULBazEFz480ScC8zcA==
-----END RSA PRIVATE KEY-----
<上面为使用3DES加密后的私钥>
次要密钥服务器导入RSA密钥

KS2(config)#crypto key import rsa get***key terminal yeslabccies
<导入名字为“get***key”的RSA密钥对,解密密码为“yeslabccies”>
% Enter PEM-formatted public General Purpose key or certificate.
% End with a blank line or "quit" on a line by itself.
<下面是KS1导出公钥的拷贝>
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyIeltVTKA9t1aCLwRnD0M3Wko
4ZEJNsRRqZ/42m50OLafgZJX/bdJhsTXScc/YTmJcKi7ZjWurILaEg4UKbBUPYz/
7svVSQ/TUV4DNFk4M8ScWsqa8N8nhNc9Q4BfJCctCf4HY4s12HD/R8JxsiO4SzPQ
YvjNIRJVT9GH9UKy1QIDAQAB
-----END PUBLIC KEY-----
<回车>
% Enter PEM-formatted encrypted private General Purpose key.
% End with "quit" on a line by itself.
<下面是KS1导出私钥的拷贝>
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CD0C48C098608AC0
TD5Eu0LSixQzf4GlZTVyOQSkrkr+qVmh8hoNmbu8UZTAHtUzDe0LQuQm9cKe3Gvc
4orXLdhcL1QrlUo4WhvIZ/t+bew5XKpuwyI4d/3wdQYGNY8zlHuXpOkeGTHn5w/f
0RyqY1sDY6xQEvobowc8Aztm28/a/62JbWTdtQXqnbOsuVEQ/97yRm1bZ446aRBC
lDi9aoHuVzYsPNs4WlVVZSMudx7K3lfS2UYgOoLRgQpTq7SbAU/F09zpnJotIxyn
izOpUkcJCcUA8tAiLuPVzxnEJf2akfu9ktx+aIqX8K1gUCXDBbjBiChXdpT2vZlJ
ANTRzCtkHmjAHZfUrJ+KNqYQ8j54zD1ADuuKV9DN6ZL75LsHUy5dB6Ef5xg9Bw2M
RnfBiBDERvKwEw+tAfD8u6mGMnyxrWziSCvIFgD5qP1L+dr20wKi+DQufMbMXcYF
0l3mlkkIWzf9RfyrVgGlEcbjIyGGAvMy47EUcLdPZ8rk9p0pwUeKeQQIUOM1r3vN
lARBQicfEhCteZ3q6wq9XJkUfHUPi+fvY0Zdlp/HcEXuMncaBC22r6i1RdSQ9z4q
zEtJ526AukU6nf4HrASkldvpxMlrZWgTBwfYBSDCJ5RBcvKwwCIQqzgiK6fyI0VN
x0cL/PHA0n2FTmYtclbMUaVTgeuG5Vny8dXIGZXJ0tkc4omavCFho5bOrZprJuU9
KPotVfWj175e4Tjh37fnT3Y70kLhtrNFUJ808YD//g1k7+tZt/nsg4ZXlSv4uAhg
W7gWAR9AlGU1khF9yxUWFUmdRoP3OawMXAdmULBazEFz480ScC8zcA==
-----END RSA PRIVATE KEY-----
quit
% Key pair import succeeded.
第六部分 : 首要密钥服务器上的 GET××× 配置
第一步:配置ISAKMP第一阶段策略

KS1(config)#crypto isakmp policy 10
KS1(config-isakmp)#authentication pre-share
!
KS1(config)#crypto isakmp key 0 cisco address 172.16.1.1
KS1(config)#crypto isakmp key 0 cisco address 172.16.1.2
KS1(config)#crypto isakmp key 0 cisco address 172.16.1.102
<注意:密钥服务器间也使用ISAKMP第一阶段进行认证>
第二步:配置感兴趣流

KS1(config)#ip access-list extended get***traffic
KS1(config-ext-nacl)#permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255
<本实验企业网内部需要被保护的网络可以被汇总为10.0.0.0/8>
第三步:配置IPSec Profile

KS1(config)#crypto ipsec transform-set get***-set esp-des esp-md5-hmac
<使用此转换集来加密感兴趣流>
KS1(config)#crypto ipsec profile get***-profile
KS1(ipsec-profile)#set transform-set get***-set
第四步:配置KS1为密钥服务器

KS1(config)#crypto gdoi group mygroup
<配置GET×××组的组名为“mygroup”>
KS1(config-gdoi-group)#identity number 88888
<配置GET×××组ID为“88888”,所有成员都需要使用相同的ID>
KS1(config-gdoi-group)#server local
<配置本地路由器KS1为密钥服务器>
KS1(gdoi-local-server)#address ipv4 172.16.1.101
<配置服务器地址>
注意:GET×××同时只能采用一种密钥更新传输方式,所以实际配置时需要选择第五步A或B的其中一套配置。
第五步A:配置密钥更新(单播)

KS1(gdoi-local-server)#rekey transport unicast
<配置GET×××使用单播传输密钥更新信息,注意默认为组播>
KS1(gdoi-local-server)#rekey authentication mypubkey rsa get***key
<配置对密钥更新信息作签名的RSA密钥对为“get***key”>
KS1(gdoi-local-server)#rekey algorithm aes 256
<此配置为选项,配置密钥更新信息的加密算法>
第五步B:配置密钥更新(组播)

KS1(gdoi-local-server)#rekey authentication mypubkey rsa get***key
<配置对密钥更新信息作签名的RSA密钥对为“get***key”>
KS1(gdoi-local-server)#rekey algorithm aes 256
<此配置为选项,配置密钥更新信息的加密算法>
KS1(gdoi-local-server)#rekey address ipv4 106
<定义组播密钥更新流量>
注意需要提前在全局配置模式配置访问控制列表106
KS1(config)#access-list 106 permit udp host 172.16.1.101 eq 848 host 239.0.1.2 eq 848
<密钥更新信息的组播地址为239.0.1.2,这个地址可以按需配置。>
第六步:配置IPSec安全关联

KS1(gdoi-local-server)#sa ipsec 1
<配置第一个IPSec安全关联>
KS1(gdoi-sa-ipsec)#match address ipv4 get***traffic
<匹配上感兴趣流>
KS1(gdoi-sa-ipsec)#profile get***-profile
<对感兴趣流使用此Profile进行保护>
KS1(gdoi-sa-ipsec)#replay time window-size 2
<此配置为选项,启用基于时间的防重放,窗口大小为2秒>
第七部分 : 组成员一 GET××× 配置
第一步:配置ISAKMP第一阶段策略

GM1(config)#crypto isakmp policy 10
GM1(config-isakmp)#authentication pre-share
!
GM1(config)#crypto isakmp key 0 cisco address 172.16.1.101
GM1(config)#crypto isakmp key 0 cisco address 172.16.1.102
<需要配置与首要和次要密钥服务器进行认证的预共享密钥>
第二步:配置GET×××组

GM1(config)#crypto gdoi group mygroup
GM1(config-gdoi-group)#identity number 88888
<需要和密钥服务器配置相同的组ID>
GM1(config-gdoi-group)#server address ipv4 172.16.1.101
<GM1首先向172.16.1.101密钥服务器发起注册>
GM1(config-gdoi-group)#server address ipv4 172.16.1.102
<GM1如果注册172.16.1.101失败,再向172.16.1.102这个密钥服务器发起注册>
第三步:配置Crypto map

GM1(config)#crypto map cisco 10 gdoi
<使用GDOI协议为crypto map提供密钥资源(TEK)>
GM1(config-crypto-map)#set group mygroup
!
GM1(config)#interface fa0/0
GM1(config-if)#crypto map cisco
GET××× crypto map 调用位置分析
图8-18 GET××× crypto map调用位置分析
现任明教教主GET×××第二部分

 
GET×××最主要的目的是加密组成员身后网络之间的流量,自然GET×××的感兴趣流也正是组成员之间的流量。我们应该把crypto map调用在感兴趣流进出的接口,在图8-18中,组成员一应该把crypto map调用在“S0/0”这个接口,相反如果把crypto map调用在面向密钥服务器的接口“Fa0/0”就没有任何意义,因为感兴趣流(组成员身后网络之间的流量)不可能出现在这个接口上。
第八部分 : 组成员二 GET××× 配置
第一步:配置ISAKMP第一阶段策略

GM2(config)#crypto isakmp policy 10
GM2(config-isakmp)#authentication pre-share
!
GM2(config)#crypto isakmp key 0 cisco address 172.16.1.101
GM2(config)#crypto isakmp key 0 cisco address 172.16.1.102
第二步:配置GET×××组

GM2(config)#crypto gdoi group mygroup
GM2(config-gdoi-group)#identity number 88888
GM2(config-gdoi-group)#server address ipv4 172.16.1.101
GM2(config-gdoi-group)#server address ipv4 172.16.1.102
第三步:配置Crypto map

GM2(config)#crypto map cisco 10 gdoi
GM2(config-crypto-map)#set group mygroup
!
GM2(config)#interface fa0/0
GM2(config-if)#crypto map cisco
第九部分 : 查看首要服务器 GET××× 状态
首要密钥服务器KS1上查看GDOI组状态

KS1#show crypto gdoi group mygroup
Group Name : mygroup (Unicast)
<GDOI的组名为“mygroup”,密钥更新方式为单播>
Group Identity : 88888
Group Members : 2
<已经注册的组成员有2个>
IPSec SA Direction : Both
Active Group Server : Local
Group Rekey Lifetime : 86400 secs
Rekey Retransmit Period : 10 secs
Rekey Retransmit Attempts: 2
IPSec SA Number : 1
IPSec SA Rekey Lifetime: 3600 secs
Profile Name : get***-profile
<加密用的IPSec Profile为“get***-profile”>
Replay method : Time Based
<启用了基于时间的防重放,防重放的时间窗口为2秒>
Replay Window Size : 2
SA Rekey
Remaining Lifetime : 2974 secs
ACL Configured : access-list get***traffic
<感兴趣流为访问控制列表“get***traffic”所定义的流量>
Group Server list : Local
首要密钥服务器KS1上查看注册的组成员

KS1#show crypto gdoi ks members
Group Member Information :
Number of rekeys sent for group mygroup : 0
Group Member ID : 172.16.1.1
Group ID : 88888
Group Name : mygroup
Key Server ID : 172.16.1.101
Rekeys sent : 0
Rekeys retries : 0
Rekey Acks Rcvd : 0
Rekey Acks missed : 0
Sent seq num : 0 0 0 0
Rcvd seq num : 0 0 0 0
Group Member ID : 172.16.1.2
Group ID : 88888
Group Name : mygroup
Key Server ID : 172.16.1.101
Rekeys sent : 0
Rekeys retries : 0
Rekey Acks Rcvd : 0
Rekey Acks missed : 0
Sent seq num : 0 0 0 0
Rcvd seq num : 0 0 0 0
第十部分 : 查看组成员 GET××× 状态
组成员GM1上查看GDOI组状态

GM1#show crypto gdoi group mygroup
Group Name : mygroup
Group Identity : 88888
Rekeys received : 0
IPSec SA Direction : Both
Active Group Server : 172.16.1.101
Group Server list : 172.16.1.101
GM Reregisters in : 2439 secs
Rekey Received : never
Rekeys received
Cumulative : 0
After registration : 0
ACL Downloaded From KS 172.16.1.101:
access-list permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255
<从KS1获取的感兴趣流>
TEK POLICY:
FastEthernet0/0:
IPsec SA:
sa direction:inbound
spi: 0xF8CE9C11(4174289937)
transform: esp-des esp-md5-hmac
sa timing:remaining key lifetime (sec): (2498)
Anti-Replay : Disabled
IPsec SA:
sa direction:outbound
spi: 0xF8CE9C11(4174289937)
<注意:inbound和outbound两个方向IPSec SA的SPI相同,表示是一个安全关联>
transform: esp-des esp-md5-hmac
sa timing:remaining key lifetime (sec): (2498)
Anti-Replay : Disabled
第十一部分 : 组成员上测试 GET××× 的加解密
第一步:在GM1测试前查看加解密状况

GM1#show crypto engine connections active
Crypto Engine Connections
ID Interface Type Algorithm Encrypt Decrypt IP-Address
3 Fa0/0 IPsec DES+MD5 0 0 10.0.0.0
4 Fa0/0 IPsec DES+MD5 0 0 10.0.0.0
1002 Fa0/0 IKE SHA+DES 0 0 172.16.1.1
第二步:GM1上通过Ping产生加密的感兴趣流

GM1#ping 10.1.2.1 source 10.1.1.1 repeat 100
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 10.1.2.1, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (100/100), round-trip min/avg/max = 32/179/432 ms
第三步:在GM1测试后查看加解密状况

G GM1#show crypto engine connections active
Crypto Engine Connections
ID Interface Type Algorithm Encrypt Decrypt IP-Address
3 Fa0/0 IPsec DES+MD5 0 100 10.0.0.0
4 Fa0/0 IPsec DES+MD5 100 0 10.0.0.0
1002 Fa0/0 IKE SHA+DES 0 0 172.16.1.1
第十二部分 : 在首要密钥服务器 KS1 上配置次要密钥服务器 KS2
首要密钥服务器KS1上关于冗余密钥服务器的配置

KS1(config)#cry gdoi group mygroup
KS1(config-gdoi-group)#server local
KS1(gdoi-local-server)#redundancy
<进入密钥服务器的冗余配置模式>
KS1(gdoi-coop-ks-config)#local priority 100
<配置本地密钥服务器的优先级,KS1为首要服务器,所以值应该比KS2高>
KS1(gdoi-coop-ks-config)#peer address ipv4 172.16.1.102
<指定其它密钥服务器的地址>
第十三部分 : 配置次要密钥服务器 KS2

KS2#config t
KS2(config)#crypto isakmp policy 10
KS2(config-isakmp)# authentication pre-share
KS2(config)# crypto isakmp key cisco address 172.16.1.1
KS2(config)#crypto isakmp key cisco address 172.16.1.2
KS2(config)#crypto isakmp key cisco address 172.16.1.101
KS2(config)#ip access-list extended get***traffic
KS2(config-ext-nacl)# permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255
KS2(config)# crypto ipsec transform-set get***-set esp-des esp-md5-hmac
KS2(config)# crypto ipsec profile get***-profile
KS2(ipsec-profile)# set transform-set get***-set
KS2(config)# crypto gdoi group mygroup
KS2(config-gdoi-group)# identity number 88888
KS2(config-gdoi-group)# server local
KS2(gdoi-local-server)# rekey algorithm aes 256
KS2(gdoi-local-server)# rekey authentication mypubkey rsa get***key
KS2(gdoi-local-server)# rekey transport unicast
KS2(gdoi-local-server)# sa ipsec 1
KS2(gdoi-sa-ipsec)# profile get***-profile
KS2(gdoi-sa-ipsec)# match address ipv4 get***traffic
KS2(gdoi-sa-ipsec)# replay time window-size 2
KS2(gdoi-sa-ipsec)#address ipv4 172.16.1.102
KS2(gdoi-local-server)#redundancy
KS2(gdoi-coop-ks-config)# local priority 75
KS2(gdoi-coop-ks-config)# peer address ipv4 172.16.1.101
第十四部分 : 查看协作密钥服务器
首要密钥服务器KS1上查看协作密钥服务器状态

KS1#show crypto gdoi ks coop
Crypto Gdoi Group Name :mygroup
Group handle: 2147483650, Local Key Server handle: 2147483650
Local Address: 172.16.1.101
Local Priority: 100
Local KS Role: Primary , Local KS Status: Alive
Primary Timers:
Primary Refresh Policy Time: 20
Remaining Time: 15
Antireplay Sequence Number: 11
Peer Sessions:
Session 1:
Server handle: 2147483651
Peer Address: 172.16.1.102
Peer Priority: 75
Peer KS Role: Secondary , Peer KS Status: Alive
Antireplay Sequence Number: 3
IKE status: Established
Counters:
Ann msgs sent: 9
Ann msgs sent with reply request: 1
Ann msgs recv: 1
Ann msgs recv with reply request: 3
Packet sent drops: 1
Packet Recv drops: 0
Total bytes sent: 1800
Total bytes recv: 359
第十五部分 : 组成员访问控制列表配置
第一步: GM1测试访问KS1身后网络

GM1#ping 10.1.101.1 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.101.1, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
.....
Success rate is 0 percent (0/5)
不能通讯的原因为:源为10.1.1.1目的为10.1.101.1的流量满足GET×××的感兴趣流,KS1会对这个流量进行加密,但是密钥服务器KS1,不存在IPSec SA所以不能对此流量进行解密,所以造成无法通讯。解决方案为,在组成员GM1上配置组成员访问控制列表,旁路掉从10.1.1.0/24到10.1.101.0/24的流量。
第二步:在组成员GM1上配置组成员访问控制列表

GM1(config)#ip access-list extended bypass
GM1(config-ext-nacl)#deny ip 10.1.1.0 0.0.0.255 10.1.101.0 0.0.0.255
GM1(config)#crypto map cisco 10
GM1(config-crypto-map)#match address bypass
第三步: GM1测试访问KS1身后网络

GM1#ping 10.1.101.1 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.101.1, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 48/120/156 ms