IPSEC的实现方式
IPSEC的实现方式
在IPSEC通信中涉及到一个重要方面,那就是如何定义要保护的数据流(又称为感兴趣流)。这不仅涉及到IPSEC最终要保护哪部分数据,还关系到IPSEC的实现方式,因此有必要把感兴趣流的定义方式进行详细说明。
1. 感兴趣流的定义方式
“感兴趣流”指的是哪些数据可以进入IPsec隧道进行传输,哪些数据不能进入IPsec隧道传输。在现有的IPsec 实现过程中,最常用的实现方式有两种:“基于ACL”、“基于虚拟隧道接口”。下面我们对这两中方式进行详细的介绍。
2. 基于ACL(访问控制)方式
我们知道,高级IP ACL可以基于源/目的IP地址、源/目的端口、协议等信息对数据报文进行过滤, 而这IPsec正好可以使用ACL的方式来确定哪些数据报文需要隧道保护。
当使用当采用ACL的方式来定义“感兴趣流”时,手动方式和IKE协商方式建立的IPsec 隧道是由高级ACL来指定需要保护的数据流范围,并从中过滤出需要进行IPsec隧道的报文。ACL规则允许的报文(permit)将被保护;ACL规则拒绝的报文(deny)将不会被保护。
因为这里的ACL为高级IP ACL, 所以可以明确的指定数据报文中的源/目的IP地址**、源/目的端口、**协议类型等参数。但是这里的源、目的IP地址指数据发送方和接收方的主机IP地址,通常是两端内部网络中的私网地址。
这种基于ACL方式定义感兴趣流的方式的优点是:
可以利用ACL配置的灵活性,根据IP地址、端口信息、协议类型(TCP, UDP, ICMP, IP等)等信息对报文进行过滤从而指定灵活的IPSec保护方法。
3. 基于虚拟隧道接口方式
基于虚拟隧道接口来定义需要保护的数据流,首先需要在两端的IPsec设备创建一个虚拟的隧道接口Tunnel, 然后通过配置以该Tunnel接口为出接口的静态路由,以此来将到达某一个子网的数据流量通过IPSec隧道进行转发。因为Tunnel接口为点对点类型的接口,是运行PPP链路层协议的,因此以该接口为出接口的静态路由是可以不指定下一跳IP地址的。
IPsec虚拟隧道接口是一种三层逻辑接口,采用这种方式时,所有路由到IPsec虚拟隧道接口上的报文都将进行IPSec保护,而不再对数据流类型进行细分。使用IPSec虚拟隧道接口有如下诸多优点:
简化配置
只需要将IPSec保护的数据流引到虚拟隧道接口上,无需再通过ACL来定义加解密流量的特征。这使得IPSec的配置不会受到网络规划的影响,增加了网络规划的可扩展性,降低了网络维护的成本。
较小开销
在保护远程接入用户流量的组网中,只需要在IPSec虚拟隧道接口处进行IPSec报文封装,与IPSec over GRE 或者 IPSec over L2TP方式的隧道封装相比,较少了封装层次,节省了带宽。
支持范围更广
点对点IPSec虚拟隧道接口可以支持动态路由协议,同时还可以支持对组播流量的报文。另外,IPSec虚拟隧道接口在实施过程中明确的区分出“加密前”和“加密后”两个阶段,用户可以根据不同的组网需求灵活的选择其他业务(例如NAT, QoS)实施的阶段。 例如用户希望对加密前的报文进行QoS,则可以在IPSec虚拟隧道接口上应用QoS策略;如果希望对IPSec封装后的报文应用QoS,则可以在报文发送的物理接口上应用QoS策略。
4. 虚拟隧道接口
IPSec 虚拟隧道接口(即Tunnel接口),是一种支持路由的三层逻辑接口,它可以支持动态路由协议、所有路由到IPSec虚拟隧道接口的报文都将进行IPSec保护,同时可以支持对组播流量的保护。
下面简单介绍下IPSec隧道两端的虚拟隧道接口上报文处理流程:
4.1 IPSec虚拟隧道接口上封装和加密流程
用户数据到达IPSec设备(如路由器),需要被IPSec保护的报文(感兴趣流)会被转发到IPSec虚拟隧道接口上进行封装和加密。如下图所示:

- Router将从入接口上收到的明文IP报文后发送到转发模块进行处理
- 转发模块依据路由表查询结果进行转发,如果为相应的感兴趣流,会被引到IPSec虚拟隧道接口上进行AH或ESP封装;
- IPSec虚拟隧道接口完成对明文的封装处理后,根据建立的IPSec SA安全策略再将封装后的报文进行加密,然后再将加密后的报文交由转发模块进行处理
- 转发模块通过第二次转发查询后,将已经封装完毕的加密IPSec报文通过相应的物理接口发送出去,最终密文到达对端的IPSec设备的虚拟隧道接口上。
4.2 IPSec虚拟隧道接口上解封装和解密流程
数据经过IPSec隧道传输到达对端IPSec设备时,需要对数据包进行解密、解封装处理。它的处理流程如下所示:

- Router将从入接口上收到的加密的IP报文发送到转发模块进行处理
- 转发模块识别到此密文的目的IP地址为本设备的隧道接口IP地址,且IP报文协议号为ESP、AH、UDP时,会将此报文发送到相应的虚拟隧道接口上进行解密和解封装处理;
- IPSec虚拟隧道接口完成对密文的解封装处理后,再将解封装后的报文交由转发模块进行处理
- 转发模块通过第二次转发查询后,将IP明文通过相应的物理接口发送出去,最终密文到达相应的主机上。
IPSEC的实现方式的更多相关文章
- IPSec
一. +IPSec(IP Security)Internet 协议安全性 是IFTF制定的为保证在Internet上传送数据的安全保密性能的框架协议 +IPSec包括报文验证头协议AH(协议号51)和 ...
- [转帖] IPsec相关知识 --未知来源
目 录 IPsec IPsec简介 IPsec的协议实现 IPsec基本概念 加密卡 IPsec虚拟隧道接口 使用IPsec保护IPv6路由协议 IKE IKE简介 IKE的安全机制 IKE的交换过 ...
- IPSec协议框架
文章目录 1. IPSec简介 1.1 起源 1.2 定义 1.3 受益 2. IPSec原理描述 2.1 IPSec协议框架 2.1.1 安全联盟 2.1.2 安全协议 报文头结构 2.1.3 封装 ...
- 技术分析:Femtocell家庭基站通信截获、伪造任意短信
阿里移动安全团队与中国泰尔实验室无线技术部的通信专家们一起,联合对国内运营商某型Femtocell基站进行了安全分析,发现多枚重大漏洞,可导致用户的短信.通话.数据流量被窃听.恶意攻击者可以在免费申领 ...
- IPsec_VPN实现技术【转载】
GRE Tunnel GRE Tunnel(General Routing Encapsulation 通用路由封装)是一种非常简单的VPN(Virtual Private Network 虚拟专用网 ...
- Femtocell家庭基站通信截获、伪造任意短信漏洞
阿里移动安全团队与中国泰尔实验室无线技术部的通信专家们一起,联合对国内运营商某型Femtocell基站进行了安全分析,发现多枚重大漏洞,可导致用户的短信.通话.数据流量被窃听.恶意攻击者可以在免费申领 ...
- [转]Mac下配置基于SecurID的Cisco IPSec VPN全攻略(有图)
来自: http://www.eefocus.com/Kevin/blog/11-09/230878_53c71.html RSA的SecurID长的是这个样子滴: Mac里面,可以设置VPN, 方法 ...
- 安全协议系列(五)---- IKE 与 IPSec(上)
IKE/IPSec 属于网络层安全协议,保护 IP 及上层的协议安全.自上个世纪末面世以来,关于这两个协议的研究.应用,已经非常成熟.协议本身,也在不断地进化.仅以 IKE 为例,其对应的 RFC 编 ...
- 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(下篇)
续篇—— 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(上篇) 上篇文章写了如何构建一个支持IKEv2的VPN,本篇记录的是如 ...
随机推荐
- 仅用CSS实现图片渲染特效 (有学习到了)
前言 实现图片高亮效果等特效,就不得不提到CSS3的滤镜filter属性,CSS过滤器是一个强大的工具,可以使用它来实现不同的视觉效果(有点像浏览器的Photoshop过滤器).CSS filter属 ...
- Nature Cancer | 宋尔卫/苏士成团队揭示lncRNA调控巨噬细胞“双刃剑”作用新机制
巨噬细胞 (macrophage, Mϕ) 是先天免疫系统中重要的免疫细胞,也是血液.淋巴和所有哺乳动物组织类型中最常见的吞噬细胞,具有极强的功能多样性.其中,肿瘤微环境组织中存在的巨噬细胞也被称作肿 ...
- mysqldump备份恢复数据
//导出数据(多个表以空格间隔)mysqldump -h 127.0.0.1 -uroot -p123456 --default-character-set=utf8 pandora report & ...
- 从跨域与同源策略谈CSRF防御与绕过
之前偶然看到群里有小伙汁问这个token相关的问题,当时我酝酿了一下子,没想好怎么总结,今天来说一下 CSRF在过去还属于OWASP TOP10 ,现在已经不是了(补充一点:关于OWASP API 请 ...
- Linux下MySQL主从复制(Binlog)的部署过程
什么是 MySQL 的主从复制 Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上 ...
- Linux搭建SQL server服务器
我们知道在Linux下安装服务有很多方式,最为简单的也就是yum安装,但是很多服务通过yum是无法安装的,如果想使用yum安装,需要指定yum安装仓库,我们今天需要安装MSQL Server,所以需要 ...
- Docker源码安装附内网镜像安装演示
Docker源码安装附内网镜像安装演示 系统版本要求 当前系统版本:CentOS Linux release 7.9.2009 (Core) 内核版本:3.10.0-1160.el7.x86_64 注 ...
- deepin下启动自己的springcloud服务报错
java.nio.file.AccessDeniedException: /home/msan/logs/csp/sentinel-record.log.2021-01-04.0.2.lck at s ...
- noip40
T1 记当前位置 \(i\) 上的颜色,上次出现的位置为 \(last_{1}\) ,上上次出现的位置为 \(last_{2}\) ,则,把当前点的颜色加进来,并且让其产生贡献的话,则会对 \([la ...
- Windows 10 - View SIM Card Number
If your device isn't running Windows 10, refer to the Windows 8 instructions. From the Windows desk ...