我已经阅读了许多论坛和有关环回接口的许多问题,不断重复的一点是环回接口是一个虚拟接口。
在 vmware 和 hyper-v 等虚拟机管理程序中,有一个虚拟交换机。这是否意味着该虚拟交换机的每个接口都是环回接口?VPN 创建的虚拟接口呢?这些也可以称为环回吗?
在 Linux 机器上创建接口怎么样/etc/network/interfaces
?这些也可以视为环回吗?
答案1
我猜你的动作有点太快了,而且有些混淆术语。
了解环回接口的基本含义和用途(来自https://en.wikipedia.org/wiki/Loopback#Virtual_loopback_interface)
互联网协议套件的实现包括一个虚拟网络接口,当在同一台机器上执行时,网络应用程序可以通过该接口进行通信。它完全在操作系统的网络软件中实现,不会将任何数据包传递给任何网络接口控制器。计算机程序发送到环回 IP 地址的任何流量都会简单且立即地传回网络软件堆栈,就像是从另一台设备接收的一样。
因此,从我的角度来看,环回接口的主要目的是提供一种简单的方法来测试系统的网络堆栈。如果您在同一系统上运行 2 个应用程序,并且想要测试它们是否可以通过网络相互通信,则您不需要路由器/交换机(或构成网络的其他任何设备),只需使用软件和几个命令来创建一些环回接口,然后通过这些接口路由流量即可。
IPv4 地址块 127.0.0.0/8 实际上是出于这个原因而保留的,并且通常“localhost”指向该范围内的地址。因此,向“localhost”发送流量实际上是使用环回接口完成的。
在网络中
此外,(来自https://en.wikipedia.org/wiki/Loopback#Management_interface),您可以看到,在某些情况下,环回接口的用途实际上可能有所不同,例如在网络(以及路由器/交换机/防火墙等网络设备)中,环回接口主要用作管理接口。各种路由协议和其他服务也使用它。
网络设备确实安装了软件,就像操作系统一样,并且可以创建多种类型的虚拟接口,其中包括环回接口。但还有其他类型的虚拟接口,它们的用途不同(不用于测试网络堆栈和发回流量或管理),例如通常用于 VPN 的隧道接口。桥接接口也是虚拟接口。
最后,所有这些虚拟接口都是用软件创建的(它们基本上修改/更改您发送/接收的网络数据包 - 源 IP、源 MAC 等),并且它们确实使用物理接口通过网络进行通信。
总而言之并回答您的问题,(几乎)所有环回接口(检查 Spooler 对这篇文章的评论)都是虚拟接口,但并非所有虚拟接口都是(=具有)环回接口的用途。
这是否意味着该虚拟交换机的每个接口都是环回接口?
不。虚拟交换机可以有一个环回接口,但是它的所有其他接口可能都模拟了正常物理接口的行为,即仅将流量发送到通过介质(电缆、无线电等)连接的另一个接口,在这种情况下可能只是软件。
那么 VPN 创建的虚拟接口呢?这些也可以称为环回吗?
不。VPN 通常使用另一种类型的虚拟接口——隧道接口。
答案2
环回接口最重要的特性是永远向上不管系统中其他接口的状态如何。仅当您将环回配置为关闭时,它才会关闭。
虚拟接口是一个合理的描述,但可能与其他类型的接口有很多语义重叠。
我不会将 vmware 虚拟交换机接口描述为环回。这些接口可能由于各种操作状态原因而关闭,对吗?它们的用途也不同于环回——明确地提供始终处于开启状态的接口。
答案3
虚拟接口是指不由某些硬件(立即)表示的接口。从这个意义上讲,环回接口是虚拟接口。(但也有其他虚拟接口 :-))
环回接口不需要任何硬件,并且将流量完全保留在系统上。这很有用/必要,因为很多程序通过网络协议进行通信 - 即使在同一个系统上也是如此。而且我们不想将“内部”通信馈送到实际网络中。
答案4
环回接口在该词的本义上是“虚拟的”,即它不与任何物理硬件相连。
但如今“虚拟”一词主要用在谈论虚拟机管理程序时,而“仅存在于软件中”的本义已几乎丧失。
从技术角度来看,环回接口和虚拟网络适配器是两个完全不同的东西;但操作系统都将它们视为“真正的”网络接口;VPN 隧道也得到同样的处理。
毕竟,你可以将网络协议封装在你能想到的任何类型的界面。