我之前安装了 Xen,但还没有启动虚拟机管理程序。昨天我启动了,结果一切都乱套了。由于 Xen,我的服务器完全失去了网络连接。
当我启动服务器但eth0
不在 内时,Xen 会尝试通过将其重命名为(物理)br0
来虚拟化它,然后它应该创建一个(虚拟)并将其重命名为,至少根据peth0
eth0
veth0
eth0
eth0
Xen 文档。
问题是它没有启动,eth0
而且我完全没有互联网连接。eth1
我的服务器上有一个,我想虚拟化该接口反而的eth0
。为此,我将 放在eth1
内br0
,并将br0
其虚拟化为virbr0
。如何停止 Xen 虚拟化eth0
并改用br0/eth1
?
以下是我得到的信息systemctl -o cat status network.service
:
Bringing up lookback interface: [ OK ]
Bringing up interface eth0: Error: either "dev" is a duplicate, or "virbr0" is a garbage.
ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Failed to bring up peth0 virbr0.
[FAILED]
Bringing up interface eth1: [ OK ]
Bringing up interface br0: [ OK ]
非常喜欢第二行的语法(这是逐字逐句的,直到间距)。
virbr0 直接由 libvirt 处理,这可以从对这条信息正在从 进行配置/etc/libvirt/qemu/networks
。
答案1
答案包含在您提供的链接中:设置桥接网络。
在 XEN 4.1 之前,XEN 的作用是设置网络桥接。
之后,应该使用操作系统的方法设置相应的桥接器。
但是:如果在 XEN 启动期间未定义网桥,它将创建一个默认网桥(与之前的行为类似)。
有充分的理由将其置于 XEN 控制之外,因为存在非常复杂的绑定/VLAN 组合,无法通过默认脚本进行覆盖。此外,网络堆栈因操作系统而异。
我在使用 SLES10 SP4 时遇到了类似的问题 - 我需要相当复杂的网络设置。
因此我在 /etc/init.d/ 中设置了自己的 init 脚本来设置桥接/绑定/vlans。
使用 SLES11 SP2 非常简单,可以使用 OS-yast2
命令进行设置。
这样,桥梁在 XEND 启动之前就已经启动并运行了。
类似这样的方法可能对你有用:
XENBRIDGE=/etc/xen/scripts/network-bridge
$XENBRIDGE bridge=br0 netdev=eth1 start
Fedora 应该与 RHEL6 相当 - 所以也许你可以使用网络设置文档并将桥接配置集成到正常网络设置中(这是更好的方法)。
答案2
为了修复这个问题,我做了如下更改:
(network-script 'network-bridge bridge=virbr0')
(vif-script vif-bridge)
至这些:
(network-script 'network-bridge bridge=virbr0 netdev=eth1')
(vif-script vif-nat)
在 中/etc/xen/xend-config.sxp
,它成功eth0
地保留了下来,只重命名eth1
为peth1
现在,我认为它不会出现veth1/eth1
因为它在 里面br0
。然后,我重命名ifcfg-em1/ifcfg-em2
为ifcfg-eth0/ifcfg-eth1
,并进行了更改:
IPADDR0=xxx.xxx.xxx.xxx
PREFIX0=xx
GATEWAY0=xxx.xxx.xxx.xxx
DNS1=xxx.xxx.xxx.xxx
到:
IPADDR=xxx.xxx.xxx.xxx
PREFIX=xx
GATEWAY=xxx.xxx.xxx.xxx
DNS=xxx.xxx.xxx.xxx
这让我恢复了我的互联网和本地主机。
你知道这次经历最棒的部分是什么吗?我可以永久禁用 NetworkManager。