带两个网卡的 KVM 网桥

Eil*_*Eil 5 linux redhat centos bridge kvm-virtualization

你好,

我正在尝试使用 KVM 设置桥接网络,但一无所获。有关于该主题的文档和教程,但它们似乎都有冲突或没有提供足够的信息。我想知道是否有人可以给我一个有关如何使其工作的高级概述。我可能可以自己解决细节(配置接口,添加路由等),我只需要大局方面的帮助:一切如何相互关联。

我有一个安装并运行 KVM 的 RHEL5 服务器。它有两个物理网卡,eth0 和 eth1 在同一个 VLAN 中。如果可能,我想将 eth1 用于来宾与网络其余部分之间的所有流量,并保留 eth0 用于主机管理、来宾迁移等。我不挑剔哪一个获得默认路由,尽管如果我们能把它设为 eth0 会很好。所有来宾都将拥有静态 IP。我更喜欢在添加新来宾时,只需从来宾本身内部设置网络配置。基本上,我想要这个:

eth0:所有主机流量
eth1:所有访客流量

如果这是不可能的或将是笨拙/困难的,请接受任何其他建议。指向现有文档的指针可能没有帮助,因为我已经了解了那里的所有内容。

谢谢你的帮助。

更新

好的,这是我到目前为止所拥有的:

  • eth0 正常配置了静态 IP 地址。那里没有惊喜。
  • br0 作为没有 IP 地址的网桥启动
  • eth1 是在没有 IP 地址的情况下启动的。它被添加到 br0 网桥。
  • VM 实例配置为使用 br0 并配置了静态 IP 地址

使用此配置,我可以从来宾内部连接到外部机器,但发往来宾的数据包永远不会成功。这是我的配置到目前为止的样子:

# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=YES

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# host-only interface
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:23:7D:E1:1F:22
IPADDR=10.8.91.18
NETMASK=255.255.252.0
GATEWAY=10.8.91.254
BOOTPROTO=none
ONBOOT=yes

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# guest-only interface
DEVICE=eth1
TYPE=Ethernet
BRIDGE=br0
HWADDR=00:23:7d:e1:1f:26
BOOTPROTO=NONE
ONBOOT=YES

(virbr0 is the default kvm/libvirt NAT bridge, it's not being used here)
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00237de11f26       no              vnet0
                                                        eth1
virbr0          8000.000000000000       yes

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
10.8.88.0       *               255.255.252.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         10.8.91.254     0.0.0.0         UG    0      0        0 eth0
Run Code Online (Sandbox Code Playgroud)

这是来宾的 libvirt XML 定义的相关部分:

<interface type='bridge'>
  <mac address='54:52:00:76:94:73'/>
  <source bridge='br0'/>
</interface>
Run Code Online (Sandbox Code Playgroud)

更新 2

好吧,我想我已经准备好了。我的来宾操作系统(我不熟悉 SLES 11)在默认情况下具有一组相当严格的防火墙规则,这让我感到很困惑。一旦防火墙被清空,我就可以进出连接。

dya*_*sny 0

我想您知道如何在 NIC 上设置桥接器,因此基本上您所需要做的就是在两个 NIC 上设置两个桥接器,然后启动虚拟机以连接到正确的桥接器。想想看,其中一个网卡可以不加桥接器,因为客人不需要使用它。

这是我对这个问题的一般描述。您能否展示一下您现在所做的事情,以便我们可以尝试找出您所犯的错误(如果有的话)