Mininet

2019 SDN上机第5次作业

元气小坏坏 提交于 2019-12-06 02:52:03
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 该应用程序使用OFPP_FLOOD标志来指示应在所有端口上发送数据包。 控制器设定交换机支持什么版本的OpenFlow? OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] OpenFlow v1.0 控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)#修饰器,告诉Ryu什么时候调用修饰的函数,用“ MAIN_DISPATCHER”作为第二个参数表示仅在协商完成后才调用此函数。 #当Ryu收到OpenFlow packet_in消息时,将调用此方法 def packet_in_handler(self, ev): msg = ev.msg#packet_in数据结构的对象 dp = msg.datapath#数据路径的对象 ofp = dp.ofproto ofp_parser = dp.ofproto_parser #dp.ofproto和dp.ofproto_parser是代表Ryu和交换机协商的OpenFlow协议的对象。 actions = [ofp_parser.OFPActionOutput

2019 SDN上机第四次作业

余生颓废 提交于 2019-12-05 13:54:58
1.解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) ①配置java环境 sudo gedit ~/.bashrc 在打开的文件底部添加相应语句 export JAVA_HOME=/usr/local/java/jdk1.8.0_201 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 下载安装该版本 注:当时配置环境没有修改相应路径,之后的实验中发现没有安装相应jdk环境,故之后的实验在虚拟机镜像中完成 2.启动并安装插件 安装代码 opendaylight-user@root>feature:install odl-restconf opendaylight-user@root>feature:install odl-l2switch-switch-ui opendaylight-user@root>feature:install odl-openflowplugin-all opendaylight-user@root>feature:install odl-mdsal-apidocs opendaylight-user@root>feature

2019 SDN上机第4次作业

自古美人都是妖i 提交于 2019-12-05 11:23:32
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 安装完成: 2. 启动并安装插件 3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器 py代码: from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class MyTopo( Topo ): "Simple topology example." def __init__( self ): "Create custom topo." Topo.__init__( self ) switchs = [] sw = self.addSwitch("s{}".format(1)) switchs.append(sw) for sw in switchs: for i in range(3): h = self.addHost("h{}".format(i+1)) self.addLink(sw, h) topos = { 'mytopo': (

2019 SDN上机第4次作业

瘦欲@ 提交于 2019-12-05 05:30:39
from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class Mytopo(Topo): def init (self): Topo.__init__(self) s=[] for i in range(1): sw = self.addSwitch('s{}'.format(i+1)) s.append(sw) count=1 for i in range(3): host = self.addHost('h{}'.format(count)) self.addLink(s[0],host) count += 1 topos = {'mytopo': (lambda:Mytopo())} 来源: https://www.cnblogs.com/wangerfu/p/11901637.html

SDN核心思想&Mininet

喜你入骨 提交于 2019-12-05 05:27:44
2.1ONF定义的SDN基本架构: 应用层:实现网络流量的灵活控制,使网络作为管道智能 控制层:网络虚拟化实现方式,核心技术OpenFlow 转发层新型创新架构,实现网络设备控制与转发分离 2与3之间通过OpenFlow协议通信 2.2核心思想 1.Decoupling:控制平面负责上层的控制决策;数据平面负责数据的交换转发(网络逻辑集中控制) 控制平面---多个分布式的控制器 2.Abstraction: 转发抽象:路由表,MPLS标签表,ACL访问控制表抽象流表 分布状态抽象:分布状态抽象成全局网络视图 实现下发控制命令;收集设备和链路状态,为上层应用提供全局网络视图 配置抽象:网络行为表达通过编程语言实现,将抽象配置映射为物理配置,利用控制器提供的API,基于控制层提供的全局网络视图 3.Programable:开放接口编程 接口: 控制平面--应用平面(北向接口):REST API ;JAVA API 控制平面--数据平面(南向接口)实现协议:OpenFlow,NETCONF,OF-Config,OVSDB 东西向接口:多控制器或控制器与外部组件之间通信 数据平面: 高性能网络数据处理框架DPDK SDN数据平面可编程:P4 2.3Mininet应用实践(SDN仿真工具) 运用mininet可视化工具创建网络拓扑结构 运用mininet交互命令创建网络拓扑结构

2019 SDN上机第4次作业

有些话、适合烂在心里 提交于 2019-12-05 05:21:57
1. 解压安装OpenDayLight控制器 Java配置 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 2. 启动并安装插件 3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器 python代码 from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class MyTopo(Topo): def __init__(self): # initilaize topology Topo.__init__(self) s=[] for i in range(1): sw = self.addSwitch('s{}'.format(i+1)) s.append(sw) count=1 for i in range(3): host = self.addHost('h{}'.format(count)) self.addLink(s[0],host) count += 1 topos = {

SDN实验---使用git安装Mininet

断了今生、忘了曾经 提交于 2019-12-05 04:15:12
一:前提 已经正常安装了SDN环境(mininet和openswitch2.11.0和Ryu) 使用前面教程安装环境 SDN实验---使用git安装Mininet (一)测试ovs是否正常使用 1.ryu启动 2.mn启动测试 二:原始信息 三:实验开始 (一)修改源码:在vport.c和.h中添加代码 1.vport.h文件 //custom function to log info void send_msg(const char* filename,const char* info); //file operation function struct file *file_open(const char *path, int flags, int rights); void file_close(struct file *file); int file_read(struct file *file, unsigned long long offset, unsigned char *data, unsigned int size); int file_write(struct file *file, unsigned long long offset, unsigned char *data, unsigned int size); 2.vport.c文件 //custom

2019 SDN上机第4次作业

隐身守侯 提交于 2019-12-05 03:08:38
目录 1.解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 2.启动并安装插件 3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器 4. 在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复 5. 借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。 1.解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 通过如下语句打开编辑bashrc sudo gedit ~/.bashrc 在最后加入如下代码 export JAVA_HOME=/usr/local/java/jdk1.8.0_201 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 接着解压安装OpenDayLight控制器 2.启动并安装插件 通过进入解压的压缩包,执行./bin/karaf 通过以下语句安装插件 feature:install odl-restconf feature:install odl-l2switch-switch-ui

2019 SDN上机第2次作业

旧巷老猫 提交于 2019-12-04 05:02:28
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class MyTopo( Topo ): def __init__( self ): Topo.__init__( self ) s = [] for i in range( 2 ): sw = self.addSwitch( 's{}'.format( i + 1 ) ) s.append( sw ) count = 1 for sw1 in s: for i in range(3): host = self.addHost( 'h{}'.format( count ) ) self.addLink( sw1, host ) count += 1 self.addLink(s[0],s[1]) topos = { 'mytopo'