GREOVERIPSEC过程解析

创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,绵阳机房托管,海外高防服务器,成都机柜租用,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。

GRE OVER IPSEC过程解析

一,产生背景

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

 

二,基本原理

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

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

 

三,拓扑结构

GRE OVER IPSEC过程解析

四,拓扑需求:

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

 

五,拓扑分析:

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

GRE OVER IPSEC过程解析

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

 

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

 

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

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

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

第三点,GREOVERIPSEC因为是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   ×××:---

在建立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状态:

disp

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状态:

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状态:

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/ -

查看私网路由学习状况:

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上私网×××网段的路由

 

 

注:拓扑图见附件


名称栏目:GREOVERIPSEC过程解析
文章位置:http://pwwzsj.com/article/ihsgps.html