GRE、PPTP、L2TP隧道协议

2023-10-27

IPSec Multiprotocol Label Switching (MPLS) VPN出现前,GRE被用来提供Internet上的VPN功能。GRE将用户数据包封装到携带数据包中。因为支持多种协议,多播,点到点或点到多点协议,如今,GRE仍然被使用。
GRE隧道中,路由器会在封装数据包的IP头部指定要携带的协议,并建立到对端路由器的虚拟点对点连接


  • Passenger: 要封装的乘客协议 (IPX, AppleTalk, IP, IPSec, DVMRP, etc.).
  • Carrier: 封装passenger protocolGRE协议,插入到transportpassenger包头之间GRE包头中定义了传输的协议
  • Transport: IP协议携带了封装的passenger protocol. 这个传输协议通常实施在点对点的GRE连接中(GRE是无连接的).


GRE
的特点:

  • GRE是一个标准协议
  • 支持多种协议和多播
  • 能够用来创建弹性的VPN
  • 支持多点隧道
  • 能够实施QOS


GRE
的缺点:

  • 缺乏加密机制
  • 没有标准的控制协议来保持GRE隧道(通常使用协议和keepalive
  • 隧道很消耗CPU
  • 出现问题要进行DEBUG很困难
  • MTUIP分片是一个问题


配置:


这里配置对端的IP地址和tunnel ID (tunnel key 2323)来进行简单的认证。两端配置的tunnel ID必须配置相同。

Cisco IOS versions 12.2(8)T允许配置keepalive,定期发送报文检测对端是否还活着

GRE隧道
GRE
建立的是简单的(不进行加密)VPN隧道,他通过在物理链路中使用ip地址和路由穿越普通网络。
大部分协议都没有内建加密机制,所以携带他们穿越网络的很常见的方法就是使用加密(如使用IPSec)的GRE隧道,这样可以为这些协议提供安全性。(相关配置请参看GRE over IPSec)网状连接(Full-Mesh
由于GRE是建立点对点的隧道,如果要多个端点的网状互联,则必须采用这种Hub-and-spoke的拓扑形式



但是可以通过使用NHRPNext-Hop Resolution Protocol)来自动建立全网状拓扑。(相关配置请参看NHRP 配置全网状互联GRE隧道)


 

VPDN简介
VPDN
Virtual Private Dial Network,虚拟私有拨号网)是指利用公共网络(如ISDNPSTN)的拨号功能及接入网来实现虚拟专用网,从而为企业、小型ISP、移动办公人员提供接入服务。 
VPDN
采用专用的网络加密通信协议,在公共网络上为企业建立安全的虚拟专网。企业驻外机构和出差人员可从远程经由公共网络,通过虚拟加密隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源。
VPDN
有下列两种实现方式:

  1. 网络接入服务器(NAS)通过隧道协议,与 VPDN网关建立通道的方式。这种方式将客户的PPP连接直接连到企业的网关上,目前可使用的协议有L2FL2TP。其好处在于:对用户是透明的,用户 只需要登录一次就可以接入企业网络,由企业网进行用户认证和地址分配,而不占用公共地址,用户可使用各种平台上网。这种方式需要NAS支持VPDN协议, 需要认证系统支持VPDN属性,网关一般使用路由器或VPN专用服务器。
  2. 客户机与VPDN网关建立隧道的方式。这种方式由客户机先建立 Internet的连接,再通过专用的客户软件(如Win2000支持的L2TP客户端)与网关建立通道连接。其好处在于:用户上网的方式和地点没有限 制,不需ISP介入。缺点是:用户需要安装专用的软件(一般都是Win2000平台),限制了用户使用的平台。


VPDN
隧道协议可分为PPTPL2FL2TP三种Point to Point Tunneling ProtocolPPTP
点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术, 它工作在第二层。通过该协议,远程用户能够通过Microsoft Windows NT工作站、Windows 95Windows 98操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地ISP,通过Internet安全链接到公司网络。
PPTP
协议假定在PPTP客户机和PPTP服务器之间有连通并且可用的IP网络。因此如果PPTP客户机本身已经是IP网络的组成部分,那么即可通过该 IP网络与PPTP服务器取得连接;而如果PPTP客户机尚未连入网络,譬如在Internet拨号用户的情形下,PPTP客户机必须首先拨打NAS以建 IP连接。这里所说的PPTP客户机也就是使用PPTP协议的VPN客户机,而PPTP服务器亦即使用PPTP协议的VPN服务器。


  • PPTP Access Concentrator (PAC) 接入服务商,允许拨号接入连接(通常是由ISP担任,而且不需要ISP的协助来建立隧道)
  • PPTP Network Server (PNS):通常是PPTP服务器或者路由器用来建立PPTP隧道
  • Microsoft Point-to-Point Encryption (MPPE) :和IPSec一样,是一种数据加密协议,用来为PPP拨号连接传输的数据进行加密。MPPE使用RSA算法来进行加密,支持40-bit128-bit的会话密钥


PPTP
只能通过PACPNS来实施,其它系统没有必要知道PPTP。拨号网络可与PAC相连接而无需知道PPTP。标准的PPP客户机软件可继续在隧道PPP链接上操作。



PPTP VPN 
协商过程:

  1. 客户端(笔记本)通过PPP建立到ISP NAS的连接
  2. 客户端建立到PNS(在这里是CISCO路由器)的PPTP连接
  3. 客户端和PNS之间建立了一个2层的隧道。多种协议能够在这个隧道上传输
  4. 使用MPPE加密PPP数据包,这些数据包接下来通过enhanced GRE封装,并在IP网络上传输
  5. 在客户端和PPTP服务器之间建立第二个PPP over GRE会话
  6. 数据能够在这个IP/GRE/PPP上传输
  7. PPTP隧道使用不同的TCP连接来控制会话


PPTP
使用GRE的扩展版本来传输用户PPP包。这些增强允许为在PACPNS之间传输用户数据的隧道提供低层拥塞控制和流控制。这种机制允许高效使 用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。PPTP没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。
PPTP
缺点:

  • 不支持QOS
  • 每个用户一个隧道
  • 认证和加密比较脆弱


相关的配置请参照PPTP 配置Layer 2 Tunneling Protocol L2TP
L2TP
协议提供了对PPP链路层数据包的通道(Tunnel)传输支持,允许二层链路端点和PPP会话点驻留在不同设备上并且采用包交换网络技术进行信 息交互,从而扩展了PPP模型。L2TP协议结合了L2F协议和PPTP协议的各自优点,成为IETF有关二层隧道协议的工业标准。


  • L2TP Access Concentrator (LAC) :表示L2TP访问集中器,类似于PPTP中的PAC,是附属在交换网络上的具有PPP端系统和L2TP协议处理能力的设备。LAC一般是一个网络接入服 务器NAS,主要用于通过PSTN/ISDN网络为用户提供接入服务。
  • L2TP Network Server (LNS) :表示L2TP网络服务器,也叫做"home gateway",类似于PPTP中的PNS,是PPP端系统上用于处理L2TP协议服务器端部分的设备。


L2TP
隧道建立过程:


  1. 用户使用PPP拨号到ISP,并获得一个IP地址。客户端和ISP之间建立邻接,客户端能够接入到Internet。这个步骤是用来作为普通的Internet连接
  2. 客户端决定建立一个端到端的L2TP隧道到home gateway,并在下面建立一个新的PPP会话之前前会使用控制会话建立一个隧道
  3. L2TP隧道里建立一个新的PPP隧道,并分配给客户端一个IP地址。客户端和home gateway之间会使用virtual point-to-point,通过PPP封装进L2TP隧道,建立一个新的IP邻接关系。


建立IPSec保护的L2TP VPN


  1. 客户端使用PPP拨入ISPISP分配IP地址给客户端
  2. 客户端使用L2TP通过一个VPN端口连接到home gateway
  3. home gateway使用AAA服务器对隧道进行认证,并分配一个隧道内部IP地址给客户端
  4. 在客户端和gateway之间建立IPSec,来提供L2TP会话的加密。


VPDN
拨号用户与总部路由服务器建立连接的过程如下:

  1. 拨号用户拨打一个初始化呼叫有VPDN访问接入服务器(NAS
  2. NAS 接收此呼叫,并将启动一个到总部路由服务器(Home Gateway)的L2TP Tunnel 协商:Home Gateway 利用总部的Radius服务器来鉴定NAS Tunnel ID,认证通过以后,向NAS发起CHAP Challenge 信号;NAS对来自Home GatewayTunnel 进行认证,认证通过之后,就建立了NASHome Gateway之间的Tunnel连接。此时,Home Gateway就可以利用其Radius服务器对VPDN用户进行用户级的认证,如果认证通过将建立Home Gateway和用户间的端到端的PPP连接。如果在NASHome Gateway之间建立了Tunnel连接之后,又有另一VPDN用户拨打同一NAS,此时将不会重复上述建立Tunnel的过程,而是直接进行用户级的 认证。
  3. 从拨号用户发出的帧被NAS接收到以后,被封装在L2TP中,通过IP隧道被转发到总部路由服务器。这样,用户就可以对总部的信息进行访问,实现信息共享。



两种典型的L2TP隧道模式

  1. 由远程拨号用户发起:
    远程系统拨入LAC,由LAC通过InternetLNS发起建立通道连接请求。拨号用户地址由LNS分配;对远程拨号用户的验证与计费既可由LAC侧的代理完成,也可在LNS侧完成。
  2. 直接由LAC客户(指可在本地支持L2TP协议的用户)发起:
    此时LAC客户可直接向LNS发起通道连接请求,无需再经过一个单独的LAC设备。此时,LAC客户地址的分配由LNS来完成。


L2TP
的优势

  • 灵活的身份验证机制以及高度的安全性:
    L2TP
    协议本身并不提供连接的安全性,但它可依赖于PPP提供的认证(比如CHAPPAP等),因此具有PPP所具有的所有安全特性。L2TP也可与 IPSec结合起来实现数据安全,这使得通过L2TP所传输的数据更难被攻击。L2TP还可根据特定的网络安全要求在L2TP之上采用通道加密技术、端对 端数据加密或应用层数据加密等方案来提高数据的安全性。
  • 多协议传输:
    L2TP
    传输PPP数据包,这样就可以在PPP数据包内封装多种协议。
  • 支持RADIUS服务器的验证:
    LAC
    端将用户名和密码发往RADIUS服务器进行验证申请,RADIUS服务器负责接收用户的验证请求,完成验证。
  • 支持内部地址分配:
    LNS
    可放置于企业网的防火墙之后,它可以对远端用户的地址进行动态的分配和管理,可支持私有地址应用(RFC1918)。为远端用户所分配的地址不是Internet地址而是企业内部的私有地址,这样方便了地址的管理并可以增加安全性。
  • 网络计费的灵活性:
    可在LACLNS两处同时计费,即ISP处(用于产生帐单)及企业网关(用于付费及审计)。L2TP能够提供数据传输的出入包数、字节数以及连接的起始、结束时间等计费数据,可根据这些数据方便地进行网络计费。
  • 可靠性:
    L2TP
    协议支持备份LNS,当一个主LNS不可达之后,LAC可以重新与备份LNS建立连接,这样增加了VPN服务的可靠性和容错性。


该协议是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密。不过也有不同之处,比如PPTP要求 网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧道;L2TP提供包头压缩、隧道验证,而PPTP不支持。 L2TP协议是由IETF起草,微软、AscendCisco3COM等公司参予制定的二层隧道协议,它结合了PPTPL2F两种二层隧道协议的优 点,为众多公司所接受,已经成为IETF有关2层通道协议的工业标准,基于微软的点对点隧道协议 (PPTP)和思科2层转发协议(L2F)之上的,被一个因特网服务提供商和公司使用使这个虚拟私有网络的操作能够通过因特网。


http://blog.163.com/hlz_2599/blog/static/142378474201361882619351/


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GRE、PPTP、L2TP隧道协议 的相关文章

  • 微弱电流监测电路

    微弱电流检测 最近项目上要用到一个pA级别的电流监测设备 因此准备搞一个监测设备玩玩 挑战一下 有进展随时更新 有一个参考链接 准备用连接中的方案进行制作 还有一个方案是LMP7721 偏置电流更低 价格有点贵 后期再尝试
  • MySQL案例:一次诡异的Aborted connection错误排查

    简介 前段时间 研究怎么去提升数据库安全 例如禁止执行不带条件的update操作 于是就想到了去启用sql safe updates参数 这个参数Mysql默认是不启用的 而且还不能加入到my cnf配置里 因此就想到了用init conn
  • div点击事件 鼠标放上去显示小手

    div cursor pointer
  • 用户故事

    定义 验收标准就是一系列可以接受的验收条件或者业务规则 且与功能或feature相互匹配和满足 同时也能被产品负责人和相关人接受 如何书写 验收条件可作为验收测试用例的具体例子 这也是我们常说的实例化需求 也是为了避免误读 让抽象的需求变得
  • strictfp关键字

    strictfp的意思是FP strict 也就是说精确浮点的意思 在Java虚拟机进行浮点运算时 如果没有指定strictfp关键字时 Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作 以致于得
  • Java内部类使用

    转载Java内部类使用 https blog csdn net weixin 42762133 article details 82890555 utm medium distribute pc relevant none task blo
  • OpenHarmony开发样例——ADC多按键功能

    摘要 本文简单介绍如何操作ADC去读取电压 并且实现开发板上3个ADC按键检测的功能 适合群体 适用于润和Hi3861开发板 L0轻量系统驱动开发 文中所有代码仓库 https gitee com qidiyun hihope 3861 s
  • MySQL必知必会 学习笔记 第十九章 插入数据

    插入可用以下方式进行 1 插入完整行 2 插入行的一部分 3 插入多行 4 插入某些查询的结果 可针对每个表或每个用户 利用MySQL的安全机制禁止使用INSERT语句 插入语句没有输出 插入完整的行 INSERT INTO tableNa
  • 帅哥前端的踩坑日记(一)

    如何在Element ui table中使用插入 自己需要的HTML
  • Java整合RabbitMQ

    本博客只作为个人记录或讲师上课使用 谨慎参考 Rabbit MQ安装 请参考本人博客 RabbitMQ 安装教程 目录 一 引入相关依赖 二 创建两个Java文件分别对应的是 生产者 和 消费者 简单应用 三 生产者 Productor j
  • ECharts点击事件自定义参数

    实际开发中可能需要传自定义参数到点击事件 通过params data 传入的原始数据项 实现自定义参数 console打印结果 效果图 源码 注意红色部分 div style width 6 div
  • NAR神经网络预测

    1 该脚本用来做NAR神经网络预测 x 54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 7253
  • C++学习笔记(一)(20120208 C++ Primer)

    C 语言中定义了几种基本类型 字符型 整型 浮点型 布尔型 字符类型有两种 char 和wchar t char类型通常是单个机器字节 byte wchar t类型常用于扩展字符集比如汉字和日语 这些字符集中的一些字符不能用单个char表示

随机推荐

  • 【C++】红黑树

    目录 引言 为啥设计红黑树 1 红黑树的特点 1 1相关概念 1 2插入的结点的颜色 2 红黑树的设计 2 1 结点设计 2 2基本框架 3 红黑树插入 3 1插入的介绍 3 2插入调整 情况一 情况2 情况3 4 查找实现 Find 5
  • 以太坊私有链-创世区块

    以下内容是学习笔记 原版视频在b站的 撸帝说 1 在docker上安装以太坊私有链 2 启动 3 进入以太坊容器 4 初始化创世区块 5 开启服务 6 创建以太坊账户 7 查看账户余额 8 再创建一个账户 来实现交易 9 转账 10 查看交
  • html转xml python_xml转换(Python)_xml

    前些天用python处理xml的转换的一个小程序 用来把xml xsl转换成html 用的libxml2 所以还要先安装了libxml2模块才能使用 coding mbcs usr bin python import libxml2 lib
  • 单元测试中的驱动程序和桩程序理解

    单元测试中的驱动程序和桩程序理解 运行被测单元 为了隔离单元 根据被测单元的接口 开发相应的驱动程序和桩程序 两者有什么区别呢 驱动程序 Driver 也称驱动模块 用于模拟被测模块的上级模块 能够调用被测模块 驱模块接受测试数据 调用被测
  • js实现颜色选择器

    前言 纯js就可以实现颜色选择器 不用安装很多的插件 和配置 也不必要有jquery才能使用 只是js文件就可以了 目录 实现原理 如果要获取当前的颜色 可以获取结论的背景 或者再返回的函数里面直接写赋值 实现步骤 1 引入封装js文件 c
  • CheckStyle报错的常见问题及解决方式

    CheckStyle报错的常见问题及解决方式 声明 本文摘自百度文库 希望这篇文章提到的规范能对大家编程起到好的效果 此文不定期更新 将推出更加详尽的编程规范 1 提示 Type is missing a javadoc commentCl
  • vue v-model.number 和 type=“number“详解

    1 v model number详解 当两个input都输入非数字时 v model number和v model的值都不会转为Number类型 当两个input都输入数字时 v model number的值会转为Number类型 v mo
  • 1.Ajax基础——XMLHttpRequest、Get/Post、封装Ajax

    1 XMLHttpRequest Ajax技术核心是XMLHttpRequest对象 简称XHR 背景 在XHR出现之前 Ajax式通信必须借助hack手段来实现 大多数是使用隐藏的框架和内嵌的框架
  • 【Linux系统之虚拟化实战】PVE下KVM虚拟机的嵌套安装方法

    Linux系统之虚拟化实战 PVE下KVM虚拟机的嵌套安装方法 一 检查本地系统环境 1 环境规划 2 检查PVE宿主机系统版本 3 检查PVE虚拟机系统版本 二 开启PVE宿主机虚拟化 1 检查PVE主机嵌套虚拟化是否开启 2 PVE主机
  • vue 将public文件下的图片引入.vue文件内

    data return publicPath process env BASE URL div 11 div
  • vue实现打印功能

    vue实现打印功能 安装npm i vue print nb 在main js中引入并注册 打印 import Print from plugins print 注册 Vue use Print 3 公共的js方法 我写在plugins里面
  • python输出100以内的素数

    可以使用以下代码来输出100以内的素数 for num in range 2 101 for i in range 2 num if num i 0 break else print num 这段代码使用了一个双重循环 外层循环遍历从2到1
  • 数字信号处理 --- 周期信号的三角函数表示 一(三角函数的性质和三角波的合成)

    三角函数的性质 一系列三角函数谐波 harmonic sinusoids 是傅里叶分析的基石 我们可以用这些不同频率的谐波构建各种各样的信号 波形 谐波 harmonics 现在我们选择一个频率为f0的任意频率 arbitrary freq
  • 杂谈:更新PowerShell 7.0.0后如何激活Anaconda环境?

    Preface 日前微软更新Powershell Core的版本至7 0 0 带来了很多新的特性 也带来了很多不同之处 例如启用了新的安装位置 去掉了Core的名称以及启用了新的可执行文件名称 将powershell exe修改为pwsh
  • 网络模型——OSI模型与TCP/IP模型

    文章目录 一 OSI七层模型 二 TCP IP协议 五层体系 三 OSI 参考模型与 TCP IP 参考模型的区别 四 TCP IP 五层协议的通信方式 OSI模型与TCP IP模型 对比如下 一 OSI七层模型 各层功能 应用层 应用层位
  • nginx(三十六)健康检查

    一 ngx http upstream module 官方自带 server 1 该指令用于 指定后端服务器 的名称和 optional 参数 2 服务器的名称可以是一个 域名 一个 ip地址 端口号或 unix socket upstre
  • 中间表示- 三地址码

    使用三地址码的编译器结构 三地址码的基本思想 1 给每个中间变量和计算结果命名 没有复合表达式 2 只有最基本的控制流 没有各种控制结构 if do while for等等 只有goto call等 3 所以三地址码可以看成是抽象的指令集
  • Java(七) 句柄

    在学习什么是句柄之前我们先学习虚拟机的对对象的访问方式 一 句柄访问方式 使用句柄访问对象 会在堆中开辟一块内存作为句柄池 句柄中储存了对象实例数据 属性值结构体 的内存地址 访问类型数据的内存地址 类信息 方法类型信息 对象实例数据一般也
  • 学习人工智能技术法则

    在当前的教育体系下 人工智能领域的人才培养依然以研究生教育为主 随着近些年来人工智能领域人才缺口的增大 格物斯坦表示目前已经一小部分高校开始陆续在本科阶段开设人工智能专业 相信随着人工智能领域的发展 未来更多专业的学生将有机会接触到人工智能
  • GRE、PPTP、L2TP隧道协议

    在IPSec 和Multiprotocol Label Switching MPLS VPN出现前 GRE被用来提供Internet上的VPN功能 GRE将用户数据包封装到携带数据包中 因为支持多种协议 多播 点到点或点到多点协议 如今 G