深入理解 OpenStack Neutron

Posted 网事如烟云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解 OpenStack Neutron相关的知识,希望对你有一定的参考价值。


(请您帮忙大力转发此文,非常感谢!)



新书开售了!



在写作的过程中,遇到了很多难题,幸亏得到苍老师许多热情而又无私的帮助,我才能越过一道一道坎。苍老师是我的同事,姓陈名苍,安静、幽默、智慧、才艺双馨。


风河的杨斌先生同样给予了很多无私的帮助,他纠正了我原稿中的很多错误。


黄朝义、胡玉刚两位先生也很耐心地解答了我很多问题,我还向 Oslo 项目的 PTL 郭先生请教了 Oslo 的问题。


OpenStack 的大师兄、九州云 CTO 龚永生先生牺牲了宝贵的国庆中秋双节假期,对本书做了审稿和指正,并为本书作序,鄙人深感荣幸和不安。


云技术社区创始人肖力兄,对鄙人有颇多鼓励,并不吝溢美之词对拙作加以推荐,兄弟不胜惶恐。


感谢机械工业出版社华章公司的高婧雅小姐的指导和帮助,我才能将这一系列文章集结付梓。


一路走来,我自己受益良多,学习了很多知识,认识了很多朋友!微信里,大家给我留言,与我交流,给我信心。感谢您的支持、帮助和鼓励,我才能坚持到今天!


感谢有您!



非常荣幸,非常高兴,拙作终于开售了!


登录京东、淘宝、当当等网站,搜索“neutron”或者“openstack neutron”,您就可以看到拙作的信息。(网上销售,相比于原书定价,都有不同程度的折扣)


您也可以复制如下链接,在浏览器打开,或者长按如下链接,在右键菜单中选择“在浏览器打开”,直接看到搜索结果:


淘宝:

https://s.taobao.com/search?q=neutron&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306


京东:

https://search.jd.com/Search?keyword=openstack%20neutron&enc=utf-8&wq=openstack%20neutron&pvid=e22e155f3f1e419a9dd3ec8120c8d476


当当:

http://search.dangdang.com/?key=openstack%20neutron&act=input



目  录


序 


前 言 


第1章 Neutron概述 1 
1.1 Neutron的由来 1 
1.2 Neutron的特性与应用 3 
1.2.1 基于OpenStack的应用 4 
1.2.2 基于SDN的应用 6 
1.3 Neutron的扩展能力 8 
1.4 本章小结 9 


第2章 Linux虚拟网络基础 11 
2.1 tap 11 
2.2 namespace 13 
2.3 veth pair 16 
2.4 Bridge 17 
2.5 Router 19 
2.6 tun 21 
2.7 iptables 24 
2.7.1 NAT 27 
2.7.2 Firewall 30 
2.7.3 mangle 32 
2.8 本章小结 32 


第3章 Neutron的网络实现模型 34 
3.1 Neutron的三类节点 34 
3.2 计算节点的实现模型 35 
3.2.1 VLAN实现模型 37 
3.2.2 VXLAN实现模型 41 
3.2.3 GRE实现模型 44 
3.2.4 计算节点的实现模型小结 45 
3.3 网络节点的实现模型 46 
3.4 控制节点的实现模型 49 
3.5 本章小结 49 


第4章 Neutron的资源模型 51 
4.1 Neutron资源的租户隔离 51 
4.1.1 Neutron语境下租户隔离的含义 52 
4.1.2 Neutron在租户隔离中的无限责任和有限责任 53 
4.1.3 Neutron的租户隔离实现方案 54 
4.1.4 租户隔离小结 56 
4.2 Network 57 
4.2.1 运营商网络和租户网络 58 
4.2.2 物理网络 61 
4.2.3 Network小结 64 
4.3 Trunk Networking 65 
4.3.1 Bridge的VLAN接口模式 65 
4.3.2 VLAN aware VM与Trunk Networking 69 
4.3.3 Trunk Networking小结 78 
4.4 Subnet 79 
4.4.1 IP核心网络服务 80 
4.4.2 Subnet资源池 81 
4.5 Port 83 
4.6 Router 86 
4.6.1 Router的外部网关 88 
4.6.2 增加Router接口 89 
4.6.3 Router的路由表 91 
4.6.4 Floating IP 92 
4.6.5 Router小结 94 
4.7 Multi-Segments 95 
4.7.1 Multi-Segments的困惑 96 
4.7.2 Multi-Segments的几个应用场景 98 
4.8 BGP VPN 102 
4.8.1 BGP VPN的使用场景 103 
4.8.2 BGP VPN的实现模型 104 
4.8.3 BGP VPN的资源模型 105 
4.9 本章小结 109 


第5章 Neutron架构分析 112 
5.1 Neutron的Web框架与规范 115 
5.2 Neutron的消息通信机制 117 
5.2.1 AMQP基本概念 118 
5.2.2 AMQP的消息转发 118 
5.3 Neutron的并发机制 122 
5.3.1 协程概述 122 
5.3.2 Neutron中的协程 124 
5.4 通用库Oslo 131 
5.5 本章小结 131 


第6章 Neutron的服务 132 
6.1 Neutron启动一个Web Server 133 
6.1.1 Web Server的启动过程 133 
6.1.2 Web Server启动过程中的关键参数 135 
6.1.3 Web Server的进程与协程 138 
6.1.4 小结 142 
6.2 加载WSGI Application 142 
6.2.1 api-paste.ini对应的WSGI Application 144 
6.2.2 neutronapi_v2_0 section 146 
6.3 Core Service API(RESTful)的处理流程 148 
6.3.1 Core Service的WSGI Application 149 
6.3.2 Core Service处理HTPP Request的基本流程 149 
6.3.3 Core Service处理HTTP Request的函数映射 153 
6.3.4 小结 162 
6.4 Extension Service API(RESTful)的处理流程 164 
6.4.1 Extension Service的类图与加载 164 
6.4.2 Extension Service的WSGI Application 167 
6.4.3 Extension Service处理HTTP Request的基本流程 169 
6.4.4 Extension Service处理HTTP Request的函数映射 171 
6.4.5 小结 176 
6.5 Plugin的加载 178 
6.5.1 Core Service Plugin的加载 179 
6.5.2 Extension Services Plugin的加载 180 
6.6 RPC Consumer的创建 181 
6.6.1 Neutron Plugin创建RPC Consumer的接口 182 
6.6.2 Neutron Server启动RPC Consumer 183 
6.7 本章小结 187 


第7章 Neutron的插件 190 
7.1 核心插件 191 
7.1.1 ML2插件简介 193 
7.1.2 类型驱动 193 
7.1.3 机制驱动 202 
7.1.4 ML2插件create_network函数剖析 224 
7.1.5 ML2插件create_subnet函数剖析 229 
7.1.6 ML2插件create_port函数剖析 240 
7.2 业务插件 249 
7.2.1 Router Plugin的create_router函数分析 250 
7.2.2 Router Plugin的add_router_interface代码分析 257 
7.3 Neutron Plugin的消息发布和订阅 260 
7.3.1 Neutron Plugin中的Callbacks Module机制 261 
7.3.2 Neutron Plugin中的RPC机制 265 
7.4 本章小结 266 


第8章 Neutron的代理 268 
8.1 OVS Agent 270 
8.1.1 三类关键的Bridge 270 
8.1.2 内外VID的转换 288 
8.1.3 OVS Agent代码分析 295 
8.1.4 OVS Agent小结 309 
8.2 L3 Agent 311 
8.2.1 class OVSInterfaceDriver分析 312 
8.2.2 class RouterInfo分析 317 
8.2.3 L3 Agent代码分析 326 
8.2.4 L3 Agent小结 351 
8.3 本章小结 352




以上是关于深入理解 OpenStack Neutron的主要内容,如果未能解决你的问题,请参考以下文章

OpenStack DVR 原理深入分析

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

深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现

带着问题了解Openstack Neutron安全组

实践 Neutron 前的两个准备工作 - 每天5分钟玩转 OpenStack(78)

openstack neutron 简单理解