设置Xen domU虚拟机网络使其连接外部机器
<br />设置Xen domU虚拟机网络使其连接外部机器<br /> <br /><br />virt-manager 安装完全虚拟化的 Xen 虚拟机系统,<br /><br />与主机网络连接方式采用 "Virtual network"方式,设备选择default,IP配置成静态的。<br /><br />安装完毕,不能与主机相连,于是将 IP 设置 DHCP 的,能与主机相互 ping 通
设置Xen domU虚拟机网络使其连接外部机器
virt-manager 安装完全虚拟化的 Xen 虚拟机系统,
与主机网络连接方式采用 "Virtual network"方式,设备选择default,IP配置成静态的。
安装完毕,不能与主机相连,于是将 IP 设置 DHCP 的,能与主机相互 ping 通,但不能和外部机器(如hdfs05: 10.10.111.5)连接。
查看虚拟机配置文件中联网方式,vif选项如下:
vif = [ "mac=00:16:3e:6b:dc:0d,bridge=virbr0" ]
而之前安装的一台 para-virtualized 虚拟机采用的是 "Shared physical device"模式上网,却能正常与主机和主机之外的机器连通。于是查看其配置文件,发现 vif选项如下:
vif = [ "mac=00:16:3e:7a:66:ed,bridge=xenbr0,script=vif-bridge" ]
于是也同样设置完全虚拟化得机器的联网方式,在 virt-manager 中再添加一块网卡,使用"Shared physical device"模式上网,桥接到 xenbr0,此时虚拟机配置文件中 vif 选项变为,
vif = [ "mac=00:16:3e:69:c1:2e,bridge=xenbr0", "mac=00:16:3e:6b:dc:0d,bridge=virbr0" ]
增加了字符串 "mac=00:16:3e:69:c1:2e,bridge=xenbr0",虚拟机增加了一块网卡。
启动虚拟机后,出现了两块网卡 eth0 和 eth1,配置它们的IP为静态IP。
eth1是新添加的网卡,
[root@vm03-full-glnode04 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3E:6B:DC:0D
inet addr:10.10.97.134 Bcast:10.10.255.255 Mask:255.255.0.0
inet6 addr: fe80::216:3eff:fe6b:dc0d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:461 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:138 (138.0 b) TX bytes:77516 (75.6 KiB)
Interrupt:185 Base address:0x8100
eth1 Link encap:Ethernet HWaddr 00:16:3E:69:C1:2E
inet addr:10.10.97.144 Bcast:10.10.255.255 Mask:255.255.0.0
inet6 addr: fe80::216:3eff:fe69:c12e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11091 errors:0 dropped:0 overruns:0 frame:0
TX packets:317 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1348118 (1.2 MiB) TX bytes:45546 (44.4 KiB)
Interrupt:177 Base address:0x6000
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:16436 Metric:1
RX packets:1422 errors:0 dropped:0 overruns:0 frame:0
TX packets:1422 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1968508 (1.8 MiB) TX bytes:1968508 (1.8 MiB)
再次测试和外部机器hdfs05是否能连通,结果发现还是不能连通;于是我 ifdown eth0,再测试一下,发现连接成功了,然后我继续 ifup eth0,连接仍然成功,但是 service network restart 重启网络,却不能再成功连接了。所以问题出在 eth0 这,于是我在 virt-manager 中删掉了网卡eth0,或者修改 vif 选项,修改为以下形式:
vif = [ "mac=00:16:3e:6b:dc:0d,bridge=virbr0" ],
然后修改 /etc/sysconfig/network-scripts/ifcfg-eth1,将其命名为 eth0,设备名字也修改为 eth0。
重新启动机器,只剩下网卡 eth0,和外部机器能正常连接。
总结:
使用半虚拟化或者完全虚拟化创建虚拟机系统时,若想虚拟机能和主机正常连通并且能和主机之外的机器正常连通,需要使用"Shared physical device"模式,桥接到xenbr0来上网。
附:
虚拟机配置文件
[root@glnode04 ~]# cat /etc/xen/vm03-CentOS-5.5-full
name = "vm03-CentOS-5.5-full"
uuid = "85a4defd-355f-e8fa-513e-7bd75f0526cd"
maxmem = 2048
memory = 512
vcpus = 4
builder = "hvm"
kernel = "/usr/lib/xen/boot/hvmloader"
boot = "c"
pae = 1
acpi = 1
apic = 1
localtime = 0
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
device_model = "/usr/lib64/xen/bin/qemu-dm"
sdl = 0
vnc = 1
vncunused = 1
keymap = "en-us"
disk = [ "file:/local/Xen_zkl/VM/vm03-CentOS-5.5-full/vm03-CentOS-5.5-full.img,hda,w", ",hdc:cdrom,r" ]
vif = [ "mac=00:16:3e:69:c1:2e,bridge=xenbr0" ]
serial = "pty"
更多推荐
所有评论(0)