新書推薦:
《
礼制考古经典选读
》
售價:NT$
1340.0
《
MATLAB实用教程(第六版)
》
售價:NT$
695.0
《
中国思想的再发现(壹卷:近观系列,沟口雄三教授以其精湛的学术洞察力,旨在呈现一个全面而立体的中国思想图景)
》
售價:NT$
325.0
《
图以载道——传统绘画的图像叙事
》
售價:NT$
390.0
《
骨科康复学(第2版)
》
售價:NT$
1140.0
《
笔记启蒙 : 英国皇家学会与科学革命
》
售價:NT$
390.0
《
汉语副词研究论集(第六辑)
》
售價:NT$
490.0
《
干戈之影:商代的战争观念、武装者与武器装备
》
售價:NT$
340.0
|
編輯推薦: |
《云计算网络珠玑》受到了业内众多专家一致好评:UCloud CTO 莫显峰、杜玉杰、《深度解析SDN:利益、战略、技术、实践》作者张卫峰、微软(中国)周博洋、Pica8杜林、Pica8杨勇涛、世纪互联常晓东、H3C叶航晖、华为赵博、网络从业者KkBLuE、网锐张立岗、绿盟科技刘文懋、孔令贤、时培昕、SDNAP.com 吴应辉、AWCloud马力、新浪司迎春、南京叠锶杨泽卫UnitedStack 创始人CEO 程辉、陈沙克联合力荐!
《云计算网络珠玑》从网络的基本原理,常用技术、主流网络应用协议、交换的基本原理和Linux操作系统的网络实现等内容作为引入,SDN与OVS技术作为基础以及Neutron作为实践,由浅入深、从原理到实践地讲解了基础网络向SDN网络演进的过程。
作者具有多年的底层网络研发经验,在传统网络通信到虚拟云计算的网络开发都有着丰富的实战经验,可谓“跨界高手”,本书中他将其积累的经验倾囊相授,授人以渔,非常难得。
无论是想从头开始学习网络技术的小白,还是已经有一定基础的网络工程师,都可以从《云计算网络珠玑》中找到通往云计算数据中心网络的快速路径。
|
內容簡介: |
本书着眼于讲解云计算网络虚拟化中所用到的网络技术原理,重点展示以太网及TCPIP网络中各种技术内在的关联脉络,包括从传统的MAC、IP、安全和QoS等到新兴的Trill、LISP、DPI和CDN等技术,从以太网交换机的二层转发、三层路由和Linux的TCPIP协议栈到MAC-in-MAC、VXLAN和Neutron等新方案,以及从传统的数据中心三层架构到扁平化大二层和SDNNFV等新架构。另外,本书对一些网络新技术和新方案(如SR-IOV、Openflow、DPDK、Serverswitch等)也进行了阐述,并讨论了在若干技术问题上网络的发展趋势。
本书内容囊括了以太网和TCPIP网络技术的每个方面,并选择大量的实例进行详细描述,其中每个技术点和实例都是经过精心选择的,既兼顾网络技术发展的顺序,也遵循TCPIP网络四层从下到上的划分;另外,还从当前的技术热点上选取了SDN、Openflow、VXLAN等新兴技术的发展现状和发展趋势进行详细剖析,便于读者在逻辑思维上顺畅地理解,并向读者提供了一条快速掌握网络技术的学习途径。通览全书后,读者可以尽快建立自己在网络方面的技术知识体系。
未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。
版权所有,侵权必究。
|
關於作者: |
李俊武,80后,北京邮电大学军事通信工程专业硕士;Sina微博@北京-小武,SDNAP群(QQ群号:279796875)群管理员@北京-小武;2010年毕业到现在一直专注网络技术的研发和方案架构设计工作;曾参与神州数码网络公司(DCN)首款全万兆交换机工作,后在百度系统部负责百度自研交换机的研发,现就职于易云捷迅科技(北京)有限公司,主要负责云计算中网络虚拟化研发和私有云网络方案架构工作;熟悉Broadcom的ESW系列交换芯片、Marvell的CAT芯片及Intel的FM系列交换芯片的转发流程,熟悉Linux内核及TCPIP协议栈的实现机制,熟悉传统网络基础原理和SDNNFV的架构思想,熟悉OpenStack中Neutron的上层结构和底层Plugin原理,喜欢并擅长解决网络研发中所遇到的技术难题,对各种新兴的网络技术、方案和产品有着浓厚狂热的兴趣,为朋友们错爱,送号“武神”;现在主要混迹于SDN和OpenStack两个技术圈子,常在技术Blog或SDNAP上分享技术观点。
|
目錄:
|
第1部分 网络基本原理
第1章 TCPIP网络技术
1.1 信息网络
1.2 以太网技术
1.3 网络传输设备
1.4 MAC和VLAN
1.5 MAC-in-MAC
1.6 STP和Trill
1.7 IP技术
1.7.1 IP地址
1.7.2 IP报文格式简介
1.7.3 TCP和UDP
1.7.4 TCP与UDP检验和
1.8 DNS和DHCP
1.9 ICMP报文
1.10 ARP和RARP
1.11 路由协议
1.11.1 RIP和BGP
1.11.2 OSPF协议
1.12 NAT技术
1.13 隧道技术
1.14 MPLS和VPLS
1.15 QoS功能
1.16 网络安全和监控
1.17 LB、CDN和DPI
1.18 LISP和LLDP
1.19 网络架构
第2章以太网交换机
2.1 交换机转发流程
2.2 交换机端口处理
2.3 交换机二层转发
2.4 交换机三层转发
2.5 交换机ACL和QoS
2.5.1 ACL功能
2.5.2 QoS功能
2.6 交换机的虚拟化支持
2.7 交换机的CPU
第3章 Linux网络基础
3.1 网卡和数据包的收发
3.1.1 Linux网卡收包流程
3.1.2 多网卡Bonding
3.1.3 SR-IOV
3.1.4 DPDK
3.2 TUNTAP
3.3 Linux Bridge和VLAN
3.4 TCPIP协议栈
3.5 IPtables
3.6 QoS模块
3.7 Dnsmasq
第4章SDN网络架构
4.1 什么是SDN
4.2 OpenFlow与OpenvSwitch
4.2.1 OpenFlow简介
4.2.2 Open vSwitch简介
4.3 能为SDN做什么
第2部分 云计算及OpenStack的网络
第5章 OpenStack的网络
5.1 云计算及OpenStack
5.2 OpenStack的网络介绍
5.2.1 Nova-Network
5.2.2 Neutron网络
5.2.3 OpenStack存储网络
5.3 Neutron底层网络原理
5.3.1 Neutron组件的构成
5.3.2 Neutron网络的隔离
5.3.3 Neutron网络的互通
5.4 Neutron主要功能
5.4.1 互通与隔离功能
5.4.2 防火墙与安全组
5.4.3 LBaas和VPNaas
5.4.4 监控安全和数据中心互联
5.4.5 Neutron中的QoS功能
5.4.6 Neutron部署运维
5.5 VXLAN隔离环境通信实例详解
5.5.1 VXLAN报文解析
5.5.2 VXLAN通信流程
5.6 Neutron网络高级话题讨论
5.6.1 常见Neutron网络问题
5.6.2 Neutron网络性能
5.6.3 Neutron网络稳定性
5.6.4 Neutron在折翼
第6章 Neutron网络发展趋势
6.1 SDN的结合
6.2 硬件网络设备解决性能问题
6.3 安全和监控
6.4 虚拟网络中的路由协议
6.5 IaaS上的商业模式
6.6 云计算时代的终结
附录
附录A Open vSwitch基本命令
附录B 深入理解OpenStack 云计算VLANManager网络流的六种场景
附录C RDO配置文件网络部分--VLAN隔离
附录D VXLAN通信抓包实例
参考文献
|
內容試閱:
|
5.2.2Neutron网络
Neutron是OpenStack的网络组件,通过Neutron的CLI或者Horizon的页面调用RestfulAPI配置了OpenStack某个网络功能后,就会调用Neutron的Python代码的API,将配置信息下发到底层网络;比如建立VM连接某个私有网络时,当Plugin是OpenvSwitch的情况下则生成对应的OpenvSwitch的规则命令下发到底层OpenvSwitch上,并将相关的VM的虚拟网卡和对应网桥等网络设备等进行互联,底层就提供了相应的网络转发功能的连通链路(如果支持的话则正常下发,有的功能不支持可能也不报错,比如H版对IPv6转发的支持)。这些网络功能包括二层VLAN或VXLAN等租户之间的隔离、FloatingIP之间的三层转发和NAT转换、防火墙、VPN和负载均衡等,根据官网介绍中还有IDS和DC互联等功能。
图5-3是OpenStack平台上用Neutron网络建立的一个网络拓扑图,如果初学者能配置出如图5-3中的网络拓扑且VM都能访问外网和租户间相互隔离,说明对Neutron的底层网络技术有了入门级的掌握。如果用OpenvSwitch作为Plugin的话需要注意,里面的一个虚拟路由器并不是直接对应创建一个OpenvSwitch,很有迷惑性,在底层其仅仅是在OpenvSwitch上创建了一个该租户VLAN的端口,配置添加了一个三层接口地址,并且新建了一对和这个网段相关联的虚拟Port。另外对于VM直接挂在公网有时候会有需求(即如图5-3中VMA01-CA、VMA02-CA和VMA03-CB等连接网络的方式),这种网络连接方式通过非常少的底层配置,在任意拓扑或隔离技术下都可以很容易实现。
OpenvSwitch是Nicira(后被VMWare于2012年收购)一个开源Apache2.0的虚拟交换机软件,最初虚拟机之间的隔离是采用Nova-network,其底层采用的是LinuxBridge技术,虚拟网络的组建和配置非常的不灵活而且很多情况下网络配置信息无法模板化,这些缺陷导致使用Nova-network是无法搭建复杂的虚拟网络的;并且在Nova-network下对于虚拟网络的调试、监控、故障定位都有一些不方便的情况;OpenvSwitch的出现解决了上述这些问题,因为OpenvSwitch支持QoS功能、镜像功能、CFM功能、netFlow功能等特性,而且它还可以支持OpenFlow协议以比较容易的方式和某些SDN控制器的网络融合;OpenvSwitch里最重要的是采用了一套用高可移植性C语言开发的开源实现,导致其在网络虚拟化领域里得到了极大的重视,OpenvSwitch现已经可以在FreeBSD、Windows甚至在non-POSIX等嵌入式平台里运行了。
相对于盒式交换机整个系统来说,Neutron其实是起着Openstack网络系统中管理平台的作用,其提供配置命令及参数检查的API,并把网络功能用一种业务上的逻辑组织起来;但是底层的Plugin最终无论是用OpenvSwitch还是硬件交换机来提高稳定性和性能,Neutron自身并不提供任何网络功能,它只是一个负责为底层网络设备向上提供接口的空架子。Neutron的网络功能大部分是Plugin提供的,除了DHCP和L3Agent等的某些功能。
Neutron将网络按照三层交换机的概念有以下几个重要的部分。
?Network:相当于三层交换机上根据VLAN创建的一个三层网络接口,该接口范围内对应一个二层隔离网络,属于同一个network中的VM处于同一个广播域内,一个network类似于现实世界中的一个局域网。
?Subnet:相当于三层交换机创建了一个三层接口的地址,属于一个subnet中的VM处于同一个IP段范围内,具有同样的网络掩码,并且具有相同的网络默认网关。
?Port:相当于三层交换机的一个物理端口,但是这个端口大都有一个MAC地址,可能没有IP地址或者有一个地址,虽然数据库可能会指定一个IP地址,但现实中这个端口由于各种环境因素或网络链路连通性异常的原因,可能会导致该端口不一定能从其相应网段的Dnsmasq进程中获取到该网段中的IP地址。
Neutron里有两种类型的Plugin:CorePlugin和ServicePlugin。CorePlugin完成二层网络隔离的相关配置和实现互通性的VM的报文转发,现在大约有近20种,属于Neutron中必须配置的网络选项,使用时只能选择一个;另一种ServicePlugin主要是实现三层网络功能及三层以上的业务应用功能,比如MeterRouterFWaasLBaasVPNaas等底层所用的PluginAgent;每种应用的底层ServicePlugin也可能会有多种,和CorePlugin一样,基本只能选择其中的一个来使用。Neutron支持的CorePlugin有以下种类:
OpenvSwitchPlugin
CiscoUCSNexusPlugin
LinuxBridgePlugin
ModularLayer2Plugin
NiciraNetworkVirtualizationPlatform(NVP)Plugin
RyuOpenFlowControllerPlugin
NECOpenFlowPlugin
BigSwitchControllerPlugin
CloudbaseHyper-VPlugin
MidoNetPlugin
BrocadeNeutronPluginBrocadeNeutronPlugin
PLUMgridPlugin
MellanoxNeutronPluginMellanoxNeutronPlugin
EmbraneNeutronPlugin
还有一些非官方维护的:
OpenContrailPlugin
ExtremeNetworksPlugin
RuijieNetworksPlugin
JuniperNetworksNeutronPlugin
Neutron支持如此众多种类的CorePlugin,那么开发或者部署过程中如何选择哪种Plugin就成了技术或方案上的难题,每种Plugin都有其优势和劣势,但是如果要每种Plugin都部署环境来测试对比下相关性能数据,这种做法几乎是不太可能的,因为除去时间和精力上的问题,还有一个原因就是测试方案还需要大量投资到服务器和相关网络设备的硬件上,这个对于调研工作者来说是一笔不小的花费;对于实际中的研发工作的选择来讲,就有一些因素可以参考,比如Plugin的被采纳的使用情况、对网络功能的支持程度、实际部署中的容易程度和后续实施方案中是否会被特定厂家设备所绑定等因素。
对于这些Plugin的在实际使用部署中的具体汇总情况,会对调研者选择使用哪一种Plugin有一定的参考价值,因为当很多云计算研发企业或云计算项目实施方案中,某种Plugin被大量使用的时候,使用者共同积累的使用经验会比较多;这时候使用者一旦遇到问题,可以通过网络社区或技术交流等途径及时得到解决问题的答案或技术方案;另外使用者对该种Plugin的使用时间越久,被纠正的缺陷和优化的技术点就会越多,那么该CorePlugin也就越成熟,并更适用于实际的部署方案的需求;在里有一些有意思的统计信息,比如不同用户对不同Plugin的选择大致比例如图5-4所示。
通过图5-4可以看出在实际部署和调研中Openstack的Neutron组件OpenvVwich是被使用最多的CorePlugin,其次是LinuxBridge以其简洁高效赢得了大批量的客户,这两个Plugin赢得约市场上70%的用户;笔者觉得主要原因是两者都是用开源软件实现的,因为软件代码的开源是一个趋势,在实施中投资会相对节省,尤其是针对某些客户已有用于部署云计算的服务器设备和网络设备的情况下,这种方案更容易被接受;从这一点上也体现出网络研发相关软件的开源也越来越多的趋势,其中甚至盛科的交换芯片SDK源代码也已经开源,这个是网络设备研发界非常巨大的进步;并且云私有云计算的客户和云计算网络技术开发者的方案都不太想被一些厂商的网络设备所绑定,所以白牌交换机在云计算网络里将继续会发挥优势。另外一种需要被提及的Plugin是ML2(ModularLayer2),从Havana开始支持,其出发点是考虑现实中这些Plugin所对应的设备,在现有的数据中心物理网络中的使用是可以同时存在的情况,所以其目的是想实现原来各种Plugin同时协调工作,并且通过非常少的初始化和持续努力且很容易地添加对新Plugin的支持,具有良好的扩展性支持多种Agent实现多种隔离技术,又可为L3Agent的扩展整合提供一种ServicePlugin的机制;这种机制为Neutron多种隔离技术并存或从VLAN扩展到VXLAN提供了思路。ML2有两个重要的概念:TypeDrivers和MechanismDrivers,TypeDrivers是从Neutron的网络拓扑结构来为用户分配网络、提供网络验证、管理可用网络类型和维护网络的相应网络状态,具体来讲就是决定了Neutron网络的拓扑形式,比如可以是Local、FLAT、VLAN、GRE和VXLAN等几种网络类型。MechanismDrivers主要靠CorePlugin来实现,用于网络工作机制的管理和底层网络隔离的实现;支持的主要有OpenvSwitchAgent、LinuxBridgeAgent、Hyper-VAgent、L2Population、CiscoNexus和Arista等。后续Juno发布的DVR即是基于ML2的OpenvSwitch这种Plugin来实现。ML2可以有效提高网络的可靠性和性能,可以预见是未来生产环境中非常重要的一个特性,目前来看ML2Plugin是有前景的Plugin,但是其在实际部署中对云计算厂商来将带来了一定的复杂度,实际业务有这种需求的情况可能开始于Neutron网络的隔离技术的升级服务。
Neutron中各种Plugin的性能和稳定性如何?这个暂时没看到确切的比对测试数据,但是毋庸置疑的是,硬件的Plugin使用方式合理的话应比软件方式的Plugin性能上有所提升,毕竟购买硬件设备是有相应成本上的投资。仅从LinuxBridge和OpenvSwitch两种软件方式的Plugin上来说,肯定也会有所区别,因为毕竟不同的技术环境里,数据报文虚拟机和物理服务器转发出去的流程有非常大的区别,而且OpenvSwitch自身的隔离方式不同(比如用VLAN、NVGRE或VXLAN等),其数据报文传输性能的测试结论也肯定不尽相同,仅从性能上来说LinuxBridge应更好一些,但是从功能丰富性来说OpenvSwitch是趋势。
至于NeutronPlugin是路由器还是交换机,这个也无法明确,确切来说是看所用的Plugin以及其能提供的功能,毕竟Neutron有L2Agent和L3Agent,这些功能对于底层的Plugin需要相互协作才能完成二层转发和三层路由;但是选择的Plugin满足自己的需求才是最重要的,至于工作在几层似乎是个多余的问题,应该要问的是自己的知识储备和需求是什么,两者的结合点在哪里。
|
|