配置openvswitch kvm虚拟机环境

实验环境 主机:ubuntu 桌面版,虚拟机 ubuntu server

主机其实也是Vmware虚拟机,也就是说我在虚拟机里又创建了虚拟机。在主机的/etc/network/interfaces里不需要任何设置。


1、openvswitch安装

openvswitch下载地址 http://openvswitch.org/download/,下载之后使用 tar -xzvf 解压

openvswitch安装地址 http://docs.openvswitch.org/en/latest/intro/install/general/

其实总结起来,就是下面的脚本,可以直接复制粘贴在openvswitch文件夹里执行:

sudo ./configure --with-linux=/lib/modules/$(uname -r)/build
sudo make
sudo make install
sudo make modules_install
sudo /sbin/modprobe openvswitch
mkdir -p /usr/local/etc/openvswitch
sudo ovsdb-tool create /usr/local/etc/openvswitch/conf.db \
    vswitchd/vswitch.ovsschema
mkdir -p /usr/local/var/run/openvswitch
sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
    --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
    --private-key=db:Open_vSwitch,SSL,private_key \
    --certificate=db:Open_vSwitch,SSL,certificate \
    --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
    --pidfile --detach --log-file
sudo ovs-vsctl --no-wait init
sudo ovs-vswitchd --pidfile --detach --log-file

假设脚本名为startovs.sh。执行:

chmod +x startovs.sh 

sudo ./startovs.sh


2、安装KVM环境

安装地址为:http://blog.csdn.net/x_i_y_u_e/article/details/51446343

很懒,不写了


3、配置openvswitch和kvm。

3.1 安装软件及编写脚本

官方配置地址为:http://docs.openvswitch.org/en/latest/howto/kvm/

主要工作为:

apt-get install uml-utilities
echo << EOF > /etc/ovs-ifup
#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1
EOF
echo << EOF > /etc/ovs-ifdown
#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1
EOF


3.2 删除默认网桥,virbr0是linux的bridge模块建立的,我们不需要。aptitude需要提前安装。

apt-get install aptitude

sudo virsh net-destroy default
sudo virsh net-autostart --disable default
sudo aptitude purge ebtables

3.2 建立openvswitch网桥

 sudo ovs-vsctl add-br br0
 sudo ovs-vsctl add-port br0 eth0 

不能上网了,删除eth0地址,并将这个地址(可以不是同一个)给br0

 sudo ifconfig eth0 0
 sudo ifconfig br0 192.168.82.130/24 up 

这个时候还不能上网,修改默认路由。

sudo route add default gw 192.168.82.2

(或者 sudo route add default gw 192.168.82.2 dev br0)这个样子可以指定网卡,在有多个网卡时很有用

这个时候可以上网了,ping www.baidu.com验证。路由表如下:



4、安装虚拟机

准备好镜像和iso文件。

在合适的位置(主要是文件夹够大)创建镜像:

qemu-img create vm1.img 6G

启动虚拟机:

kvm -m 512 -net nic -net \
    tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -drive \
    file=/path/to/disk-image -cdrom /path/to/isofile

创建虚拟机后,下次启动虚拟机只需要镜像就可以了,命令如下:

kvm -m 512 -net nic -net \
    tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -drive \
    file=/path/to/disk-image

创建虚拟机时,ip地址不能通过dhcp获取到,改用手动设置,设置为192.168.82.135,网关设置为br0的地址,即192.168.82.130。

虚拟机创建成功后不能上网,但是能ping通br0地址。此时,虚拟机的/etc/network/interfaces设置为:



5、在主机上设置nat。

开启ip转发,两种方式:

临时: echo "1">/proc/sys/net/ipv4/ip_forward

固定:修改/etc/sysctl.conf,取消这一行的注释: 
net.ipv4.ip_forward= 1
然后使之立即生效
sudo sysctl -p

在主机上设置nat(nat 后面跟的是大写的i)

sudo iptables -t nat -I POSTROUTING -s 192.168.82.135 -J SNAT --to-source 192.168.82.130

查看nat规则

sudo iptables -t nat -nL

重启虚拟机,ping www.baidu.com测试。上网成功


其实个人对sdn还不是很熟,如果问题请指教,不胜感激。


参考地址:

在ubuntu 12.04中使用openvswitch+kvm 构建虚拟环境(真正的主机系统,可以运行多种测试应用)

OpenvSwitch Lab 2$ OpenvSwitch and KVM 

Kvm教程

Open vSwitch的ovs-vsctl命令详解


附:

修改域名服务器的方式为:

sudo vi /etc/resolv.conf

添加

nameserver 8.8.8.8


猜你喜欢

转载自blog.csdn.net/x_i_y_u_e/article/details/55668867