ospfv3是基于ipv6的路由协议,因为IPV6本身的IPSEC安全特性,OSPFV3本身就已经没有再带安全认证功能,这一功能由IPV6协议来完成。
(我查了好久,书里并没有提到如何配置,国内的论坛也很少说到,即使有说到配置,也没有文字说明,看得很不明白。查了国外的文章,才找了相关的资料。还是得谢谢google啊。)
IPSEC有两种安全认证方法:AH 头和ESP头,AH支持认证,完整性校验,和防报文重放功能,ESP则更加强大,除了AH的前面几样功能,ESP还支持加密功能。但是由于目前的IOS性能,可能还不支持ESP的OSPFV3.所以只能用AH。
实验:
R1:
接口Serial0 / 0
没有IP地址
IPv6地址 2001:12 :: 1 / 64
ipv6地址FE80:12 :: 1 本地链接
ipv6 ospf 100 区域 0
ipv6 ospf身份验证ipsec spi 256 sha1 5749 CD34D2B87A1D4868F8ACA1ABF2F7025A32CA
串行重启延迟 0
!
ipv6路由器ospf 100
路由器ID 1.1 .1 .1
对数邻接更改
R2:
接口Serial0 / 0
没有IP地址
IPv6地址 2001:12 :: 2 / 64
ipv6地址FE80:12 :: 2 本地链接
ipv6 ospf 100 区域 0
ipv6 ospf身份验证ipsec spi 256 sha1 5749 CD34D2B87A1D4868F8ACA1ABF2F7025A32CA
串行重启延迟 0
ipv6路由器ospf 100
路由器ID 2.2 .2 .2
对数邻接更改
关键点在于其中红色部分的spi字段,spi跟我们配置key chain中的key number是具有相似的功能的,可以理解为标识符,标识这一条加密连接,但是在OSPFV3中,spi是必须匹配的。
这个值可能随便起,但是范围在256~~~4,294,967,295。必须匹配。
支持的hash算法有两种,MD5和SHA,
MD5有32个字符,SHA有40个字符长。在配置的时候这个值输入进去很费事。可以用另一种方法来代替,如果你用的是linux系统,则:
yeelone @ yee:〜$ dd 如果 = / dev / urandom count = 1024 | sha1sum
5749 cd34d2b87a1d4868f8aca1abf2f7025a32ca-
记录了1024 + 0 的读入
记录了1024 + 0 的写出
524288字节(524 kB)已复制,0.123345 秒,4.3 MB /秒
yeelone @ yee:〜$
通过linux的dd命令和sha1sum来算出一个随机的hash值,然后复制进去。
r2 #show crypto ipsec sa
入站ah sas:
spi:0x100(256)
转换:ah-sha-hmac,
使用 设置 = {运输,}
conn id:2004,flow_id:SW:4,crypto map:(无)
没有时间
重放检测支持:N
状态:ACTIVE
入站pcp sas:
出站esp sas:
出站啊,SAS:
spi:0x100(256)
转换:ah-sha-hmac,
使用 设置 = {运输,}
conn id:2003,flow_id:SW:3,crypto map:(无)
没有时间
重放检测支持:N
状态:ACTIVE
ospfv3即支持基于接口的认证,如上实验,也支持基于area的认证。
实验二:
拓扑还是上面那个:
R1:
ipv6路由器ospf 100
路由器ID 1.1 .1 .1
对数邻接更改
区域 0 验证ipsec spi 256 sha1 5749 CD34D2B87A1D4868F8ACA1ABF2F7
025A32CA
现在很多地方要用到IPSEC,个人感觉IPSEC真不好理解,理论真多。