计算机网络由连接到路由器和以太网交换机等设备的各种电缆(以太网、光纤、同轴电缆)组成,这些设备将数据包定向到需要去的地方。 Wi-Fi 和蜂窝数据网络的进步已经看到无线信号取代了其中的一些电线,但即使是无线电波也属于物理领域,连接回基站或 Wi-Fi 接入点。
在七层 OSI 网络参考模型中,所有这些网络设备、处理和通信都占据最低的三层:
在虚拟网络中,所有这些活动都在软件中进行。 虚拟网络可能完全存在于单个物理计算机(服务器)中。 或者,它们可以构成在物理网络之上运行的抽象层,其配置和拓扑可能与虚拟网络的配置和拓扑有很大不同。 构建虚拟网络是一项复杂的任务,但好处是巨大的:您可以通过简单地更改文件来重新配置网络,而不是笨拙地通过管道。
虚拟网络如何工作?
要了解虚拟网络的工作原理,让我们从一个相关且更熟悉的概念开始:虚拟机。 我们大多数人都熟悉虚拟机,这使得在一台物理机上运行一个应用程序的多个实例成为可能。 这些虚拟机并不真正知道它们是虚拟的,它们通常与底层硬件进行的所有系统调用和其他通信都被称为管理程序的软件层拦截。 管理程序处理来自同一台计算机上运行的多个虚拟机的请求虚拟主机占用过多服务器资源的常见原因,以最有效地利用底层硬件资源。
虚拟机可以跨硬件平台翻译指令,例如,虚拟机可以在 x86 机器上运行,即使它是为 ARM 处理器设计的。 管理程序能够返回 VM 期望从硬件接收的内容。
虚拟网络基于相同的原理,软件配置为模拟具有管理员所需的特定地形的网络。 就像虚拟机一样,虚拟网络发挥着它的魔力,因为与之通信的操作系统和应用程序不知道(或关心)它们是在与真实的以太网交换机还是虚拟交换机通信()。 他们只是发送标头标有特定网络路由信息的数据包,并期望有类似的数据包。 因为这种通信是标准化的,所以很容易构建软件来模拟物理网卡、以太网交换机或路由器的行为,事实上,像 Open 这样的工具可以在管理程序上运行,也可以充当物理网络硬件运行的控制堆栈.
一旦管理程序有了这些数据包,它就必须弄清楚如何将它们路由到目的地,就像物理网络硬件一样。 不同之处在于管理程序必须将有关软件定义的虚拟网络(我们的计算机“认为”它连接到的网络)的信息转换为有关实际底层物理环境的信息。 一台计算机可能认为它正在向同一局域网中的另一台计算机发送数据包,但实际上这两台计算机可能在不同的国家虚拟主机占用过多服务器资源的常见原因,或者是运行在同一台服务器上的两台虚拟机。
虚拟机监控程序通常通过将数据包封装在标头中具有不同路由信息的另一个数据包中,并将该数据包交给物理网络基础设施来解决这个问题。 一旦数据包到达目的地,外部数据包将被剥离,接收数据包的系统将认为数据包是通过虚拟网络到达的,而不是它经过的实际物理网络。
毫无疑问,实施虚拟网络需要大量的工作和创造力。 何必呢? 对不同类型虚拟网络的描述将使您了解虚拟网络在现实场景中的工作方式。
虚拟网络的类型
内部和外部虚拟网络之间存在重要区别。 内部虚拟网络用于连接在同一台服务器上运行的多个虚拟机。 在这种情况下,管理程序不需要封装网络数据包并通过真实网络发送它们; 它只是找出它们适用于哪个虚拟机并交付它们。
使用为计算机到计算机通信开发的协议作为在同一物理硬件上运行的两个进程进行通信的一种方式似乎很奇怪。 但请记住,虚拟化的好处之一是您可以在同一台服务器上运行多个开箱即用的操作系统,作为完全独立且独立的进程。 为此目的使用标准网络数据包和协议,连同它们相关的安全基础设施,意味着这些虚拟机可以在不修改的情况下运行和相互通信。
另一方面,外部虚拟网络涉及单独的物理计算机(或虚拟和物理计算机的混合)。 在这种情况下,计算机通过传统的物理网络设备连接,包括通过开放式连接,但网络管理员将创建一个不同于底层物理拓扑的虚拟网络拓扑。
虚拟网络包括以下三种技术类型,可以是内部的也可以是外部的:
虚拟网络的优势
在同一硬件上运行多个虚拟机时,虚拟网络是绝对必要的——这是云计算中的常见场景。 同时,在现有的物理网络上创建VLAN和vxlan,允许管理员快速重构网络以满足他们的需求。 在基础架构即代码的时代,它通常是自动的。 这很难通过手动重建物理网络来实现。
虚拟网络的优点包括:
降低物理网络硬件的成本和维护 集中、自动化的控制简化了网络管理 提供更灵活和细粒度的网络配置选项
这些好处有助于提高 IT 生产力并降低管理和维护成本,这是虚拟网络存在的重要原因。