KVM / QEMU - 桥接 IP 地址混淆(在 Debian 主机上)

KVM / QEMU - 桥接 IP 地址混淆(在 Debian 主机上)

我按照一些指南在我的 Debian VM 主机上设置了桥接

我发现最有用的是这个:

https://linuxconfig.org/how-to-use-bridged-networking-with-libvirt-and-kvm

我已阅读了一系列其他可在线获取的指南,但它们似乎都跳过了 IP 配置的细节,并且没有提供有关为何选择特定地址/网络和网关的任何详细信息。

例如,在上面链接的例子中,192.168.0.90在网络 上创建了一个地址为 的网桥192.168.0.X/24。但是,没有解释为什么会出现这种情况。

我尝试按照此方法,自己在网络上创建了一个桥接192.168.1.X/24。这切断了我与 VM 主机的网络连接,而 VM 主机本身也位于该网络上。

我的主要问题在于,我不清楚桥接器到底是什么或代表什么。我知道桥接器用于将两个不同的网络连接在一起,就好像它们是同一个网络一样。

当我再次尝试配置我的系统时,我选择为网桥提供一个静态 IP 192.168.10.1/24

这似乎有效,我能够创建一个使用网桥的新虚拟网络。请参见下面的屏幕截图...

KVM/QEMU 桥接网络

然后我启动了一个具有以下网络配置的虚拟机:

VM 网络配置桥接网络 virt-manager

并且它能够连接并192.168.1.190从我的 DHCP 服务器获取 IP。

我的困惑就是从这里开始的,问题也随之而来。

  • 为什么创建与网络位于同一网络上的 IP 地址的网桥会192.168.1.X破坏网络连接?

  • 为什么当网桥有一个“随机” IP 地址时它会工作,例如192.168.10.1?我这里没有192.168.10.X网络,我编造了这个数字。

  • 如果网桥将两个网络连接在一起,就好像它们是同一个网络一样,为什么它只有一个关联的 IP 地址?(网桥实际上是如何工作的?我在网上找不到任何有关此内容的有用信息。)

顺便说一下,这是虚拟化主机的屏幕截图ip a output:你可以看到我的 VM 主机上有多个 NIC。其中一个是常规网络连接,另一个与网桥相关联。

KVM/QEMU虚拟网络vm主机网络配置


其他链接列表

答案1

首先要了解的是,Linux“br0”接口同时代表两个对象:

  1. 实际的 2 层桥接器,它连接所有分配的“端口”,而无需任何 IP 处理;
  2. 和一个桥接端口这使得主机操作系统可以成为同一桥的成员。

例如,当您配置具有两个端口 eth0 和 eth1 的网桥 br0 时,实际上它有三个端口:第三个端口是 br0 本身。(您可以想象实际的“网桥”存在于某个地方在后面br0.)

同样地,如果你有一个管理8 端口以太网交换机,实际上有 9 个端口:其中一个端口内部连接到管理 CPU,从而允许通过网络配置该交换机。(这通常称为“CPU 端口”。)

如果网桥将两个网络连接在一起,就好像它们是同一个网络一样,为什么它只有一个关联的 IP 地址?(网桥实际上是如何工作的?我在网上找不到任何有关此内容的有用信息。)

您正在考虑 IP 路由器。

网桥与路由器有很大不同;它不需要任何IP 地址发挥作用:它在“第 2 层”或“MAC 层”工作,这意味着它纯粹基于以太网头(例如目标 MAC)转发数据包,甚至不考虑 IP 等更高层。

您分配给 br0 的 IP 地址实际上属于主机操作系统——这就是 Linux 系统本身参与桥接网络的方式,其方式与在连接到以太网交换机的 eth0 上配置 IP 地址完全相同。

(虽然 Linux 仍然允许您直接为桥接端口分配 IP 地址,但它们通常不会按预期工作。一旦将 eth0 分配为桥接端口,eth0 就不再自行发送或接收数据包 - 它处于桥接器的控制之下。)

所以最有可能的回答

为什么创建与 192.168.1.X 网络位于同一网络的 IP 地址的网桥会破坏网络连接?

是新地址与您的实际以太网 LAN 连接冲突 - 即您最终连接到两个具有相同地址的网络。

要么 a)操作系统开始尝试通过网桥访问你的物理网关(192.168.1.1 或 .254),但网桥尚未(尚未?)连接到该物理网络,要么 b)相反:enp6s0 接口曾是成为网桥成员,因此不再能够发送自己的数据包,但它仍然分配有 IP 地址,并且操作系统一直尝试通过它发送数据包。

相关内容