篇一:GRE over IPsec 与IPsec over GRE的区别
IPSEC Over GRE与GRE Over IPSEC的区别和好处~
昨天发了个关于GRE故障解决过程的帖子,网友jhaterry的分析问题和解决问题的能力很棒,总结的也很好,为了更好的让午饭们理解IPSEC Over GRE与GRE Over IPSEC的区别与好处,特有下文与大家分享,通过此文希望能让大家更好的理解IPSEC与GRE,更好的根据实际情况将该技术应用到实际环境和项目中下面进入正题:
到底是IPSEC Over GRE好呢,还是GRE Over IPSEC好?以前一直是出于一个模糊的状态,能通就行了么。今天再次作了一下研究比较,得出的结论是,当然是GRE Over IPSEC好!
在此,先把这两个概念理一下。IPSEC Over GRE即IPSEC在里,GRE在外。先把需要加密的数据包封装成IPSEC包,然后再扔到GRE隧道里。作法是把IPSEC的加密图作用在Tunnel口上的,即在Tunnel口上监控(访问控制列表监控本地ip网段-源i和远端ip网段-目的地),是否有需要加密的数据流,有则先加密封装为IPSEC包,然后封装成GRE包进入隧道(这里显而易见的是,GRE隧道始终无论如何都是存在的,即GRE隧道的建立过程并没有被加密),同时,未在访问控制列表里的数据流将以不加密的状态直接走GRE隧道,即存在有些数据可能被不安全地传递的状况。而GRE Over IPSEC是指,先把数据分装成GRE包,然后再分装成IPSEC包。做法是在物理接口上监控,是否有需要加密的GRE流量(访问控制列表针对GRE两端的设备ip),所有的这两个端点的GRE数据流将被加密分装为IPSEC包再进行传递,这样保证的是所有的数据包都会被加密,包括隧道的建立和路由的建立和传递。
IPSEC Over GRE:
a. 访问控制列表,针对两个网段的数据流,如:
ip access-list extended vpn12
permit ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255b. 加密图放在Tunnel口
GRE Over IPSEC:
a. 访问列表,针对两个路由器之间的GRE流,如:
ip access-list extended vpn12
permit gre host 172.16.11.2 host 172.16.22.2b. 加密图作用在物理口。
1、两者的封包过程
IPPSEC Over GRE即IPSEC在里,GRE在外。先把需要加密的数据包封装成IPSEC包,然后再扔到GRE隧道里。做法是把IPSEC的加密图作用在Tunnel 口上的,即在Tunnel口上监控(访问控制列表监控本地ip网段-源i和远端ip网段-目的地),是否有需要加密的数据流,有则先加密封装为IPSEC 包,然后封装成GRE包进入隧道(这里显而易见的是,GRE隧道始终都是存在的,即GRE隧道的建立过程并没有被加密),同时,未在访问控制列表里的数据流将以不加密的状态直接走GRE隧道,即存在有些数据可能被不安全地传递的状况。而GRE Over IPSEC是指,先把数据分装成GRE包,然后再分装成IPSEC包。做法是在物理接口上监控,是否有需要加密的GRE流量(访问控制列表针对GRE两端的设备ip),所有的这两个端点的GRE数据流将被加密封装为IPSEC包再进行传递,这样保证的是所有的数据包都会被加密,包括隧道的建立和路由的建立和传递。
2、加密映射图的应用
IPSEC Over GRE:
a. 访问控制列表,针对两个网段的数据流,如:
ip access-list extended vpn12
permit ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
b. 加密图放在Tunnel口
GRE Over IPSEC:
a. 访问列表,针对两个路由器之间的GRE流,如:
ip access-list extended vpn12
permit gre host 172.16.11.2 host 172.16.22.2
b. 加密图作用在物理口。
无论是哪种数据流,若一方进行了加密,而另一方没有配,则无法通讯,对于GRE,则路由邻居都无法建立。
3、隧道模式和传输模式
所谓的隧道模式还是传输模式,是针对如ESP如何封装数据包的,前提是ESP在最外面,如果都被Over到了 GRE里,自然谈不上什么隧道模式和传输模式(都为隧道模式)。只有当GRE Over IPSEC的时候,才可以将模式改为传输模式。
IPSEC不支持组播,即不能传递路由协议,而GRE支持
无论是哪种数据流,若一方进行了加密,而另一方没有配,则无法通讯,对于GRE则,路由邻居都无法建立。
另一个概念是隧道模式和传输模式。所谓的隧道模式还是传输模式,是针对如ESP如何封装数据包的,前提是ESP在最外面,如果都被Over到了GRE里,自然谈不上什么隧道模式和传输模式(都为隧道模式)。只有当GRE Over IPSEC的时候,才可以将模式改为传输模式。
IPSEC不支持组播,即不能传递路由协议,而GRE支持。
GRE OVER IPSEC :
IP< IPSEC<GRE<IP<TCP
外层ip就是公网的路由IP,GRE over IPSec,是将整个已经封装过的GRE数据包进行加密
由于IPSec不支持对多播和广播数据包的加密,这样的话,使用IPSec的隧道中,动态路由协议等依靠多播和广播的协议就不能进行正常通告,所以,这时候要配合GRE隧道,GRE隧道会将多播和广播数据包封装到单播包中,再经过IPSec加密。
此外由于GRE建立的是简单的,不进行加密的VPN隧道,他通过在物理链路中使用ip地址和路由穿越普通网络。所以很常见的方法就是使用IPSec对GRE进行加密,提供数据安全保证
关于GRE over IPsec及IPsec over GRE
2008-07-30 22:27:35
标签:VPN
GRE over IPsec & IPsec over GRE IPSec -Over-GRE是先ipsec后gre,这种我没用过。
GRE -Over-IPSec 是先gre后ipsec,也就是说ipsec是最后的承载方式。一般常用的就是这种,解决了ipsec不支持多播的问题。
另外在mtu上也有一些相关,gre是先分段后封装,而ipsec则是先封装再分段。
个人理解。
IPsec over GRE 和GRE over IPsec在配置上的区别:
GRE over IPsec IPsec over GRE ACL定义:GRE数据
流内网数据流
IKE Peer中指定的remote-address对方公网地
址 对方GRE Tunnel地址
应用端口:公网出口 GRE Tunnel上
over (传输模式) 封装
好处:可以利用GRE封装组播或广播了以及非IP流量,因为如果不使用GRE的话,IPSEC是传不了组播或广播IP流量的
over (里外)(tunel模式) over :GRE在外面,由来封装注意!!!IPSEC over 的时候,路由协议流量是明文的
注意!!!当指的peer是对等体物理接口地址的时候不是IPSEC over GRE,只有当peer是对等体的lookback是才是真正的 over
源文档 <[url]https://www.netyourlife.net/forum/viewthread.php?tid=6766&highlight=ipsec%2Bgre[/url]>
Cisco Tunnel Over IPSec例子
R1 (s1/0)----------------------------------------------S1/0(R2)
200.1.1.1 200.1.1.2
由于IPSEC隧道不能承载路由协议.所以对VPN的扩展性造成了很大的影响.
GRE能够封装路由协议,但是单纯的password不能解决在公网上面安全性的问题.所以如果把GRE和IPSEC完美的结合起来,不仅可以解决VPN 扩展性的问题,同时也能解决安全性的目的.一下的例子是完全按照小弟的一个案子模拟出来的.有什么不妥的地方希望大家指正批评. R1配置:
篇二:GRE OVER IPSEC VPN 配置
GRE OVER IPSEC VPN 配置
IPSec VPN 专题四:GRE over IPSec 环境: 1:R4/R5/R6之间通过Static Route来建立联通性: 2:R4--R6之间建立GRE Tunnel 3:R4--R6之间建立IPSec VPN 需求:要求PC3 和 PC7能够互通 涉及技术点:GRE Tunnel的建立、IPSec 建立 、 分析数据包的流程 配置
环境:
1:R4/R5/R6之间通过Static Route来建立联通性:
2:R4<-->R6之间建立GRE Tunnel
3:R4<-->R6之间建立IPSec VPN
需求:要求PC3 和 PC7能够互通
涉及技术点:GRE Tunnel的建立、IPSec 建立 、 分析数据包的流程 配置步骤:
1:R4/R5/R6之间通过Static Route来互通
2:内网之间的互通通过OSPF来建立:R4/R6的Loopback口通过OSPF学到 3:IPSec 的Peer互指对端Loopack(分析问题的原因)
4:测试GRE Over IPSec的特性:
5:解决方法:
在R4/R6之间指定Static路由到达对端的Loopback口
IPSec Peer指对端的物理接口,而不是Loopback口(推荐)
如果对端Peer使用Loopback那么Tunnel和IPSec均将无法建立成功: 1:R4/R6配置静态路由:(互通)
R4上的静态路由: ip route 1.1.56.0 255.255.255.0 1.1.45.5
R6上的静态路由:
ip route 1.1.45.0 255.255.255.0 1.1.56.5
2:R4/R6之间建立GRE Tunnel:
==>R4的配置:
interface Tunnel0
ip address 172.16.10.4 255.255.255.0
tunnel source 1.1.45.4
tunnel destination 1.1.56.6
==>R6的配置:
interface Tunnel0
ip address 172.16.10.6 255.255.255.0
tunnel source 1.1.56.6
tunnel destination 1.1.45.4
==>查看GRE状态:
R4#show ip int b
Tunnel0 172.16.10.4 YES manual
up up
R6#show ip int b
Tunnel0 172.16.10.6 YES manual
up up
3:内网之间通过GRE建立OSPF连接:
==>R4的配置:
router ospf 110
log-adjacency-changes
network 4.4.4.4 0.0.0.0 area 0
network 172.16.10.0 0.0.0.255 area 0
network 192.168.1.0 0.0.0.255 area 0
==>R6的配置:
router ospf 110
network 6.6.6.6 0.0.0.0 area 0
network 172.16.10.0 0.0.0.255 area 0
network 172.16.1.0 0.0.0.255 area 0
==>查看R4/R6的路由表:内网已经互通:
R4#show ip route ospf
O 6.6.6.6 [110/11112] via 172.16.10.6, 00:11:38, Tunnel0
O 172.16.1.0 [110/11112] via 172.16.10.6, 00:11:38, Tunnel0 R6#show ip route ospf
O 4.4.4.4 [110/11112] via 172.16.10.4, 00:11:23, Tunnel0
O 192.168.1.0/24 [110/11112] via 172.16.10.4, 00:11:23, Tunnel0 R6#
==>R3测试:
R3#traceroute 172.16.1.1
1 192.168.1.2 92 msec 136 msec 48 msec
2 172.16.10.6 136 msec 132 msec 140 msec :表明当前数据包是通过GRE Tunnel来转发的
3 172.16.1.1 148 msec *168 msec
R3#
4:R4/R6之间建立IPSec VPN :eer指向R4/R6的环回口:4.4.4.4/6.6.6.6 ==>R6上的配置修改:
crypto isakmp key cisco address 4.4.4.4
crypto map MYMAP 10 ipsec-isakmp
set peer 4.4.4.4
set transform-set TS
match address 110 :指定感兴趣流量: crypto map MYMAP local-address Loopback1 :这里一定要指定更新源:类似BGP的更新源:否则发送数据包的将是本地的物理接口
==>R4上的配置修改:
crypto isakmp key cisco address 6.6.6.6
crypto map MYMAP 10 ipsec-isakmp
set peer 6.6.6.6
set transform-set TS
match address 110
crypto map MYMAP local-address Loopback1
5:由于是GRE over IPSec:于是在物理接口下调用感兴趣流量:
interface FastEthernet0/0
ip address 1.1.1.1 255.255.255.0
no cdp log mismatch duplex
crypto map MYMAP
此时如果指定感兴趣流量:access-list 110 permit host 1.1.1.1 host 2.2.2.3 :那么随后OSPF 邻居将Down:
*Dec 11 23:13:56.355: %OSPF-5-ADJCHG: Process 110, Nbr 6.6.6.6 on Tunnel0 from FULL to DOWN, Neighbor Down: Dead timer expired
分析:
1:GRE Tunnel的可达性是通过静态路由来实现的:通过步骤一:可知目的
1.1.56.0从F1/1走:
2:R4上的OSPF通过Tunnel学习到6.6.6.6的路由下一条指向Tunnel0
3:在IPSec VPN中指定Peer为6.6.6.6,此时下一条指向Tunnel0(如步骤三),封装GRE:【SIP:1.1.45.4DIP:1.1.56.6】,R4查看路由表到达1.1.56.0需要经过F1/1(如步骤一),此时GRE数据包被扔到F1/1,刚好匹配该接口下调用 的IPSec感兴趣流,于是封装ESP,并新增IP包头【ESP| SIP:4.4.4.4 DIP:6.6.6.6】
4:ESP数据包查看路由表, 发现到达6.6.6.6需要通过Tunnel 0 ,于是ESP又被转到Tunnel 0,并且又被封装【SIP:1.1.45.4DIP:1.1.56.6】,以此在R4上的OSPF Hello包在Tunnel0和F1/1之间往复循环,而对端的OSPF在三个周期未收到Hello包,则提示Dead Time Expired。
*Mar14:43:51.743: %OSPF-5-ADJCHG: Process 110, Nbr 192.168.2.10 on
Tunnel0 from FULL to DOWN, Neighbor Down:OSPF邻居Down
==>解决方法:(只要打破以上环路的任一环即可)
在R4/R6之间指定Static路由到达对端的Loopback口
IPSec Peer指对端的物理接口,而不是Loopback口(推荐)
修改方法1:
在R4/R6上配置Static Route 让到R4/R6对端Loopback口的数据包从物理接口走,而不是Tunnel 0:
R4(config)#ip route 6.6.6.6 255.255.255.255 1.1.45.5
R6(config)#ip route 4.4.4.4 255.255.255.255 1.1.56.5
R5(config)#ip route 6.6.6.6 255.255.255.255 1.1.56.6 :R5上增加到R4/R6的路由:
R5(config)#ip route 4.4.4.4 255.255.255.255 1.1.45.4
此时OSPF邻居就可以创建:而且IPSec VPN也是可以建立的:
*Mar 14 15:21:36.395: %OSPF-5-ADJCHG: Process 110, Nbr 192.168.2.10 on Tunnel0 from LOADING to FULL, Loading Done
R4#
修改方法2推荐做法)
在R4/R6上配置IPSec VPN时,对端Peer指向物理接口,而不是Loopback口地址: ==>R4的配置:
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 1.1.56.6
R3(config)#crypto ipsec transform-set TS esp-md5-hmac esp-null:Null不对数据包加密:用于分析数据用
crypto map MAY 10 ipsec-isakmp
set peer 1.1.56.6
set transform-set TS
篇三:GRE over IPsec ipsec over gre 的区别以及相关配置
Psec over GRE 和GRE over IPsec比较和区别与配置 (2009-08-20 10:58:42)
GRE over IPsec & IPsec over GRE
IPSec -Over-GRE是先ipsec后gre,这种我没用过。
GRE -Over-IPSec 是先gre后ipsec,也就是说ipsec是最后的承载方式。一般常用的就是这种,解决了ipsec不支持多播的问题。
另外在mtu上也有一些相关,gre是先分段后封装,而ipsec则是先封装再分段。 个人理解。
IPsec over GRE 和GRE over IPsec在配置上的区别:
GRE over IPsec IPsec over GRE
ACL定义: GRE数据流 内网数据流
IKE Peer中指定的remote-address 对方公网地址 对方GRE Tunnel地址
应用端口: 公网出口GRE Tunnel上
GRE over IPSEC(传输模式)
IPSEC封装GRE
好处:可以利用GRE封装组播或广播了以及非IP流量,因为如果不使用GRE的话,IPSEC是传不了组播或广播IP流量的
IPSEC over GRE(里外)(tunel模式)
IPSEC over GRE:GRE在IPSEC外面,由GRE来封装IPSEC注意!!!IPSEC over GRE的时候,路由协议流量是明文的
注意!!!当指的peer是对等体物理接口地址的时候不是IPSEC over GRE,只有当peer是对等体的lookback是才是真正的IPSEC over GRE
ipsec over gre配置
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 10.1.1.2
!
crypto ipsec transform-set myset esp-des esp-sha-hmac
!
crypto map mymap 10 ipsec-isakmp
set peer 10.1.1.2
set transform-set myset
match address 102
!
interface Serial0
ip address 10.1.1.1 255.255.255.0
clockrate 64000
crypto map mymap
!
ip route 0.0.0.0 0.0.0.0 20.1.1.2
ip route 40.1.1.0 255.255.255.0 Tunnel0
!
access-list 102 permit ip 1.1.1.0 0.0.0.255 1.1.2.0 0.0.0.255
!
interface Tunnel0
ip address 100.1.1.1 2(转载自:www.dXf5.cOm 东星资源网:greoveripsec封装格式)55.255.255.0
tunnel source Serial0
tunnel destination 30.1.1.2
crypto map mymap
GRE OVER IPSEC的配置
拓朴结构:
R1 F0/0(172.16.1.1/24)->R2 F0/0(172.16.1.2/24) 模拟外网连接
R1 F1/0(192.168.1.1/24)模拟内网1
R2 F1/0(192.168.2.1/24)模拟内网2
R1:
//定义IKE策略,用于阶段1的SA建立,系统会按对端协商的参数去查找我们定义的policy,直到找到一个各项参数都匹配的policy并使用之,如果没找到会在阶段1失败
crypto isakmp policy 10
hash md5
authentication pre-share
lifetime 3600
crypto isakmp key qhtest address 172.16.1.2
!
//这里定义阶段2所使用的SA,其所使用的加密密钥为随机,并使用阶段1所建立的SA来交换
crypto ipsec transform-set myset esp-3des
!
//定义密码映射
crypto map qh 10 ipsec-isakmp
set peer 172.16.1.2
set transform-set myset
match address 102//这里注意引用了访问列表102,这里对gre包进行加密,而不是如上一
篇所做的那样是对内网地址段,实际上是去往内网2的数据包先被封装到GRE包里,再从外网接口出去,并被IPSET加密
!
//下面在接口上应用密码映射
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex full
crypto map qh
!
//这里定义GRE隧道接口
interface Tunnel0
ip address 192.168.100.1 255.255.255.0
tunnel source 172.16.1.1
tunnel destination 172.16.1.2
//由于GRE可以传路由协议,所有我们在隧道接口上启用了路由协议
router ospf 100
log-adjacency-changes
redistribute connected subnets
network 192.168.100.0 0.0.0.255 area 0
//这里的访问列表我们定义了针对GRE的包施行IPSEC加密
access-list 102 permit gre host 172.16.1.1 host 172.16.1.2
R2:
crypto isakmp policy 10
hash md5
authentication pre-share
lifetime 3600
crypto isakmp key qhtest address 172.16.1.1
!
!
crypto ipsec transform-set myset esp-3des
!
crypto map qh 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set myset
match address 102
!
interface Tunnel0
ip address 192.168.100.2 255.255.255.0
tunnel source 172.16.1.2
tunnel destination 172.16.1.1
!
interface FastEthernet0/0
ip address 172.16.1.2 255.255.255.0
duplex full
crypto map qh
!
router ospf 100
log-adjacency-changes
redistribute connected subnets
network 192.168.100.0 0.0.0.255 area 0
!
access-list 102 permit gre host 172.16.1.2 host 172.16.1.1