隧道是一种将数据包从一个网络移动到另一个网络的方法。隧道通过封装运作:将一个数据包包装在另一个数据包中。
阅读本文后,您将能够:
复制文章链接
在物理世界中,隧道是一种跨越通常无法跨越的地形或边界的方法。同样,在网络中,隧道是一种使用网络不支持的协议在该网络中传输数据的方法。隧道的工作原理是对数据包进行封装:将数据包包装在其他数据包内。(数据包是小块的数据,可以在目的地重新组合成一个大文件)。
隧道技术经常用于虚拟专用网络 (VPN)。它还可以在网络之间建立高效和安全的连接,从而使用本不受支持的网络协议,并在某些情况下允许用户绕过防火墙。
通过网络传输的数据被分成数据包。一个典型的数据包有两部分:标头,它指示数据包的目的地和它使用的协议,以及有效负载,它是数据包的实际内容。
封装的数据包本质上是另一个数据包内的数据包。在封装的数据包中,第一个数据包的标头和有效负载进入周围数据包的有效负载部分。原始数据包本身成为有效负载。
所有数据包都使用网络协议(格式化数据的标准化方式)来到达目的地。但是,并非所有网络都支持所有协议。想象一家公司想建立一个广域网 (WAN) 连接办公室 A 和办公室 B。该公司使用 IPv6 协议,这是最新版本的互联网协议 (IP),但是办公室 A 和办公室 B 之间有一段网络仅支持 IPv4。通过将 IPv6 数据包封装在 IPv4 数据包中,公司可以继续使用 IPv6,同时仍可在办公室之间直接发送数据。
封装对于加密的网络连接也很有用。加密是对数据进行扰乱的过程,只有使用保密的加密密钥才能解开;解开加密的过程被称为解密。如果一个数据包包括标头在内被完全加密,那么网络路由器就无法将数据包转发到它的目的地,因为它们没有密钥,看不到其标头。通过将加密的数据包包装在另一个未加密的数据包中,数据包可以像往常一样跨网络传输。
VPN 是公共共享网络上的安全加密连接。隧道是 VPN 数据包到达其预期目的地(通常是专用网络)的过程。
许多 VPN 使用 IPsec 协议套件。IPsec 是一组在网络层的 IP 之上直接运行的协议。IPsec 隧道中的网络流量是完全加密的,但一旦到达网络或用户设备就会被解密。(IPsec 还有一种称为“传输模式”的模式,它不会创建隧道。)
另一个常用于 VPN 的协议是 Transport Layer Security (TLS)。该协议在 OSI 模型的第 6 层或第 7 层运行,具体取决于模型的解释方式。TLS 有时称为 SSL(安全套接字层),尽管 SSL 指的是不再使用的旧协议。
通常,当用户将他们的设备连接到 VPN 时,他们的所有网络流量都会通过 VPN 隧道。拆分隧道允许一些流量离开 VPN 隧道。从本质上讲,拆分隧道允许用户设备同时连接到两个网络:一个公共网络和一个私有网络。
通用路由封装 (GRE) 是几种隧道协议之一。GRE 将使用一种路由协议的数据包封装在使用另一种协议的数据包中。GRE 是一种跨网络建立直接点对点连接的方法,目的是简化不同网络之间的连接。
GRE 为每个数据包添加两个标头:GRE 标头和 IP 标头。GRE 标头指示封装数据包使用的协议类型。IP 标头封装原始数据包的 IP 标头和有效负载。只有 GRE 隧道两端的路由器才会引用原始的非 GRE IP 标头。
IP-in-IP 是一种隧道协议,用于将 IP 数据包封装在其他 IP 数据包中。IP-in-IP 不加密数据包,也不用于 VPN。它的主要用途是设置通常不可用的网络路由。
安全外壳 (SSH) 协议在客户端和服务器之间建立加密连接,也可用于建立安全隧道。SSH 在 OSI 模型的第 7 层(即应用程序层)运行。相比之下,IPsec、IP-in-IP 和 GRE 在网络层运行。
除了 GRE、IPsec、IP-in-IP 和 SSH,其他隧道协议包括:
Cloudflare Magic Transit 保护内部部署、云和混合网络基础设施免受 DDoS 攻击和其他威胁。为了让 Magic Transit 正常工作,Cloudflare 网络必须安全地连接到客户的内部网络。Cloudflare 使用 GRE 隧道来形成这些连接。借助 GRE 隧道,Magic Transit 可以通过公共互联网安全地直接连接到 Cloudflare 客户的网络。