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

智能推荐

python简易爬虫v1.0-程序员宅基地

文章浏览阅读1.8k次,点赞4次,收藏6次。python简易爬虫v1.0作者:William Ma (the_CoderWM)进阶python的首秀,大部分童鞋肯定是做个简单的爬虫吧,众所周知,爬虫需要各种各样的第三方库,例如scrapy, bs4, requests, urllib3等等。此处,我们先从最简单的爬虫开始。首先,我们需要安装两个第三方库:requests和bs4。在cmd中输入以下代码:pip install requestspip install bs4等安装成功后,就可以进入pycharm来写爬虫了。爬

安装flask后vim出现:error detected while processing /home/zww/.vim/ftplugin/python/pyflakes.vim:line 28_freetorn.vim-程序员宅基地

文章浏览阅读2.6k次。解决方法:解决方法可以去github重新下载一个pyflakes.vim。执行如下命令git clone --recursive git://github.com/kevinw/pyflakes-vim.git然后进入git克降目录,./pyflakes-vim/ftplugin,通过如下命令将python目录下的所有文件复制到~/.vim/ftplugin目录下即可。cp -R ...._freetorn.vim

HIT CSAPP大作业:程序人生—Hello‘s P2P-程序员宅基地

文章浏览阅读210次,点赞7次,收藏3次。本文简述了hello.c源程序的预处理、编译、汇编、链接和运行的主要过程,以及hello程序的进程管理、存储管理与I/O管理,通过hello.c这一程序周期的描述,对程序的编译、加载、运行有了初步的了解。_hit csapp

18个顶级人工智能平台-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏27次。来源:机器人小妹  很多时候企业拥有重复,乏味且困难的工作流程,这些流程往往会减慢生产速度并增加运营成本。为了降低生产成本,企业别无选择,只能自动化某些功能以降低生产成本。  通过数字化..._人工智能平台

electron热加载_electron-reloader-程序员宅基地

文章浏览阅读2.2k次。热加载能够在每次保存修改的代码后自动刷新 electron 应用界面,而不必每次去手动操作重新运行,这极大的提升了开发效率。安装 electron 热加载插件热加载虽然很方便,但是不是每个 electron 项目必须的,所以想要舒服的开发 electron 就只能给 electron 项目单独的安装热加载插件[electron-reloader]:// 在项目的根目录下安装 electron-reloader,国内建议使用 cnpm 代替 npmnpm install electron-relo._electron-reloader

android 11.0 去掉recovery模式UI页面的选项_android recovery 删除 部分菜单-程序员宅基地

文章浏览阅读942次。在11.0 进行定制化开发,会根据需要去掉recovery模式的一些选项 就是在device.cpp去掉一些选项就可以了。_android recovery 删除 部分菜单

随便推点

echart省会流向图(物流运输、地图)_java+echart地图+物流跟踪-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏6次。继续上次的echart博客,由于省会流向图是从echart画廊中直接取来的。所以直接上代码<!DOCTYPE html><html><head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /&_java+echart地图+物流跟踪

Ceph源码解析:读写流程_ceph 发送数据到其他副本的源码-程序员宅基地

文章浏览阅读1.4k次。一、OSD模块简介1.1 消息封装:在OSD上发送和接收信息。cluster_messenger -与其它OSDs和monitors沟通client_messenger -与客户端沟通1.2 消息调度:Dispatcher类,主要负责消息分类1.3 工作队列:1.3.1 OpWQ: 处理ops(从客户端)和sub ops(从其他的OSD)。运行在op_tp线程池。1...._ceph 发送数据到其他副本的源码

进程调度(一)——FIFO算法_进程调度fifo算法代码-程序员宅基地

文章浏览阅读7.9k次,点赞3次,收藏22次。一 定义这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO 算法并不能保证这些页面不被淘汰。这里,我_进程调度fifo算法代码

mysql rownum写法_mysql应用之类似oracle rownum写法-程序员宅基地

文章浏览阅读133次。rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一条数据的写法对比,不过..._mysql 替换@rownum的写法

eclipse安装教程_ecjelm-程序员宅基地

文章浏览阅读790次,点赞3次,收藏4次。官网下载下载链接:http://www.eclipse.org/downloads/点击Download下载完成后双击运行我选择第2个,看自己需要(我选择企业级应用,如果只是单纯学习java选第一个就行)进入下一步后选择jre和安装路径修改jvm/jre的时候也可以选择本地的(点后面的文件夹进去),但是我们没有11版本的,所以还是用他的吧选择接受安装中安装过程中如果有其他界面弹出就点accept就行..._ecjelm

Linux常用网络命令_ifconfig 删除vlan-程序员宅基地

文章浏览阅读245次。原文链接:https://linux.cn/article-7801-1.htmlifconfigping &lt;IP地址&gt;:发送ICMP echo消息到某个主机traceroute &lt;IP地址&gt;:用于跟踪IP包的路由路由:netstat -r: 打印路由表route add :添加静态路由路径routed:控制动态路由的BSD守护程序。运行RIP路由协议gat..._ifconfig 删除vlan