我使用的是 Debian 9(延伸版):
$ cat /proc/version
Linux version 4.9.0-3-amd64 ([email protected]) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19)
我正在尝试设置 Xen 来宾。我已经安装了 Xen,现在正在 Dom-0 上工作:
sudo xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 7881 4 r----- 213.2
$ sudo xl info
host : myserver
release : 4.9.0-3-amd64
version : #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19)
machine : x86_64
nr_cpus : 4
max_cpu_id : 3
nr_nodes : 1
cores_per_socket : 4
threads_per_core : 1
cpu_mhz : 3092
hw_caps : b7ebfbff:17bae3ff:28100800:00000001:00000001:00000000:00000000:00000100
virt_caps : hvm
total_memory : 8103
free_memory : 128
sharing_freed_memory : 0
sharing_used_memory : 0
outstanding_claims : 0
free_cpus : 0
xen_major : 4
xen_minor : 8
xen_extra : .5
xen_version : 4.8.5
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset :
xen_commandline : placeholder
cc_compiler : gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
cc_compile_by : ijackson
cc_compile_domain : chiark.greenend.org.uk
cc_compile_date : Fri Jan 11 18:02:57 UTC 2019
build_id : 9a71c39470d087c0c9fa0d33c04d985ea08aaa04
xend_config_format : 4
现在我正在尝试建立一座桥梁。我正在按照中的说明进行操作https://wiki.xenproject.org/wiki/Xen_Project_Beginners_Guide
我的配置文件是:
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0
如果我跑步的话,sudo service networking restart
需要一分钟以上。
那么桥的状态就很奇怪了:
$ sudo brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.000000000000 no
该网桥没有真实的 ID,也未启用。
我为 /etc/network/interfaces 尝试了几种不同的配置,但都失败了。
任何想法,为什么我无法设置 xen 桥?
编辑:
在 @AB 的评论和 @user337916 的回答之后,我将该行添加auto eth0
到我的配置中
以下命令的答案非常令人困惑:
sudo brctl addif xenbr0 eth0
interface eth0 does not exist!
sudo ifup -v eth0
ifup: interface eth0 already configured
这怎么可能,那件事不存在可已经配置?。
这是另一个输出:
sudo ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 14:da:e9:dd:ad:93 brd ff:ff:ff:ff:ff:ff
4: xenbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 3a:d9:57:ac:9a:7c brd ff:ff:ff:ff:ff:ff
答案1
看来您没有将接口添加到桥接器中。 IE
sudo brctl addif xenbr0 eth0
试一试
答案2
从 Stretch 开始,旧的网络名称(如 eth0、eth1)已经消失,因为设备名称可能会更改。新名称类似于:enp6s0、enp8s0、enp0s31f6、enp5s0。
因此我不得不更改eth0
为enp4s0
,这解决了问题!
答案3
在我的主机上,防火墙 (iptables) 阻止了从访客计算机到 Internet 的流量。设置以下内容修复了该问题:
iptables -P FORWARD ACCEPT
其次,如果使用 brctl 运行 Xen,我必须这样做:
brctl delif virbr0 virbr0-nic
brctl addif virbr0 enp1s0