1,安裝openvswitch ,圖形界面顯示等用到的安裝包。python
yum install libvirt openvswitch python-virtinst xauth tigervnc -yvim
2,移除默認的libvirt網絡。網絡
virsh net-list --all //查看命令xml
virsh net-destroy default接口
virsh net-autostart --disable defaultip
virsh net-undefine default虛擬機
3,啓動openvswitchit
service openvswitch startio
chkconfig openvswitch onconsole
4,建立一個openvswitch bridge :br-int。
ovs-vsctl add-br br-int
5,利用openvswitch的br-int,定義一個libvirt網絡名稱爲ovs-network。
vim libvirt-vlans.xml //建立3個網絡(一個無id,兩個帶id。)
<network>
<name>ovs-network</name>
<forward mode=」bridge」 />
<bridge name=」br-int」 />
<virtualport type=」openvswitch」/>
<portgroup name=」no-vlan」 default=」yes」>
</portgroup>
<portgroup name=」vlan-100」>
<vlan>
<tag id=」100」 />
</vlan>
</portgroup>
<portgroup name=」vlan-200」>
<vlan>
<tag id=」200」 />
</vlan>
</portgroup>
</network>
6,定義並啓動libvirt網絡。
定義:virsh net-define libvirt-vlans.xml
查看:virsh net-list --all
自動啓動:virsh net-autostart ovs-network
啓動: virsh net-start ovs-network
7,建立一個instance,並鏈接到ovs-network,網絡接口部分配置以下:
可事先拷貝一個虛擬機的xml配置文件,修改interface的配置作以下替換。
<interface type='network'>
<source network='ovs-network' portgroup='vlan-100'/>
<model type='virtio'/>
</interface>
8,利用instance.xml建立虛擬機。
定義虛擬機:virsh define instance1.xml
查看虛擬機:virsh list --all
啓動虛擬機:virsh start instance1
virsh vncdesplay instance1
vncviewer查看:vncviewer :0
9,啓動console後,給該虛擬機設置如下ip。
ip addr add 192.168.1.20/24 dev eth0
在外層主機上執行:ovs-vsctl show
會看到,虛擬機啓動後,自動在bridge上生成vnet0端口。
10,添加一個openvswitch port。實現物理機與虛擬機vlan-100的聯通。
ip link add br-int-tap100 type veth peer name tap100
ovs-vsctl add-port br-int br-int-tap100
ovs-vsctl set port br-int-tap100 tag=100
ip addr add 192.168.1.21/24 dev tap100
ip link set tap100 up
ip link set br-int-tap100 up