1、IPsec是怎么对GRE进行加密的
 GRE:
  公网地址+GRE隧道接口地址+原始数据包地址
 IPSEC over GRE:
  公网地址+IPsec加密点地址+原始数据包地址

2、匹配MAP的条件:
 在接口上必须有map
 源和目的地址必须满足map中的acl

3、关于IPSEC over GRE
 目的:
  配置GRE的目的是可以在隧道两边使用动态路由协议,通过隧道相互之间进

行学习,但是GRE隧道只是起到一个隧道的作用,还要通过IPsec进行加密,就将这两者结合

起来使用,这种技术一般不会用在工程里面,在工程里面用的比较广泛的技术就是GRE over 

IPsec
 缺点:
  有多少感兴趣流量,就要定义多少条ACL,很麻烦

 步骤:
  先配置GRE隧道
  在GRE隧道上面配置路由
  配置IPsec

一、使用tunnel接口作为ESP封装的源和目的IP地址(加密的更新源)


                        物理接口:202.100.1.0/24
                      |-----------------------|
 --1.1.1.1---|R1|--------------------|R2|--4.4.4.4--
                      |-----------------------|
                           隧道地址:172.16.1.0/24

 通信点流量:1.1.1.1<------------>4.4.4.4 (感兴趣流量)
 加密点接口:202.100.1.1<-------->202.100.1.2(使用物理接口做加密点更新源)

使用物理接口作为加密更新源的步骤分析:
 1、建立GRE隧道,通过GRE隧道让两边都能学习到对端的路由
 2、原始数据包:1.1.1.1--->4.4.4.4
  查找路由表,发现4.4.4.4是从tunnel接口学习到的
  将流量转发到tunnel接口,发现tunnel接口上面有map
  匹配map发现该流量是map中定义的感兴趣流量,进行ESP封装
  ESP封装:使用的是ipsec中定义的加密更新源和目的地址
   202.100.1.1--->202.100.1.2
 3、ESP封装的数据包:202.100.1.1--->202.100.1.2
  查找路由表,发现202.100.1.2就是本地的物理接口地址
  直接发送到物理接口,并去匹配物理接口上的map
  发现该流量并不是该map中定义的感兴趣流量
  通过物理接口发送出去


 R1:
 interface tunnel 0
 ip address 172.16.1.1 255.25.255.0
 no shutdown
 tunnel source fa0/0
 tunnel destination 202.100.1.2
 exit
 router ospf 1
 network 172.16.1.0 0.0.0.255 area 0
 network 1.1.1.1 0.0.0.0 area 0
 network 2.2.2.2 0.0.0.0 area 0
 network 3.3.3.3 0.0.0.0 area 0

 R2:
 interface tunnel 1
 ip address 172.16.1.2 255.255.255.0
 tunnel source fa0/0
 tunnel destination 202.100.1.1
 router ospf 1
 network 172.16.1.0 0.0.0.255 area 0
 network 4.4.4.4 0.0.0.0 area 0
 network 5.5.5.5 0.0.0.0 area 0
 network 6.6.6.6 0.0.0.0 area 0


 建立IPsec ×××
 R1:
 crypto isakmp policy 10
 authentication pre-share
 encryption 3des
 hash sha
 group 2
 crypto isakmp key cisco address 202.100.1.1
 crypto ipsec transform-set cisco esp-des esp-md5-hmac
 crypto map cisco 10 ipsec-isakmp
 set peer 202.100.1.2
 set transform-set cisco
 match address ***
 exit
 ip access-list extended ***
 permit ip host 1.1.1.1 host 4.4.4.4
 interface tunnel 0
 crypto map cisco
 interface fa0/0
 crypto map cisco
 tunnel口上必须启用map,除此之外,在所有的物理接口上最好也启用该map

 R2:
 crypto isakmp policy 10
 authentication pre-share
 encryption 3des
 hash sha
 group 2
 crypto isakmp key cisco address 202.100.1.1
 crypto ipsec transform-set cisco esp-des esp-md5-hmac
 crypto map cisco 10 ipsec-isakmp
 set peer 202.100.1.1
 set transform-set cisco
 match address ***
 exit
 ip access-list extended ***
 permit ip host 4.4.4.4 host 1.1.1.1
 interface tunnel 0
 crypto map cisco
 interface fa0/0
 crypto map cisco


二、使用回环接口地址作为ESP封装的源和目的IP

使用环回接口作为加密更新源的步骤分析:

        物理接口:202.100.1.0/24
       |------------------------|
 --1.1.1.1---|R1|--------------------|R2|--4.4.4.4--
       |------------------------|
         隧道地址:172.16.1.0/24

 通信点流量:1.1.1.1<------------>4.4.4.4 (感兴趣流量)
 加密点接口:11.1.1.1<-------->22.2.2.2(使用回环接口做加密点更新源)

 1、原始数据包1.1.1.1--->4.4.4.4
  查询路由表,发现到达4.4.4.4的出口是tunnel接口
  发送到tunnel接口上,而在tunnel接口上又有map
  匹配map,发现该流量是map中定义的感兴趣流量
  对该流量进行加密,封装ESP包头
  ESP封装:通过IPsec中定义的源和目的地址
 2、ESP封装后的数据包:11.1.1.1--->22.2.2.2
  查询路由表,发现到达22.2.2.2的下一跳还是tunnel接口
  将这个新的数据包发送给tunnel接口
  tunnel接口收到以后,匹配map,发现不是map中定义的感兴趣流量
  该流量在tunnel接口上进行GRE封装,封装成为正常的数据包
  GRE封装:使用GRE隧道中定义的源和目的地址进行封装
 3、GRE封装后的数据包:202.100.1.1--->202.100.1.2
  查找路由表,发现目的地址的下一跳是物理接口
  新的数据包从物理接口进行正常的转发

 新的数据包的IP包头结构
 |202.100.1.1-->202.100.1.2|+|11.1.1.1-->22.2.2.2|+|1.1.1.1-->4.4.4.4|

 R1:
 interface loopback 0
 ip address 11.1.1.1 255.255.255.0
 no shutdown
 rotuer ospf 1
 network 11.1.1.0 0.0.0.255 area 0
 exit
 no crypto isakmp key cisco address 202.100.1.2
 crypto isakmp key cisco address 22.2.2.2
 crypto map cisco 10 ipsec-isakmp
 no set peer 202.100.1.2
 set peer 22.2.2.2
 exit
 crypto map cisco local-address loopback 0
  使用换回口地址作为加密的更新源

 R2:
 interface loopback 1
 ip address 22.2.2.2 255.255.255.0
 no shutdown
 router ospf 1
 network 22.2.2.0 0.0.0.255 area 0
 exit
 no crypto isakmp key cisco address 202.100.1.1
 crypto isakmp key cisco address 11.1.1.1
 crypto map cisco 10 ipsec-isakmp
 no set peer 202.100.1.1
 set peer 11.1.1.1
 exit
 crypto map cisco local-address loopback 0