73、网络高级应用:隧道机制与虚拟专用网络详解

网络高级应用:隧道机制与虚拟专用网络详解

1. 选择隧道机制

在网络通信中,隧道机制的选择受多种因素驱动,其中源节点和目的节点上实现方式的可用性是重要因素之一。有些应用程序套件要求使用特定的隧道技术,而另一些则相对灵活,但仍要求所有实现中都具备特定的基本隧道方法。

以下是不同隧道机制特性的简要比较:
| 隧道机制 | 安全性 | 流量工程支持 | 多数据流支持 | 信令要求 | 中转节点状态 | 端节点状态 |
| — | — | — | — | — | — | — |
| GRE | 无 | 否 | 是 | 数据链路 | 否 | 否 |
| IP in IP | 无 | 否 | 是 | 数据链路 | 否 | 否 |
| 最小 IP 封装 | 无 | 否 | 是 | 数据链路 | 否 | 否 |
| IPsec | 强 | 否 | 否 | 密钥交换 | 否 | 是 |
| MPLS | 弱 | 是 | 是 | 完整 | 是 | 是 |

所有隧道机制都需要某种形式的端到端信令来确定使用的隧道形式。在某些情况下,这可能只是简单的链路层协议,而在其他情况下,则需要更广泛的信令来建立隧道信息。

2. 虚拟专用网络(VPN)
2.1 什么是 VPN

VPN 的基本组成部分是专用网络。例如办公室网络或大学校园的计算机网络,拥有这些网络的组织通常使用专用资源(如租用线路、光纤、微波链路或简单的拨号电话线)将它们连接起来,从而将专用网络扩展到多个站点。

然而,这些站点之间的专用链路可能很长且成本高昂,而与互联网的连接通常较短且相对便宜。因此,可以用互联网等共享公共资源替代专用长途资源。

例如,在家工作的员工或旅行推销员使用调制解调器访问公司网络时,若直接拨号连接总部可能产生高额长途话费。而互联网服务提供商在大多数城市都有点对点接入点,用户可以以本地通话费用(在美国甚至免费)进行拨号访问。

这种通过公共网络连接专用网络的方式创建了一种看似专用的网络,但实际上在专用网络之间传输的数据会通过公共网络,容易受到拦截、伪造或意外误送。因此,这些网络被称为虚拟专用网络,需要付出大量努力来确保专用站点之间传输数据的完整性。

其连接方式可以用以下 mermaid 流程图表示:

graph LR
    A[公司 A 站点 1] -->|互联网| B[公司 B 站点 1]
    A -->|互联网| C[公司 B 站点 2]
    D[公司 A 站点 2] -->|互联网| B
    D -->|互联网| C
2.2 隧道与专用地址空间

VPN 的一个优势是专用网络内的地址可以保持私有。这使得不同公司可以使用相同的地址空间,每个公司的主机可以拥有相同的地址。

如果专用网络完全独立,使用相同的地址空间不会有问题。但当 IP 数据包从一个公司的一个站点通过互联网发送到另一个站点时,就可能出现混淆和误送的情况。

解决这个问题的一种方法是使用任何形式的 IP 封装进行隧道传输,如 GRE、IP in IP 或数据链路层机制(如第 2 层隧道协议 L2TP)。这可以在互联网上建立隧道,就像图中公司 B 的站点 1 和站点 2 通过虚线表示的隧道连接一样。这个隧道可以看作是一条虚拟线路,一些 VPN 管理技术允许客户将其在互联网上的连接作为模拟线路进行管理。

虽然这种隧道方式可以解决一些 VPN 的安全问题,因为配置正确的互联网边缘路由器可以确保数据包在正确的隧道内传输并交付到正确的远程边缘路由器进行解封装和发送到正确的专用网络,但仅靠隧道本身并不能提供强大的安全模型,因为互联网内的数据包仍然容易被拦截,边缘路由器也可能配置错误。

2.3 使用路由协议的解决方案

基于第 2 层隧道的 VPN 解决方案存在扩展性问题。如果有 n 个站点参与 VPN,每个隧道模拟一条线路或物理连接,就需要配置和管理 n(n - 1)/2 个连接。另一种方法是提供一个中心节点作为 VPN 所有数据的交换中心,这样可以将连接数减少到 n 个,但中心节点成为单点故障,可能会破坏整个 VPN 的连接。

使用 IP 隧道技术时,虽然隧道的端点是固定的,但隧道的实际路径由互联网内的路由协议决定。这可能会减少核心网络的配置,但每个边缘节点仍需要配置专用目的 IP 地址到隧道的映射,即需要为 VPN 内每个节点的地址配置隧道远端的 IP 地址。

可以通过使用在互联网上运行的路由协议在边缘节点之间交换 VPN 连接信息来优雅地解决这个问题。边缘节点可以通告其他路由器,若要访问某个 VPN 内的一组 IP 地址,应将数据包发送给它。

有两种使用路由协议支持 VPN 的方法:
- 使用单独的路由协议实例 :为每个虚拟路由表使用单独的路由协议实例。像之前一样在提供 VPN 访问的边缘点之间建立隧道,但通过在隧道中运行内部网关协议(IGP)(如 OSPF)可以大大改善这些隧道的配置和管理。每个隧道端点作为一个虚拟接口,IGP 通过它通告其路由信息,隧道在隧道端点之间表现为单跳链路。这样,VPN 内节点的完整可达性信息会分发给参与 VPN 的每个节点,但在核心网络内不可见,也不会发送给不参与 VPN 的节点。
- 使用单个 BGP 实例 :利用单个边界网关协议(BGP)实例为所有 VPN 分发信息。这种方法扩展了 BGP,允许在分发的信息中包含 VPN 标识符,从而可以在所有边缘节点之间交换多个虚拟路由表,轻松建立 VPN 连接。

在这两种情况下,路由协议都用于分发提供 VPN 内节点访问的边缘节点的地址,而 IP 隧道仍然用于在互联网上传输 VPN 数据包。

2.4 安全解决方案

IPsec 是一种旨在通过公共网络安全传输 IP 的隧道协议,它在 VPN 实施中具有很大潜力,因为它提供了从加密、认证到防重放等全套安全功能。IPsec 隧道的一个优点是无连接,且隧道端点无需存储任何协议状态信息(不过需要管理安全信息,如密钥,这些密钥可以自动分发或手动配置)。

然而,IPsec 也存在一些缺点。一方面,它对所有数据进行加密会带来性能损失,但由于 VPN 数据安全通常是必需的,所以无论如何都可能需要某种形式的加密。另一方面,很难从单个 IPsec 隧道中分离数据流,因此可能需要在每对交换数据的 VPN 节点之间建立单独的隧道。

解决第二个问题的方法包括结合使用其他隧道机制。可以将 IPsec 应用于整个隧道(即通过 IPsec 对隧道本身进行隧道传输),或者将多个 IPsec 隧道复用为另一种技术的单个隧道。

2.5 MPLS VPNs

MPLS 可用于在支持 MPLS 的网络中建立隧道。这些隧道可用于在 ATM、帧中继或其他支持 MPLS 的网络中建立第 2 层 VPN。每个隧道在源和目的地之间提供一条虚拟线路,用于连接 VPN 的不同部分。或者,可以将 MPLS 数据包封装在其他隧道机制中,以便在 IP 核心网络中传输。当 MPLS 在 VPN 内使用,或者有许多边缘点各自提供对多个 VPN 的访问,且希望减少网络中的隧道数量时,后一种选择可能特别有用。

以下是不同 VPN 技术的比较表格:
| 技术类型 | 客户设备是否需知晓 VPN | 客户设备是否需为 VPN 配置 | 网络设备是否需知晓 VPN | 提供商边缘可扩展性 | 数据安全性 | 网络流量工程 |
| — | — | — | — | — | — | — |
| 第 2 层隧道 | 是 | 是 | 否 | 好 | 基于硬件完整性有一定安全性 | 否 |
| IP 隧道 | 若 CE 管理隧道则是,若 PE 拥有隧道则否 | 若 CE 管理隧道则是,若 PE 拥有隧道则否 | 若 CE 管理隧道则否,若 PE 拥有隧道则是 | 若 CE 管理隧道为中等,若 PE 拥有隧道则差 | 好 | 采用 DiffServ 有限支持 |
| IPsec | 是 | 是 | 否 | 中等 | 无 | 否 |
| MPLS | 否 | 否 | 是 | 差 | 基于硬件完整性有一定安全性 | 是 |
| 虚拟路由器 | 否 | 否 | 是 | 中等 | 无 | 采用 DiffServ 有限支持 |
| BGP | 否 | 否 | 是 | 中等 | 无 | 采用 DiffServ 有限支持 |
| BGP/MPLS | 否 | 否 | 是 | 中等 | 基于硬件完整性有一定安全性 | 是 |

RFC 2547 中描述了一种结合使用 BGP 和 MPLS 的混合 VPN 解决方案,并且 IETF 正在进一步开发该方案。这种解决方案具有可扩展性和灵活性。BGP 用于通告哪些边缘节点提供对哪些 VPN 的访问、每个边缘节点处每个 VPN 中地址的可达性信息,以及用于标识目标 VPN 的 MPLS 标签。在核心网络中传输的数据包会被赋予一个 MPLS 标签,使接收方能够立即区分应将数据交付给哪个 VPN。数据包在穿越核心网络时可能会被封装在 IP、GRE、IPsec 或 MPLS 隧道中。

2.6 光 VPN

光 VPN 是一个新的概念,涉及通过光核心自动提供数据服务。在这种情况下,连接在一起的网络可能是服务提供商整个网络的一部分。提供光连接的核心网络有时被称为服务提供商的服务提供商。

例如,GMPLS 可用于建立光 VPN,并且可以将核心网络视为一个在接入接口之间交换数据的单个虚拟交换机。

2.7 选择 VPN 技术

目前,VPN 是互联网中增长最快的领域之一。前面介绍的解决方案只是一些流行的方法,市场上可能有比销售支持 VPN 设备的供应商更多的方法。关于哪种解决方案能提供最佳连接性、安全性、易维护性和快速配置的争论,很大程度上受到供应商提供的实现方式的影响,而不一定基于实际情况。

选择 VPN 技术时,最重要的因素之一是其在经过验证和测试的设备中的可用性。以下是构建 VPN 时一些重要的考虑因素以及哪种解决方案在每个特性上表现最强的总结:
- 可扩展性 :这是一个备受争议的话题,涉及需要多少额外配置、需要交换多少额外的路由或信令信息。这也影响到维护 VPN 的责任归属问题,因为服务提供商的客户希望购买 VPN 服务而无需自行配置设备,但又不相信服务提供商能保护其数据不被误送或被黑客攻击。许多隧道解决方案可以由客户边缘(CE)设备或提供商边缘(PE)设备实现,这进一步增加了选择的多样性。
- 数据安全性 :不同的 VPN 技术在数据安全方面表现不同,如 IPsec 提供较强的安全功能,而一些技术则依赖于硬件的完整性来提供一定的安全性。
- 易维护性 :使用路由协议的解决方案可以在一定程度上简化配置和管理,但不同的方法在维护的难易程度上也有所差异。
- 配置速度 :一些解决方案可以更快速地建立 VPN 连接,满足不同用户的需求。

3. 移动 IP

如今的计算机比以往更小、更便携。曾经需要一整个空调机房的处理能力,现在可以轻松携带并在任何地方使用。同时,与互联网的连接变得更加容易和多样化。用户可以在办公室断开计算机连接,然后在同一办公室的其他地方或其他地点重新连接。连接可以通过以太网等既定网络技术、拨号线路或无线网络实现。在无线网络的情况下,即使用户在连接过程中,连接点也可能发生变化。

移动 IP 就是为了适应这种计算机的移动性而产生的技术,它允许移动设备在不同网络之间移动时保持其 IP 地址不变,从而确保通信的连续性。当移动设备从一个网络移动到另一个网络时,它会向家乡代理注册新的转交地址,家乡代理会将发往移动设备家乡地址的数据包转发到新的转交地址。

移动 IP 的工作流程可以用以下 mermaid 流程图表示:

graph LR
    A[移动设备] -->|注册转交地址| B[家乡代理]
    C[对应节点] -->|发送数据包到家乡地址| B
    B -->|转发数据包到转交地址| A

综上所述,无论是隧道机制、VPN 技术还是移动 IP,都在不断发展和完善,以满足日益增长的网络需求和用户对网络性能、安全性、移动性等方面的要求。在实际应用中,需要根据具体的需求和场景选择合适的技术和解决方案。

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值