搭建网络SDN(企业网络环境搭建)

1.     搭建环境要求:图1中控制器可以自主选择,既可选择各种开源的控制器(例如:Floodlight、Ryu、Nox、Beacon、Trema、OpenDaylight等),也可选择由本次大赛设备提供商所提供的闭源控制器。拓扑中各网络部件既可以是仿真环境实现(例如mininet,OpenvSwtich),有条件的队伍也可以通过物理设备实现,两种方案不影响必答题的评分。2.     操作

大家好,又见面了,我是你们的朋友全栈君。

第1小题:简单网络

说明:由于对于SDN架构的理解在学界和业界并没有统一,为了方便参赛队员选择,对于初学者,大赛推荐OpenFlow作为南向接口来实现SDN环境,以下给出分别针对采用OpenFlow和采用其他接口的具体要求(分A、B两种情况)。

 

A. 针对采用OpenFlow作为南向接口的参赛队伍的要求:

参赛队伍首先需要搭建一个SDN架构的网络环境,初学者可以参照图1所示的一个最简单的拓扑结构,熟练的参赛队员可以自定义复杂一点的拓扑结构,两者并不影响评委评分。

 

B. 针对不是采用OpenFlow作为南向接口的参赛队伍的要求:

拓扑结构自定,所用设备、软件等自选,只要能够实现SDN架构的网络环境即可。

搭建网络SDN(企业网络环境搭建)

图1:简单的示例拓扑

1.      搭建环境要求:图1中控制器可以自主选择,既可选择各种开源的控制器(例如:Floodlight、Ryu、Nox、Beacon、Trema、OpenDaylight等),也可选择由本次大赛设备提供商所提供的闭源控制器。拓扑中各网络部件既可以是仿真环境实现(例如mininet,OpenvSwtich),有条件的队伍也可以通过物理设备实现,两种方案不影响必答题的评分。

2.     操作要求:对流表进行操作使得Host1和Host2能够互相ping通,然后再修改流表使得它们不能ping通。

3.     报告书要求:报告书的主要内容需要包含以下几点:

(1)  详细描述实验网络环境的搭建思路,给出搭建出来的结构拓扑图,列举选择的具体设备或者仿真软件、工具软件,并说明其在实验中的作用。

(2)  给出实现2中操作要求的具体操作步骤,以截图或者文本方式展示,要求给出初始以及前后两次对流表操作后流表内容的截图。

(3)  给出实验数据(界面截图、表格等都可)来说明实现了(2)中的要求。

说明:以上列举的为硬性要求,在报告书中必须给出。但报告书内容的组织可以灵活处理,自由发挥,不限于上述要求的内容。

 

实验报告如下:

一、搭建网络环境需求:

  1. ubuntu12.04版本;
  2. 默认安装所有 Mininet相关的相关套件,如:OpenFlow、POX 等工具会默认保存在当前用户的家目录,即利用mininet仿真软件进行处理;
  3. 在mininet软件下进行相关命令的配置来完成实验的目的。

二、实验操作:

  1. 在ubuntu12.04环境下安装mininet相关插件,这里我采用了默认安装所有 Mininet相关的相关套件,如:OpenFlow、POX 等工具会默认保存在当前用户的家目录。
    <span style="font-size:14px;"># git clone git://github.com/mininet/mininet
    # cd mininet/util/
    # ./install.sh -a</span>
  2. 由于mininet软件 支持自定义网络,因此我们可以命令来查看自带的拓扑结构:
    <span style="font-size:14px;">wuyouke@ubuntu:~$ sudo mn
    *** Creating network
    *** Adding controller
    *** Adding hosts:
    h1 h2 
    *** Adding switches:
    s1 
    *** Adding links:
    (h1, s1) (h2, s1) 
    *** Configuring hosts
    h1 h2 
    *** Starting controller
    *** Starting 1 switches
    s1 
    *** Starting CLI:
    </span>

    也可以通过节点命令来查看节点的个数:

    <span style="font-size:14px;">mininet> nodes
    available nodes are: 
    c0 h1 h2 s1
    </span>

    正好可以满足本实验的要求,因此我们就可以借助于这个拓扑图而无需进行修改,当然我们可以通过其他命令来自定义拓扑结构,在以后的文章种再进行讲解。

  3. 通过mininet中的命令来查看各个节点的IP信息,即:
    <span style="font-size:14px;">mininet> dump<Host h1: h1-eth0:10.0.0.1 pid=3320> <Host h2: h2-eth0:10.0.0.2 pid=3322> <OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None pid=3327> <Controller c0: 127.0.0.1:6633 pid=3312> </span>
  4. 接下来就是ping两台主机,并且事先后台运行wireshark抓包软件:
    <span style="font-size:14px;">sudo wireshark &</span><pre name="code" class="plain"><span style="font-size:14px;">mininet> h1 ping -c 3 h2PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.64 bytes from 10.0.0.2: icmp_req=1 ttl=64 time=1.15 ms64 bytes from 10.0.0.2: icmp_req=2 ttl=64 time=0.394 ms64 bytes from 10.0.0.2: icmp_req=3 ttl=64 time=0.058 ms</span>
  5. 在抓包软件中要首先进行filter:of。然后双击capture中选择lo端口来进行抓包饿哦,抓包图如下:
    <img src="https://img-blog.csdn.net/20141010102555984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamsxOTkyMDUyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" height="233" width="733" alt="" />
  6. 为了修改流表,因此我们将用到ovs相关的配置命令;
    <span style="font-size:14px;">wuyouke@ubuntu:~$ sudo ovs-ofctl show s1OFPT_FEATURES_REPLY (xid=0x1): ver:0x1, dpid:0000000000000001n_tables:255, n_buffers:256features: capabilities:0xc7, actions:0xfff 1(s1-eth1): addr:82:e0:d8:10:f6:92     config:     0     state:      0     current:    10GB-FD COPPER 2(s1-eth2): addr:6a:ef:a1:77:19:8c     config:     0     state:      0     current:    10GB-FD COPPER LOCAL(s1): addr:2e:25:ee:8e:1e:45     config:     PORT_DOWN     state:      LINK_DOWNOFPT_GET_CONFIG_REPLY (xid=0x3): frags=normal miss_send_len=0</span>

    以上是虚拟交换机s1的信息,获得dpid,端口openflow端口编号。

    <span style="font-size:14px;">sudo ovs-ofctl add-flow s1 idle_timeout=120,in_port=1,actions=drop
    </span>

    添加一条流规则:丢弃从1端口发来的任何数据包,此时再在sudo mn的模式下ping命令,就会发现两台主机是ping不通的。这时再次查看s1上面的流规则:

    <span style="font-size:14px;">wuyouke@ubuntu:~$ sudo ovs-ofctl dump-flows s1
    NXST_FLOW reply (xid=0x4):
     cookie=0x0, duration=27.463s, table=0, n_packets=0, n_bytes=0, idle_timeout=120,in_port=1 actions=drop</span>
  7. 以上实验已经完成!
  8. 附:由于刚刚学习SDN的相关知识,有些配置还不是很了解,希望大家给予指正,相互学习,谢谢~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128045.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月11日 上午10:00
下一篇 2022年4月11日 上午10:00


相关推荐

  • https和ssl的区别_ssl认证

    https和ssl的区别_ssl认证https加密、解密、及验证过程如下图:HTTPS怎么实现安全传输的?建立安全传输HTTPS中,客户端首先打开一条到WEB服务器443端口的连接。一旦建立了TCP连接,客户端和服务器就会初始化SSL层,对加密参数进行沟通,并交换密钥。握手完成后,SSL初始化就完成了,客户端就可以将请求报文发送给安全层了。重点SSL握手发送已加密的HTTP报文之前,客户端和服…

    2022年10月2日
    3
  • 深入理解java注解的实现原理(转载)

    深入理解java注解的实现原理(转载)转自 深入理解 java 注解的实现原理今天将从以下 4 个方面来系统的学习一下 java 注解 什么是注解 注解的用途 注解使用演示 注解的实现原理 1 什么是注解注解也叫元数据 例如我们常见的 Override 和 Deprecated 注解是 JDK1 5 版本开始引入的一个特性 用于对代码进行说明 可以对包 类 接口 字段 方法参数 局部变量等进行注解一般

    2025年6月18日
    6
  • ExcelJS 使用帮助文档

    ExcelJS 使用帮助文档ExcelJS 使用帮助文档个人备忘 原文地址 https github com exceljs exceljs blob master README zh md 安装 npminstallex 新的功能 重大版本更改 主要的 ExcelJS 接口已从基于流的 API 迁移到异步迭代器 从而使代码更简洁 虽然技术上是一个突破性的变化 但大多数 API 都没有变化 详细信息请参见 UPGRADE 4 0 md 此升级来自以下合并 M

    2026年3月17日
    2
  • gearman c语言,Gearman分布式任务处理系统(一)基本介绍[通俗易懂]

    gearman c语言,Gearman分布式任务处理系统(一)基本介绍[通俗易懂]Gearman介绍Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用WebService的方式来处理此类集成问题,但不管采用何种风格的WebService,如RPC风格,或者REST风格,其本身都有一定的复杂性。相比之下…

    2025年6月9日
    5
  • Qt的双缓冲技术(double buffering)

    Qt的双缓冲技术(double buffering)Qt的双缓冲技术(doublebuffering)是Qt绘画机制的一部分,是一种在Qt4中被全面采用的技术。其核心是:把一个窗口部件渲染到一个脱屏pixmap(off-screenpixmap)中,然后再把这个pixmap复制到显示屏幕上。这样做的目的是用于消除屏幕的闪烁并且因而界面会显得更漂亮。Qt4中,Qt会自动处理这些情况,所以在普通的绘画中,我们不必要关注这些内容。QT取消双

    2022年5月21日
    52
  • 一文弄懂什么是Precision,Recall,F1score,以及accuracy[通俗易懂]

    一文弄懂什么是Precision,Recall,F1score,以及accuracy[通俗易懂]近期在做实验的时候一直出现Precision,Recall,F1score,以及accuracy这几个概念,为了防止混淆,在这里写下学习笔记,方便以后复习。以一个二分类问题为例,样本有正负两个类别。那么模型预测的结果和真实标签的组合就有4种:TP,FP,FN,TN,如下图所示。TP实际为正样本你预测为正样本,FN实际为正样本你预测为负样本,FP实际为负样本你预测为正样本,TN实际为负样本…

    2022年10月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号