问候,
我正在尝试使用 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
以下是客户的 libvirt XML 定义的相关部分:
<interface type='bridge'>
<mac address='54:52:00:76:94:73'/>
<source bridge='br0'/>
</interface>
更新 2
好的,我想我已经准备好了。我的客户操作系统(SLES 11,我不熟悉)默认有一组相当严格的防火墙规则,这让我很困惑。一旦防火墙被清空,我就可以进出连接了。
答案1
我想您知道如何在 NIC 上设置桥接器,因此基本上您只需在两个 NIC 上设置两个桥接器,然后启动虚拟机以连接到正确的桥接器。仔细想想,其中一个 NIC 可以不设置桥接器,因为客户机不需要使用它。
以上就是我对这个问题的一般描述。你能否展示一下你目前所做的工作,以便我们尝试找出你所犯的错误(当然,如果有的话)
答案2
我有一个类似的场景,使用 ubuntu 12.04.02 作为服务器操作系统。
我当前的单个客户机正在运行 CentOS。
服务器有 4 个 NIC,我想为服务器单独运行 eth0,使用 eth1 进行 iSCSI 到存储,使用 eth2 和 eth3 为客户机运行。Eth0
、eth2 和 eth3 连接到同一个局域网。
不过,我不确定我是否正确地弄清楚了如何设置接口。
到目前为止,我找到的描述仅涉及服务器中的 1 个 NIC。
目前,我已使用 dhcp IP 配置了 eth0,因为我在 dhcp 服务器上使用了固定预留。
我的 eth2 桥接器名为 br2
我已经配置了 eth2 和 br2,如下所示
auto eth2
iface eth2 inet manual
auto br2
iface br2 inet manual
bridge_ports eth2
netmask 255.255.255.0
network 192.168.168.0
gateway 192.168.168.1
broadcast 192.168.168.255
bridge_stp off
bridge_fd 0
bridge_maxwait 0
和
brctl addif br2 eth2
接口 eth2 和 br2 按照预期启动,但没有 IP。
然后,客户机也使用 dhcp 请求其地址。