作业链接

期末作业

1.负载均衡程序

代码

2.演示视频

地址

3.小组分工

小组:incredible five

构建拓扑:俞鋆

编写程序:陈绍纬、周龙荣

程序调试和视频录制:陈辉、林德望

4.个人工作

我是我们小组的组长,在期末作业中我主要负责任务分配,进度监督和构建拓扑,在做期末作业的过程中我们小组聚在一起开了两次会议,第一次确定要做的内容并分工,第二次将自己的部分和别人的对接。对于我负责的拓扑图的构建,我是用Python脚本生成的,我模仿了mininet的custom里的topo-2sw-2host.py文件的写法构建下图的拓扑。

每个主机和交换机对应的端口号我们都在第一次会议上确定了,这样对接起来更加容易。

代码:

from mininet.topo import Topo

class MyTopo( Topo ):

    def __init__( self ):

        # Initialize topology
Topo.__init__( self ) # Add hosts and switches
h1 = self.addHost( 'h1' )
h2 = self.addHost( 'h2' )
h3 = self.addHost( 'h3' )
h4 = self.addHost( 'h4' )
s1 = self.addSwitch( 's1' )
s2 = self.addSwitch( 's2' )
s3 = self.addSwitch( 's3' )
s4 = self.addSwitch( 's4' ) # Add links
self.addLink( s1, h1, 1, 0 )
self.addLink( s1, s2, 2, 1 )
self.addLink( s1, s3, 3, 1 )
self.addLink( s1, s4, 4, 1 )
self.addLink( s2, s4, 2, 2 )
self.addLink( s3, s4, 2, 3 )
self.addLink( s4, h2, 4, 0 )
self.addLink( s4, h3, 5, 0 )
self.addLink( s4, h4, 6, 0 ) topos = { 'mytopo': ( lambda: MyTopo() ) }

主要是使用mininet的模块编写代码,用addSwitch、addHost和addLink函数添加交换机、主机和链路,addLink后面的两个int参数代表着对应设备的端口相连起来了,不加的话按生成的先后顺序增加。

执行程序的命令(需要先打开远程控制器):

sudo mn --custom scene2.py --topo mytopo --controller=remote --switch ovsk,protocols=OpenFlow13

执行结果:

课程总结

上学期在选这门课的时候,我想的是能快点把学分修满,之后课就会少一点,那时候对课程一点也不了解,以为选修应该会是很轻松的。这学期我见识到的选修课和我之前想象的完全不同,每周都有作业,要写博客,再加上本来课就不少,一开始感觉很累,但当做完期末作业之后,回顾这门课,还是收获颇多的。

关于SDN

软件定义网络(SDN)是一种新型网络架构。它利用OpenFlow协议将路由器的控制平面从数据平面中分离,改以软件方式实现。该架构可使网络管理员在不更动硬件设备的前提下,以中央控制方式用程序重新规划网络,为控制网络流量提供了新方案,也为核心网络和应用创新提供了良好平台。

关于控制器

  • Ryu控制器

Ryu是日本NTT公司开发的模块化的控制器。Ryu因其架构清晰,支持OpenFlow全部版本,有社区的Plug-in集成到OpenStack,性能良好和文档齐全等优点获得了许多SDN研究者的关注。

  • Floodlight控制器

FloodLight,以其企业级别的优秀性能,开发效率更高的Java语言,模块化的设计等优点得到了喜欢Java语言的SDN研究者的青睐。

  • OpenDaylight控制器

OpenDaylight是Linux Foundation和多家网络巨头如Cisco、Juniper和Broadcom等公司一起创立的开源项目。OpenDaylight不仅仅是一个SDN控制器,它更是一个庞大的开源项目,其中包含许多子项目,而Controller只是其中的一个子项目。OpenDaylight支持多种南向协议,包括OpenFlow(支持1.0和1.3版本)、Netconf和OVSDB等,是一个广义的SDN控制平台,而不是OpenFlow系的狭义SDN控制器。

  • ONOS控制器

ONOS由On.Lab开发,是一款采用Java语言编写,采用OSGi架构,同样分布式的控制平台产品。其目标是打造一个开放的SDN网络操作系统,市场定位在运行商级别网络市场。ONOS底层模块直接借用FloodLight优秀的模块如Switch模块,不使用YANG语言建模,最新版本使用Raft作为分布式框架。

关于实践

mininet的使用

Floodlight的使用

ovs下发流表

odl的使用

下发流表实现简单负载均衡

SDN期末作业——负载均衡的更多相关文章

  1. SDN 期末作业验收

    前言 SDN 期末作业验收我们是采用的参考场景一,我们在此场景的基础上来做负载均衡,下面是我们搭建的拓扑图 演示视频 https://pan.baidu.com/s/1htkKLPM 负载均衡程序 相 ...

  2. SDN期末作业-通过SDN的应用实现负载均衡

    负载均衡程序 1.程序链接:https://github.com/424baopu/software/tree/master/LoadBalance 2.场景 topo: 场景描述: 服务器host ...

  3. 《SDN期末作业——实现负载均衡》

    队名:取个队名真难 一.网络拓扑(场景二) 二.负载均衡程序 1.建立拓扑的代码 拓扑 2.下发组表流表的代码 下发组表流表 三.演示视频 1.目的 服务器h2,h3,h4上各自有不同的服务,h1是客 ...

  4. SDN期末作业验收

    作业链接:https://edu.cnblogs.com/campus/fzu/SoftwareDefinedNetworking2017/homework/1585 负载均衡程序 1.github链 ...

  5. SDN期末作业

    期末项目 代码仓库:传送门 视频:组长已经发送给朱老师 选题:负载均衡场景3 选题内容: 该拓扑是数据中心拓扑的一部分,其中h1是数据中心外的一台客户机,h2-h5是数据中心内的服务器,请根据该拓扑实 ...

  6. SDN期末作业博客

    一.项目描述 A P4-based Network Load Balancing Application 基于P4的网络负载均衡项目 二.个人分工 The Controller : Acquire t ...

  7. 基于SDN网络的负载均衡研究与实现

    为什么需要软件定义网络 1.网络缺乏可扩展性,创新正在停滞不前.   我们最新的研究发现,几乎每两个组织中就有一个认为需要将网络功能扩展为采用SDN的主要业务触发因素,而不是其他催化剂.这一统计数据一 ...

  8. SDN课程作业总结

    SDN 期末作业总结 设计场景 我们采用参考场景一,实现负载均衡,拓扑图及端口示意如下: 演示视频 视频地址 关键代码 package loadBalance; import java.io.Buff ...

  9. SDN第五次上机作业--基于组表的简单负载均衡

    0.作业链接 http://www.cnblogs.com/easteast/p/8125383.html 1.实验目的 1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 3.抓包分析 ...

随机推荐

  1. What is AMQP? and the architecture

    What is AMQP? (Advanced Message Queuing Protocol) When two applications need to communicate there ar ...

  2. ASP.NET MVC下载excel文档

    问题来自论坛: 很早以前,学习做asp.net练习时,就是分享过<ASP.NET MVC应用程序实现下载功能>http://www.cnblogs.com/insus/p/3615714. ...

  3. 树莓派安装.net core 2.1

    0.更新源 sudo apt-get update 1.安装依赖 sudo apt-get install curl libunwind8 gettext 2.下载 SDK 或者 RunTime ht ...

  4. t3用户-角色-权限hibernate经典配置

    用户-角色-权限hibernate经典配置. 既然有人问起,我就写下说明吧.在文章中间的配置文件那里.权当回忆一下,也帮助更多人.这是以前学校时写的,没有注释.都是贴的代码笔记.看到的莫要见怪.欢迎学 ...

  5. sqlserver C# 数据类型对照表(转载)

    数据库中字段类型对应C#中的数据类型: 数据库                 C#程序 int int32 text string bigint int64  或 longbinary System ...

  6. CentOS总结归纳之基本操作(linux系管与运维一)

    原创作品,转载请在文章明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10170009.html 使用命令关闭和重启系统: 一.条件:只有root用户才 ...

  7. 阿里数据源Druid配置详情

    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-m ...

  8. PHP中类和对象的相关函数

    class_exists 判断一个类是否存在,参数为一个名字! interface_exists 判断一个接口是否存在,参数也是为一个名字! method_exists 判断一个方法是否存在! 需要两 ...

  9. BZOJ2956: 模积和(数论分块)

    题意 题目链接 Sol 啊啊这题好恶心啊,推的时候一堆细节qwq \(a \% i = a - \frac{a}{i} * i\) 把所有的都展开,直接分块.关键是那个\(i \not= j\)的地方 ...

  10. 解决The type 'ASP.global_asax' exists in both ASP.global_asax同时存在问题

    习惯发布站点的同学有时候可能遇见以下错误 这是发布时[预编译勾选/不勾选]产生的文件冲突导致的 如果不勾选预编译会发布以下代码 如果勾选预编译会发布以下代码 错误就在于此,如果非预编译Global.a ...