NS-3下的OpenFlow仿真(一)——准备



  • 什么是OpenFlow?

    OpenFlow,一种网络通信协议,属于数据链路层,能够控制网络交换器或路由器的转发平面(forwarding plane),借此改变网络数据包所走的网络路径。
    总而言之,OpenFlow是一个协议,一个为了软件定义网络(SDN)而创建的协议,用以更灵活的使用交换机在网路中的控制功能,OpenFlow允许从远程控制网络交换器的数据包转送表,透过新增、修改与移除数据包控制规则与行动,来改变数据包转送的路径。比起用 访问控制表 (ACLs) 和路由协议,允许更复杂的流量管理。同时,OpenFlow允许不同供应商用一个简单,开源的协议去远程管理交换机(通常提供专有的接口和描述语言)

    附:OpenFlow白皮书(点击下载)

    Openflow的基本概念了解

    OpenFlow的标准中存在两种设备,OpenFlow控制器、OpenFlow交换机,交换机的转发规则由流表(FlowTable)控制,用以匹配数据包和计数转发,控制器通过安全通道与交换机沟通,通过配置交换机的流表来控制交换机的转发,基本结构如下图:
    0_1551170095237_temp.png
    具体的OpenFlow协议请另行学习,本帖不详述。

    NS-3下的OpenFlow环境搭建:

    首先,你需要搭建好NS-3的基本环境,这一方面我们就不赘述了。
    当你装完后你会惊喜的发现,NS-3内置了OpenFlow模块!但这还需要编译模块。编译流程如下
    In order to use the OpenFlowSwitch module, you must create and link the OFSID (OpenFlow Software Implementation Distribution) to ns-3. To do this:

    Obtain the OFSID code. An ns-3 specific OFSID branch is provided to ensure operation with ns-3. Use mercurial to download this branch and waf to build the library:

    $ hg clone http://code.nsnam.org/openflow
    $ cd openflow
    

    From the “openflow” directory, run:

    $ ./waf configure
    $ ./waf build*
    

    Your OFSID is now built into a libopenflow.a library! To link to an ns-3 build with this OpenFlow switch module, run from the ns-3-dev (or whatever you have named your distribution):

    $ ./waf configure --enable-examples --enable-tests --with-openflow=path/to/openflow*
    

    Under ---- Summary of optional NS-3 features: you should see:

    "NS-3 OpenFlow Integration     : enabled"
    

    indicating the library has been linked to ns-3. Run:

    $ ./waf build
    

    to build ns-3 and activate the OpenFlowSwitch module in ns-3.
    然后你就可以跑跑例程了
    这是如此的令人激动的发现,然而当你深入他的文档和例程,你会疑惑万分?这东西怎么用呀?事实上,这个东西本来就没法用。经过调查与论证,这个OpenFlow模块止步于0.8版本,而且多年未更新,基本属于无法使用的状态。
    这个时候我们真正的主角就登场了!
    请看下一贴,ofswitch13登场



  • openflow应用如此灵活,好像可以用在校园网上欸



  • This post is deleted!


  • @pencil 昂,用在团队的交换机上可以抓包分析你有没有连团队的网打游戏呀


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

Looks like your connection to Dian was lost, please wait while we try to reconnect.