《CCIE路由和交换认证考试指南(第5版) (第1卷)》——1.7节IOS-XE

简介:

本节书摘来自异步社区《CCIE路由和交换认证考试指南(第5版) (第1卷)》一书中的第1章,第1.7节IOS-XE,作者 【美】Narbik Kocharians(那比克 科查理安) , 【斯洛伐克】Peter Paluch(彼得 派拉奇),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.7 IOS-XE
在21世纪,工程师面对着现代网络日益增长的需求,网络不仅需要支持各种智能管理工具,还要支持软件定义的网络机制,这些需求很快超越了传统IOS(互联网络操作系统)的能力。这种无法与时俱进的结果基本上是由IOS自身的单片性质决定的。

首先,我们必须承认多年来IOS一直提供了很好的服务,但现代网络的要求促使我们重新考虑如何对常见协议的操作进程提供支持,比如OSPF、EIGRP、MPLS、BGP、IPv6等。因此毫不意外的是,在努力提升IOS的适用性和生存性的同时,也有必要对它本身进行提升。事实上,IOS已经发展出了三个主要的操作系统,每个操作系统都服务并满足了宏伟网络规划中的不同目标。这些操作系统包括NX-OS、IOS-XR和IOS-XE。在这里我们关注的是IOS-XE。

首先要说的是,IOS-XE是为路由器、交换机和各种应用设计的,它集合了IOS中成熟的功能和特性,还添加了POSIX(可移植性操作系统接口)环境中的新功能和优势。这是将具有网络感知功能的应用程序集成到现代路由设备中的最佳做法。最终,IOS-XE在各种功能中,无缝集成了一种通用的网络管理方法,极大程度上借鉴于同样可靠的POSIX操作系统。此外,通过引入一系列优秀的API(应用程序编程接口),Cisco还提高了IOS的可移植性;尤其是我们可以调用IOS平台的操作,还可以扩展IOS外的功能。IOS-XE这最后一个扩展开创了这样一个未来:应用程序的集成将会变得简单、完整且司空见惯。

几十年来,IOS已经成为了网络扩张、配置和维护的中心,现在IOS-XE中也继承了相同的功能,它保留了传统IOS的所有优点,并能够为关键业务应用提供无与伦比的传输服务。所有这一切都可以通过一个与IOS相同的操作界面实现,并同时还提供了增强型“面向未来”的功能。

这一切是如何做到的?IOS-XE运行一个现代的Linux操作系统,这个操作系统采用单一的后台程序;上述我们讨论过的附加功能都会作为单独的程序,在主机的OS中运行。这意味着工程师无需参加再次培训,就能够使用IOS中具有的所有功能,以及一些增强型操作和功能。

乍一看,这似乎并不是什么太大的进步,但如果我们想到IOS和这些其他应用都是作为单独的程序运行的,那么显然我们现在可以使用对称式多重处理架构了。这一点本身就意味着我们可以通过多核CPU获得负载均衡的优势,也就是将不同的进程绑定到不同的CPU内核。因此我们可以创建一个运行环境,来支持多线程和多核CPU。这种能力,再加上IOS-XE用来分离控制平面和转发平面的方法,提供了传统单片IOS环境中无法实现的管理和控制水平。

如今,路由器上运行的IOS会在同一个内存空间内,运行实施网络操作所必需的所有模块。这种做法有一个问题,就是当路由引擎发生一些问题时,可能会导致整个IOS内核的崩溃。早在5年前,这种情况可能还构不成什么问题,但在现代企业环境中,这却是灾难性的;由于当今的企业网络是在单一平台上运行可以支持虚拟化的基础架构,因此不能容忍单一进程导致整个系统的崩溃。

通过将软件架构迁移到运行“Linux平台”的系统中,我们获得了多个抽象层级。现在整个解决方案都在IOS-XE独立的系统功能中,每个系统功能都独立地位于分离的进程中,与主要的运行内核相隔离。这意味着当这些功能中的一个失效时,不会影响到内核的工作。因此通过为路由设备上运行的每个底层进程创建单独的线程,对称多进程的思想得到了进一步实现。

正是通过这种孤立的运行模型,应用程序设计者将会有能力为新数据平面的ASIC建立驱动程序,并且让这些新数据平面的ASIC能够与一些标准API实现互操作。正是这些API实现了控制平面和数据平面的分离。

对于路由器运行机制的描述,一直以来有这样一个惯例,就是把它分为多个不同的类别。具体地讲,就是分为控制平面、数据平面、输入/输出平面。一个操作系统对于运行机制中这三个平面的隔离能力,对设备的不间断运行时间有直接的影响,因为这涉及计划内和计划外中断。

IOS-XE通过模块化架构带来的结果,使我们看到了控制平面和数据平面本身,在逻辑和物理上的隔离。乍一看区别不大,但其实意义深远。现在通过模块化的刀片设备,我们拥有了物理隔离的三个平面,这些刀片安装在机框中,拥有各自专属的硬件资源。IOS-XE还为它们维护逻辑上的隔离,并将其作为抽象的一层。这样一来,我们可以更好地减少路由系统中失效部分的大小,也可以更好地在各个平面之间隔离运行负载。有一个例子可以很好地说明这一点:数据平面在转发大量流量时,会承受巨大压力,但这并不会影响到同一机框中控制平面的运行。之所以可以实现这种效果,是因为IOS-XE为机框中的每个托架或刀片插槽运行分离的驱动实例;因此当一个驱动失效后,并不会对其他托架或整个机框造成影响;其结果是其他进程继续转发流量。除此之外,我们还可以为单个驱动打补丁,而不会影响到整个机框。

这种分离是通过转发和特性管理器(FFM)和转发引擎驱动程序(FED)来实现的。

FFM提供了一组API,用来管理控制平面的进程。其结果是,FFM通过FED来规划数据平面的运行,并为系统维护所有转发状态。FED使驱动程序能够对数据平面造成影响,驱动程序是由平台提供的。

相关文章
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
87 3
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2
|
3月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
39 0
|
3月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
91 2
|
3月前
|
API 开发工具 iOS开发
iOS 开发高效率工具包:10 大必备工具
iOS 开发高效率工具包:10 大必备工具
48 1
|
3月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
54 1
|
7天前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
【4月更文挑战第18天】**Cocoa Touch** 是iOS和Mac OS X应用的核心框架,包含面向对象库、运行时系统和触摸优化工具。它提供Mac验证的开发模式,强调触控接口和性能,涵盖3D图形、音频、网络及设备访问API,如相机和GPS。是构建高效iOS应用的基础,对开发者至关重要。
11 0
|
22天前
|
开发工具 Swift iOS开发
利用SwiftUI构建动态用户界面:iOS开发新范式
【4月更文挑战第3天】 随着苹果不断推进其软件开发工具的边界,SwiftUI作为一种新兴的编程框架,已经逐渐成为iOS开发者的新宠。不同于传统的UIKit,SwiftUI通过声明式语法和强大的功能组合,为创建动态且响应式的用户界面提供了一种更加简洁高效的方式。本文将深入探讨如何利用SwiftUI技术构建具有高度自定义能力和响应性的用户界面,并展示其在现代iOS应用开发中的优势和潜力。
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
196 2
|
3月前
|
数据可视化 iOS开发
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
40 4