GRE OVER IPSEC过程解析

一,产生背景

IPsec是如今十分主流的分支机构互联VPN协议,其本身强大的加密与验证功能保障了在互联网传递时私网数据的安全,但是面对当前多元化的访问需求,Ipsec VPN并不能满足客户对私网网段之间复杂的互访要求;在实际环境中,分隔两地的机构要求通过VPN隧道建立私网之间的路由邻居关系,而Ipsec VPN本身并不具备传递路由的能力,所以GRE over IPSEC技术应运而生。

二,基本原理

我们知道,传统的IPsec VPN针对数据包的安全性要求,通常采用采用两种协议进行数据包封装:AH与ESP。AH主要采用验证机制,结合相应摘要算法计算出验证字段填充到数据包当中,接收方通过比较验证字段中的相关信息来分析报文的合法性与完整性,但是AH本身并不具备安全加密功能,由此便引出了ESP,ESP除了本身具备的验证功能之外,实现上会先将数据包进行加密后再添加ESP头部和尾部,以保护数据的机密性;

除了AH与ESP之外,还有一个重点协议IKE,主要用于密钥交换,常用于VPN中建立SA,且IKE自身基于UDP500端口,本身具备穿越NAT的可能;IKE的交换模式分为:main模式和aagresive模式,两种模式根据网关之间的IP地址情况分别采取不同的措施,main模式主要适用于线路两端IP地址固定的情况,协商的时候采取6个协商报文,在身份验证阶段会在发送前加密对端身份的ID信息,aggressive模式在第1,2个报文发送时的ID信息都是以明文方式发送,所以主模式安全性更好;aggressive模式适用于双方IP地址不固定的情况(如pppoe拨号,DHCP获取,IPCP协商地址等),协商时发送3个消息,建立速度更快,且支持nat穿越功能;

三,拓扑结构

四,拓扑需求:

本实验环境是具备NAT设备的环境,RT3(分支机构)和RT1(总部)通过公网建立GRE OVER IPSEC,SW1模拟公网运营商的设备,对RT2动态分配IP地址;

五,拓扑分析:

1,此环境中分支机构的边界上存在NAT设备,RT3在与RT1建立VPN时必须考虑NAT的问题,所以在建立IKE时必须开启NAT穿越功能;在RT2上不能让VPN感兴趣流量进入RT2的NAT引擎,否则VPN的IKE建立会发生错误;在NAT穿越的VPN环境中,除了上述存在单一NAT网关设备的情况外,还存在如下情况:

此拓扑中RT2既作为VPN网关,也作为NAT网关,在路由器中默认是优先处理NAT,然后才会匹配感兴趣数据流,如果此时是H3C设备时,需要采取隧道分离的措施保证感兴趣流量的正常通过,即在通过acl挑选感兴趣数据流时,需要在访问控制中有将感兴趣数据流量在rule中deny掉,并随后加一条rule来permit需要NAT转发的流量,如此一来既可以保证NAT流量的正常访问公网,也可以使感兴趣流量正常通过;

2,GRE建立隧道时会定义源地址与目的地址,而在GRE OVER IPSEC报文中GRE是封装IPsec的内部的,所以由整个GRE建立的隧道流量都是被IPSEC 加密的,所以在定义感兴趣流量时,需要将tunnel接口的源与目的接口定义为感兴趣流的源与目的;

3,在GRE隧道中运行动态路由协议时,发布的路由为tunnel隧道地址和私网路由地址,在以loopback接口建立VPN时,loopback接口不能发布到此路由协议中,否则tunnel接口会发生up/down的情况,

4,公网设备中不需要拥有去往两地loopback接口的路由,通过GRE OVER IPSEC报文封装即可分析出来;

5,GRE OVER IPSEC与IPSEC OVER GRE的区别:一,首先根据名字就可以判断出一点,前者是GRE封装在IPSEC 报文中,而后者则是IPSEC报文封装在GRE中;其次,后者加密的数据流量是单独定义的个别私网网段,前者加密的流量则是整个GRE隧道,只要通过GRE隧道运行的路由协议发布的私网数据,都会被加密;

第三点,GRE OVER IPSEC因为是IPSEC报文头在外,根据边界网关之间的IP地址情况,可灵活运用IPSEC隧道的两种模式:transport和tunnel模式,且因为transport模式的报文封装更加简单,在流量处理和软件资源消耗方面要小于隧道模式

二,拓扑配置:

RT1:

IPsec配置

Ike local-name center

ike peer zwc

exchange-mode aggressive

pre-shared-key simple 123

id-type name

remote-name banch

nat traversal

ipsec proposal 1

ipsec policy-template zwc 1

ike-peer zwc

proposal 1

ipsec policy zwc1 1 isakmp template zwc

interface GigabitEthernet0/0/0

port link-mode route

ip address 200.1.1.2 255.255.255.0

ipsec policy zwc1

GRE配置:

interface Tunnel0

ip address 10.1.1.1 255.255.255.0

source LoopBack0

destination 3.3.3.3

路由配置:

ospf 100

area 0.0.0.0

network 10.1.1.0 0.0.0.255

network 172.16.1.1 0.0.0.0

#

ip route-static 0.0.0.0 0.0.0.0 200.1.1.1

地址配置:

interface LoopBack0

ip address 1.1.1.1 255.255.255.255      //loopback接口地址

#

interface LoopBack1

ip address 172.16.1.1 255.255.255.255   //内部私网地址

RT3配置:

IPsec配置

Ike local-name banch

ike peer zwc

exchange-mode aggressive

pre-shared-key simple 123

id-type name

remote-name center

remote-address 200.1.1.2

nat traversal             //若不敲此命令ike协商可以正常建立,但是tunnel口无法up

#

ipsec proposal 1

acl number 3000

rule 0 permit gre source 3.3.3.3 0 destination 1.1.1.1 0  //tunnel两端流量

ipsec policy zwc 1 isakmp

security acl 3000

ike-peer zwc

proposal 1

ipsec policy zwc 1 isakmp

security acl 3000

ike-peer zwc

proposal 1

GRE配置:

interface Tunnel1

ip address 10.1.1.2 255.255.255.0

source LoopBack0

destination 1.1.1.1

路由配置:

ospf 100

area 0.0.0.0

network 10.1.1.0 0.0.0.255

network 192.168.3.1 0.0.0.0

#

ip route-static 0.0.0.0 0.0.0.0 23.1.1.2

RT2配置:

acl number 2000

rule 0 permit source 23.1.1.0 0.0.0.255  //定义的流量无需考虑分离隧道

interface GigabitEthernet0/0/0

port link-mode route

nat outbound 2000         //NAT配置

ip address dhcp-alloc

interface GigabitEthernet0/0/1

port link-mode route

ip address 23.1.1.2 255.255.255.0

ip route-static 0.0.0.0 0.0.0.0 100.1.1.1

查看NAT转换记录:

[RT2]display nat session

There are currently 1 NAT session:

Protocol      GlobalAddr  Port      InsideAddr  Port        DestAddr  Port

UDP       100.1.1.2 12291        23.1.1.3   500       200.1.1.2   500

status:11      TTL:00:04:00   Left:00:03:52   VPN:---

在建立SA协商阶段,IKE会利用UDP500端口发起会话,此处可以看到NAT网关将ipsec数据包的源地址及源端口进行了转换,由500->12291,23.1.1.3->100.1.1.2,由于NAT的穿越功能开启,IKE在建立SA时所协商的参数不再是IP地址信息,而是标识符信息,及ike local-name

查看RT1的ike SA状态:

<RT1>disp

<RT1>display ike sa

total phase-1 SAs:  1

connection-id  peer            flag        phase   doi

----------------------------------------------------------

38            100.1.1.2       RD            1     IPSEC

39            100.1.1.2       RD            2     IPSEC

flag meaning

RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO—TIMEOUT

查看RT1的IPSec SA状态:

<RT1>display ipsec sa

===============================

Interface: GigabitEthernet0/0/0

path MTU: 1500

===============================

-----------------------------

IPsec policy name: "zwc1"

sequence number: 1

mode: template

-----------------------------

connection id: 21

encapsulation mode: tunnel

perfect forward secrecy:

tunnel:

local  address: 200.1.1.2

remote address: 100.1.1.2

flow:

sour addr: 1.1.1.1/255.255.255.255  port: 0  protocol: GRE

dest addr: 3.3.3.3/255.255.255.255  port: 0  protocol: GRE

[inbound ESP SAs]

spi: 3981374185 (0xed4ef2e9)

proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5

sa duration (kilobytes/sec): 1843200/3600

sa remaining duration (kilobytes/sec): 1843195/2950

max received sequence-number: 52

anti-replay check enable: Y

anti-replay window size: 32

udp encapsulation used for nat traversal: Y

[outbound ESP SAs]

spi: 2812594908 (0xa7a4cadc)

proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5

sa duration (kilobytes/sec): 1843200/3600

sa remaining duration (kilobytes/sec): 1843195/2950

max received sequence-number: 53

udp encapsulation used for nat traversal: Y

查看RT1的ospf状态:

<RT1>display ospf peer

OSPF Process 100 with Router ID 172.16.1.1

Neighbor Brief Information

Area: 0.0.0.0

Router ID       Address         Pri Dead-Time Interface       State

192.168.3.1     10.1.1.2        1   39        Tun0            Full/ -

查看私网路由学习状况:

<RT1>display ip routing-table

Routing Tables: Public

Destinations : 10       Routes : 10

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

0.0.0.0/0           Static 60   0            200.1.1.1       GE0/0/0

1.1.1.1/32          Direct 0    0            127.0.0.1       InLoop0

10.1.1.0/24         Direct 0    0            10.1.1.1        Tun0

10.1.1.1/32         Direct 0    0            127.0.0.1       InLoop0

127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0

127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0

172.16.1.1/32       Direct 0    0            127.0.0.1       InLoop0

192.168.3.1/32      OSPF   10   1562         10.1.1.2        Tun0

200.1.1.0/24        Direct 0    0            200.1.1.2       GE0/0/0

200.1.1.2/32        Direct 0    0            127.0.0.1       InLoop0

可以看到,RT3 的私网路由192.168.3.1/32已经通过ospf学习到了

此处SW1模拟的是公网设备,在SW1上开启DHCP分配地址,配置接口IP即可,无需添加任何路由,RT2上只需一条对外访问公网的默认路由即可,不需要定义任何去往RT3上私网VPN网段的路由

注:拓扑图见附件

时间: 2024-10-18 04:50:59

GRE OVER IPSEC过程解析的相关文章

【DCN】Gre over ipsec vpn

流量被加密的过程: 首先数据包进入路由器,路由器查询路由表,进入Tu0,数据被GRE封包,再次查询路由表,到物理接口,触发加密图,数据加密,再送出路由器. GRE OVER  IPSEC VPN 的出现解决了IPSEC VPN不能加密组播及广播报文的问题使得IPSEC VPN不能在动态路由协议中得到应用,而使用GRE OVER IPSEC VPN的好处就是GRE能够很好的封闭组播及广播流量,再被IPSEC VPN加密传输使得这一方案得到广泛应用. GRE OVER IPSEC VPN 的ACL表

mmc驱动的读写过程解析

mmc io的读写从mmc_queue_thread()的获取queue里面的request开始. 先列出调用栈,看下大概的调用顺序, 下面的内容主要阐述这些函数如何工作. host->ops->request() // sdhci_request() mmc_start_request() mmc_start_req() mmc_blk_issue_rw_rq() mmc_blk_issue_rq() Mmc_queue_thread() mmc_queue_thread()  struct

Cisco路由器配置GRE over IPsec

拓扑图 实验目的: 通过CRE over IPsec的方式实现R1网段:172.16.10.0/24和R2网段:172.17.10.0/24通信加密. 由于IPsec VPN不支持组播,而GRE支持多种协议,所以一般情况下会选择GRE over IPsec. 配置思路: 通过ACL设置感兴趣流 配置IKE第一阶段 配置IKE第二阶段 新建MAP,并应用于接口 设置路由,下一跳为tunnel 0 配置: R1: 配置接口IP信息 interface Loopback0  ip address 17

P2P GRE over IPsec

R1(config)#interface tunnel 1 R1(config-if)#ip address 1.1.1.1 255.255.255.0 R1(config-if)#tunnel source 12.1.1.1 R1(config-if)#tunnel destination 23.1.1.3 R1(config-if)#exit R3(config)#int tunnel 3 R3(config-if)#ip address 1.1.1.3 255.255.255.0 R3(c

Dynamic P2P GRE over IPsec

R1(config)#int f0/0 R1(config-if)#ip add 12.1.1.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#int f0/1 R1(config-if)#ip add 10.1.1.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2

浏览器加载渲染网页过程解析 (转)

浏览器的工作机制,一句话概括起来就是:web浏览器与web服务器之间通过HTTP协议进行通信的过程.所以,C/S之间握手的协议就是HTTP协议.浏览器接收完毕开始渲染之前大致过程如下: 从浏览器地址栏的请求链接开始,浏览器通过DNS解析查到域名映射的IP地址,成功之后浏览器端向此IP地址取得连接,成功连接之后,浏览器端将请 求头信息 通过HTTP协议向此IP地址所在服务器发起请求,服务器接受到请求之后等待处理,最后向浏览器端发回响应,此时在HTTP协议下,浏览器从服务器接收到 text/html

android 自定义View过程解析

PS:本篇文章大多数翻译自github上一篇英文文章! 总所周知,安卓UI是基于View(屏幕上的单一节点)和ViewGroup(屏幕上节点的集合),在android中有很多widgets和layouts可以用于创建UI界面,比如最常见的View有Button,TextView等等,而最常见的布局也有RelativeLayout,LinearLayout等. 在一些应用中我们不得不自定义View去满足我们的需求,自定义View可以继承一个View或者已存在的子类去创建我们自己的自定义View,甚

CCIE学习笔记 ----GRE over IPsec

GRE over IPsec 这种东西主要可以传nat和各种加密包头的东西 R1: ! interface Ethernet0/0 ip address 192.168.12.1 255.255.255.0 ip ospf 1 area 0 --------------------------------------------------------------------------------- R2: crypto isakmp policy 10 authentication pre-

浏览器加载渲染网页过程解析

浏览器的工作机制,一句话概括起来就是:web浏览器与web服务器之间通过HTTP协议进行通信的过程.所以,C/S之间握手的协议就是HTTP协议.浏览器接收完毕开始渲染之前大致过程如下: 从浏览器地址栏的请求链接开始,浏览器通过DNS解析查到域名映射的IP地址,成功之后浏览器端向此IP地址取得连接,成功连接之后,浏览器端将请 求头信息 通过HTTP协议向此IP地址所在服务器发起请求,服务器接受到请求之后等待处理,最后向浏览器端发回响应,此时在HTTP协议下,浏览器从服务器接收到 text/html