老斜两宗事-七层代理模式还是IP层VPN

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

很多人会问,我到底是使用代理模式呢,还是使用VPN模式,如果我想数据在中间不安全的链路上实现加密保护的话。
这个问题有一个背景,那就是,你想保护你的数据,可以使用VPN,但是有时候,第七层的代理模式或许更好,比如SSL卸载器,比如内置SSL处理的代理,分为正向代理和反向代理。
正向代理:代理的是访问者。一般位于访问者一端,访问者能意识到代理的存在,直接访问代理,由代理向服务器发起访问。
反向代理:反向代理代理的是被访问者。位于被访问者一端,访问者意识不到代理的存在,访问者访问代理,由代理将请求重定向到真正的服务器。

看上述区别的后半段,完全相同,这也是最容易引起迷惑的地方,但是我现在的解释不关注这些,如果单看TCP层以及IP层的访问模式,会发现上述的正向代理
和反向代理没有任何区别-你会发现TCP层和IP层的封包是一样,因此区别正是体现于第七层-重点是实际访问客户端是否设置代理,体现在HTTP头。当我
们已经屏蔽了第七层的区别后,仅仅看TCP层的访问模型,你会发现一个事实,即不管是正向代理还是反向代理,在TCP看来都用相同的方式卡在了路径中央,
客户端和代理建立TCP连接,代理和服务器建立TCP连接。
      
现在明白什么时候用代理什么时候用IP层VPN了吗?答案在于数据流的方向!如果再深挖一下,如果数据流始终都是从你这里发起的,有一个代理声称可以替你
完成你要求的事务,还可以提供安全加密服务,未尝不可啊,如果另一个代理对服务器声称,它可以汇集成千上万的客户端的访问请求,那也行啊。但是代理对数据
流的发起方向有要求,反过来就难了,对于服务端而言,它要主动发起一个到某个客户端的访问,如何使用代理,这意味着代理必须显式知道客户端的位置,而这几
乎是不可能。此时需要一个新的方案,那是什么呢?那就是将整个反向的访问流封装于一个正向建立的隧道内,这个隧道是长连接的,除非显式拆除,它会一直存
在。这是什么?这就是IPSec
VPN,PP2P,L2TP,OpenVPN等三层以及三层以下的VPN。当然,使用三层以及三层VPN的代价就是你将不能处理所有的四层以上特别是七层
的信息,比如你不能解析过境包的HTTP头(做这件事远远比你想的困难,首先你要识别出这是一个TCP的HTTP数据包,也许只是一个IP分片,你要实现
重组,也许是一个乱序的TCP段,你要实现TCP的按序逻辑...更现实的,也许一个HTTP头会分在多个TCP段中,....人生苦短,为何如此折磨自
己,使用安全代理吧)...
       如果你能保证数据流都是从客户端主动发往服务端的,且你需要更细的基于七层信息的控制粒度,且百折不扣地使用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机制,客户端也是可以拒
绝任何push reply的。

2.大便骑沟便沟内

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


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

时间: 2024-10-03 14:45:05

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

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

关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Hadoop阅读笔记(五)——重返Hadoop目录结构>中介绍的hadoop目录结构,前面已经介绍了MapReduce的内部运行机制,今天准备入手Hadoop RPC,它是hadoop一种通信机制. RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络

大话设计模式第七章---代理模式模式PHP实现

<?php abstract class Subject { abstract public function request(); } class Real_subject extends Subject { public function request() { echo "真实请求"; } } class Proxy extends Subject { private $_real_subject = null; public function request() { if

读书笔记_java设计模式深入研究 第七章 代理模式 Proxy

1,代理模式:一个类可以用作其他东西的接口,其他类可以通过此类去访问被代理者. 2,UML图如下: 3,角色: ISubject:抽象主题接口,该接口定义对象和它的代理共用的接口. RealSubject:真实主题角色,使实现抽象主题接口的类. Proxy:代理角色,内部含有对真实对象的引用,从而可以操作真实对象,代理对象提供与真实对象相同的接口,以便在任何时候都可以替代真实对象. 4,简单代码: package pattern.chp07.proxy;   /** * 类描述:抽象主题接口 *

第七话-代理模式

 谈恋爱啊谈恋爱.可是怎么追女神呢?你是否也试过代理模式呢?啊,什么?追女神还和模式有关?当然,让我一起学习代理模式. 一.什么是代理模式? 代理模式就是为其他对象提供一种代理以控制对这个对象的访问.有点拗口.其实就是中间人而已,A与B认识,B与C认识,A不认识C,那么A怎么追C呢?B呗. 二.代码实例(追女神) Main.java public class Main { public static void main(String[] args){ Nvshen nvshen = new

TCP/IP协议之IP层

TCP/IP协议的结构参见下图.有应用层,运输层,网络层,链路层. 但是如果更细化的话,其实还有几层没在这上面体现出来. 1 表示层:数据格式化,代码转换,加密. 没有协议 2 会话层:解除或者建立与其他结点的联系.没有协议 3 物理层:以二进制形式在物理链路上传输数据.协议有ISO2100,IEEE802 在上图中加上这三层协议.就构成了OSI七层协议网络模型.从上到下分别是应用层,表示层,会话层,传输层,网络层.数据链路层,物理层. 为什么一个数据传输要分成这么多层呢.统一为一个模块不行么.

linux ip 层实现读后感

看了linux IP层的代码,这里做一个简单总结,具体对照上图说明: 下层报文由路径PRE_ROUTING进入IP层,在RT节点经过路由决策将目地为本机的报文通过LOCAL_IN路径送至上层协议.非本机的报文由FOWARDING到达EM节点,而由本地产生的报文在RT节点经过路由决策后将通过LOCAL_OUT进入EM节点.流至EM节点的所有报文将通过POST_ROUTING流出IP层. IP分片和重组是相当重要的,IP重组发生在LOCAL_IN路径上,即对到达本机的报文使用IP重组. IP分片实际

IP 层收发报文简要剖析2--ip报文的输入ip_local_deliver

ip报文根据路由结果:如果发往本地则调用ip_local_deliver处理报文:如果是转发出去,则调用ip_forward 处理报文. 一.ip报文转发到本地: /* * Deliver IP Packets to the higher protocol layers. */ /* * 在ip_route_input_noref进行路由选择后,如果接收的包 * 是发送给本机,则调用ip_local_deliver来传递给上层协议 */ int ip_local_deliver(struct s

七层代理与四层负载区别

layer4与layer7 四层:IP+PORT转发 七层:协议+内容交换 四层负载 在四层负载设备中,把client发送的报文目标地址(原来是负载均衡设备的IP地址),根据均衡设备设置的选择web服务器的规则选择对应的web服务器IP地址,这样client就可以直接跟此服务器建立TCP连接并发送数据. 七层代理 七层负载均衡服务器起了一个反向代理服务器的作用,服务器建立一次TCP连接要三次握手,而client要访问webserver要先与七层负载设备进行三次握手后建立TCP连接,把要访问的报文

OSI七层模型,讲解tcp/ip五层涉及的网络协议,网络通信实现,结合协议来看网络通信流程

当我们通过自己电脑的浏览器访问京东的时候, 览器上输入了一个网址,但是我们都知道,互联网连接的电脑互相通信的是电信号,我们的电脑是怎么将我们输入的网址变成了电信号然后发送出去了呢,并且我们发送出去的消息是不是应该让京东的服务器能够知道,我们是在请求它的网站呢,也就是说京东是不是应该知道我发送的消息是什么意思呢.是不是发送的消息应该有一些固定的格式呢?让所有电脑都能识别的消息格式,他就像英语成为世界上所有人通信的统一标准一样,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的intern