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. android handler工作原理

    android handler工作原理 作用 便于在子线程中更新主UI线程中的控件 这里涉及到了UI主线程和子线程 UI主线程 它很特别.通常我们会认为UI主线程将页面绘制完成,就结束了.但是它没有. ...

  2. maven安装jar到本地仓库

    class12.jar这个东西在中央仓库里没有,所以,cmd到oracle\product\10.2.0\db_1\jdbc\lib路径下,mvn install 就好了(发布第三方jar到本地库) ...

  3. 汇总:Linux下10款即时通讯客户端,skype

    aMSN 是一款功能强大的MSN(WLM)的客户端,支持皮肤.插件.系统托盘图标.摄像头.多帐号登录.离线信息等. Pidgin 不用说了,是GNOME下的IM客户端,支持AIM, Google Ta ...

  4. jxl读写excel, poi读写excel,word, 读取Excel数据到MySQL

    这篇blog是介绍: 1. java中的poi技术读取Excel数据,然后保存到MySQL数据中. 2. jxl读写excel 你也可以在 : java的poi技术读取和导入Excel了解到写入Exc ...

  5. cocos2dx进阶学习之CCAction

    CCAction在cocos2dx中,抽象了节点的动作.它由CCObject派生,因此它不是渲染节点. 它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它. 在马 ...

  6. UITableView 协议中常用的方法

    UITableViewDataSource 协议中常用方法 1.设置右边 索引值 - ( NSArray *)sectionIndexTitlesForTableView:( UITableView ...

  7. JavaScript+XML+VBA导出报表初步构想

    最近在做人事档案管理系统遇到的一个问题就是种类多.数量大的报表打印问题.这个系统的一个特点就是信函打印,各种介绍信.各种证明信.对于这样的重复性的功能,最好的方法就是所有的报表实现格式套用. 经过分析 ...

  8. 【LeetCode】【Python题解】Single Number &amp; Maximum Depth of Binary Tree

    今天做了三道LeetCode上的简单题目,每道题都是用c++和Python两种语言写的.由于c++版的代码网上比較多.所以就仅仅分享一下Python的代码吧,刚学完Python的基本的语法,做做Lee ...

  9. CodeForces 450B Jzzhu and Sequences 费波纳茨数列+找规律+负数MOD

    题目:Click here 题意:给定数列满足求f(n)mod(1e9+7). 分析:规律题,找规律,特别注意负数取mod. #include <iostream> #include &l ...

  10. 代码中函数、变量、常量 / bss段、data段、text段 /sct文件、.map文件的关系[实例分析arm代码(mdk)]

    函数代码://demo.c #include<stdio.h> #include<stdlib.h> , global2 = , global3 = ; void functi ...