ospfv3是基于ipv6的路由协议,因为IPV6本身的IPSEC安全特性,OSPFV3本身就已经没有再带安全认证功能,这一功能由IPV6协议来完成。

    (我查了好久,书里并没有提到如何配置,国内的论坛也很少说到,即使有说到配置,也没有文字说明,看得很不明白。查了国外的文章,才找了相关的资料。还是得谢谢google啊。)

    IPSEC有两种安全认证方法:AH 头和ESP头,AH支持认证,完整性校验,和防报文重放功能,ESP则更加强大,除了AH的前面几样功能,ESP还支持加密功能。但是由于目前的IOS性能,可能还不支持ESP的OSPFV3.所以只能用AH。

    实验:

 

 
  
  1. R1: 
  2.  
  3. interface Serial0/0 
  4.  no ip address 
  5.  ipv6 address 2001:12::1/64 
  6.  ipv6 address FE80:12::1 link-local 
  7.  ipv6 ospf 100 area 0 
  8.  ipv6 ospf authentication ipsec spi 256 sha1 5749CD34D2B87A1D4868F8ACA1ABF2F7025A32CA 
  9.  serial restart-delay 0 
  10.  
  11. ipv6 router ospf 100 
  12.  router-id 1.1.1.1 
  13.  log-adjacency-changes 

 

 
  
  1. R2: 
  2.  
  3. interface Serial0/0 
  4.  no ip address 
  5.  ipv6 address 2001:12::2/64 
  6.  ipv6 address FE80:12::2 link-local 
  7.  ipv6 ospf 100 area 0 
  8.  ipv6 ospf authentication ipsec spi 256 sha1 5749CD34D2B87A1D4868F8ACA1ABF2F7025A32CA 
  9.  serial restart-delay 0 
  10.  
  11. ipv6 router ospf 100 
  12.  router-id 2.2.2.2 
  13.  log-adjacency-changes 

关键点在于其中红色部分的spi字段,spi跟我们配置key chain中的key number是具有相似的功能的,可以理解为标识符,标识这一条加密连接,但是在OSPFV3中,spi是必须匹配的。

这个值可能随便起,但是范围在256~~~4,294,967,295。必须匹配。

支持的hash算法有两种,MD5和SHA,

MD5有32个字符,SHA有40个字符长。在配置的时候这个值输入进去很费事。可以用另一种方法来代替,如果你用的是linux系统,则:

 

 
  
  1. yeelone@yee:~$ dd if=/dev/urandom count=1024 | sha1sum  
  2. 5749cd34d2b87a1d4868f8aca1abf2f7025a32ca  - 
  3. 记录了1024+0 的读入 
  4. 记录了1024+0 的写出 
  5. 524288字节(524 kB)已复制,0.123345 秒,4.3 MB/秒 
  6. yeelone@yee:~$  

通过linux的dd命令和sha1sum来算出一个随机的hash值,然后复制进去。

 

 
  
  1. r2#show crypto  ipsec  sa  
  2.  
  3.  
  4.     inbound ah sas: 
  5.       spi: 0x100(256) 
  6.         transform: ah-sha-hmac , 
  7.         in use settings ={Transport, } 
  8.         conn id: 2004, flow_id: SW:4, crypto map: (none) 
  9.         no sa timing 
  10.         replay detection support: N 
  11.         Status: ACTIVE 
  12.  
  13.      inbound pcp sas: 
  14.  
  15.      outbound esp sas: 
  16.  
  17.      outbound ah sas: 
  18.       spi: 0x100(256) 
  19.         transform: ah-sha-hmac , 
  20.         in use settings ={Transport, } 
  21.         conn id: 2003, flow_id: SW:3, crypto map: (none) 
  22.         no sa timing 
  23.         replay detection support: N 
  24.         Status: ACTIVE 

 

ospfv3即支持基于接口的认证,如上实验,也支持基于area的认证。

实验二:

拓扑还是上面那个:

 

 
  
  1. R1: 
  2.  
  3. ipv6 router ospf 100 
  4.  router-id 1.1.1.1 
  5.  log-adjacency-changes 
  6.  area 0 authentication ipsec spi 256 sha1 5749CD34D2B87A1D4868F8ACA1ABF2F7
  7. 025A32CA 

 

 

现在很多地方要用到IPSEC,个人感觉IPSEC真不好理解,理论真多。