两台笔记本搭建openvswitch网络

环境说明:

笔记本A、B均运行Ubuntu 14.04,两台笔记本通过无线网卡上网,用一根网线连接两台笔记本的有线网卡。

网络拓扑:

其中,vm1 vm2 S1位于笔记本A,vm3 vm4 S2位于笔记本B。

所有VM均为virtualBox虚拟机(CorePlus.iso是一个很轻量的Linux版本)。

 

操作步骤:

(1)在两台笔记本上安装OVS

sudo apt-get install openvswitch-switch

(2)在两台笔记本上新建网桥,并将有线网卡eth0添加到网桥中

(注意以下s1、s2分别是两个笔记本上创建的网桥的名字)

笔记本A:

sudo ovs-vsctl add-br s1

sudo ovs-vsctl add-port s1 eth0

笔记本B:

sudo ovs-vsctl add-br s2

sudo ovs-vsctl add-port s2 eth0

(3)在两台笔记本上创建虚拟机,并且连接到ovs交换机上

笔记本A:

以下脚本首先创建了两个虚拟网卡,并将此网卡桥接到ovs交换机中

#!/bin/bash

function add_port()
{
    ovs=${1};
    node=${2};

    echo $ovs --tap port-- $node;
    port=vnet-${ovs}-${node};

    sudo ip tuntap add mode tap $port;
    sudo ip link set $port up;
    sudo ovs-vsctl add-port $ovs $port;
}

add_port s1 h1; 
add_port s1 h2; 

运行脚本之后,ifconfig能看到vnet-s1-h1 vnet-s1-h2两块网卡。

然后在VirtualBox创建虚拟机vm1和vm2,每个虚拟机的网络配置为:

vm1、vm2的第一块网卡均选择NAT,这是为了虚拟机能够访问外网,以便安装软件等。

vm1的第二块网卡设置为桥接,然后网卡选择vnet-s1-h1;

vm2的第二块网卡设置为桥接,然后网卡选择vnet-s1-h2;

笔记本A上的两个虚拟机便创建好了。为两个vm设置ip为10.0.0.1和10.0.0.2。

笔记本B同上,只需把s1改为s2即可。为两个vm设置ip为10.0.0.3和10.0.0.4。

(4)虚拟机开起来之后,分别在A、B上设置网桥s1、s2的控制器地址:

运行控制器的机器需要A、B均能访问,所以在A、B上运行都行。

假设在A上运行控制器:

java -jar target/floodlight.jar

(floodlight是一个SDN控制器)

然后为A、B上的网桥s1、s2设置控制器地址:

A:

sudo ovs-vsctl set-controller s1 tcp:<controller_ip>:6653

B:

sudo ovs-vsctl set-controller s2 tcp:<controller_ip>:6653

其中,controller_ip是运行控制器的机器的ip。(此处即为A的IP地址)

注意:6653是floodlight控制器监听的端口,在1.0版本以前,监听端口为6633。

(5)访问<controller_ip>:8080/ui/index.html,在floodlight的web界面查看拓扑。

如:http://155.98.39.126:8080/ui/index.html

 

完。

 

posted @ 2015-10-16 19:07  duanguyuan  阅读(1172)  评论(0编辑  收藏  举报