ONOSFW项目介绍和场景演示

一 概述

ONOSFW即Open Network Operating System Framework,是OPNFV的一个VTN项目,OPNFV是一个网络功能虚拟化的开放框架,ONOSFW项目使ONOS作为SDN控制器集成进OPNFV框架中,实现OpenStack利用ONOS进行虚拟网络资源管理。

VTN全称是virtual tenant network,VTN是SDN控制器中用于提供多租户虚拟网络的一项应用。通常,为每个部门的系统配置网络需要耗费大量的人力、物力,同样,需要为每个租户安装各种网络应用,并且很难共享这些资源,因此,设计、部署、管理整个复杂的网络是一项繁重的任务。为了解决这一难题,ONOSFW北向使用neutron驱动对接openstack,南向使用OVSDB对接openvswitch,在控制器中使用VTN,VTN的独特之处在于逻辑抽象平台。VTN将逻辑层面与物理层面完全分离,用户可以设计、利用任何所需网络,并且无需了解物理网络的拓扑结构和带宽限制。

用户通过OpenStack提出对网络的需求,ONOS实现Neutron L2、L3插件获取网络、主机数据。ONOS的VTN Resource manager App负责存储从Neutron获取的数据,并对外提供统一的接口。

VTN manager App根据网络数据生成配置信息及流表,通过OVSDB和Openflow完成对OVS的配置及流表下发实现主机互通。VTN manager App监听ONOS core事件,同时通过VTN Resource manager监听Neutron事件,当OVS或主机上下线时更改配置信息及流表,及时响应网络变化。


ONSOFW支持L2、L3层网络和SFC(Service Function Chaining)功能,屏蔽了底层网络的复杂性而且可以更好的管理网络资源,减少了网络服务的配置时间和配置错误。

1.1 L2、L3层网络

L2、L3层网络都是由openflow流表实现,且L3实现了onosfw对arp请求的代答。L3即vrouter,主要功能是连接租户内同一network或不同network之间的子网,以及连接内外网。前者是数据中心内部虚机之前的通信,成为东西向流量。后者是虚机与外部通信,称为南北向流量。Vrouter分为两种模式:集中式,分布式。集中式指的是vrouter实例化在network节点,compute节点不实例化vrouter,当两个不同子网的vm通信时,流量需要在network节点上的vrouter做一次三层转发,走两次隧道。分布式指的是vruoter实例化在所有compute节点,三层转发的功能在本节点的vrouter实例中完成。从而只需要走一次隧道。

vrouter提供用户的子网间互联、用户子网访问外网及用户子网NAT服务。

L3作为neutron扩展api,一共定义了两种资源:router和floatingip,定义在extensions目录下的l3.py中,同时还定义了基本l3基本的plugin接口原型:


二 场景

2.1 Layer2场景

(1)相同租户,相同网络,相同节点的VM互通
(2)相同租户,相同网络,不同节点的VM互通
(3)不同租户,不同网络,相同节点的VM隔离
(4)不同租户,不同网络,相同节点的VM隔离

2.2 Layer3场景

(1)相同租户,相同网络,相同节点的VM互通
(2)相同租户,相同网络,不同节点的VM互通
(3)相同租户,不同网络,相同节点的VM互通
(4)相同租户,不同网络,不同节点的VM互通
(5)不同租户,不同网络,相同节点的VM隔离
(6)不同租户,不同网络,不同节点的VM隔离
(7)VM和外网互通

三 步骤

3.1 准备条件

(1)Openstack —> 1个控制节点,2个计算节点,1个onos节点
(2)在2个计算节点均增加一个可连接外网的网卡,假设名字是eth1,且不需要ip,去除ip的命令是:

(3)配置好onosfw的neutron 2层和3层驱动后,在控制节点(即网络节点)运行以下命令:

在计算节点运行以下命令:

(4)登录openstack dashboard删除所有的网络及vm,然后运行以下命令删除ovs上的bridge :

(5)启动onos,加载feature及设置外部port,命令:

(6)在控制节点及计算节点输入以下命令:

3.2 验证Layer2场景

(1)用admin用户登录openstack,创建1个内部网络及3个vm,查看以下页面,保证3个vm有2个在同一个节点,1个在不同节点,如果都在相同节点,请继续创建vm直到分配到不同节点,然后验证场景1和场景2



(2)用demo用户登录openstack,创建1个内部网络及1个vm,然后退出,用admin用户登录,查看demo用户创建的vm分配在哪个节点上,并验证场景3和场景4

3.3 验证Layer3场景

(1)用admin用户登录openstack,再创建1个内部网络和1个vm,创建1个外部网络,注意创建完外部网络,需要再次点击该网络,进入后创建子网,注意外部网络子网地址为真实可连接internet的网段

(2)创建路由,添加admin用户创建的两个内部网络的接口,验证场景1、2、3、4


(3)Demo用户登录openstack,创建路由,注意要选择admin创建的外部网络,添加demo用户创建的内部网络接口,验证场景5和6

(4)admin用户登录openstack,如下图给需要连接外网的vm绑定浮动ip,验证场景7


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/17241.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于16-06-28
0