1.七层代理模式还是IP层VPN

非常多人会问,我究竟是使用代理模式呢,还是使用VPN模式,假设我想数据在中间不安全的链路上实现加密保护的话。
这个问题有一个背景。那就是,你想保护你的数据,能够使用VPN,可是有时候,第七层的代理模式或许更好。比方SSL卸载器。比方内置SSL处理的代理。分为正向代理和反向代理。

正向代理:代理的是訪问者。一般位于訪问者一端,訪问者能意识到代理的存在,直接訪问代理,由代理向server发起訪问。
反向代理:反向代理代理的是被訪问者。

位于被訪问者一端。訪问者意识不到代理的存在。訪问者訪问代理。由代理将请求重定向到真正的server。

且看上述差别的后半段,全然同样。这也是最easy引起迷惑的地方,可是我如今的解释不关注这些,假设单看TCP层以及IP层的訪问模式。会发现上述的正向代理和反向代理没有不论什么差别-你会发现TCP层和IP层的封包是一样,因此差别正是体现于第七层-重点是实际訪问client是否设置代理。体如今HTTP头。当我们已经屏蔽了第七层的差别后,仅仅看TCP层的訪问模型,你会发现一个事实,即无论是正向代理还是反向代理。在TCP看来都用同样的方式卡在了路径中央,client和代理建立TCP连接,代理和server建立TCP连接。

如今明确什么时候用代理什么时候用IP层VPN了吗?答案在于数据流的方向!

假设再深挖一下。假设数据流始终都是从你这里发起的。有一个代理声称能够替你完毕你要求的事务。还能够提供安全加密服务,未尝不可啊,假设还有一个代理对server声称。它能够汇集成千上万的client的訪问请求,那也行啊。可是代理对数据流的发起方向有要求。反过来就难了。对于服务端而言。它要主动发起一个到某个client的訪问,怎样使用代理,这意味着代理必须显式知道client的位置,而这差点儿是不可能。

此时须要一个新的方案,那是什么呢?那就是将整个反向的訪问流封装于一个正向建立的隧道内,这个隧道是长连接的。除非显式拆除。它会一直存在。

这是什么?这就是IPSec VPN。PP2P,L2TP。OpenVPN等三层以及三层下面的VPN。当然,使用三层以及三层VPN的代价就是你将不能处理全部的四层以上特别是七层的信息,比方你不能解析过境包的HTTP头(做这件事远远比你想的困难。首先你要识别出这是一个TCP的HTTP数据包,或许仅仅是一个IP分片。你要实现重组。或许是一个乱序的TCP段,你要实现TCP的按序逻辑...更现实的。或许一个HTTP头会分在多个TCP段中,....人生苦短,为何如此折磨自己,使用安全代理吧)...
       假设你能保证数据流都是从client主动发往服务端的。且你须要更细的基于七层信息的控制粒度,且百折不扣地使用TCP代理。

假设哪怕有一类从服务端反向的连接,或者存在诸如UDP等协议的数据流。请考虑IP层VPN。
       我们能够看到,使用IP层VPN始终是一种备选方案。是这种。这是现实,也是趋势。

请看看FTP的现实吧,FTP存在反向的连接,可是依旧存在安全的FTP代理。假设你认为FTP不够复杂。那么请看看标准的信令/数据分离的SIP协议,市面上也有了非常多的能够处理SIP协议的安全代理,这些都不是IP层的VPN。终于,IP层VPN仅仅剩下了一块保留地。那就是保持多个物理位置分离的子网之间的虚拟专用性(安全连通性)。这块保留地才是真实的IP层VPN的领域,其实。非常多其他方面的使用IP层VPN技术进行单点接入的系统都是一种误用!

对于单点接入系统以及单点訪问系统,链路的加密仅仅是一个基本不能再主要的安全需求,很多其他的訪问控制,接入控制。AAA等非常难集成在IP层VPN以内,即便OpenVPN提供了强大的push机制,client也是能够拒绝不论什么push reply的。

2.大便骑沟便沟内

这是什么含义?
还记得曾经那种中央一条沟的厕所吗?在沟的一端墙壁上面有一个水箱。一拉绳子。水就冲下来,一冲一条沟。例如以下图所看到的:

请看错误的方式。尿不会落在大便池中。而是会洒在蹲位上,有时,假设角度没对准。大便也不会落在池中,而是会落在蹲位的还有一边,这会引起连锁反应,后来的人仅仅能採用蹲在同一边的错误方式,由于便池的还有一边有屎..于是我们的宿舍管理员李大爷再也忍不住了,用毛笔在宣纸上写下赫然几个大字。张贴于男厕所的墙壁上。上面写着“大便骑沟便沟内”。是的。书法手笔不错...

老斜两宗事-七层代理模式还是IP层VPN的更多相关文章

  1. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

  2. TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系 (转载)

    首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层.但是对于分段来说,这是经常发生在UDP传输层协议上的情况,对于传输层使用TCP协议的通道来说,这种事情很少发生. 1,MTU( ...

  3. 原 TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系

    首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层.但是对于分段来说,这是经常发生在UDP传输层协议上的情况,对于传输层使用TCP协议的通道来说,这种事情很少发生. 1,MTU( ...

  4. 结构型模式(七) 代理模式(Proxy)

    一.动机(Motivate) 在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者.或者系统结构带来很多麻烦.如何在不 ...

  5. OSI 七层模型和 TCP/IP 四层模型 及 相关网络协议

    简介 OSI 是理论上的模型,也就是一个统一的国际标准,现在的很多网络设备或者是网络协议都不同程度的精简了自己的所谓的模型,那么他们为了自己的通讯兼容都会参考这个OSI模型 TCP/IP 包括: TC ...

  6. Java设计模式 之 代理模式

    所谓的代理模式就是为其它类或对象提供一个代理以控制对这个对象的访问.那么常见的代理有远程代理,虚拟代理,保护代理,智能代理. 1. 远程代理:为一个不同地址空间的对象提供一个本地代理对象. 2. 虚拟 ...

  7. TCP/IP协议之IP层

    TCP/IP协议的结构参见下图.有应用层,运输层,网络层,链路层. 但是如果更细化的话,其实还有几层没在这上面体现出来. 1 表示层:数据格式化,代码转换,加密. 没有协议 2 会话层:解除或者建立与 ...

  8. 【趣味设计模式系列】之【代理模式2--JDK动态代理源码解析】

    1. 图解 上图主要描述了JDK动态代理的执行过程,下面做详细分析. 2. Proxy源码分析 上一篇,在使用JDK动态代理的时候,借助于Proxy类,使用newProxyInstance静态方法,创 ...

  9. Java设计模式之(五)——代理模式

    1.什么是代理模式 Provide a surrogate or placeholder for another object to control access to it. Proxy Patte ...

随机推荐

  1. VC++中的头文件包含问题

    在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系).也就是需要互相声明.好了,这时候会带来一些混乱.如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已 ...

  2. BCB6.0是垃圾的二十条理由

    我用的BCB6.0和windows2000 都是公司配的正版,我也有多年的开发经验. 1. IDE常常出现非法操作,有时重起动还会出错,须要重装BCB. 2. 自己主动完毕和智能提示功能超慢,慢到能够 ...

  3. BZOJ 3132: 上帝造题的七分钟( 二维BIT )

    二维树状数组... 自己YY一下再推一下应该可以搞出来... --------------------------------------------------------------------- ...

  4. Android百度地图之显示地图

    添加地图显示 一.在百度官网下载相关的SDK (网址:http://developer.baidu.com/map/sdkandev-download.htm) 解压下载好的BaiduMap_Andr ...

  5. hdu 4784 Dinner Coming Soon

    spfa+优先队列.刚开始只用的spfa,结果tle到死.然后听队友说要用到优先队列,想了想,对时间分层的话的确每一个结点都只进队列一次即可,因为只有大时间才能更新出小时间,然后就wa成shi了.按队 ...

  6. Linux下安装jekyll

    折腾了大半天,终于搞定了,这可得记下来了. 我的Linux版本:CentOS 6.5 主要的安装顺序还是官网上的说明:http://jekyllrb.com/docs/installation/,所以 ...

  7. select()函数详解

    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是 习惯写诸如connect. accept.recv或recvfrom这样的阻塞程 ...

  8. PHP用CURL或fsockopen伪造IP和来路(referer)

    URL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL库. 我们可以用CURL来伪造IP和来路,例子:1.php 请求 ...

  9. 年度酷工作---高级数据工程师(公司靠谱,技术强悍,产品牛叉,福利有干货) 关键词:7000万用户、五星级厨师、住房补助 - V2EX

    年度酷工作---高级数据工程师(公司靠谱,技术强悍,产品牛叉,福利有干货) 关键词:7000万用户.五星级厨师.住房补助 - V2EX 年度酷工作---高级数据工程师(公司靠谱,技术强悍,产品牛叉,福 ...

  10. ICE之C/S通信原理

    /* 在ICE文档中只需要声明module名称,接口名称,方法名称 */ #ifndef SIMPLE_ICE #define SIMPLE_ICE module Demo{ //module名称 i ...