openstack M 版 neutron网络组件基础入门

     在我们openstack学习当中,网络组件neutron无疑是令很多人很难理解的,可以说要深入理解

了neutron组件,你基本完成了openstack 60%的学习,存储方面只要不涉及到分布式,剩下的基本都比较简单了


wKioL1hkfNax-VLLAAPyr5atlEM580.png


相信很多人第一次看到这种图的时候都会被吓一跳,没错,这就是openstack  neutron组件里面涉及到的数据流程,里面涉及到的知识点很多很多


Openstack网络模型中的几个概念网络:

Management Network: 管理网络,连接所有节点。
External Network: 外部网络,虚拟机通过此接口连通外部网络
Data Network: 虚拟机网络,提供之间内部数据线通讯的网络.


这里搭建过程略过,可以参考之前写的L版本的搭建过程,这次环境如下,一个控制节点和一个计算节点

wKioL1hkffKToSySAACJQK_92G8629.png


上面是控制节点,三张网卡

eno1777736  10.10.80.133  作为外部网络

eno33554960  10.10.10.130  作为管理网络

eno50332184  作为虚拟机网络


支持的网络类型有 flat vlan vxlan gre 而具体实现的这些的则有Linux bridge  和openvswitch


这里我们以Linux bridge 来实现flat网络为例来说明,其他基本差不多,更多内容可以参阅官方文档,这里有趣的是在最新版本 N ,官方已经提供了 ansible来部署openstack的指导说明



Flat网络,顾名思义是平面网络,要求宿主机的物理网卡直接与Linux bridge连接,,每个flat network都会独占一个物理网卡,关键参数配置如下

[root@controller ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
tenant_network_types = flat
 
[ml2_type_flat]
 
flat_networks = martin_flat  #这个名字自定义
[root@controller ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
 
physical_interface_mappings = martin_flat:eno50332184 #名字保持与上面一样,后面是flat网卡名称


我们打开dashboard来创建第一个flat网络

wKioL1hkgHTzm65lAADL4OHA-SM535.png


wKiom1hkgJSzs7_4AADqnb1tT6s447.png


wKiom1hkgLuhvselAAA-LZWVx18731.png



wKiom1hkgNjC9StPAADijP9Tpu8076.png



接下来观察这些操作在服务器上面引起了什么变化

wKiom1hkgSSDp7q5AABjKZAOXYc091.png



wKioL1hkgULTFmnIAABx_1ro5OQ268.png


接下来我们来创建第一台虚拟机并关联到flat网络


wKiom1hkgaSy5LQ-AACCxoyhAfs664.png


wKiom1hkgbDhGlLmAABdMtaP3x4079.png


wKioL1hkgbvwf4uCAAA98-_cRxY901.png



观察计算节点的变化情况

wKioL1hkggbzE4fjAABQzD3DAS8838.png

wKiom1hkghKBBz5iAACTzg0zUNQ575.png


wKioL1hkginwT16mAAAeCR3nUKg594.png


dhcp功能

Neutron提供dhcp服务的组件是dhcp agent ,在网络节点上面运行,默认是通过dnsmasq是实现dhcp功能


配置文件在

[root@controller ~]# vim /etc/neutron/dhcp_agent.ini


interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver


wKiom1hkgqmgPZBkAABX9OIWR7c755.png

wKioL1hkgrfSrjHlAAAoon7uFjU031.png


ns-26782a82-61tap26782a82-61是一对veth pair,他们将9225f654-522b-478e-80bc-06bf2948cd08 连接到网桥 brq9225f654-52上面



wKioL1hkgsLBoZ-HAACH4K3ABdE060.png

以上这些都只是openstack  neutron网络组件最基本的东西,里面的内容实在是太多了,涉及到的知识点也很多 如 liunx bridge tap设备  虚拟对  namespace  openvswitch  虚拟交换机  虚拟路由器 iptables  高可用 dvr  等等,包括我自己还有很多的东西需要学习,但是大家无需害怕,就从最简单的学习起,学会了一个,其他你照着模仿应该也能学会


最后给大家看一下 通过openvswith构建的vxlan网络时,两个虚拟机通讯的流程,有兴趣的可以自己深入一下

wKiom1hkhJqi3kCaAABhK8gYTHk423.png


openvswitch流表结构

wKioL1hkhMmgOF4BAAB482pgT1E538.png


优秀的个人博客,低调大师

微信关注我们

原文链接:https://blog.51cto.com/huaxin/1887213

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。