我们通常想象的计算机网络涉及连接到路由器和交换机等设备的各种电缆(以太网、光纤、同轴电缆),这些电缆将数据包定向到需要去的地方。

Wi-Fi 和蜂窝数据网络的兴起已经用无线信号取代了其中一些电线,但即使是无线电波也处于物理领域,它们会连接回手机信号塔或 Wi-Fi 接入点。

在七层 OSI 网络参考模型中,所有网络设备、处理和通信都占据最低的三层:第 3 层(网络)、第 2 层(数据链路)和第 1 层(物理层)。

在虚拟网络中,所有这些活动都发生在软件中。

虚拟网络可能完全存在于一台物理机器——一台服务器中。 或者它们可能构成一个运行在物理网络之上的抽象层,其配置和拓扑可能与虚拟网络完全不同。

构建虚拟网络是一项复杂的工作,但好处是巨大的:只需更改文件即可重新配置网络,而不是通过可能涉及爬过管道系统的费力体力劳动。

虚拟网络如何工作?

要了解虚拟网络的工作原理,让我们从一个相关且更为熟悉的概念开始:虚拟机(VM)。 我们大多数人都熟悉虚拟机,这使得在一台物理机器上运行多个应用程序实例成为可能。

这些虚拟机并不真正“知道”它们是虚拟的; 他们通常与底层硬件进行的所有系统调用和其他通信都被称为管理程序的软件层拦截。 管理程序处理来自同一台机器上运行的多个虚拟机的请求,以最有效地利用底层硬件资源。

VM 甚至可以跨硬件平台翻译指令,这样 VM 就可以在 x86 机器上运行,即使它是为 ARM 处理器设计的。 管理程序能够返回 VM 期望从硬件接收的结果。

虚拟网络基于相同的原则。 软件配置为模拟具有管理员所需的特定地形的网络。 与 VM 一样,虚拟网络能够发挥其魔力,因为与其通信的操作系统和应用程序不知道(或关心)它们是在与真实交换机还是虚拟交换机(vSwitch )。

他们只是发送标头中标有特定网络路由信息的数据包,并期望收到类似的数据包作为回报。 因为这种通信是标准化的,所以很容易构建可以模拟物理网卡、交换机或路由器行为的软件,而且像 Open vSwitch 这样的工具确实可以在管理程序上运行,也可以作为物理网络硬件的控制堆栈运行。

一旦管理程序有了这些数据包,它就必须弄清楚如何将它们路由到目的地,就像物理网络硬件一样。 不同之处在于管理程序必须将有关软件定义的虚拟网络(我们的计算机“认为”它所连接的网络)的信息转换为有关实际底层物理环境的信息。

一台计算机可能认为它正在向同一局域网中的另一台计算机发送数据包,但实际上这两台计算机可能位于不同的国家 — 或者可能是在同一台服务器上运行的两台虚拟机。

管理程序通常会通过将数据包封装在标头中具有不同路由信息的另一个数据包中来解决此问题,然后将该数据包移交给物理网络基础设施。 一旦该数据包到达目的地,外部数据包就会被剥离; 接收数据包的系统将认为它是通过虚拟网络到达的,而不是它穿过的实际物理网络。

不用说,实施虚拟网络需要大量的工作和独创性。 为什么要经历这些麻烦? 对不同类型的虚拟网络的描述将提供它们有用的真实场景的感觉。

虚拟网络的类型

一个重要的区别是内部和外部虚拟网络。 内部虚拟网络用于连接在同一台服务器上运行的多个虚拟机。 在这种情况下,管理程序不需要封装网络数据包并将它们发送到真实网络; 它只是找出它们适用于哪个虚拟机并交付它们。

使用为计算机到计算机通信开发的协议作为在同一物理硬件上运行的两个进程进行通信的一种方式似乎很奇怪。 但请记住,虚拟化的好处之一是您可以在同一台服务器上将多个开箱即用的操作系统作为完全独立且独立的进程运行。

为此目的使用标准网络数据包和协议,以及它们相关的安全基础设施,意味着这些 VM 可以在不修改的情况下运行和相互通信。

另一方面,外部虚拟网络涉及单独的物理计算机(或 VM 和物理机的混合体)。 在这种情况下,机器通过传统的物理网络设备连接(包括通过开放互联网的连接),但网络管理员将创建一个不同于底层物理网络拓扑的虚拟网络拓扑。

虚拟网络分为三类,可以是内部的或外部的:

  • 虚拟专用网络 (VPN) 是最简单的虚拟网络形式。 最常见的情况是一台计算机通过开放的互联网连接到本地公司网络。 从那台计算机和与之交互的其他计算机的角度来看,一旦建立了 VPN,这台计算机就是 LAN 的一部分,即使它是远程的。
  • 虚拟局域网 (VLAN) 更为复杂:它由虚拟定义的整个局域网组成。 可以通过将单个物理 LAN 划分为多个 VLAN 或将物理上独立的 LAN 组合为单个 VLAN 来创建 VLAN。
  • 虚拟可扩展局域网 (VXLAN) 是 VLAN 的增强版,它允许将大型 LAN 细分为更多独立的 VLAN,还可以更轻松地在不中断服务的情况下迁移 VM,这两者都是云的关键 基础设施。

虚拟网络的优点和好处

当您在同一硬件上运行多个虚拟机时,虚拟网络是绝对必要的——这是云计算中的常见场景。 同时,在现有物理网络之上创建 VLAN 和 VXLAN 使管理员能够快速重组网络以满足他们的需求——而且通常是在基础架构即代码时代自动进行。 通过手动重建物理网络很难或不可能做到这一点。

虚拟网络的优点包括:

  • 减少与物理网络硬件相关的成本和维护。
  • 通过集中和自动化控制简化网络管理。
  • 提供更灵活和细粒度的网络配置选项。

这些好处都有助于提高 IT 生产力并降低管理成本,这是虚拟网络得以保留的一个重要原因。