为什么桥梁需要一个IP地址?

桥接器是一种第二层网络设备。在物理桥接器上,我们只需要一个IP地址来进行运维管理。
我有点困惑为什么在KVM中需要为桥接器分配一个IP地址。
我理解虚拟机的接口会获得一个IP地址,而连接到桥接器的物理接口没有IP地址。这样可以确保虚拟机的IP地址对外可见。
在服务器环境中,我只会为虚拟机使用静态IP地址。
假设我为虚拟机使用静态IP地址,那么为什么还需要在桥接器上设置一个IP地址呢?
3个回答

你不需要为桥接器配置IP,就像你不需要为以太网设备配置IP一样,在任何机器上(无论是主机/客户机还是其他)。
然而,如果你有一个没有IP地址的设备/桥接器,你不能指望它能被正确配置的一方使用(无论是主机还是客户机)。
所以举个例子,如果我有一个名为"br_vm"的KVM主机桥接器,我将其分配给所有KVM客户机作为它们唯一的接口(客户机很可能称之为"eth0"),如果在主机上没有配置br_vm,你不能指望客户机能通过它们的eth0接口与主机通信。
你问为什么需要为桥接器配置IP,答案是你不需要。然而,如果你想知道在哪些情况下你希望在主机上为桥接器配置IP,我可以想到几种情况:
  1. 你希望你的虚拟机与主机进行通信,即使只是用于DHCP或DNS;
  2. 如果你与许多虚拟机共享该桥接器,你可能希望禁用虚拟机之间的流量。这是值得考虑的事情;
  3. 除了为虚拟机设置的任何防火墙外,你可能还希望在主机级别上设置防火墙。如果所有虚拟机的策略、区域等都大致相同,将所有防火墙规则集中在主机上可能是明智的选择。如果所有规则、IP地址、策略等都保存在一个地方会更容易(尽管我建议每个虚拟机都设置基本防火墙以防万一);

顺便说一下,你可以在客户端虚拟机上使用动态IP地址分配,这与主机是否在桥接器上有IP地址无关(当然,如果主机是网络的DHCP服务器,则另当别论)。


这更多是我在文档中发现的一个特性。我假设您的主机使用/etc/network/interfaces文件进行网络配置。
如果在桥接接口(本例中为br0)部分中指定了地址为0.0.0.0,您将得到您想要的效果:连接到桥接的虚拟机仍然与网络连接,并保留自己的IP地址。
但是,您会失去主机在该桥接上的“端口”。如果(在interfaces文件中)指定了IP地址,那么它实际上成为了您在该桥接上的主机IP,就像传统交换机上的管理接口一样。
请记住,桥接就像一个独立的交换机,但主机仍然在“管理”它,因此添加一个IP地址只是添加了一个带有地址的管理接口(如果这样说有意义的话)。
如果和我一样,你的主机有两个网卡:一个用于虚拟机,一个用于自身,你可以在“VM桥接”上设置0.0.0.0的地址,并依赖另一个物理网卡进行管理,以实现类似的配置。
如果这不是你所问的,让我知道,我会进行修改以适应。

你不需要为Linux桥分配IP。
这是一个示例,显示在/etc/network/interfaces中的样子。br0是桥接口,连接到eth0接口:
auto br0
iface br0 inet manual
    bridge_ports eth0

我在我的主机上有三个网卡,其中一个是用于DMZ网络的桥接。我真的不需要为那个DMZ桥接接口分配IP地址。可以得出结论,不给它分配IP地址也更安全,因为虚拟机客户端(例如Web服务器)不能访问主机。换句话说,没有IP地址的桥接接口完全是“无效”的/“哑巴”的吗? - MrCalvin

  • 相关问题