在PC上运行OpenFlow?

时间:2014-10-22 15:21:10

标签: openflow

我对OpenFlow交换机的运行有疑问: 如果我们想在这样的PC或路由器上运行OpenFlow以作为OpenFlow交换机工作,我们该怎么做呢?该设备的CPU类型或平台是否重要?这会有什么不同吗?

提前感谢。

6 个答案:

答案 0 :(得分:3)

在PC上尝试任何操作之前,请在VM(可能是Ubuntu)上安装Open vSwitch并尝试其OpenFlow功能。

在ubuntu上安装Open vSwitch(OVS),

  

sudo apt-get install openvswitch-switch

您可以使用FloodlightRyu SDN framework这样的控制器作为交换机的控制器。

这是一个OpenFlow教程。它已过时但仍然提供信息http://archive.openflow.org/wk/index.php/OpenFlow_Tutorial

或者您也可以尝试mininet,如前一个答案中提到的@EricSorensen。 Mininet允许您使用主机和交换机模拟网络。 使用mininet时,您可以使用内置的“nox”和#39;控制器。我喜欢泛光灯。

希望它有所帮助!

答案 1 :(得分:0)

这就是您所需要的:http://mininet.org/ 检查下载和教程。使用虚拟机或源代码的本机安装(在Linux上)

答案 2 :(得分:0)

你可以在基于linux的PC上安装openvswitch或者使用ofofoftswitch13,这个PC至少有两个物理接口。这样包路由可以看到。

同样使用mininet https://github.com/CPqD/ofsoftswitch13 可以运行OF(对于这一个接口就足够了),它支持创建各种网络拓扑。

答案 3 :(得分:0)

根据测试建议,您可以在最新的Linux发行版上执行apt-get install或类似操作。 openvswitch有两个组件,一个内核模块和一个用户空间openvswitch。用户空间进程不需要任何特定数量的内核或处理器类型,并且大多数情况下,您可以使用少于一个内核。

除了ovs你还需要ovsdb,apt-get install或类似的东西会自动为你设置(因此最简单的方法)。再次非常轻量级,它只是一个json键值db。

对于控制器,有很多选项,但是为了游戏,你也可以使用内置的命令行工具。

ovs-apptctl:设置开关http://openvswitch.org/support/dist-docs/ovs-appctl.8.txt

ovs-oftcl:添加/ mod / flows http://openvswitch.org/support/dist-docs/ovs-ofctl.8.txt

ovs-dpctl:查看内核流程

我强烈建议您在选择Pox,Daylight等之前了解命令行工具,OpenFlow命令以及流程的工作方式。

除了mininet之外,还有Oftest(https://github.com/floodlight/oftest)主要用于编写openflow的测试,但它对于在受限环境中学习和调试问题非常有用。

答案 4 :(得分:0)

运行OpenvSwitch

如果你想用裸机构建OpenvSwitch,我建议你使用官方tarball来安装OpenvSwitch守护进程。 请按照以下步骤操作:

#/bin/bash
# In root permission
aptitude install dh-autoreconf libssl-dev openssl
wget http://openvswitch.org/releases/openvswitch-2.4.0.tar.gz
tar zxvf openvswitch-2.4.0.tar.gz && cd openvswitch-2.4.0
./boot.sh
./configure # If you want to build kernel module, please append --with-linux=/lib/modules/`uname -r`/build
make modules_install
modprobe gre
modprobe openvswitch
modprobe livcrc32c
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema
ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
--remote=db:Open_vSwitch,Open_vSwitch,manager_options \
--pidfile --detach --log-file
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach --log-file

您可以使用ovs-vsctl show ovs-ofctl show来检查OpenvSwitch状态。下一步,我们需要向OpenvSwitch网桥添加物理或逻辑(如veth对)接口

# Create OpenvSwitch is named 'ovs-br'
ovs-vsctl add-br ovs-br

# Add interface to OpenvSwitch bridge
# If you want to check, please use `ovs-vsctl` to check again.    
ovs-vsctl add-port ovs-br eth0

# Set OpenFlow controller
# You should ready one controller
# If not, I have two installation solutions can give you
# Ryu installation: https://github.com/sdnds-tw/ryu-installer
# ONOS installation: https://github.com/pichuang/onos-ansible
ovs-vsctl ovs-br set-controller tcp:x.x.x.x:6653

# Use ovs-vsctl to check controller attribute is UP

答案 5 :(得分:0)

一旦你让另一台服务器(这里我们称之为控制器)来确定本地机器(这里是你的PC)的数据包转发行为,它就会变成所谓的SDN机制。因此,与您选择的CPU或硬件无关,基本上,您可以将SDN视为软件解决方案。

对于安装支持SDN的软件的过程,您可以选择已在上述帖子中回答的打开vswitch。