0

我有一个关于OpenFlow交换机运行的问题:如果我们想在这样的PC或路由器上运行OpenFlow作为OpenFlow交换机工作,我们应该怎么做?那个设备的CPU类型或平台是否重要? 有什么区别吗?

提前致谢。

4

6 回答 6

3

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

要在 ubuntu 上安装 Open vSwitch(OVS),

sudo apt-get install openvswitch-switch

您可以使用FloodlightRyu SDN 框架之类的控制器作为交换机的控制器。

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

或者您也可以按照@EricSorensen 在上一个答案中的建议尝试 mininet。Mininet 允许您模拟带有主机和交换机的网络。在使用 mininet 时,您可以使用其内置的“nox”控制器。不过我更喜欢泛光灯。

希望能帮助到你!

于 2015-05-07T16:44:29.817 回答
0

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

于 2014-10-26T12:15:41.410 回答
0

您可以在具有至少两个物理接口的基于 linux 的 PC 中安装 openvswitch 或使用https://github.com/CPqD/ofsoftswitch13中的softswitch13。这样可以看到数据包路由。

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

于 2015-05-19T19:41:34.710 回答
0

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

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

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

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 编写测试,但它对于在受限环境中学习和调试问题非常有用。

于 2015-06-13T19:16:32.237 回答
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 showovs-ofctl show检查 OpenvSwitch 状态。下一步,我们需要将物理或逻辑(如 veth pair)接口添加到 OpenvSwitch 网桥

# 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
于 2016-01-28T15:15:29.673 回答
0

一旦你让另一个服务器(这里我们称之为控制器)来决定你的本地机器(这里是你的 PC)的数据包转发行为,它就变成了所谓的 SDN 机制。所以你选择什么样的CPU或硬件并不重要,基本上,你可以将SDN视为一种软件解决方案。

安装支持SDN的软件的过程可以选择open vswitch,上面的帖子已经回答过了。

于 2016-05-01T22:03:38.010 回答