想象一下,如果有个同学想在网上观看点什么好东西,又不想让太多人知道。或者买点什么好货,不想让沿途的路由都知道。该如何做到这一点呢?
显然,在公网上普通的网络数据包肯定是有风险的,数据包达到每一个路由节点的时候,每一个ISP节点都会获得数据包中的源地址、目标地址,甚至是解析到所传传数据的内容。这样的话,攻击者就很容易在某个节点进行信息的截获,甚至发起攻击。
那接下来需要怎么办呢?
其实一般的不是很重要的服务其实还好,因为本身传送的数据并不是安全性特别高的那种,偷了也无所谓。但是,如果是对于一些企业内部数据,核心业务等等,像企业内部员工访问财务系统,就不能等闲视之。
拉专线?
这听着像一个good idea,其实吧绝大部分情况下不现实。因为,太!贵!了!
尤其是在长距离传输的情况下,企业根本没有办法承受这么高昂的成本。
那怎么能做到花钱又少,安全性又高呢?
这时候你需要一点VPN~~~~
概念与原理VPN是英文名称是Virtual Private.NETwork,即虚拟专用网。说直白一点就是:通过一些很牛X的技术,在公用网络上虚拟一套网络,从而达到拉设专线的效果。
是不是很神奇?
VPN是怎么做到的呢,这个VPN路由设备中所说的数据封账是个什么东西?
其实这里用到了隧道技术,它是VPN技术的灵魂。
隧道技术封装!协议封装!就是隧道技术的核心概念。
打个比方,就像是有个人把心爱的小摩托开到一条船上,我们就说这条船把摩托车给封装了,通过船来把摩托车传送到河对岸。
摩托车:数据 船:封装协议 河流:数据链路层和物理层 码头:服务器数据被封装后,沿途不管经过多少个检查站(路由器设备、网关设备、集线器、交换机等),他们都不清楚里面封装的到底是什么。
以上就是隧道技术的形象比喻,我们接下来看下在VPN中是如何利用隧道技术实现数据封装的。
VPN中的数据封装首先,我们发送的数据报由有协议头和数据,其中协议头里面含有源IP和目的IP。
如果不封装,那么在每一个路由节点势必会被沿途的路由解析到协议头的信息。
接下来就是重头戏了,VPN路由封装就是在数据上再加一个协议头。
加了两个东西:协议头R和封装协议头R。
我们分别解释下,为啥要加他们。
协议头R
这个就是VPN路由设备的IP地址等信息,就是说:我传送数据的时候,在计算机网络上每经过一个路由节点。
我会告诉沿途的路由器:我的源IP地址在协议头R里面。其实,协议头D里面的源IP地址根本没有他们,而是“夹带私货”的方式传了下去。
比如上图,原本数据包的源IP是192.168.10.6,经过VPN路有设备的封装之后,加上了一个另外的协议头(源IP为192.167.0.1)。那么,在数据传输中就用这个外层的协议头,里面的数据就安稳地躲在里面就行了,这样就足以达到专线的安全级别。
封装协议头R
有人会好奇,为什么要加一个封装协议头呢?
其实这跟OSI七层模型的传输规则有关,我们知道,数据在传输之前会经过打包,在另一端是拆包。
那么,如果不加上封装协议头的话,网络层拆了一个协议头了,接下来数据就会传送到4层传输层。这可不行!因为还有一层要继续拆封的,即数据D的协议头。封装协议头就是标识这个的,VPN的路由设备在拆封时如果看到封装协议头,就会继续拆,直到看不到拆封协议为止。
总结说了这么多,我们看下VPN的整体效果。
一份数据在VPN上经过了封装、传输、解封的三个生命周期阶段,在传输过程中VPN路由器的源IP替代了数据的真实IP,数据被严严实实地包裹在里面,保障了数据的高安全性。