请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

搜索
热搜: 邮件服务器
查看: 328|回复: 1

【原创】简单实验:动态多点隧道配合分组加密传输

[复制链接]
发表于 2021-3-29 21:53:21 | 显示全部楼层 |阅读模式
动态多点隧道配合分组加密传输
分支机构的建设发展,是当下各大企业扩张服务网络、提高服务效率,增强竞争力的重要战略。随着企事业单位规模的快速发展,完成分支机构的市场战略布局与建设发展服务网络,成为大型企事业单位的工作核心及重点。分支机构的建设及发展离不开网络的支撑,为节省成本各大企事业单位总部与分支机构的网络互联方案普遍选择VPN方式,为保证安全一般采用IPSEC VPN(注释:IPSEC VPN即指采用IPSEC协议来实现远程接入的一种VPN技术,IPSEC全称为InternetProtocol Security,是由Internet Engineering Task Force(IETF) 定义的安全标准框架,用以提供公用和专用网络的端对端加密和验证服务)方式,而当前传统的IPSEC VPN解决方案受到其固有的协议及组网模式的限制已经严重制约了企事业单位分支机构的拓展。     传统IPSec VPN主要有星形和网状的两种连接拓扑,这两种连接拓扑在扩展性方面都存在着严重的问题。
一.传统IPSec VPN星形拓扑
星形拓扑即指所有的分支机构全部与总部建立vpn隧道,而分支机构之间不建立vpn隧道。

图1:传统IPSEC VPN组网的星形拓扑

星形拓扑IPSecVPN有如下问题:
1.中心站点配置量大,运维难度加大:
不管是传统的IPSEC VPN配置还是GRE Over IPSEC(注释:由于IPSEC不支持对多播和广播数据包的加密,这样的话,使用IPSEC的隧道中,动态路由协议等依靠多播和广播的协议就不能进行正常通告,所以,这时候要配合GRE隧道,GRE隧道会将多播和广播数据包封装到单播包中,再经过IPSEC加密)配置,多一个分支站点就要在中心站点多一份配置,如果分支站点数量过多,中心站点的配置就会变成沉重的负担,并且非常不容易管理。
2.分支站点间流量延时较大,影响关键业务传输:
因为一个分支站点的数据要抵达另外一个分支站点,首先需要加密数据送往中心,数据在中心站点被第一次解密,然后在中心站点被第二次加密,并且送往目的站点。目的站点收到数据后,再进行第二次解密。由于数据被两次加解密,所以大大增加了延时,严重影响语音、视频类业务的传输。如果通讯的两个分支在同一个城市,而中心在另一个城市,这种延时的情况将更加严重。
3.分支站点间流量占用中心带宽,影响业务后续拓展:
星形拓扑分支站点间的所有流量,都需要经过中心站点进行转发。如果分支站点间流量过大,会大大消耗中心站点的带宽,使中心站点成为整个VPN网络的瓶颈。
综上所述,星形拓扑的传统IPSec VPN,不是一个高扩展性的设计,不适合在有大量分支站点的网络中进行部署。与上述星形拓扑相对,有些企事业单位用户会采用网状的IPsec VPN模型。
二.传统IPSec VPN网状模型

图2:传统IPSEC VPN组网的网状拓扑
网状拓扑IPSec VPN在具体的部署中同样存在一些问题:
1. 所有的站点配置工作量巨大,导致后续运维工作量激增:
不管是IPSEC VPN还是GRE Over IPSec,多一个分支站点,所有的站点都要多一份配置,如果在分支站点数量过多的网络,使用网状拓扑的IPSec VPN,前期的配置及后期的维护都将异常繁琐。
2.分支站点需要维护过多IPSec会话,分支机构设备压力过大:
为保证分支站点之间的通讯在网状拓扑的IPSEC VPN当中,分支站点要和每一个其它站点建立IPSEC会话,如果站点过多,每一个分支站点就会维护很多的IPSEC 会话,一般分支站点都使用低端路由器产品,维护过多的IPSEC 会话会让这些设备的内存和CPU不堪重负,进而影响正常业务的处理。
3.每一个分支站点需要固定IP地址,分支机构拓展受限:
网状拓扑的IPSEC VPN,因为两两站点之间需要建立IPSEC VPN,所以每一个分支站点都需要有固定IP地址。固定IP地址的需求在实际部署中很难实现,因为大多数企事业单位的分支机构都是通过ADSL这种廉价的接入技术动态的获取互联网地址。
综上,由于传统IPSEC VPN星形和网状拓扑存在上述诸多问题,推出了高扩展性 的VPN技术:DMVPN(注释:动态多点VPN)。DMVPN技术具有如下的技术优势助力企事业单位分支机构的无限拓展:
1.虚拟全网状连通性,保障分支站点之间的无阻塞通讯
DMVPN技术框架中部署了MGRE协议(注释:Multiple GRE:动态多点GRE),传统的IPSEC及GRE协议是点对点的,而MGRE是点对多点的,这是其最大的优势。MGRE是一种特殊的GRE技术,它的组网模型能够保证各个分支机构之间不经过中心站点而直接通信,非常类似于帧中继网络,具体见下图:

图3:DMVPN的虚拟全网状拓扑
如上图:可以看到所有站点的MGRE隧道接口,都处于一个网段(10.1.1.0/24)。顾名思义多点GRE。也就是说任何一个分支站点不仅仅能够和中心站点进行通讯,而且还能够直接和其它分支站点进行通讯。这其实就说明了DMVPN技术架构的第一个优点:虚拟网状连通性。如此保证了两个分支站点之间可以直接进行通讯,无需再绕行中心站点,避免中心站点成为加密及数据转发的瓶颈。
2.分支站点支持动态获取地址、分支站点到分支站点动态产生隧道,保障分支机构无限制扩展
如上所述,利用MGRE 实现全网状拓扑后,如何解决分支机构的动态IP地址接入呢?下一跳解析协议(NHRP)就是为了实现这个映射而设计的,首先每一个分支站点都需要手动影射中心站点的虚拟IP到公网IP,所以中心站点必须拥有固定IP地址。分支站点有了这个手动映射就能够和中心站点之间取得联系,并且通过NHRP协议,注册这个分支站点的隧道虚拟IP到动态获取的公网IP,一旦注册成功,中心站点就有所有分支站点的NHRP影射。这样中心站点也能够访问所有注册后的分支站点。因为注册是动态的,所以分支站点支持动态获取地址。当某一分支站点希望访问另外一个分支站点时,它首先会使用NHRP协议询问中心站点(NHRP的服务器),目的分支站点隧道虚拟IP所对应的公网IP,中心站点回送NHRP影射给发起方,发起方有了目的站点的NHRP影射以后,就能够通过MGRE直接发起隧道访问目的站点,例如:分支站点一的预定义的地址为10.1.1.1 ADSL获取的公网地址为46.46.2.1,如果分支站点二10.1.1.2要想向分支站点一发送数据,他首先会利用NHRP向中心端站点请求分支站点一10.1.1.1对应的公网IP地址,得到公网IP为46.46.2.1,然后两个都是ADSL获取公网IP的分支站点之间就可以直接建立VPN通信了。上述例子中的流量是两个分支站点间直接发起的,并不占用中心站点资源。所以从这个角度来看,DMVPN技术是高扩展性的技术。
3.全网支持动态路由协议,方便整网的快速收敛
动态路由协议的主要目的是宣告隧道接口网络和站点身后私有网络,保证整个VPN网络的终端及各个业务系统的互联互通及整体网络的快速收敛。在DMVPN上完全可以运行RIP、OSPF等动态路由协议,配合BFD的检测协议保证整网的快速收敛,保证业务的无中断转发。
4.全网支持IPSEC协议加密,保证传输链路的安全
DMVPN可以理解成为MGRE over IPSec,IPSec其实就是对MGRE流量进行加密。虽然MGRE是一种特殊的GRE技术,但是协议号依然为GRE的47。大体工作原理与GREover IPSec一般无二。DMVPN和GRE overIPSec一样也应该采取传输模式进行封装,全程保障数据安全的通过互联网进行传输。
GETVPN
传统 IP Sec部署内网存在的问题
问题1:VPN对QOS的影响  
1)如图,明文流量,QS基于DSCP头部标识来实现流量限速  
2)启用 IPSec_VPN,封装格式为: IP ESP IP(DSCP)DATA  
3)一个新的IP头部,原头部被加密,DSCP也同样被加密,导致Q0S直接失效
问题2:单向、点对点的安全关联
1)配置复杂,配置量大
2)需要维护过多的SA,单向,一个PSec需要维护两个方向SA   
3)无法实现任意到任意通信,一对关联只能适用于一条感兴趣流   
4)无法加密组播流量,对关联只能加解密对应的关系邻居,组播加密后不是所有人都能解密
5)无法实现即时连接,需要协商以及加解密而导致掉包
问题3:路由覆盖
1) 如果运行SVT,必须配置动态路由协议,基于隧道建立邻居关系,这将导致覆盖路由问题,增加路由复杂度,提高运维成本
GETVPN介绍
1.12.4(11)T之后才支持  
2.组加密传输VPN
3.部署环境:属于高拓展性VPN,适用于企业级大规模“内网”部署解决方案  
4. GETVPN由以下模块组成:
1)GDOI GETVPN通讯协议  2)GCK密钥服务器  3)GM组成员
1.解决问题:VPN对QOS的影响——不生成新头部,基于源IP头部保留技术生成一个原IP的副本,将该副本作为新IP头部     
2.解决问题:单向、点对点的安全关联——基于组的概念,加入同一个组的成员,统一使用下发的相同策略进行加解密,无需协商      
3.解决问题:覆盖路由——GETVPN部署之前:该内部网络已实现“明文传输”的全网可路由,GETVPN部署之后:该内部网络可实现“加密传输”的全网可路由并且无需部署任何路由协议
GETVPN三大模块
GD0I                                                
1)使用UDP848号端口  
2)协议为公有标准,可以和非思科设备兼容  
3) GETVPN这个名字是思科私有  
4)作用:组成员与密钥服务器之间建立安全关联,实现组内安全通信  
      
GCKS
1)密钥服务器/组内控制器  
2)给与注册的组成员推送策略和密钥  
3)发送的密钥包含两种:
           
GM
1)组成员
2)通过注册到指定的KS,从而获取对应的策略和密钥进行加解密流量的设备                                                                   ①TEK:实际参与加密GM之间通信流量的密钥  
②KEK:安全关联默认一小时过期,KS发送密钥更新信息,该信息由KEK加密发送
GETVPN工作流程
1.所有 GETVPN流量,都只工作在UDP848号端口
2.第一阶段协商,使用主模式,6个包,产生一个 IKE SA
3.GDOI交互的四个IKE包将由 SA执行保护
采用DMVPN配合GETVPN对分组的特定流量进行加密
拓扑图下
KS配置
hostname KS-server
!
ip multicast-routing
!
crypto key generate rsa modulus 2048 exportable labelgetvpn
!
crypto isakmp policy 10
encr aes
hash md5
authenticationpre-share
crypto isakmp key cisco address 0.0.0.0        
!
!
crypto ipsec transform-set tr esp-aes esp-md5-hmac
mode tunnel
!
!
crypto ipsec profile pr
settransform-set tr
!
crypto gdoi group getvpn
identitynumber 1234
server local
  rekey addressipv4 rekey
  rekeyauthentication mypubkey rsa getvpn
  sa ipsec 1
   profile pr
   matchaddress ipv4 vpn
   no replay
   no tag
  address ipv4192.168.100.1
!
interface Ethernet0/0
no shutdown
ip address192.168.100.1 255.255.255.252
ip pimsparse-mode
ip ospfnetwork point-to-point
ip ospf 110area 0
duplex auto
!
router ospf 110
router-d192.168.100.1
!
ip pim bsr-candidate Ethernet0/0 0
ip pim rp-candidate Ethernet0/0
!
ip access-list extended rekey
permit udphost 192.168.100.1 host 239.0.0.1
ip access-list extended vpn
permit ip10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255
!
End
HUB配置:
hostname HUB
!
ip name-server 218.202.152.130
ip multicast-routing
!
crypto isakmp policy 10
encr aes
hash md5
authenticationpre-share
crypto isakmp key cisco address 0.0.0.0        
!
crypto gdoi group getvpn
identitynumber 1234
server addressipv4 192.168.100.1
!
crypto map getvpn 1 gdoi
set groupgetvpn
!
interface Loopback0
no shutdown
ip address10.224.1.1 255.255.255.255
ip ospf 110area 1
!
interface Tunnel0
no shutdown
descriptionhub.eve.lab
bandwidth100000
ip address192.168.0.1 255.255.255.0
no ipredirects
ip mtu 1400
ip pimdr-priority 254
ip pimsparse-mode
ip nhrpnetwork-id 1
ip nhrpredirect
ip tcpadjust-mss 1300
ip ospfnetwork broadcast
ip ospfpriority 254
ip ospf 110area 0
tunnel sourceEthernet0/0
tunnel modegre multipoint
crypto mapgetvpn
!
interface Ethernet0/0
no shutdown
ip address117.190.242.84 255.255.255.0
duplex auto
!
interface Ethernet0/1
no shutdown
ip address192.168.100.2 255.255.255.252
ip pimdr-priority 254
ip pimsparse-mode
ip ospfnetwork point-to-point
ip ospf 110area 0
duplex auto
crypto mapgetvpn
!
router ospf 110
router-id192.168.0.1
!
ip route 0.0.0.0 0.0.0.0 117.190.242.1
!
End
SPOKE配置:
hostname SPOKE4
!
ip multicast-routing
!
crypto isakmp policy 10
encr aes
hash md5
authenticationpre-share
crypto isakmp key cisco address 0.0.0.0        
!
crypto gdoi group getvpn
identitynumber 1234
server addressipv4 192.168.100.1
!
crypto map getvpn 1 gdoi
set groupgetvpn
!
interface Loopback0
no shutdown
ip address172.16.1.1 255.255.255.255
ip ospf 110area 1
!
interface Loopback1
no shutdown
ip address10.224.4.1 255.255.255.255
ip ospf 110area 1
!
interface Tunnel0
no shutdown
descriptionspoke4
bandwidth300000
ip address192.168.0.4 255.255.255.0
no ip redirects
ip mtu 1400
ip pimsparse-mode
ip nhrpnetwork-id 1
ip nhrp nhs192.168.0.1 nbma hub.eve.lab multicast
ip tcpadjust-mss 1300
ip ospfnetwork broadcast
ip ospfpriority 0
ip ospf 110area 0
tunnel sourceDialer1
tunnel modegre multipoint
crypto mapgetvpn
!
interface Ethernet0/0
no shutdown
no ip address
duplex auto
pppoe enablegroup global
pppoe-clientdial-pool-number 1
!
interface Dialer1
no shutdown
mtu 1492
bandwidth300000
ip addressnegotiated
encapsulationppp
ip tcpadjust-mss 1452
dialer pool 1
ppp papsent-username 123456 password 0 123456
ppp ipcp dnsrequest
ppp ipcp routedefault
!
router ospf 110
router-id192.168.0.4
!
End

GROUP INFORMATION
    GroupName               : getvpn
    GroupIdentity           : 1234
    GroupType               : GDOI (ISAKMP)
    CryptoPath              : ipv4
    KeyManagement Path      : ipv4
    Rekeysreceived          : 0
    IPSec SADirection       : Both
     GroupServer list       : 192.168.100.1
Group Member Information For Group getvpn:
    IPSec SADirection       : Both
    ACLReceived From KS     :gdoi_group_getvpn_temp_acl
    Groupmember             : 192.168.0.2     vrf: None
       Localaddr/port       : 192.168.0.2/848
       Remoteaddr/port      : 192.168.100.1/848
      fvrf/ivrf             : None/None
      Version               : 1.0.17
      Registration status   : Registered
      Registered with       :192.168.100.1
      Re-registers in       : 2788 sec
      Succeeded registration: 2
      Attempted registration: 2
       Lastrekey from       : 0.0.0.0
       Lastrekey seq num    : 3
      Multicast rekey rcvd  : 0
       DP ErrorMonitoring   : OFF
       IPSECinit reg executed    : 0
       IPSECinit reg postponed   : 0
       ActiveTEK Number     : 1
       SA Track(OID/status) : disabled
      allowable rekey cipher: any
      allowable rekey hash  : any
      allowable transformtag: any ESP
    Rekeyscumulative
       Totalreceived        : 0
       Afterlatest register : 0
       RekeyReceived        : never
ACL DownloadedFrom KS 192.168.100.1:
  access-list   permit ip 10.0.0.00.255.255.255 10.0.0.0 0.255.255.255
KEK POLICY:
    Rekey TransportType     : Multicast
    Lifetime(secs)          : 85785
    EncryptAlgorithm        : 3DES
    KeySize                 : 192
    Sig HashAlgorithm       : HMAC_AUTH_SHA
    Sig KeyLength (bits)    : 2352
TEK POLICY for the current KS-Policy ACEs Downloaded:
  Tunnel0:
    IPsec SA:
        spi:0x907DF6E6(2424174310)
        KGSisabled
       transform: esp-aes esp-md5-hmac
        satiming:remaining key lifetime (sec): (2987)
       Anti-Replay : Disabled
        tagmethod : disabled
        alg keysize: 16 (bytes)
        sig keysize: 16 (bytes)
        encaps:ENCAPS_TUNNEL
    IPsec SA:
        spi:0x1BF58A81(469076609)
        KGSisabled
       transform: esp-aes esp-md5-hmac
        sa timing:remainingkey lifetime (sec): expired
       Anti-Replay : Disabled
        tagmethod : disabled
        alg keysize: 16 (bytes)
        sig keysize: 16 (bytes)
        encaps:ENCAPS_TUNNEL
测试:

本帖子中包含更多资源

您需要 思科 CCO 登录 才可以下载或查看,没有帐号?思科 CCO 注册   

x
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2021-3-30 19:38:10 | 显示全部楼层
谢谢楼主分享~
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
您需要登录后才可以回帖 思科 CCO 登录 | 思科 CCO 注册   

本版积分规则

Archiver | 思科社区  

GMT+8, 2021-4-13 16:30 , Processed in 0.102976 second(s), 31 queries .

京ICP备11014401号-17

© 2020 思科系统.版权所有 重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表