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

相关文章
|
6天前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
|
4天前
|
API Android开发 iOS开发
安卓与iOS开发中的线程管理对比
【9月更文挑战第12天】在移动应用的世界中,安卓和iOS平台各自拥有庞大的用户群体。开发者们在这两个平台上构建应用时,线程管理是他们必须面对的关键挑战之一。本文将深入探讨两大平台在线程管理方面的异同,通过直观的代码示例,揭示它们各自的设计理念和实现方式,帮助读者更好地理解如何在安卓与iOS开发中高效地处理多线程任务。
|
6天前
|
开发框架 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的指南
在移动应用开发的广阔天地中,安卓与iOS两大平台各占半壁江山。本文将深入浅出地对比这两大操作系统的开发环境、工具和用户体验设计,揭示它们在编程语言、开发工具以及市场定位上的根本差异。我们将从开发者的视角出发,逐步剖析如何根据项目需求和目标受众选择适合的平台,同时探讨跨平台开发框架的利与弊,为那些立志于打造下一个热门应用的开发者提供一份实用的指南。
18 5
|
6天前
|
开发工具 Android开发 iOS开发
安卓与iOS开发:平台选择的艺术与科学
在移动应用开发的广阔天地中,安卓与iOS两大平台如同东西方哲学的碰撞,既有共通之处又各具特色。本文将深入探讨这两个平台的设计理念、开发工具和市场定位,旨在为开发者提供一份简明扼要的指南,帮助他们在这场技术与商业的博弈中找到自己的道路。通过比较分析,我们将揭示每个平台的优势与局限,以及它们如何影响应用的性能、用户体验和市场接受度。无论你是初涉江湖的新手,还是经验丰富的老手,这篇文章都将为你的选择提供新的视角和思考。
17 5
|
6天前
|
开发工具 Android开发 Swift
探索安卓与iOS开发的差异:从新手到专家的旅程
在数字时代的浪潮中,移动应用开发已成为连接世界的桥梁。本文将深入探讨安卓与iOS这两大主流平台的开发差异,带领读者从零基础出发,逐步了解各自的特点、开发环境、编程语言及市场策略。无论你是梦想成为移动应用开发者的初学者,还是希望扩展技能边界的资深开发者,这篇文章都将为你提供宝贵的见解和实用的建议。
|
7天前
|
人工智能 Android开发 iOS开发
安卓与iOS开发:平台选择的艺术
在移动应用开发的广阔天地里,安卓和iOS两大操作系统各占半壁江山。本文将深入探讨这两个平台的开发环境、工具及市场趋势,帮助开发者在选择适合自己项目的平台时做出更明智的决策。通过比较各自的优势与局限,我们不仅能更好地理解每个系统的核心特性,还能洞察未来技术发展的脉络。无论你是刚入行的新手还是资深开发者,这篇文章都将为你提供有价值的参考和启示。
19 5
|
7天前
|
开发工具 Android开发 iOS开发
安卓与iOS开发:一场操作系统的较量
在数字时代的浪潮中,安卓和iOS这两大操作系统如同海上的两艘巨轮,各自承载着不同的使命与梦想。本文将深入浅出地探讨这两个系统在开发领域的异同,从用户体验、开发工具、市场趋势等多个维度进行比较分析。通过这场技术的较量,我们可以更好地理解每个系统的优势与局限,以及它们如何影响我们的日常生活和工作。
|
6天前
|
Linux Android开发 iOS开发
探索Android与iOS开发:平台之战还是互补共生?
在移动应用开发的浩瀚宇宙中,Android和iOS这两大星系始终吸引着无数开发者的目光。它们各自拥有独特的引力场,引领着技术潮流的方向。本文将穿梭于这两个平台的星际空间,揭示它们背后的力量对比,以及如何在这两者之间找到平衡点,共同推动移动应用开发的进步。
14 1
|
6天前
|
移动开发 开发框架 Android开发
安卓与iOS开发:平台之战的新篇章
在移动应用开发的广阔天地中,安卓和iOS始终占据着主导地位。本文通过比较这两个平台的发展历程、技术特点及未来趋势,探讨了它们之间的竞争与合作。文章旨在为开发者提供一个清晰的平台选择指南,并预测未来移动开发的可能走向。
12 1
|
11天前
|
安全 编译器 Swift
探索iOS开发之旅:Swift编程语言的魅力与挑战
【9月更文挑战第5天】在iOS应用开发的广阔天地中,Swift作为苹果官方推荐的编程语言,以其简洁、高效和安全的特点,成为了开发者的新宠。本文将带领你领略Swift语言的独特魅力,同时探讨在实际开发过程中可能遇到的挑战,以及如何克服这些挑战,成为一名优秀的iOS开发者。