首页 > 代码库 > 使用openvswitch 和dnsmasq来实现虚拟机网络隔离

使用openvswitch 和dnsmasq来实现虚拟机网络隔离

openvswicth : 开源的网络虚拟化软件,可以划分vlan隔离虚拟机,做流量控制

dnsmasq:小心的dns,dhcp服务器

安装openvswicth

wget  http://openvswitch.org/releases/openvswitch-2.5.0.tar.gz

编译成rpm包安装  

yum install rpm-buildmkdir -p ~/rpmbuild/SOURCEStar xf openvswitch-2.5.0.tar.gzsed ‘s/openvswitch-kmod, //g‘ openvswitch-2.5.0/rhel/openvswitch.spec > openvswitch-2.5.0/rhel/openvswitch_no_kmod.specrpmbuild -bb --without check ~/openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec
yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.5.0-1.x86_64.rpm
systemctl start openvswitch 开启服务
systemctl enable openvswitch

配置桥(交换机)

/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0ONBOOT=yesDEVICETYPE=ovsTYPE=OVSPortOVS_BRIDGE=ovs-br0BOOTPROTO=noneHOTPLUG=no/etc/sysconfig/network-scripts/ifcfg-ovs-br0                  DEVICE=ovs-br0ONBOOT=yesDEVICETYPE=ovsTYPE=OVSBridgeBOOTPROTO=staticIPADDR=192.168.100.250NETMASK=255.255.255.0HOTPLUG=no

重启网络

systemctl restart network 

ifconfig ovs-br0 #查看网络是否配置成功

ovs-vsctl show  #查看桥

将桥与kvm关联

cd  /etc/libvirt/qemu/networksvim ovsnet.xml<network>  <name>ovs-br0</name>  <forward mode=‘bridge‘/>  <bridge name=‘ovs-br0‘/>  <virtualport type=‘openvswitch‘/></network>virsh define ovsnet.xml  virsh start ovs-br0virsh autostart ovs-br0

virsh net-list 可以查看桥是否和kvm关联

技术分享

然后使用virt-manager工具安装一台linux虚拟机dncpserver,搭建dnsmasq服务

添加两块网口,使用ovs-br0做桥

编辑配置文件,将两块网卡分配到不同vlan

virsh edit  dhcpserver

搜索openvswitch 然后添加 vlan ,第一张网卡 tag=1  第二张网卡 tag=2

<interface type=‘bridge‘>    <source bridge=‘ovs-br0‘/>    <virtualport type=‘openvswitch‘/>    <vlan>                                        <tag id="1"/>       </vlan>    <model type=‘virtio‘/>
</interface>
 <interface type=‘bridge‘>    <source bridge=‘ovs-br0‘/>    <virtualport type=‘openvswitch‘/>    <vlan>                                        <tag id="2"/>       </vlan>    <model type=‘virtio‘/>  </interface>

进入虚拟机,重启网络,配置两个不同网络的ip地址

临时生效,若长期生效则需要修改配置文件

ipaddr eth0 192.168.100.1

ipaddr eth1 192.168.200.1

然后搭建dhcp服务

yum install dnsmasq

编辑配置文件

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bakecho > /etc/dnsmasq.confvim /etc/dnsmasq.confdhcp-range=eth0,192.168.100.100,192.168.100.199,4hdhcp-range=eth1,192.168.200.100,192.168.200.199,4hinterface=eth1interface=eth2启动服务systemctl  start dnsmasqsystemctl enable dnsmasq

然后安装两台测试虚拟机

一台将网卡分倒tag1,一台将网卡分倒tag2

然后测试能否拿到IP  

 

使用openvswitch 和dnsmasq来实现虚拟机网络隔离