GRE、PPTP、L2TP隧道协议_没有配置为允许基本路由封装(gre协议数据包通过-程序员宅基地

技术标签: pptp与GRE  

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/


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bytxl/article/details/45268249

智能推荐

class和struct的区别-程序员宅基地

文章浏览阅读101次。4.class可以有⽆参的构造函数,struct不可以,必须是有参的构造函数,⽽且在有参的构造函数必须初始。2.Struct适⽤于作为经常使⽤的⼀些数据组合成的新类型,表示诸如点、矩形等主要⽤来存储数据的轻量。1.Class⽐较适合⼤的和复杂的数据,表现抽象和多级别的对象层次时。2.class允许继承、被继承,struct不允许,只能继承接⼝。3.Struct有性能优势,Class有⾯向对象的扩展优势。3.class可以初始化变量,struct不可以。1.class是引⽤类型,struct是值类型。

android使用json后闪退,应用闪退问题:从json信息的解析开始就会闪退-程序员宅基地

文章浏览阅读586次。想实现的功能是点击顶部按钮之后按关键字进行搜索,已经可以从服务器收到反馈的json信息,但从json信息的解析开始就会闪退,加载listview也不知道行不行public abstract class loadlistview{public ListView plv;public String js;public int listlength;public int listvisit;public..._rton转json为什么会闪退

如何使用wordnet词典,得到英文句子的同义句_get_synonyms wordnet-程序员宅基地

文章浏览阅读219次。如何使用wordnet词典,得到英文句子的同义句_get_synonyms wordnet

系统项目报表导出功能开发_积木报表 多线程-程序员宅基地

文章浏览阅读521次。系统项目报表导出 导出任务队列表 + 定时扫描 + 多线程_积木报表 多线程

ajax 如何从服务器上获取数据?_ajax 获取http数据-程序员宅基地

文章浏览阅读1.1k次,点赞9次,收藏9次。使用AJAX技术的好处之一是它能够提供更好的用户体验,因为它允许在不重新加载整个页面的情况下更新网页的某一部分。另外,AJAX还使得开发人员能够创建更复杂、更动态的Web应用程序,因为它们可以在后台与服务器进行通信,而不需要打断用户的浏览体验。在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种常用的技术,用于在不重新加载整个页面的情况下,从服务器获取数据并更新网页的某一部分。使用AJAX,你可以创建异步请求,从而提供更快的响应和更好的用户体验。_ajax 获取http数据

Linux图形终端与字符终端-程序员宅基地

文章浏览阅读2.8k次。登录退出、修改密码、关机重启_字符终端

随便推点

Python与Arduino绘制超声波雷达扫描_超声波扫描建模 python库-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏51次。前段时间看到一位发烧友制作的超声波雷达扫描神器,用到了Arduino和Processing,可惜啊,我不会Processing更看不懂人家的程序,咋办呢?嘿嘿,所以我就换了个思路解决,因为我会一点Python啊,那就动手吧!在做这个案例之前先要搞明白一个问题:怎么将Arduino通过超声波检测到的距离反馈到Python端?这个嘛,我首先想到了串行通信接口。没错!就是串口。只要Arduino将数据发送给COM口,然后Python能从COM口读取到这个数据就可以啦!我先写了一个测试程序试了一下,OK!搞定_超声波扫描建模 python库

凯撒加密方法介绍及实例说明-程序员宅基地

文章浏览阅读4.2k次。端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。2.使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。_凯撒加密

工控协议--cip--协议解析基本记录_cip协议embedded_service_error-程序员宅基地

文章浏览阅读5.7k次。CIP报文解析常用到的几个字段:普通类型服务类型:[0x00], CIP对象:[0x02 Message Router], ioi segments:[XX]PCCC(带cmd和func)服务类型:[0x00], CIP对象:[0x02 Message Router], cmd:[0x101], fnc:[0x101]..._cip协议embedded_service_error

如何在vs2019及以后版本(如vs2022)上添加 添加ActiveX控件中的MFC类_vs添加mfc库-程序员宅基地

文章浏览阅读2.4k次,点赞9次,收藏13次。有时候我们在MFC项目开发过程中,需要用到一些微软已经提供的功能,如VC++使用EXCEL功能,这时候我们就能直接通过VS2019到如EXCEL.EXE方式,生成对应的OLE头文件,然后直接使用功能,那么,我们上篇文章中介绍了vs2017及以前的版本如何来添加。但由于微软某些方面考虑,这种方式已被放弃。从上图中可以看出,这一功能,在从vs2017版本15.9开始,后续版本已经删除了此功能。那么我们如果仍需要此功能,我们如何在新版本中添加呢。_vs添加mfc库

frame_size (1536) was not respected for a non-last frame_frame_size (1024) was not respected for a non-last-程序员宅基地

文章浏览阅读785次。用ac3编码,执行编码函数时报错入如下:[ac3 @ 0x7fed7800f200] frame_size (1536) was not respected for anon-last frame (avcodec_encode_audio2)用ac3编码时每次送入编码器的音频采样数应该是1536个采样,不然就会报上述错误。这个数字并非刻意固定,而是跟ac3内部的编码算法原理相关。全网找不到,国内音视频之路还有很长的路,音视频人一起加油吧~......_frame_size (1024) was not respected for a non-last frame

Android移动应用开发入门_在安卓移动应用开发中要在活动类文件中声迷你一个复选框变量-程序员宅基地

文章浏览阅读230次,点赞2次,收藏2次。创建Android应用程序一个项目里面可以有很多模块,而每一个模块就对应了一个应用程序。项目结构介绍_在安卓移动应用开发中要在活动类文件中声迷你一个复选框变量

推荐文章

热门文章

相关标签