上一篇我们记录到了两台路由器之间以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,而且配置简单,且适用广泛!