onosproject和mininet部署

onos和mininet部署

1.onos

1.1.onos是什么?

ONOS(Open Network Operating System)是一个用于构建和管理网络的开源操作系统。它由Linux基金会主持并进行开发,旨在为现代网络提供可编程、高度自动化和灵活性的操作系统平台。ONOS允许用户使用各种编程语言和工具来实现网络应用程序和服务,并提供了一套标准API和开放协议,以便与其他网络设备和管理平台进行集成。

ONOS的核心架构采用分布式控制平面,可以自动处理网络拓扑变化、流量路由和负载均衡等任务,同时支持多租户和多层次的网络安全策略。ONOS还支持多种网络技术和协议,如SDN、NFV、P4等,可以轻松地将这些技术与现有的网络结构进行整合和扩展。

ONOS是一个开放且灵活的网络操作系统平台,已经被广泛应用于电信、互联网服务提供商、企业和研究机构等领域中,以构建高效、灵活和强大的网络基础设施。

1.2.如何部署onos?

源码部署由于会涉及到过多的依赖以及版本兼容问题(网上大部分教程也是基于源码部署),并且源码部署需要一个漫长的编译时间(取决于你的cpu性能),由于docker镜像帮我们帮onos的环境以及依赖打包好了,因此我们使用docker部署onos不仅不会出问题,而且会非常的高效。

安装步骤

如果你的系统上没有安装docker,那么你首先需要安装docker

1.2.1安装docker

基于ubuntu/debian

1
2
#docker-compose是用来编排docker容器的一个脚本,如果你不需要docker-compose,将下面的改成docker.io即可
apt install docker-compose#在安装docker-compose的时候回一起安装docker
1.2.2.使用docker-compose编排
1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: "3.3"
services:
onosproject:
image: onosproject/onos:latest
container_name: onosproject
hostname: onosproject
ports:
- "6640:6640"
- "6653:6653"
- "8101:8101"
- "8181:8181"
- "9876:9876"
restart: always
privileged: true

将文件保存成docker-compose.yml

1.2.3.开始部署

在docker-compose.yml文件夹下执行以下命令编排容器

1
2
3
sudo docker-compose up -d
#如果这条命令报错,那么首先你需要删除所有的docker容器(指令在下面)
#sudo docker rm -f $(sudo docker ps -qa)
1.2.4.激活功能
1
2
3
4
5
#登录到onos容器内部
ssh karaf@127.0.0.1 -p8101#(密码默认为karaf)(指定指令的机器一定要在搭建onos的机器上)
#进入到命令行后输入以下指令(密码默认为karaf)
app activate org.onosproject.openflow#打开openflow功能
app activate org.onosproject.fwd#打开流量转发功能

至此onos服务已经搭建完毕

1.2.5.我们可以打开浏览器访问

http://127.0.0.1:8181/onos/ui (如果浏览器和部署机器不在同一台机器上,把127.0.0.1换成服务器的真实ip地址)
默认用户名和密码
onos
rocks

1.2.6.确认功能已激活

确认功能已经激活
如果这些功能中有功能未激活,那么回到1.2.4.去激活openflow和fwd功能

2.mininet

2.1.什么是mininet?

Mininet是一种用于创建虚拟网络环境的开源工具。它可以在单个计算机上运行,并模拟多个网络设备和主机之间的连接,包括交换机、路由器、主机等。使用Mininet可以轻松地构建和测试各种网络应用程序和协议,并且可以在实验环境中有效地调试和优化网络性能。

Mininet基于Linux的命名空间技术,使得用户可以创建多个隔离的虚拟网络环境,并在每个环境中运行自己的网络协议栈和应用程序。它还提供了一个Python API,可以方便地定义和管理虚拟网络拓扑,并支持对网络流量进行捕获和分析。

Mininet已经成为一个广泛使用的虚拟化网络环境工具,在网络学术研究、教育和开发领域都有着重要的应用价值。

2.2.mininet部署

mininet部署有多种方法,但是目前经过多次尝试最稳定的是单独导入一个mininet虚拟机(官方推荐方法),这个虚拟机中已经部署好了mininet环境以及mininet需要的所有的依赖,因此导入即用,非常的方便
mininet虚拟机下载地址根据所需下载

2.3.mininet导入

将下载好的压缩包导入,使用vmware或者virtualbox即可打开导入
以后在mininet命令行上添加设备
例如

1
2
3
4
5
6
7
8
#这里的ip地址是已经配置搭建好onos的服务器ip地址(需要根据实际修改)

#!!!!!命令一定要看注释!!!
#!!!!!命令一定要看注释!!!
#!!!!!命令一定要看注释!!!
sudo mn --topo tree,2 --controller remote,ip=172.17.0.2#指令执行的地方为mininet主机上,不是onos部署的那台主机(切记!!!!!)(ip地址需要修改成onos的主机的ip地址)
#controller指定onos服务器的ip地址
#--topo 指定拓扑结构

2.4.优化配置选项

由于虚拟机没有图形化,更没有和宿主机共享剪切板等问题,每次进mininet中操作非常的麻烦,而且mininet默认开启openssh服务,我们可以直接使用ssh工具远程连接,不过你首先需要知道他的ip地址
获取ip地址的方法

1
2
ip addr #执行命令的主机为mininet主机
#eth0网卡后面的inet参数就是ip地址(一般是192.168开头的)

知道ip地址后

1
2
3
ssh mininet@{IP} #将ip地址修改成mininet主机的ip地址(执行这条命令的主机是onos主机)
#密码是mininet
#这条命令实现从onos主机远程登录到mininet主机,而不用mininet和onos主机来回切换

登录成功后,我们即可远程操作

最后的效果

mininet和onos


onosproject和mininet部署
https://dreamaccount.github.io/2023/03/22/onos和mininet部署/
作者
404NotFound
发布于
2023年3月22日
许可协议