Connect to Host Network - 虚拟网路装置(virtual network)

来源:互联网 发布:微软程序员工资级别 编辑:程序博客网 时间:2024/05/18 03:04

http://benjr.tw/node/520

在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

  1. QEMU 会在你的Dom0 产生一个bridge 虚拟装置"virbr0" .virbr0 不只是个单纯的NAT 而已,他是一个NAT + DHCP 的架构,所有的Virtual machine(DomU) 都会透过virbr0 来指派一个私人网域( private IP).预设为192.168.122.2 ~ 192.168.122.254 (在他的设定档中可以定义其DHCP 可指定的IP 范围).
  2. 其预设的default gateway 为192.168.122.1/24 ,所有在这架构下的domU 虚拟机器的封包都必须透过dom0 的NAT 去连结到其他的网路.
  3. 如同一般的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

  1. Virtual network - virbr0

    vif =[ bridge=virbr0 ] 
    或是

  2. 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

另外最后的一个选项是我们自己指派给虚拟网卡一个MAC address ,要设定虚拟网路装置的mac 他是有一个规则性的. mac :XY:XX:XX:XX:XX:XX ,mac 使用16进制来显示X 可为任何的16进制(0~9,A,B,C,D,E,F), Y 则只能使用2, 6, A 或E. 不过Xen 建议使用的范围00: 16:3e:xx:xx:xx. 这个区段是保留给Xen 使用的. 如果在安装完成之后可以直接针对Virtual machine 的设定档来修改而设定档位于目录/etc/xen/ 下.[ 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