《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使驱动程序能够对数据平面造成影响,驱动程序是由平台提供的。

相关文章
|
2月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
106 3
|
4月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
123 2
|
4月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
42 0
|
4月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
106 2
|
2月前
|
API 开发工具 Android开发
iOS 和 Android 平台的开发有哪些主要区别?
iOS与Android开发区别:iOS用Objective-C/Swift,App Store唯一下载渠道;Android用Java/Kotlin,多商店发布(如Google Play、华为市场)。设计上,iOS简洁一致,Android灵活可定制。开发工具,iOS用Xcode,Android用Android Studio。硬件和系统多样性,iOS统一,Android复杂。权限管理、审核流程及API各有特点,开发者需依据目标平台特性进行选择。
36 3
|
11天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
11天前
|
存储 Swift iOS开发
使用Swift开发一个简单的iOS应用的详细步骤。
使用Swift开发iOS应用的步骤包括:创建Xcode项目,设计界面(Storyboard或代码),定义数据模型,实现业务逻辑,连接界面和逻辑,处理数据存储(如Core Data),添加网络请求(必要时),调试与测试,根据测试结果优化改进,最后提交至App Store或其它平台发布。
31 0
|
11天前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
|
11天前
|
存储 安全 Swift
【Swift 开发专栏】使用 Swift 开发一个简单的 iOS 应用
【4月更文挑战第30天】本文介绍了使用 Swift 开发简单 iOS 待办事项应用的步骤。首先,阐述了 iOS 开发的吸引力及 Swift 语言的优势。接着,详细说明了应用的需求和设计,包括添加、查看和删除待办事项的功能。开发步骤包括创建项目、界面搭建、数据存储、功能实现,并提供了相关代码示例。最后,强调了实际开发中需注意的细节和优化,旨在帮助初学者掌握 Swift 和 iOS 开发基础。
|
19天前
|
iOS开发 开发者 UED
利用SwiftUI构建动态列表:iOS开发的新范式
【4月更文挑战第22天】在本文中,我们将深入探讨如何使用SwiftUI来创建动态列表。SwiftUI是苹果最新推出的用户界面工具集,它允许开发者以声明式的方式描述用户界面,从而简化了代码的复杂性。我们将通过具体的代码实例,展示如何利用SwiftUI的List和ForEach视图来创建动态列表,并讨论其在实际开发中的应用。
18 2