在RHEL5 Xen 下设定Virtual machine 时Network 有两种选项. 1.Virtual network 2.Shared physical device 这两种有何不同.
在RHEL5 Xen 的环境预设会建立两个bridge,一个则是由QEMU 所提供出来的virbr0,另外一个是由Xen 所提供叫做xenbr0,在安装Virtual machine 时网路卡的选择也就是这两种. 1.Virtual network 2.Shared physical device这两个使用的模式和方式全然不同,先来解释一下virbr0.
Virtual network - virbr0
- QEMU 会在你的Dom0 产生一个bridge 虚拟装置"virbr0" .virbr0 不只是个单纯的NAT 而已,他是一个NAT + DHCP 的架构,所有的Virtual machine(DomU) 都会透过virbr0 来指派一个私人网域( private IP).预设为192.168.122.2 ~ 192.168.122.254 (在他的设定档中可以定义其DHCP 可指定的IP 范围).
- 其预设的default gateway 为192.168.122.1/24 ,所有在这架构下的domU 虚拟机器的封包都必须透过dom0 的NAT 去连结到其他的网路.
- 如同一般的NAT 所有domU 上的虚拟机器都是被隐藏在private 私人网域,所以外部不能直接连接到DomU 上的虚拟机器.
这一个是由Qemu 所产生所以设定档并不跟Xen 在相同的目录下( /etc/xen ) 而是存放在/etc/libvirt/qemu/networks/default.xm
[ root@benjr ~]# cat /etc/libvirt/qemu/networks/default.xml
<network>
<name>default</name>
<uuid>49a0ceb-5662-4a61-8149-98ea750d393b</uuid>
<bridge name ="virbr0" />
<forward/>
<ip address="192.168.122.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.122.2" end="192.168.122.254" />
</ dhcp>
</ip>
</network>其中的ip address 是default gateway IP,range 则是DHCPclients 所能使用的范围,都可以依据需求做改变.
Shared physical device - xenbr0
所有的Virtual machine(DomU) 和Dom0 的网路装置就会像是串接在一个Hub 或是Switch 上,只要是同区段的IP 都可以互通.
更多关于XEN的Network请参考: http://benjr.tw/node/215
如果安装完之后想改模式只要直接修改Virtual machine的设定档(位于/etc/xen的目录下),Virtual machine的设定档通常会依据你Virtual machine名称"system Name"来命名.假如我的Virtual machine的system name为rhel4这样设定档直接会被命名为/etc/xen/rhel4,只要修改vif改成virbr0或是xenbr0
- Virtual network - virbr0
vif =[ bridge=virbr0 ]
或是 - Shared physical device - xenbr0
vif =[ bridge=xenbr0 ]
安装完的Guest OS 除了可以透过Virtual Machine Manager 的Details / hardware 来看NIC 当初是用NAT 或是Bridge 的形式! XEN 提供了一些指令来观察所有的Virtual machinet 的NIC 状态所使用的模式.首先来看看我们所有的Guest OS 有哪一些!!
目前可以看到的有rhel4(Dom 3) 和rhel5(Dom 4) 两种,至于他们的networking 模式是什么,要使用下面的指令.不过要先记住他们对应的Dom ID 为何!
virbr0代表了 NAT networking ,也就是说vif3.0就是Dom3(rhel4)的第一个eth0是使用了NAT networking. xenbr0代表了 bridge networking ,vif0.0 / vif4.0 就是Dom0(RHEL5本身)和Dom4( rhel5)的第一个eth0是使用了bridge networking.
note:这是很讨厌的一点RHEL5下预设最多只能有4个Xen bridge.不管你怎么设定都只能有4个,一个也多不了,对于一台网路卡多过4个port的Server而言,其他的port豪无用武之地,也常常发现重新开机后某个port又不通了,光是重新设定就搞死人了.所以现在都只能限制port数来解决这个问题.幸好RHEL将在RHEL5 U3解决这个问题.
Set fixed MAC address for your virtual system
[ root@benjr ~]# vi /etc/xen/rhel4 name = "rhel4" uuid = "cf67710d-b756-086b-8cde-be61d2faca1b" maxmem = 512 memory = 512 vcpus = 1 bootloader = "/usr/bin/pygrub " on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = [ "type=vnc,vncunused=1,keymap=en-us" ] disk = [ "phy:/dev/sda5,xvda,w" ] vif = [ "mac=00:16:3e:27:95:c0,ip=10.0.0.1" ] |
在vif = ["mac=XY:XX:XX:XX:XX:XX"]就可针对mac来设定.
参考文件: http://blog.ithome.com.tw/index.php?op=ViewArticle&articleId= 21580&blogId=257