我使用的是CentOS 6.5 64并使用xen创建虚拟机(CentOS)
如果配置
[root@CentOS ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:54:B3:FA
inet6 addr: fe80::a00:27ff:fe54:b3fa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10087 errors:0 dropped:0 overruns:0 frame:0
TX packets:6094 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:763616 (745.7 KiB) TX bytes:541789 (529.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
vif2.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:3969 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:2088 (2.0 KiB) TX bytes:267825 (261.5 KiB)
xenbr0 Link encap:Ethernet HWaddr 08:00:27:54:B3:FA
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe54:b3fa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9896 errors:0 dropped:0 overruns:0 frame:0
TX packets:1892 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:613149 (598.7 KiB) TX bytes:284945 (278.2 KiB)
brctl显示
[root@CentOS ~]# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.08002754b3fa yes eth0
vif2.0
xl 网络列表
[root@CentOS ~]# xl network-list xc
Idx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path
0 0 00:16:3e:22:4f:4b 0 4 10 768/769 /local/domain/0/backend/vif/2/0
brctl showmacs xenbr0
[root@CentOS ~]# brctl showmacs xenbr0
port no mac addr is local? ageing timer
2 00:16:3e:22:4f:4b no 89.35
1 00:1e:8c:19:62:67 no 0.00
1 00:22:6b:fe:b9:36 no 4.92
1 08:00:27:54:b3:fa yes 0.00
1 90:c1:15:c4:89:6d no 25.00
1 e0:2a:82:3d:c0:c5 no 3.78
2 fe:ff:ff:ff:ff:ff yes 0.00
平
从同一主机 ping 虚拟机
[root@CentOS ~]# ping 192.168.1.120
PING 192.168.1.120 (192.168.1.120) 56(84) bytes of data.
64 bytes from 192.168.1.120: icmp_seq=1 ttl=64 time=2.78 ms
64 bytes from 192.168.1.120: icmp_seq=2 ttl=64 time=0.916 ms
64 bytes from 192.168.1.120: icmp_seq=3 ttl=64 time=0.917 ms
^C
--- 192.168.1.120 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2370ms
rtt min/avg/max/mdev = 0.916/1.538/2.782/0.879 ms
从本地网络中的设备 ping 虚拟机
C:\Users\motaz>ping 192.168.1.120
Pinging 192.168.1.120 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
iptables
[root@CentOS ~]# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
11 700 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- any any anywhere anywhere
0 0 ACCEPT all -- lo any anywhere anywhere
0 0 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:ssh
0 0 REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- any any anywhere anywhere PHYSDEV match --physdev-is-bridged
0 0 REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 8 packets, 864 bytes)
pkts bytes target prot opt in out source destination
任何人能给我一个解决这个问题的想法,我将不胜感激。
brctl 显示stp xenbr0
[root@CentOS images]# brctl showstp xenbr0
xenbr0
bridge id 8000.080027798267
designated root 8000.080027798267
root port 0 path cost 0
max age 20.00 bridge max age 20.00
hello time 2.00 bridge hello time 2.00
forward delay 2.00 bridge forward delay 2.00
ageing time 300.00
hello timer 0.65 tcn timer 0.00
topology change timer 0.00 gc timer 109.38
hash elasticity 4 hash max 512
mc last member count 2 mc init query count 2
mc router 1 mc snooping 1
mc last member timer 1.00 mc membership timer 260.00
mc querier timer 255.00 mc query interval 125.00
mc response interval 10.00 mc init query interval 31.25
flags
eth0 (0)
port id 0000 state forwarding
designated root 8000.080027798267 path cost 4
designated bridge 8000.080027798267 message age timer 0.00
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.00
mc router 1
flags
答案1
首先,如果您使用 VirtualBox 托管 XEN 服务器,请确保使用以太网而不是无线网络,并将混杂模式设置为“允许全部”。
其次,为了使一切都干净,让我们从使用 XEN 的 CentOS 的全新安装开始,并在其上安装 Bridge Network 和 CentOS VM。
假设您有外部服务器 192.168.1.6,在 /var/www/html/centos/6.3/os/i386/ 上提取了 CentOS ISO,并在 /var/www/html/centos/6.3/os/i386/ks.cfg 上提取了 kickstart 文件和 /var/www/html/centos/6.3/os/i386/repodata 具有正确的名称与 repodata/TRANS.TBL 文件中的名称匹配
在XEN服务器(CentOS+XEN)上安装以下软件包:
yum install -y rsync wget vim-enhanced openssh-clients
yum install -y libvirt python-virtinst libvirt-daemon-xen
yum install -y bridge-utils tunctl
然后编辑 ifcfg-* 文件来创建桥
echo "DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes" > /etc/sysconfig/network-scripts/ifcfg-br0
echo "DEVICE=eth0
HWADDR=XX:XX:XX:XX:XX:XX
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BRIDGE=br0" > /etc/sysconfig/network-scripts/ifcfg-eth0
编辑HWADDR=XX:XX:XX:XX:XX:XX
行以匹配您的 MAC 地址。不要在 ssh 控制台上重新启动,使用 VBox 控制台
reboot
重新启动后,假设您有 DHCP 服务器,XEN 服务器将获得新 IP,通过 VBox 控制台登录以获取新 IP
ifconfig 结果应该类似于
br0 Link encap:Ethernet HWaddr 08:00:27:23:54:69
inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe23:5469/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5063 errors:0 dropped:0 overruns:0 frame:0
TX packets:3142 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:34251267 (32.6 MiB) TX bytes:361205 (352.7 KiB)
eth0 Link encap:Ethernet HWaddr 08:00:27:23:54:69
inet6 addr: fe80::a00:27ff:fe23:5469/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:149910 errors:0 dropped:0 overruns:0 frame:0
TX packets:5045 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:182020057 (173.5 MiB) TX bytes:493792 (482.2 KiB)
现在网桥已准备就绪,您可以使用 br0 的 IP 再次获取 ssh 控制台
要在 XEN 上创建使用先前网桥的虚拟机:
cd /var/lib/xen/images/
创建虚拟磁盘:
dd if=/dev/zero of=centos_1.img bs=4K count=0 seek=1024K
qemu-img create -f raw centos_1.img 8G
然后使用 virt-install 创建虚拟机:
virt-install -d -n TestVM1 -r 512 --vcpus=1 \
--bridge=br0 --disk /var/lib/xen/images/centos_1.img \
--nographics -p -l "http://192.168.1.6/centos/6.3/os/i386" \
--extra-args="text console=com1 utf8 console=hvc0 ks=http://192.168.1.6/centos/6.3/os/i386/ks.cfg"
现在虚拟机应该启动并能够正常从 DHCP 服务器获取 IP,并能够完成无人值守的远程安装。
XEN 上的 ifconfig 结果应类似于:
br0 Link encap:Ethernet HWaddr 08:00:27:23:54:69
inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe23:5469/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10247 errors:0 dropped:0 overruns:0 frame:0
TX packets:8090 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:102264338 (97.5 MiB) TX bytes:827859 (808.4 KiB)
eth0 Link encap:Ethernet HWaddr 08:00:27:23:54:69
inet6 addr: fe80::a00:27ff:fe23:5469/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:998780 errors:0 dropped:0 overruns:0 frame:0
TX packets:37992 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:724701715 (691.1 MiB) TX bytes:2897912 (2.7 MiB)
vif5.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:37 errors:0 dropped:0 overruns:0 frame:0
TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:4381 (4.2 KiB) TX bytes:9842 (9.6 KiB)
安装完成后,您可以使用xen控制台获取其IP,然后您可以在其上使用ssh控制台。