上一篇我们记录到了两台路由器之间以tunnel方式建立ipsec连接,并在感兴趣流上建立gre隧道的配置,本次我们将记录两台路由器之间建立站点到站点之间的ipsec连接,并只加密两者之间的gre通信。
传输模式(transport)的ipsec连接之间只能加密站点到站点,而且不允许中间有nat。
=================================R0的配置===================================
crypto isakmp policy 1 //配置IPSec第一阶段
hash md5
authentication pre-share
group 2
lifetime 3600
crypto isakmp key 1234 address 192.168.8.1 //配置第一阶段的预共享密钥
!
crypto ipsec transform-set 1 esp-3des esp-md5-hmac //配置第二阶段的加密策略
mode transport //传输模式
!
crypto map 1 1 ipsec-isakmp //配置第二阶段map
set peer 192.168.8.1
set transform-set 1
set pfs group2
match address greoveripsec //匹配感兴趣流
interface Tunnel1 //配置gre隧道
ip address 192.168.10.1 255.255.255.0
tunnel source 192.168.1.1
tunnel destination 192.168.8.1
!
interface Serial1/0 //配置物理接口
ip address 192.168.1.1 255.255.255.0
serial restart-delay 0
crypto map 1
!
ip access-list extended greoveripsec //配置感兴趣流,仅仅匹配R0和R2之间的gre协议
permit gre host 192.168.1.1 host 192.168.8.1
R0的路由:
Router#show ip route
C 192.168.88.0/24 is directly connected, Loopback1
C 192.168.10.0/24 is directly connected, Tunnel1
C 192.168.1.0/24 is directly connected, Serial1/0
S* 0.0.0.0/0 is directly connected, Serial1/0
======================================================================
=================================R2的配置===================================
crypto isakmp policy 1 //配置IPSec第一阶段
hash md5
authentication pre-share
group 2
lifetime 3600
crypto isakmp key 1234 address 192.168.1.1 //配置第一阶段的预共享密钥
!
crypto ipsec transform-set 1 esp-3des esp-md5-hmac //配置第二阶段的加密策略
mode transport //传输模式
!
crypto map 1 1 ipsec-isakmp //配置第二阶段map
set peer 192.168.1.1
set transform-set 1
set pfs group2
match address greoveripsec //匹配感兴趣流
interface Tunnel1 //配置gre隧道
ip address 192.168.10.1 255.255.255.0
tunnel source 192.168.8.1
tunnel destination 192.168.1.1
!
interface Serial1/0 //配置物理接口
ip address 192.168.8.1 255.255.255.0
serial restart-delay 0
crypto map 1
!
ip access-list extended greoveripsec //配置感兴趣流,仅仅匹配R2和R0之间的gre协议
permit gre host 192.168.8.1 host 192.168.1.1
R0的路由:
Router#show ip route
C 192.168.8.0/24 is directly connected, Serial1/0
C 192.168.10.0/24 is directly connected, Tunnel1
C 192.168.99.0/24 is directly connected, Loopback1
S* 0.0.0.0/0 is directly connected, Serial1/0
===================================================================================
完成R0和R2之间的ipsec配置之后,我们在R0上执行“ping 192.168.8.1”来触发R0主动与R2建立ipsec连接。
在建立ipsec连接之后,我们来检验一下R0和R2之间的icmp协议是否被加密:
Router#ping 192.168.8.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.8.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/26/68 ms
通过抓包我们来看,icmp协议是否被加密:
从图中我们可以看到,R0和R2之间的icmp协议并没有被加密,而仅仅是正常的通信包。
我们继续完成我们的配置:在R0和R2上配置gre隧道,请参见R0和R2之间的配置,本处不再赘述。
在完成gre隧道的配置后,我们来检验一下我们配置的gre隧道是否能够正常通信(在R0上执行命令“ping 192.168.10.2”):
Router#ping 192.168.10.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/43/88 ms
此时我们通过抓包工具来看,R0和R2之间的gre通信是否被加密:
从图中我们可以看出,R0和R2之间的gre通信已被加密,而且是仅仅被加密的协议。
到此处,我们就完成了我们本次的目的,gre over IPSec,而且是站点之间以transport的形式建立连接。本文中讲到的只加密gre协议,非常有利于R0和R2之间的通信,可以避免两者之间其他协议通信时因为加密/揭秘而浪费的大量的cpu时间。
下一文,我们将以另外一种形式来记录站点与站点之间的gre over ipsec,而且配置简单,且适用广泛!