前言

之前在做SDN实验的时候,需要用到包含2000+个交换机的fattree拓扑,当时用的是mininet,生成整个拓扑需要十五六个小时,最终在异常艰苦的环境下做完了实验,之后听说了有DOT(Distributed OpenFlow Testbed)这个enhanced mininet,但当时迫于时间和机器的限制就没有尝试,现在有了腾讯云,刚好试试DOT。

一. DOT简介

DOT是一个模拟大规模SDN网络的工具,将模拟的任务分布在了多个物理主机上,这样就可以保证CPU,带宽以及网络延时,经过实验,他的可扩展性和其他性能要好于Mininet,下面左的性能比较来自于作者的论文。(其中backgroud traffic是相对于foreground traffic来说的,比如现在要在A和B之间产生千兆带宽(foreground traffic),但是网络中的其他设备之间也会存在带宽(background traffic),如果用Mininet的话无法保证AB之间的带宽为千兆,但是DOT可以。

上图由展示了DOT的系统构架,可以看出DOT主要有两个部分:DOT Central Manager(DCM)和很多个DOT Node Manager(DNM)。
DCM负责按照用户的指令分配资源,他有两个模块,Provisioning模块运行算法,负责将虚拟网络映射到物理资源,Statistics Collection模块负责从安装在么个DNM的Logging模块统计信息,Information数据库存储包括集群的利用率等管理信息。

一个DNM安装在一个物理主机上,每个DNM有两个模块,Host Provisioning模块负责收集和配置所需要的资源,Logging模块收集各种统计信息(包括资源利用率,数据包速率,吞吐率,延时,丢包率和OpenFlow消息。)

下图完整的展示了如何将要模拟的网络映射到多个物理主机上面,至于具体细节,可以参考论文。

二. 安装

我有个腾讯云服务器,一个用于DOT manager,一个用于DOT Node,假设他们的公网IP分别为(10.0.0.1,10.0.0.2),先用secureCRT分别远程登录两个服务器。然后分别安装DOT manager和DOT Node.

先在10.0.0.1服务器上安装DOT manager

  1. 因为后面的安装都是用bash脚本安装,所以先获取执行shell的root权限

    sudo -s
  2. 下载文件,解压,改变权限,安装
    wget http://dothub.org/downloads/dot_scripts_1_0.tar.gz
    tar xvzf dot_scripts_1_0.tar.gz
    chmod a+x dot_manager_install.sh
    ./dot_manager_install.sh
  3. 在安装过程中需要输入一些参数
    Press enter to continue...          #直接按Enter
    Enter the name of the local interface that is connected to the DOT nodes #输入一个网卡名称供DOT node连接,我这里是eth0
    #接着要求输入DOT nodes的IP地址,我的为10.0.0.
    #接着是子网掩码,我的为255.255.255.
  4. 之后会自动下载安装很多的库.

再在10.0.0.2服务器上安装DOT Node

  1. 前面几步和DOT manager类似,不过安装的shell文件需要换成dot_node_install

    sudo -s
    wget http://dothub.org/downloads/dot_scripts_1_0.tar.gz
    tar xvzf dot_scripts_1_0.tar.gz
    chmod a+x dot_node_install.sh
    ./dot_node_install.sh
  2. 在安装的过程中需要输入一些参数
    Press Enter to continue...                              #直接按Enter
    Enter the IP address of the DOT manager #输入DOT manager的IP,我的为10.0.01
    Please enter the name of the external interface of this machine #输入刚才安装DOT manager时候的网卡名字,我这里是eth0
    Enter the user name of the DOT node 需要给你的DOT node一个名字,我这里是dot
    #然后需要输入密码,自己输入就好
    #需要补充一些信息,我都是直接enter,成为默认值
    Full name []:
    Room Number []:
    Work Phone []:
    Other []:
    Is the information correct?[Y/n] #这里必须输入Y
  3. 之后会自动下载安装很多的库,包括虚拟交换机OpenvSwitch.
  4. 安装配置完成之后,将DOT manager的ssh key复制给所有的DOT nodes,在DOT Manager物理机上运行如下代码。
    chmod a+x dot_manager_keycopy.sh
    ./dot_manager_keycopy.sh 

    运行过程需要输入一些参数:    

DOT Manager installation is starting....
Press enter to continue... #直接按Enter键
Generating the ssh keys
Use the default location for saving the keys
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #输入一个文件名
Enter passphrase (empty for no passphrase): #输入密码,之后会生成key
Enter the user name of DOT nodes (Default: dot): #在上面安装DOT Node的时候输入过
Enter the IP Addresses of the DOT nodes (Separated by space): #输入DOT nodes的IP
#之后会让选择“yes”或者“no”,如果没有问题,选择yes即可完成。

三. 实验

拓扑需要用配置文件来定义。具体的步骤和说明可以参考Deloying logical topology

四. 遇到的问题

问题:在用securtCRT的时候出现乱码问题

解决:Options->Session Options->Appearance->Character encoding: UTF-8

五. 总结

之前的远程访问都是用的putty,这次从腾讯云官网上看到了secureCRT,因为他可以打开多窗口,同时进行多个连接,比putty还是要方便一些的,而且我在用putty的时候会经常中断。由于实验规模比较小,暂不能发现DOT的优越之处,以后做实验有条件的话会尝试一下。

Mininet加强版——DOT(分布式OpenFlow试验平台)的更多相关文章

  1. 分布式缓存管理平台XXL-CACHE

    <分布式缓存管理平台XXL-CACHE> 一.简介 1.1 概述 XXL-CACHE是一个分布式缓存管理平台,其核心设计目标是"让分布式缓存的接入和管理的更加的简洁和高效&quo ...

  2. 分布式逻辑管理平台XXL-GLUE

    <分布式逻辑管理平台XXL-GLUE>    一.简介 1.1 概述 XXL-GLUE 是一个分布式环境下的 "可执行逻辑单元" 管理平台, 学习简单,扩展JVM的动态 ...

  3. 基于ROS的分布式机器人远程控制平台

    基于ROS的分布式机器人远程控制平台   1 结构说明 HiBot架构主要使用C/S架构,其中HibotServer为服务器,Muqutte为消息服务器中间件,HiBotClient为运行在机器人上的 ...

  4. (持续更新中~~~)kafka--消息引擎与分布式流处理平台

    kafka概述 kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),一般更愿意称kafka是一款开源的消息引擎系统,只不过消息队列会耳熟一些.kafka主要应用于大数据 ...

  5. 分布式消息流平台:不要只想着Kafka,还有Pulsar

    摘要:Pulsar作为一个云原生的分布式消息流平台,越来越频繁地出现在人们的视野中,大有替代Kafka江湖地位的趋势. 本文分享自华为云社区<MRS Pulsar:下一代分布式消息流平台全新发布 ...

  6. Apache Kafka分布式流处理平台及大厂面试宝典v3.0.0

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 Apache Kafka官网地址 http://kafka.apache.org/ 最新版本为 3.0.0 Apach ...

  7. GPS部标监控平台的架构设计(十一)-基于Memcached的分布式Gps监控平台

    部标gps监控平台的架构,随着平台接入的车辆越来越多,架构也面临越来越大的负载挑战,我们当然希望软件尽可能的优化并能够接入更多的车辆,减少在硬件上的投资.但是当车辆增多到某一个临界点的时候,仍然要面临 ...

  8. 分布式统一配置平台-Disconf.Net

    源码地址:https://github.com/qkbao/Disconf.Net 作者:青客宝  联系qq:后续奉上 为了更好的解决分布式环境下多台服务实例的配置统一管理问题,本文提出了一套完整的分 ...

  9. java分布式电子商务云平台b2b b2c o2o需要准备哪些技术??

    技术解决方案 开发语言: java.j2ee 数据库:mysql JDK支持版本: JDK1.6.JDK1.7.JDK1.8版本 核心技术:分布式.云服务.微服务.服务编排等. 核心架构: 使用Spr ...

随机推荐

  1. Swift的数组与OC中数组的区别

    相同的值可以多次出现在一个数组的不同位置: Swift中的数组,数据值在被存储进入到某个数组之前类型必须明确,可以显示的类型标注或者类型推断.而且,Swift中的数组不必是对象类型. OC中的NSAr ...

  2. python-__init__.py 与模块对象的关系

    python中的Module是比较重要的概念.常见的情况是,事先写好一个.py文件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在sys.path中增加事先写好的. ...

  3. Android实现换肤功能(二)

    前两天写的上章关于换肤的功能获得了很好的反响,今天为大家介绍另一种方式.今天实现的策略也是网友建议的,然后我自己去写了个demo,大家自己评估下相比第一种方式的优势和劣势在哪里. 简单介绍下关于第一种 ...

  4. 解决windows server2003 64位操作系统上不能加载32位应用程序dll 的问题

    [FileLoadException: Could not load file or assembly 'sapnco_utils, Version=3.0.0.42, Culture=neutral ...

  5. ParameterizedThreadStart,ThreadStart的使用,线程Thread传参数

    Thread threadWithParam = new Thread(new ParameterizedThreadStart(new ThreadTest().ShowMsg));//thread ...

  6. 【HTML5 WebSocket】WebSocket对象特性和方法

    <HTML5 WebSocket权威指南>学习笔记&3 WebSocket方法的对象特性 1. WebSocket方法 a. send方法 send方法用于在WebSocket连接 ...

  7. Android4.4的init进程

    1背景 前些日子需要在科室内做关于Android系统启动流程的培训.为此,我在几年前的技术手记的基础上,重新改了一份培训文档.在重新整理文档期间,我也重读了一下Android 4.4的相关代码,发现还 ...

  8. CCNA2.0笔记_HSRP

    什么是HSRP协议? HSRP也叫热备份路由协议,即第一跳冗余协议,第一跳实际就是网关.从而实现网关的冗余和自动切换.该协议确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,并以此 ...

  9. poj3253 优先队列

    Farmer John wants to repair a small length of the fence around the pasture. He measures the fence an ...

  10. RandomUser 网站介绍

    RandomUser 网站介绍 tools api 介绍 使用 结果 API 错误 请求多个用户 指定性别 密码 种子 格式 使用早期版本 国家 页码 包含/不包含字段 杂项 结束语 介绍 在 201 ...