IPSEC是一套比较完整的VPN技术,定义了一套协议标准。一般来说,IPSEC可以从以下几个方面来理解:
1. 为什么需要导入IPSEC协议?
我们引入IPSEC 协议有两个原因。一是最初的TCP/IP系统没有基于安全的设计,因此任何能够渗透线路的人都可以分析所有通信数据。 IPSEC 实现了完整的安全机制,包括加密、身份验证和数据篡改保护。
另一个原因是互联网发展迅速,接入越来越方便,所以很多客户希望利用这个互联网带宽来互连远程网络。 IPSEC协议通过报文封装技术,将内部网络IP地址与Internet可路由地址封装起来,实现远程网络之间的通信。
2. 数据包封装协议
想象一下沟通的形式。收发信件需要身份证(小孩没有身份证不能收发信件)。他们有两个孩子,小张和小李,他们的父亲是老张和老李。小强和小李想给对方写信,该怎么办?
实现这一目标的合理方法是:小张写了一封信,封面上写着“小张——小李”,信封上写着“老张——老李”,写给父亲老张。老李收到信后,发现是写给儿子的,便转发给了小李。小李的回复也是一样,以他父亲的名义发回给小张。 此沟通的实施取决于以下因素:
* 老李和老张可以收发消息
*小张发了一封信,交给了老张。
* 老张收到儿子的信后,能够正确处理(再写一个信封),并能正确寄出重新包装的信封。
* 与此同时,老李在收到并打开信件后,顺利地将信件交给了小李。
* 反过来使用同样的步骤。
将信封的发送者和接收者变为互联网上的IP地址,将信件的内容变为IP数据的模型就是IPsec报文封装模型。小张和小李是内部私网的IP主机,其父亲是VPN网关,原本无法通信的两个远端局域网可以通过出口处的IP地址封装实现局域网间通信。
引入这种数据包封装协议确实是最后的手段。理想的网络方案当然是全路由方案。任何节点都是可达的(就像现实世界理想的通信方式是每个人都可以直接互相写入一样)。
当互联网协议最初设计时,32 位对于IP 地址来说就足够了。当时,没有人能够预见到互联网将来会发展到目前的规模(类似的例子也发生在电信领域的短消息中;160 字节的限制严重限制了短消息的发展)。
按照2的32次方计算,理论上最多可以容纳约40亿个IP地址。这些IP地址的利用率非常差,而且大约70%的IP地址是美国分配的(它要求别人发明和管理互联网!IP地址资源有:非常有限。
由于IP地址有限,并且需要实现远程LAN-LAN通信,封装数据包显然是最好的方法。
3. 安全协议(加密)
请继续参考上面的通信模型。
老张给老李的一封信需要通过邮政系统投递,中间有很多坏人试图刺探小张和小李之间的书信往来(正在做生意),互相交流有关事情。买卖信息,或者干扰沟通,是一件好事。为了解决这个问题,必须采取安全措施。安全可以由小李、小张自己做,用代码表达的话,也可以由他们的父亲代他们写一封信,交给他们,并指示他们再写一次。请在提交前输入代码。
IPSEC协议的加密技术与此方法类似,允许对数据进行封装,当然,如果数据到达目的地时可以恢复,则可以进行转换。这个加密工作是在Internet出口处的VPN网关完成的。
4. 安全协议(数据认证)
以上面的通信模型为例,仅加密是不够的。
数据加密是该模型的核心部分,将信件的文本表示为代码。
坏人无法破译这封信,但他们可以伪造或随意更改它。这样,一旦信件到达收件人,其内容就无法再被识别,收件人也不知道信件已被更改。
为了防止这种结果,必须建立机制来防止数据篡改。万一数据被篡改,也可以立即识别出来。在现实世界的通信中,可以使用类似的算法来计算字符的特征(例如计算字符的笔画数或单词数)并将这些特征标记在字符后面。代码。接收者检查信件的特征,如果信件改变,特征也会改变。因此,如果限定者没有密码,则限定后的数据特征值将不匹配。收件人可以看到它。
实际IPSEC通信数据的认证也是如此,利用md5算法计算报文的特征,还原报告后检查特征码是否匹配。证明数据传输过程是否被篡改。
5、安全协议(身份认证)
让我们继续假设小张和小李的沟通模型。
老张和老李不在同一个地点,无法见面保证儿子的通讯安全。老张和老李需要互相确认一下对方的可信度。这是一个身份验证问题。假设老李和老张以前见过面,并约定了一个通信代码(例如,abcdefghij 为1234567890)。然后写255,对应蜜蜂。
普通VPN身份认证可以包含预共享密钥,允许通信双方就加解密密码达成一致并直接通信。如果你能沟通,你就是朋友;如果你不能沟通,你就是一个坏人。
其他复杂的身份认证机制还包括证书(数字证书之类的我就不详细解释了。
如果有身份认证的机制,频繁的密钥交换就成为可能。
6.其他
解决了上述问题后,就基本保证了VPN通信模型的建立。
然而,这并不完美。这是最简单的VPN。换句话说,远程网络的互连是通过两端的两个静态IP地址来实现的。美国的许多VPN设备都达到了这个水平,因为美国有丰富的IP地址,分配静态IP地址没有问题。棘手的是,对于像我这样的中国客户来说,在中国使用VPN 需要静态IP 地址,这相当于两端有两条专用互联网线路。
IPSEC 可以通过封装数据包并建立网络连接来在Internet 上建立通信隧道。但这种模式并不完美,还有很多问题需要解决。
在讨论其他问题之前,我们先定义一些关于VPN的概念。
VPN 节点:VPN 节点,即VPN 网关或客户端软件。它位于VPN网络的中间,是网络的通信节点。在某些情况下,您可能需要能够通过直接连接(例如ADSL、电话拨号)或通过NAT(例如社区宽带、CDMA 上网或中国铁路通信线路)连接到互联网。
VPN隧道:两个VPN节点之间建立的虚拟链路通道。两个设备的内部网络可以通过这条虚拟数据链路相互连接。相关信息是两个VPN 节点的当前IP 地址、隧道名称以及两者的密钥。
隧道路由:一台设备可能与很多设备建立隧道,这就带来了隧道选择的问题:去哪个目的地以及经过哪个隧道。
利用之前的通信模型,老李和老张通过邮政系统建立的密码通信关系就变成了数据隧道。当小张和小李给父亲写信时,父亲想要做出决定。这封信如何密封,密封后寄给谁。如果另一个老王父子也需要通信,隧道路由可能更容易理解。发送给小王的数据封装给老王,发送给小李的数据封装给老李。当节点数量较多时,隧道路由变得更加复杂。
了解了上面的问题之后,就可以发现ipsec需要解决的问题其实可以分解为以下几个步骤:
要找到对方的VPN节点设备,如果对方有动态IP地址,你必须能够及时有效地检测到对方IP地址的变化。根据通信模型,如果李先生和张老先生经常搬家,需要有一个有效的机制能够及时发现李先生和张老先生的地址变化。建立隧道说起来容易做起来难。如果两台设备都有有效的公共IP,则建立隧道相对容易。如果一方追求nat,它就会变得更加冗长。通常,UDP连接是通过内部VPN节点发起的,然后IPsec被重新封装并发送到另一端。由于UDP可以通过防火墙被记住,因此UDP重新封装的IPsec数据包可以通过VPN节点。防火墙。
一旦隧道建立起来,隧道的路由就确定了:去哪里、经过哪条隧道。配置多个VPN 隧道时,会定义保护网络,并根据保护网络关系做出隧道路由决策。然而,这消除了一些灵活性。
除上述几点外,所有ipsecVPN 均不实现任何其他功能。每个公司都有自己的方法。不过可以肯定的是,目前市面上的VPN肯定可以解决上述问题。
第一个问题:如何找到我的VPN节点设备?
如果设备使用动态拨号,则必须使用适当的静态第三方进行分析。 这相当于两个人不断移动。为了正确地找到彼此,每个人都需要互相认识的朋友。如果这个朋友不动,你们两个可以联系他。
实现静态第三方有三种常见的方法。通过网页。这是深信服发明的一项通过网页解析IP地址的技术。您可以登录http://www.123cha.com/查看您当前的IP地址。因此,动态设备可以通过这种方式发送其当前的IP 地址。其他设备可以通过网页返回查询。这样,设备就可以通过该网页找到彼此。由于网页相对固定,该方法可以有效解决这个问题。该方法有效分散了集中认证的风险,且易于实现备份。 当然,您的网页可能会受到很多攻击,因此请务必小心您的安全措施。
通过集中式服务器实现统一分析,并将用户分组在一起。每个VPN 设备只能看到同一组内的其他设备,无法跨组访问它们。 这也可以通过目录服务器来完成。该方式适用于集中式VPN,服务器位于总部,对全球设备进行集中认证和管理。 由于可靠性问题,它不适合对分布式用户进行身份验证。如果出现问题,其他设备可能能够连接到您的VPN 域。 对于这种大规模、集中式的VPN管理软件,国内外很多VPN厂商都有专门的设备和软件,除了动态IP地址解析外,还可以实现在线认证等功能。功能更强大的管理中心使您可以集中制定通信策略。下面的VPN设备配置参数比较少。
另一种方法是DDNS,即动态域名。动态域名是一种相对平衡的技术。 VPN设备拨号时,会向一级域名服务器注册当前的IP地址,并更新二级域名中的IP地址。其他互联网用户可以通过这个二级域名找到您的IP地址。 例如,如果您的动态域名服务器名为99ip.net或abc,您的VPN设备会通过软件将其发送到服务器,并将abc.99ip.net漂移到您当前的IP地址。但是,您也可能会遇到DNS 缓存问题。如果您的VPN 制造商提供自己的DDNS 服务,则可以加快通过其内部协议的查询速度并避免DNS 缓冲引起的问题。
上面我们讨论了三种动态IP地址解析方法。国内大部分厂家只提供这几种方法。如果有很多偏技术,那可能就不是主流技术。
传统的通信模型解决了动态IP地址的问题,使您无需考虑大量VPN设备即可构建网络。因此,随着这项技术被更多厂商掌握,IPsec VPN设备和软件的价格肯定会下降。 IT技术从日出到日落的瞬息万变。
第二个问题:如何建立隧道?
IP 地址动态寻址的问题已得到解决。接下来我们来讨论一下Nat遍历问题。我们知道UDP和TCP可以穿过防火墙。直接IPsec封装无法穿过防火墙。这是因为防火墙必须更改端口信息,以便将返回的数据包转发到正确的内部主机。对于TCP,三向握手需要更长的时间,并且来回确认也需要更长的时间,因此UDP 显然是更好的选择。事实上,这些任务属于ipsec封装的任务,在这里完成是不合适的。因此,使用UDP封装IPSEC报文并通过NAT传递几乎是唯一可用的选择。
使用UDP穿越NAT防火墙只能解决一半的问题,因为至少一方必须在Internet的公共网络上。它有一个可路由的IP 地址。在某些情况下,两个VPN 节点可能都位于NAT 之后。这只能通过第三方转账来完成。这意味着两个设备都可以与第三方设备通信,第三方设备向双方传输数据。这可以通过之前的模型来分析。老张、老李都可以直接和老王沟通,老王可以中间转发。小李和小张之间的所有通讯都被他父亲接管后,老王最终接管了他们。这是一个非常清晰的隧道路由概念。不能通过一条隧道直接到达,但可以在多条隧道之间中转。
所以IPsec VPN 也就不足为奇了。所有的中心工作无非集中在以下几个方面: 如何找到与该VPN节点相关的其他节点。
协商通信隧道。如果NAT之后呢?建立隧道路由表,确定不同的目标地址,并使用不同的隧道。
假设上述问题得到解决,隧道路由通信也可以实现,因为具有动态IP 地址的VPN 节点可以以某种方式找到彼此并建立隧道。是否可以通过完整的VPN 来实现这一目标?
答案仍然是否定的。解决了上述问题并不意味着它是一个非常有用的VPN产品。还有许多其他问题。随后的问题围绕复杂性展开。实现了简单的原理后,剩下的任务就是解决所有相关的边缘问题。只有这样才能实现一些有用的东西。可用和易于使用是两件不同的事情。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/83304.html