openvswitch vlan下的虚拟机与物理机通信
1,安装openvswitch ,图形界面显示等用到的安装包。
yum install libvirt openvswitch python-virtinst xauth tigervnc -y
2,移除默认的libvirt网络。
virsh net-list --all //查看命令
virsh net-destroy default
virsh net-autostart --disable default
virsh net-undefine default
3,启动openvswitch
service openvswitch start
chkconfig openvswitch on
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