我已按照一些指南在我的 Debian VM 主机上设置网桥
我发现最有用的是:
https://linuxconfig.org/how-to-use-bridged-networking-with-libvirt-and-kvm
我已经阅读了一系列其他在线指南,但是它们似乎都跳过了 IP 配置的细节,并且没有提供任何关于为什么选择特定地址/网络和网关的细节。
例如,在上面的链接示例中,使用地址192.168.0.90
, 在网络上创建了一个网桥192.168.0.X/24
。然而,没有解释为什么会这样。
我尝试遵循这一点,在 network 中自己创建一个网桥192.168.1.X/24
。这断开了我与该网络上的 VM 主机的网络连接。
我的主要问题来自于我对桥实际上是什么或代表什么没有清晰的认识。我知道它用于将两个不同的网络连接在一起,就好像它们是同一个网络一样。
当我再次尝试配置我的系统时,我选择给网桥一个192.168.10.1/24
.
这似乎有效,我能够创建一个使用网桥的新虚拟网络。请看下面的截图...
然后我用这个网络配置启动了一个虚拟机:
它能够连接,并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。其中之一是常规网络连接,另一个与网桥相关联。
其他链接列表
首先要了解的是Linux“br0”接口一次代表两个对象:
例如,当您使用两个端口 eth0 和 eth1 配置网桥 br0 时,实际上它有三个:第三个是 br0 本身。(你可以想象实际的“桥”存在于br0后面的某个地方。)
同样,如果您有一个托管的8 端口以太网交换机,它实际上有 9 个端口:其中一个在内部连接到管理 CPU,这允许通过网络配置该交换机。(这通常被称为“CPU 端口”。)
您正在考虑 IP 路由器。
网桥与路由器非常不同。它不需要任何IP 地址来运行:它在“第 2 层”或“MAC 层”工作,这意味着它纯粹根据以太网报头(例如目标 MAC)转发数据包,甚至不查看更高层IP等层。
您分配给 br0 的 IP 地址实际上属于主机操作系统 - 这是 Linux 系统本身可以参与桥接网络的方式,就像在连接到以太网交换机的 eth0 上配置 IP 地址一样。
(虽然 Linux 仍然允许您将 IP 地址直接分配给桥接端口,但它们通常不会按预期工作。例如,一旦将 eth0 分配为桥接端口,则 eth0 不再自行发送或接收数据包 - 它受桥。)
所以最有可能的答案是
是新地址与您的实际以太网 LAN 连接冲突 - 即您最终连接到两个具有相同地址的网络。
a) 操作系统开始尝试通过网桥访问您的物理网关(192.168.1.1 或 .254),但网桥尚未(还?)连接到该物理网络,或者 b)相反:enp6s0 接口是做了一个桥成员,因此不再能够发送自己的数据包,但它仍然分配了 IP 地址,并且操作系统一直试图通过它发送数据包。