使用openvswitch 和dnsmasq来实现虚拟机网络隔离
openvswicth : 开源的网络虚拟化软件,可以划分vlan隔离虚拟机,做流量控制
dnsmasq:小心的dns,dhcp服务器
安装openvswicth
wget http://openvswitch.org/releases/openvswitch-2.5.0.tar.gz
编译成rpm包安装
yum install rpm-build
mkdir -p ~/rpmbuild/SOURCES
tar xf openvswitch-2.5.0.tar.gz
sed 's/openvswitch-kmod, //g' openvswitch-2.5.0/rhel/openvswitch.spec > openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec
rpmbuild -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-eth0
DEVICE=eth0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=ovs-br0
BOOTPROTO=none
HOTPLUG=no
/etc/sysconfig/network-scripts/ifcfg-ovs-br0
DEVICE=ovs-br0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.100.250
NETMASK=255.255.255.0
HOTPLUG=no
重启网络
systemctl restart network
ifconfig ovs-br0 #查看网络是否配置成功
ovs-vsctl show #查看桥
将桥与kvm关联
cd /etc/libvirt/qemu/networks
vim 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-br0
virsh 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.bak
echo > /etc/dnsmasq.conf vim /etc/dnsmasq.conf
dhcp-range=eth0,192.168.100.100,192.168.100.199,4h
dhcp-range=eth1,192.168.200.100,192.168.200.199,4h
interface=eth1
interface=eth2 启动服务
systemctl start dnsmasq
systemctl enable dnsmasq
然后安装两台测试虚拟机
一台将网卡分倒tag1,一台将网卡分倒tag2
然后测试能否拿到IP
使用openvswitch 和dnsmasq来实现虚拟机网络隔离的更多相关文章
- vmware虚拟机网络自动断开的问题
最近搭建一个集群环境,因此用vmware安装了几台虚拟机,系统是centos7.2. 但是发现网络总是不经意间自动断开,重启网络(service network restart)恢复. 虚拟机网络类型 ...
- Azure ARM (9) 创建ARM模式下的虚拟机网络
<Windows Azure Platform 系列文章目录> 笔者在之前几章内容中,创建了ARM Resource Group,然后在这个ARM Resource Group下创建Azu ...
- VirtualBox 内的 Ubuntu Server 虚拟机网络配置
环境: 宿主机:Windows 7,单网卡: 虚拟机:ubuntu-14.04.1-server-amd64: 宿主机上网是连接的路由器,IP 地址是通过 DHCP 服务自动获取的: 基本情况: Ub ...
- VMware虚拟机网络环境类型
0x01. VMware Ubuntu虚拟机网络环境 ① Bridge桥接模式:虚拟机与物理机的IP同在一个网段:虚拟机独立且地位与物理机相同:虚拟机可直接访问物理机以及物理机相连的外部网络的主机或网 ...
- vm克隆虚拟机网络配置
*CentOS虚拟机网络连接方式为:桥接模式* 虚拟机克隆后会导致网络连接不上:(引起原因是新的MAC和网卡配置对应不上)问题解决(在克隆机里执行下列步骤): vi /etc/udev/rules.d ...
- linux笔记:linux系统安装-虚拟机网络设置
vmware虚拟机网络配置的3种方式: 1.桥接:在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和虚拟机处于对等地位),它可以访问网内任何一台机器.在桥接模式下,我们 ...
- VMWare虚拟机网络的三种工作模式
VMWare提供了三种工作模式: 1.bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器.在桥接模式下,需要手工为虚拟系 ...
- [BigData]关于HDFS的伪分布式安装和虚拟机网络的配置
[BigData]关于Hadoop学习笔记第一天(段海涛老师)(三) 视频2: hadoop的应用在电商,"浏览了该商品的人还看了","浏览了该商品的人最终购买的&quo ...
- VirtualBox虚拟机网络设置
VirtualBox虚拟机网络设置 测试环境:物理机win10企业版本,VirtaulBox版本5.0.14,虚拟机安装Windows XP及linux系统 想实现虚拟机上网的最简单方式,修改虚拟机网 ...
随机推荐
- Linux yum配置文件详解
说明:经过网上抄袭和自己的总结加实验,非常详细,可留作参考. yum的配置一般有两种方式: 一种是直接配置/etc目录下的yum.conf文件, 另外一种是在/etc/yum.repos.d目录下 ...
- 【leetcode】Max Points on a Line
Max Points on a Line 题目描述: Given n points on a 2D plane, find the maximum number of points that lie ...
- [译]:Orchard入门——使用标签管理内容
原文链接:Organizing Content Using Tags 在Orchard中,内容项可以使用标签来分类,同时,通过格式为 ~/tags/tag-name 的url可以直接查看包含对应标签关 ...
- 利用WCF创建简单的RESTFul Service
1):用VS2013创建一个WCF的工程,如下图所示: 2):我们来看一下默认状态下的config文件内容,这里的内容我们会再后续的步骤中进行修改 <?xml version="1.0 ...
- 在Salesforce中为Object创建Master-Detail(Child-Relationship)关联关系
在Salesforce中可以将两个Object建立起一对多的关联关系,本篇文章就简单的叙述一下将两个Object(EricSunObj & EricSunObjC)设置成Master-Deta ...
- 关于HTML5的拖拽
不介绍具体情况,先看API,注意看后面括号的说明 dragstart:拖拽开始(应用于被拖拽对象) drag:拖拽中(应用于被拖拽对象) dragenter:拖拽到指定位置(应用于拖拽目标) drag ...
- iOS 多快好省的宏定义
http://my.oschina.net/yongbin45/blog/150149 // 字符串:#ifndef nilToEmpty#define nilToEmpty(object) (obj ...
- HDU5322 Hope(DP + CDQ分治 + NTT)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5322 Description Hope is a good thing, which can ...
- 【BZOJ】3835: [Poi2014]Supercomputer
题意 \(n(1 \le 1000000)\)个点的有根树,\(1\)号点为根,\(q(1 \le 1000000)\)次询问,每次给一个\(k\),每一次可以选择\(k\)个未访问的点,且父亲是访问 ...
- lua中的中文乱码
最近在用lua, 发现一个有点意思的槽点啊-____-! 那就是lua貌似会使用系统所用的字符集. 具体点说, 就是在windows上, 它会使用cp936来表示代码中的中文. 来个例子: print ...