SDN之Ubuntn20.04OpenDaylight控制器的安装

目录

    • 1.OpenDaylight简介
    • 2.安装JAVA环境
    • 3.安装OpenDaylight
    • 4.问题总结

1.OpenDaylight简介

  • OpenDaylight(ODL)是一个开源的软件定义网络(SDN)控制器平台,提供了非常美观且功能完善的可视化管理界面,方便用户进行网络拓扑管理与自定义开发。
  • ODL支持多种网络协议,包括OpenFlow、NETCONF、BGP、PCEP等,这使得它能够管理和控制各种网络设备,包括交换机、路由器等。
  • ODL 主要使用 Java 编写,这使得它能够运行在各种平台上,并具有广泛的兼容性。

2.安装JAVA环境

步骤一:安装JDK
JDK(Java Development Kit,Java 开发工具包)是一个软件开发工具包,提供了 Java 编程语言的开发环境。JDK 包含了 Java 运行时环境(JRE)、Java 编译器(javac)、调试器(jdb)以及其他一些工具和实用程序,用于开发、调试和运行 Java 应用程序。
通过sudo apt-get install openjdk-版本号-jdk命令安装JDK。需要注意的是,安装JDK之前需要保证虚拟机能够上外网。这里安装JDK8版本。
在这里插入图片描述
可以看到JDK8已经安装完成。
在这里插入图片描述
安装之后需要查看JDK的安装路径,以便下一步设置JAVA环境变量时使用。这里JDK安装在/usr/lib/jvm目录下。
在这里插入图片描述
步骤二:配置JAVA环境变量
使用sudo vim /ect/environment命令对etc目录下的environment文件进行修改。
在这里插入图片描述
在文件最后添加:JAVA_HOME=“/usr/lib/jvm/java-8-openjdk-amd64”。
在这里插入图片描述
可以运行java -version查看安装的java版本。
在这里插入图片描述
配置完成后,需要重启系统(reboot),环境变量才能生效。

3.安装OpenDaylight

步骤一:下载OpenDaylight
使用wget https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.6.4-Carbon/distribution-karaf-0.6.4-Carbon.tar.gz命令下载OpenDaylight(网速慢的话,可能需要很久很久,耐心等待)。当然也可以先下载到本地主机,然后再将文件上传到虚拟机。
在这里插入图片描述
可以看到,已经下载完成,保存在/home/shy目录下。
在这里插入图片描述
在这里插入图片描述

步骤二:解压文件
使用sudo tar -zxvf distribution-karaf-0.6.4-Carbon.tar.gz命令解压文件。可以看到解压后的文件distribution-karaf-0.6.4-Carbon保存在/home/shy目录下。
在这里插入图片描述
步骤三:修改参数
进入目录/home/shy/distribution-karaf-0.6.4-Carbon/etc下,使用命令sudo vim org.apache.karaf.management.cfg对文件进行修改。
在这里插入图片描述
在这里插入图片描述
修改内容如下:
在这里插入图片描述
步骤四:启动karaf
进入/home/shy/distribution-karaf-0.6.4-Carbon/bin目录,执行命令sudo ./karaf启动karaf。
在这里插入图片描述
可以看到,现在启动成功。
在这里插入图片描述
步骤五:安装feature
注意,以下命令均是在OpenDayLight的命令行下运行的。
①安装支持REST API的组件
feature:install odl-restconf
②安装L2 switch插件
feature:install odl-l2switch-switch-ui
③安装用户界面服务
feature:install odl-openflowplugin-flow-services-ui
④安装API查看器
feature:install odl-mdsal-apidocs
⑤安装dlux展示页面
feature:install odl-dluxapps-applications
⑥添加与函数服务相关的支持和管理功能
feature:install odl-faas-all
在这里插入图片描述
需要注意安装顺序不能乱。安装完成后使用logout命令退出控制器。
步骤六:验证OpenDaylight控制器是否安装成功
首先进入/home/shy/distribution-karaf-0.6.4-Carbon/bin目录下,使用命令sudo ./karaf启动OpenDaylight控制器;启动成功后,打开Ubuntn中的浏览器,输入网址http://192.168.177.131:8181/index.html登录OpenDaylight管理界面,登录的用户名和密码均为admin(192.168.177.131为虚拟机的IP地址,可以通过ip addr命令查看)。
在这里插入图片描述
可以看到,已经登陆成功,但此时是没有任何内容的。
在这里插入图片描述
接着启动mininet创建网络拓扑,为了简单起见,可以使用sudo mn --controller=remote,ip=127.0.0.1 --switch ovsk,protocols=OpenFlow13命令(或sudo mn --controller=remote,ip=虚拟机IP,port=6633(可写可不写) --switch ovsk,protocols=OpenFlow13命令或sudo mn --controller=remote --switch ovsk,protocols=OpenFlow13命令)创建最小化网络拓扑,使用Open vSwitch (ovsk) 作为交换机(也可以使用ovs),并使用 OpenFlow 1.3 协议进行通信;然后在管理界面中查看当前网络拓扑,此时拓扑图只会显示交换机不会显示主机,这是由链路发现协议(LLDP)来决定的,当主机发起流量时,相关主机才会在拓扑图中显示。
在这里插入图片描述
执行pingall命令,管理界面中查看当前网络拓扑,可以看到新建了一台交换机和两台主机,说明OpenDaylight控制器安装成功。
在这里插入图片描述

4.问题总结

1.通过sudo vim /etc/environment命令配置JAVA环境变量时出现vim:command not found。
原因:Linux默认的文本编辑器是vi。
在这里插入图片描述
解决办法:通过sudo apt-get install vim -y命令安装vim。
在这里插入图片描述
2.使用apt-get install命令安装软件时,出现
E: Could not getlock /var/lib/dpkg/lock-frontend.It is heldby process 31295unattended-upgr)
N: Be aware that removing the lock file is not a solution and may break your sysem.
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is an other process using it?
在这里插入图片描述
原因:用apt-get install安装软件的时候,如果在未完成下载的情况下将terminal关闭,此时 apt-get进程可能没有结束,即有另一个程序正在占用apt-get install进程。由于它在运行时,会占用软件源更新时的系统锁(简称‘系统更新锁’),此时资源被锁。
解决办法:依次输入以下命令强制解锁后重启系统。

sudo rm /var/cache/apt/archives/lock  
sudo rm /var/lib/dpkg/lock
sudo systemctl --force --force reboot

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《YOLOv7原创自研》专栏介绍 CSDN独家改进创新实战专栏目录

YOLOv7原创自研 https://blog.csdn.net/m0_63774211/category_12511937.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡💡💡…

Docker下安装可视化工具Portainer

目录 Portainer简介 Portainer安装 Portainer简介 Portainer是一款开源的容器管理平台,它提供了一个易于使用的Web UI界面,可用于管理和监控容器和集群,旨在使容器管理更加简单和可视化,适用于各种规模的容器环境,从…

淘宝店铺所有商品数据接口(淘宝 API 接口)

要获取淘宝店铺所有商品数据,您可以使用淘宝开放平台提供的 API 接口。具体步骤如下: 在淘宝开放平台注册并登录,创建一个应用,获取到所需的 App Key 和 App Secret 等信息。 使用获取到的 App Key 和 App Secret 进行签名和认证…

【C++ Primer Plus学习记录】嵌套循环和二维数组

目录 1.初始化二维数组 2.使用二维数组 for循环是一种处理数组的工具。下面进一步讨论如何使用嵌套for循环中来处理二维数组。 C没有提供二维数组类型,但是用户可以创建每个元素本身都是数组的数组。例如,假设要存储5个城市在4年间的最高温度&#xff…

IPv6是趋势!如何在Windows上禁用或启用IPv6?有3种简单的方法

IPv6是IPv4的一个更加安全、可扩展和可靠的继任者。然而,这种较新的互联网协议与IPv4不向后兼容,并且大多数VPN服务提供商不支持IPv6协议。 Microsoft不建议用户禁用IPv6或其组件,除非他们需要解决网络问题。但是,如果你计划禁用…

android studio安装SDK时无法勾选

这两天帮助学妹安装android studio安装SDK时无法勾选,记录一下最终解决办法。头大。 核心 360 问题 网上所有方法都尝试了包括挂梯子,改hosts,盘符权限等等。 最终解决下载360 使用这两个,DNS注意要用8.8.8.8的 成功解决

DLL缺失

DLL缺失 参考链接: 方法五,亲测有用

栈和队列的OJ题——14.用栈实现队列

14.用栈实现队列 232. 用栈实现队列 - 力扣(LeetCode) /* 解题思路: 此题可以用两个栈实现,一个栈进行入队操作,另一个栈进行出队操作 出队操作: 当出队的栈不为空是,直接进行出栈操作&#xff…

【字符串匹配】【KMP算法】Leetcode 28 找出字符串中第一个匹配项的下标☆

【字符串匹配】【KMP算法】Leetcode 28 找出字符串中第一个匹配项的下标 (1)前缀和后缀(2)前缀表(最长相同的前缀和后缀的长度)(3)匹配过程示意(4)next数组的…

计算机导论——第39章 文件和目录

除了虚拟化CPU和内存,另外一个是持久存储,永久存储信息。持久存储设备与内存不同,内存在断电时内容会丢失,而持久存储设备会保持这些数据不变。 1. 文件和目录 文件就是一个线性字节数组,每个字节都可以读取或者写入…

面试题:说说 Cookie、Session、Token、JWT?

文章目录 什么是认证(Authentication)什么是授权(Authorization)什么是凭证(Credentials)什么是 Cookiecookie 重要的属性 什么是 Sessionsession 认证流程 Cookie 和 Session 的区别什么是 Token&#xff…

Python面向对象④:继承【侯小啾python领航班系列(二十二)】

Python面向对象④:继承【侯小啾python领航班系列(二十二)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

loguru的简单使用

详细使用:Table of contents — loguru documentation 【1】日志的级别 日志级别默认分为6种 1、NOTSET (0)2、DEBUG (1)3、INFO (2)4、WARNING (3)5、ERROR (4)6、CRITICAL (5) logging 执行时输出大于等于设置的日志级别的日志信息,如设置日…

leetCode 51.皇后 + 回溯算法 + 图解 + 笔记

按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包…

nodejs介绍

nodejs官网支持的各种库api https://nodejs.org/docs/latest-v21.x/api/http.html nodejs包括vp8引擎和内置的基本库如fs,path,http,querystring等,也可以用npm按转第三方库 npm是nodejs环境的包管理工具,可以为这个环境安装卸载各种包。 npm install pk…

类和对象——(4)特殊的成员函数

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 一个人不是在逆境中成长,就…

4/150:寻找两个正序数组的中位数⭐ 5/150最长回文子串

题目:4/150寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 题解1:暴力 暴力思路简介&#x…

JAVA毕业设计113—基于Java+Springboot+Vue的体育馆预约系统(源代码+数据库+12000字论文)

基于JavaSpringbootVue的体育馆预约系统(源代码数据库12000字论文)113 一、系统介绍 本项目前后端分离,本系统分为管理员、用户两种角色 用户角色包含以下功能: 注册、登录、场地(查看/预订/收藏/退订)、在线论坛、公告查看、我的预订管理、我的收藏…

综合实验—增强分析和配置中小型企业网络的综合能力

实验拓扑、实验编址如下图表所示,本实验模拟了一个企业网络场景, 其中R1和R2为公司总部路由器,交换机S1、S2、S3组成了总部的园区网,R3、R4、 R5为公司分部的路由器。 总部园区网中3台交换机都运行MSTP协议,用来防止二…

统计3个点的6种结构在三角形内的占比

平面内的3个点只可能有6种结构 1 - - - - 4 - - - - - - - - - - - - - - - - - - - - - - - 1 - - - 1 - - 1 1 - 1 1 - 2 - - - - 5 - - - - - - - - - - - - - - - 1 - - - 1 - - - 1 - - 1 - …