龙空技术网

云端卫士 | 玩得就是专业 基于ONOS的SDN-IP实验

云端卫士 117

前言:

现时同学们对“ubuntu安装mininet全流程”大致比较重视,姐妹们都需要剖析一些“ubuntu安装mininet全流程”的相关文章。那么小编同时在网上网罗了一些对于“ubuntu安装mininet全流程””的相关知识,希望兄弟们能喜欢,各位老铁们快快来学习一下吧!

《实战录》导语

云端卫士《实战录》栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益。本期分享人为云端卫士SDN工程师李松青,将带来基于ONOS的SDN-IP实验的分享。

学习ONOS一段时间了,着力点是SDN-IP模块儿;SDN-IP实现了BGP协议,使得ONOS控制的孤岛网络可作为transit AS域插入大网,对于逐步替换大网设备,或步进式融入大网环境不可或缺。

本文档不再赘述SDN-IP模块儿的架构及运行原理(可参考附录文献),而从搭建SDN-IP实验环境角度整合Quagga、Mininet、ONOS等开源软件,为新手提供比官网wiki更详尽的环境搭建流程。

Qugga简介

设备互联已经是当今Internet的主题,安装了quagga后,设备就可以充当路由器的角色。利用quagga,可以和其他路由器利用已知的路由协议交互路由信息;quagga利用这些信息更新设备转发表,以达到正确转发数据包的目的。当然,可以通过quagga提供的终端接口(如CLI)手工配置或查看路由信息,及表项信息。

目前quagga支持知名的动态路由协议,如RIP/OSPF/IS-IS/BGP等,通过Zebra也支持静态路由;另外,即将实现的LDP协议,可以支持MPLS。

Quagga由一组路由协议daemon组成,其中bgpd、ripd、ospfd等用于实现具体的路由协议;zebra则用于管理内核路由表,及在不同的协议间分发路由信息等。Quagga系统的架构如下图所示:

图1 Quagga系统架构图

准备环境

下载源码包:

编译、安装

yum install readline-devel centos依赖(optional)

或apt-get install libreadline-dev ubuntu依赖(optional)

./configure --prefix=/root/Applications/quagga

make

make install

添加quagga可执行程序到PATH路径

vim /root/.bashrc

export PATH=/root/Applications/quagga/sbin:/root/Applications/quagga/bin:$PATH

source /root/.bashrc

Mininet简介

目前,SDN/OpenFlow发展,但是在真实网络中又很难进行相关的网络实验,Mininet应运而生,担当起SDN网络拓扑模拟器的职责。Mininet是一个强大的网络仿真平台,通过它可以很方便的模拟真实环境中的网络及设备,如交换机、主机、控制器等;另外,它也支持外置的控制器。

准备环境

下载源码:git clone git://github.com/mininet/mininet

建立编译目录:mkdir mini-build

编译,安装所有功能(-a):./mininet/util/install.sh -s mini-build –a

测试安装是否成功:sudo mn --test pingall

备注:需使用最新版本,否则会出现下载源码、地址无法解析等错误

实验拓扑环境

图2 ONOS wiki的SDN-IP教程网络拓扑

图3 本文档实验环境的网络拓扑

图3所示的实验拓扑,主体继承自wiki的SDN-IP教程的实验拓扑(图2);ONOS控制器控制S1-S6等6台OF交换机组成的SDN网络;S1/S2/S5/S6分别外接其他的4个AS域,边界分别对应传统路由器R1-R4;每个AS域由一台主机模拟对应的内部网络;几个AS域通过和BGP speaker节点建立eBGP对等邻居,达到AS域间路由分发的目的。

原wiki实验中,控制器虽然也为外置ONOS控制器,不过和Mininet仿真的拓扑部署在一台物理机器上(实际为虚拟机);而本文档的拓扑,ONOS部署在单独的物理设备上,这两台物理设备通过两台路由器链路可达。

整个实验环境,除ONOS外,其他网络设备由Mininet仿真;传统路由器,通过在仿真Host上运行quagga套件bgpd、zebra仿真。

ONOS设备

Centos

192.168.6.246

10G Mem 8CPUS 50G硬盘

宿主机

VMWare,Ubuntu

192.168.24.250

3G Mem 4CPUS 50G硬盘

Mininet节点:h1-h4,r1-r4,s1-s6,bgp speaker,tor

运行在宿主机

构建拓扑脚本及配置

SDN-IP配置

将配置文件network-cfg.json(此文件位于目录$ONOS_ROOT/tools/tutorials/sdnip/configs/)放置于$ONOS_ROOT/../config目录,用于配置BGP speaker及各个eBGP对等体的连接关系。

实验步骤

实验步骤

启动ONOS

启动网络拓扑

查看链路状态

查看路由条目

由上图可知,BGP speaker和其他的AS边界路由器R1-R4建立了对等邻居,已经获取到了他们的网络路径。

由上图可知,R2-R4所在的AS域网络通过R1可达了;同理可查看其它路由器的路由表,得知所有的AS域互通互达。

查看ONOS拓扑

查看ONOS端BGP信息

由以上图可知,ONOS和BGP speaker之间的iBGP对等关系已经建立成功;并且通过iBGP邻居已经获取到了相邻AS域的路径信息。

验证各AS域互联互通

通过上图,可知H1-H4之间可以互相ping通,即各个AS域之间通过SDN-IP控制的网络可以互联互通,实验成功!

总结

本文档从搭建实验环境的角度,重现了ONOS wiki上SDN-IP模块儿教程的实验,并附上了较为详细的拓扑仿真脚本、配置文件,以便帮助新手迅速搭建BGP测试环境。

环境搭建成功后,可以通过抓包等方式分析BGP协议交互流程,也可以分析OF协议交互流程……这不属于本文档的重点,有待其他同学补充!

参考文献

标签: #ubuntu安装mininet全流程