使用OpenFlow和Ryu控制器实现网络交换机的软件定义网络(SDN)控制

news2024/11/23 20:08:57

使用OpenFlowRyu控制器实现网络交换机的软件定义网络(SDN)控制

(1)环境介绍

硬件环境:系统最低要求为2个CPU 、2 GB内存。

拓扑介绍:云平台具体安装拓扑如图5-4所示。

 

图5-4 云平台安装拓扑

搭建云平台搭建之前,首先配置好OpenDayLight的生产环境,安装完成之后,根据云计算基础架构平台的用户手册,在控制节点和计算节点完成相关模块的安装和配置,本任务云平台的网络模式为Neutron GRE模式,如果需要采用OpenDayLight模式管理虚拟网络,那么需要在配置之前清空Open vSwitch的相关配置,所以云实例的启动需要在完成OpenDayLight的前提下进行。具体的IP地址分配如表5-1所示。

表5-1 主机IP地址分配

主机名

隧道(管理网段)地址

实例(外网)地址

Controller

30.0.0.10

192.168.60.10

Compute/Network

30.0.0.20

192.168.60.20

OpenDayLight

192.168.60.10

(2)安装步骤说明

1 在控制节点安装OpenDayLight控制软件,并完成控制器的配置。

2 安装云计算平台,确定网络节点。

如果不确定网络节点可以通过neutron agent-list查看,即存在DHCP和L3服务的节点为网络节点,以下网络节点的操作步骤在此节点进行。

3 修改Ml2的插件的mechanism_ drivers类型。

4 清空Open vSwitch的默认配置,交由OpenDayLight来监控。

5 重新启动Open vSwitch,正常完成Neutron的使用,在Dashboard界面创建网络和云主机。

1. 安装ODL控制器

(1)安装JDK环境

工具5-1

Java软件包

1 OpenDayLight的安装节点需要配置JDK的环境,安装提供的Java软件包jdk-7u71-linux-x64.tar.gz。

拷贝软件包到系统中,然后执行以下命令安装。

# tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local/

2 修改环境变量添加如下内容。

编辑文件/etc/profile。

export JAVA_HOME=/usr/local/jdk1.7.0_80/

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3 安装完成后执行以下命令检测安装。

执行环境变量。

# source /etc/profile

# java -version

java version "1.8.0_241"

Java(TM) SE Runtime Environment (build 1.8.0_241-b07)

Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

(2)安装Maven环境

工具5-1

Maven软件包

1 OpenDayLight的安装节点需要配置Maven的环境,安装提供的Maven软件包apache-maven-3.6.3.tar.gz。

# tar -zxvf apache-maven-3.6.3.tar.gz  -C /usr/local/

2 修改环境变量添加如下内容。

编辑文件/etc/profile。

export MAVEN_HOME=/usr/local/apache-maven-3.6.3/

export PATH=$PATH:$MAVEN_HOME/bin

3 安装完成后执行以下命令检测安装。

执行环境变量

# source /etc/profile

# mvn -v

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)

Maven home: /usr/local/apache-maven-3.6.3

Java version: 1.8.0_241, vendor: Oracle Corporation, runtime: /usr/local//jdk1.8.0_241/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

(3)安装OpenDayLight

拷贝软件包到系统内,执行以下命令完成解压。

将软件包解压到指定的目录下(目录需存在)

# tar -zxvf opendaylight.tar.gz -C /opt

进入目录准备安装

# cd /opt/opendaylight/

修改mvn的配置setting位置路径

编辑以下配置文件

vi  etc/org.ops4j.pax.url.mvn.cfg        //这两个命令一个是相对路径一个是绝对路径

[root@localhost ~]# vim /opt/opendaylight/etc/org.ops4j.pax.url.mvn.cfg

将此段修改成

37 org.ops4j.pax.url.mvn.settings=/usr/local/apache-maven-3.6.3/conf/settings.xml  #查看用最新的路径代替!)

启动OpenDayLight服务进程

# ./bin/start

确保存在进程后执行以下步骤,即确定 ps aux |grep opendaylight 存在进程。

开始以客户端方式连接

需要在启动进程之后等待一段,否则会出现以下报错

Failed to get the session.

# ssh -p 8101 karaf@localhost

密码为karaf

登录成功如图5-5所示,此时继续配置OpenDayLight模块内容。

 

图5-5 命令行登陆OpenDayLight页面

此时执行以下命令完成模块的安装。

opendaylight-user@root> feature:install odl-ovsdb-openstack odl-dlux-core

通过以上命令可以安装OpenDayLight一个最基本的框架,目前只支持通过Web界面简单的查看Neutron的分配情况,包括Open vSwitch的网桥分配的虚拟接口情况。

OpenDayLight提供的安装命令为feature:install,然后加上安装的所需插件odl-ovsdb-openstack,为安装基于Open vSwitch的OpenStack功能,odl-dlux-core为安装DLUX功能,用于管理界面。

此时打开Web界面均可以访问OpenDayLight界面,如图5-6所示,打开方式http://主机IP:8181/index.html,默认用户名和密码均为admin。

用logout退出OpenDayLight命令界面

 

图5-6 网页登陆OpenDayLight页面

至此,OpenDayLight环境安装完毕。

这里的是在没有配置Gre隧道出现的页面演示 ,若想出现拓扑,可参考下面链接http://t.csdn.cn/f7E7h

3. 安装Ryu控制器

1 部署网络连通环境。

#vi /etc/resolv.conf (添加域名解析语句)

; generated by /sbin/dhclient-script

search openstacklocal

#nameserver 10.0.0.2

nameserver 114.114.114.114(当前网络例如电信、联通、移动dns服务器地址)

2 安装Git和Python组件。

# yum install -y git python-dev python-setuptools python-pip (用系统镜像文件)

#yum -y install python-devel

#yum -y localinstall python2-pip-8.1.2-12.el7.noarch.rpm (上传文件到本地,用本地安装)

3 下载Ryu控制器的源码包。

#git clone https://github.com/osrg/ryu.git

4 查看Ryu控制器的源码包内容。

[root@localhost ~]# cd ryu/

[root@localhost ryu]# ll

total 48

drwxr-xr-x.  2 root root    36 Feb 27 02:52 bin

-rw-r--r--.  1 root root  3955 Feb 27 02:52 CONTRIBUTING.rst

drwxr-xr-x.  3 root root  4096 Feb 27 02:52 debian

drwxr-xr-x.  3 root root    36 Feb 27 02:52 doc

drwxr-xr-x.  3 root root    17 Feb 27 02:52 etc

-rw-r--r--.  1 root root 11358 Feb 27 02:52 LICENSE

-rw-r--r--.  1 root root   310 Feb 27 02:52 MANIFEST.in

-rw-r--r--.  1 root root  1996 Feb 27 02:52 README.rst

-rwxr-xr-x.  1 root root  5469 Feb 27 02:52 run_tests.sh

drwxr-xr-x. 12 root root   259 Feb 27 02:52 ryu

-rw-r--r--.  1 root root  1441 Feb 27 02:52 setup.cfg

-rw-r--r--.  1 root root   956 Feb 27 02:52 setup.py

drwxr-xr-x.  3 root root   233 Feb 27 02:52 tools

-rw-r--r--.  1 root root  1832 Feb 27 02:52 tox.ini

5 安装GCC编译环境。

# yum install -y gcc (用本地centos镜像文件)

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package gcc.x86_64 0:4.8.5-28.el7 will be installed

--> Processing Dependency: cpp = 4.8.5-28.el7 for package: gcc-4.8.5-28.el7.x86_64

--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-28.el7.x86_64

--> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-28.el7.x86_64

--> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-28.el7.x86_64

--> Running transaction check

......

Installed:

  gcc.x86_64 0:4.8.5-28.el7                                                                                                                                                                    

Dependency Installed:

  cpp.x86_64 0:4.8.5-28.el7 glibc-devel.x86_64 0:2.17-222.el7 glibc-headers.x86_64 0:2.17-222.el7 kernel-headers.x86_64 0:3.10.0-862.el7 libmpc.x86_64 0:1.0.1-3.el7 mpfr.x86_64 0:3.1.1-4.el7

Complete!

6 安装Ryu控制器。

#pip install --ignore-installed .

Processing /root/ryu

Collecting eventlet!=0.18.3,!=0.20.1,!=0.21.0,!=0.23.0,>=0.18.2

  Using cached eventlet-0.25.1-py2.py3-none-any.whl (222 kB)  Found existing installation: Babel 0.9.4

......

    Running setup.py install for msgpack ... done

    Running setup.py install for wrapt ... done

    Running setup.py install for PyYAML ... done

    Running setup.py install for ovs ... done

    Running setup.py install for repoze.lru ... done

    Running setup.py install for tinyrpc ... done

    Running setup.py install for ryu ... done

Successfully installed Babel-2.8.0 PyYAML-5.3 certifi-2019.11.28 chardet-3.0.4 debtcollector-1.22.0 dnspython-1.16.0 enum34-1.1.9 eventlet-0.25.1 funcsigs-1.0.2 greenlet-0.4.15 idna-2.9 monotonic-1.5 msgpack-1.0.0 netaddr-0.7.19 oslo.config-7.0.0 oslo.i18n-3.25.1 ovs-2.11.0 pbr-5.4.4 pytz-2019.3 repoze.lru-0.7 requests-2.23.0 rfc3986-1.3.2 routes-2.4.1 ryu-4.34 six-1.14.0 sortedcontainers-2.1.0 stevedore-1.32.0 tinyrpc-0.9.4 urllib3-1.25.8 webob-1.8.6 wrapt-1.12.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用pipreqs生成requirements文件,并在服务器(矩池云)上通过requirements文件安装环境采坑记录

目录 问题描述问题1:问题2:发现问题问题解决 问题3:问题4:问题5:解决方案 关键!!!正常安装成功的操作流程备注1.我为何不在vscode的终端中装pipreqs包?2.在vscode终端中输…

Spring Cloud构建微服务架构:服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud包…

面了一个来华为要22K的人,啥都不会,还不如找个应届生来代替···

最近有个在华为的朋友跟我分享了他面试招人的过程,感觉华为还是挺难进的。面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试。 其实,第一轮的电话面试除…

ASEMI代理英飞凌TLE7244SL功率电子开关,TLE7244SL参数

编辑-Z TLE7244SL参数描述: 型号:TLE7244SL 数字电源电压VDD:3.0 V ~ 5.5 V 模拟电源电压VDDA:4.5 V ~ 5.5 V 每个通道在Tj150C时的最大导通状态电阻RDS(ON,max):1.7 Ω 额定负载电流IL (nom):290 mA…

Nginx【反向代理负载均衡动静分离】--中

Nginx【反向代理负载均衡动静分离】–中 负载均衡-配置实例 示意图 负载均衡配置-思路分析/图解 示意图 负载均衡配置规则 负载均衡就是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快 linux 下有Nginx、LVS、Haproxy 等等服务可…

在Apifox中,使用后置脚本显示响应结果reponse中的base64图片

背景 在使用Apifox去请求有图片的接口时,我想要请求成功的同时,可以显示出来图片,这个时候就开始百度找官方文档。最终发现可以使用后置脚本显示reponse中的图片。 方案 如下图所示,接口请求成功后,返回的json结构为…

【Spring Boot 初识丨四】主应用类

上一篇讲了 Spring Boot 的启动器 本篇来讲一讲 主程序类 Main Application Class 及注解 Spring Boot 初识: 【Spring Boot 初识丨一】入门实战 【Spring Boot 初识丨二】maven 【Spring Boot 初识丨三】starter 主程序类 一、定义二、注解2.1 SpringBootApplicati…

秋招指南(菜狗版)-Java前/后端开发方向

期末考试结束,菜的人还在享受假期,即将进大厂的已经在学习了(狗头) 作为经受去年秋招摧残的老学姐,给大家带来一些秋招学习的小经验,希望可以帮助大家避免一些求职路上的坑,能快速顺利地找到心仪…

论文笔记与实战:对比学习方法MOCO

目录 1. 什么是MOCO2. MOCO是干吗用的3. MOCO的工作原理3.1 一些概念1. 无监督与有监督的区别2. 什么是对比学习3. 动量是什么 3.2 MOCO工作原理1. 字典查找2. 如何构建一个好的字典3. 工作流程 3.3 (伪)代码分析 4. 其他一些问题5. MOCO v2和MOCO v35.1…

Nginx【反向代理负载均衡动静分离】--下

Nginx【反向代理负载均衡动静分离】–下 Nginx 工作机制&参数设置 master-worker 机制 示意图 图解 一个master 管理多个worker 一说master-worker 机制 ● 争抢机制示意图 图解 一个master Process 管理多个worker process, 也就是说Nginx 采用的是多进程结构, 而…

字节8年经验总结:13 条自动化测试框架设计原则(建议收藏)

1.代码规范 测试框架随着业务推进,必然会涉及代码的二次开发,所以代码编写应符合通用规范,代码命名符合业界标准,并且代码层次清晰。特别在大型项目、多人协作型项目中,如果代码没有良好的规范,那么整个框…

leetcode109. 有序链表转换二叉搜索树(java)

有序链表转换二叉平衡搜索树 leetcode109. 有序链表转换二叉搜索树题目描述 解题思路代码演示链表和二叉树专题 leetcode109. 有序链表转换二叉搜索树 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/convert-sorted-lis…

QCameraViewfinder的使用

目录 引言核心代码完整代码 引言 本文是简单使用Qt快速使用摄像头完成截图等工作,主要涉及QCamera、QCameraViewfinder、QCameraImageCapture这三个类。QCamera通过相机的信息创建,用于控制开始接收图形、停止接收图像。QCameraViewfinder则是图像的展示…

(1Gbit)MT28EW01GABA1LPC-0SIT、MT28EW01GABA1HPC-0SIT FLASH - NOR 存储器

MT28EW01GABA1LPC-0SIT、MT28EW01GABA1HPC-0SIT 1Gbit并行NOR闪存器件具有较高的密度、就地执行 (XiP) 性能和架构灵活性,可满足汽车、消费类和移动产品的设计要求。该器件非常适合用于GPS/导航、汽车后视摄像头、手机、智能手机和电子阅读器。该器件还具有较宽的温…

【小沐学Python】Python实现turtle绘画

文章目录 1、简介2、接口说明2.1 海龟动作2.1.1 移动和绘制2.1.2 获取海龟的状态 2.2 画笔控制2.2.1 绘图状态2.2.2 颜色控制2.2.3 填充2.2.4 更多绘图控制 2.3 TurtleScreen/Screen 方法2.3.1 窗口控制2.3.2 使用屏幕事件2.3.3 Screen 专有方法 3、示例测试3.1 Turtle star3.2…

关于proxy的较深入研究

关于proxy的较深入研究 proxy是什么控制台打印proxy,展示一下vue3中的prxoy和es6的proxy有何不同?proxy对js和vue3来说有什么含义?proxy的封装机制 proxy是什么 Proxy是ES6中新增的一个对象,它可以用来代理另一个对象&#xff0c…

微服务eureka和nacos

服务远程调用 /*** 创建RestTemplate并注入Spring容器* return*/Beanpublic RestTemplate restTemplate(){return new RestTemplate();} Autowiredprivate RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order orderMapper.fin…

关于调试别人的bug中发现的细节问题1:Switch...case...分支,永远只选择第一个分支

1、Switch…case…分支,永远只选择第一个分支: 原因:switch()里面的不是传入的变量,m_curWindowType是个成员变量,一直是初始值。他喵的,不知道谁写的下面的代码,大晚上的我也没有细看&#xff…

13.3寸_Wifi标签功耗电流计算-单面屏幕-1.8V的Flash测试

13.3寸Wifi标签不工作的时候电流的消耗主要来自两部分: 待机时,醒来监听时。经过测量,13.3寸Wifi标签的待机电流是7.13uA , 醒来监听的峰值电流是51.6 mA。13.3寸Wifi标签系统设定每间隔1秒醒来一次监听是否有唤醒数据。充电锂电池电池的容量…

00后跳槽到我们公司拿了25K,“躺平”两个字骗了我好久···

都说00后已经躺平了,但是有一说一,该卷的还是卷。前段时间我们部门就来了个00后,工作都还没两年,跳到我们公司起薪25K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。最近和他…