Junos OS 演化版与 Junos OS 之间的主要区别
尽管我们已将 Junos OS 演化版与 Junos OS 保持一致,但在运行 Junos OS 演化版时,需要牢记一些关键差异。Junos OS 演化版建立在 Linux 内核之上,而 Junos OS 则在 FreeBSD 内核上运行。Junos OS 演化版设计中的这一差异和其他根本差异可能与网络管理有关。请继续阅读,了解 Junos OS 演化版与 Junos OS 之间的主要区别。
系统差异
Junos OS 演化版中的 系统 概念与 Junos OS 不同。Junos OS 使用以路由引擎为中心的模型,其中 系统 通常是指路由引擎。但是,Junos OS 演化版使用基于 节点的模型,其中 系统 指的是所有节点,包括路由引擎、灵活的 PIC 集中器 (FPC) 等。在 Junos OS 演化版中, 节点 是可以运行 Linux 内核和 Junos OS 演化版应用的任何组件,所有节点都被视为计算节点。
运营影响
在 Junos OS 演化版中,您可以为每个节点执行许多作。您可以使用 CLI 命令查看信息并请求对各个节点执行作。
相关 CLI 命令
-
show system nodes— 查看系统中所有节点的列表。 -
show node ( reboot | statistics ) node-name— 查看有关特定节点的信息。 -
show system applications <node node-name>— 显示所有节点或特定节点的应用程序摘要信息。 -
show system core-dumps <node node-name>— 显示所有节点或特定节点的系统核心文件。 -
show system errors active- 使用此命令而不是命令show chassis errors active来查看系统错误信息。 -
show system processes <node node-name> <detail>— 显示所有节点或特定节点的进程信息。 -
show system storage node ( re0 | re1 | fpc0 | fpc1 | ...)— 查看特定节点的可用磁盘空间。 -
show version node ( all | node-name )— 显示所有节点或特定节点的软件版本信息。 -
request node ( halt | offline | online | power-off/on | reboot ) node-name— 请求对特定节点执行作。 -
request system reboot— 在 Junos OS 演化版中,此命令将重新启动所有节点。
软件结构和应用
Junos OS 演化版可以作为分布式 Linux作系统运行,其进程作为独立应用运行。每个 Junos OS 演化版进程都作为应用运行。所有 Junos OS 演化版应用都由 systemd 该进程使用服务单元进行管理。应用程序作为单独的服务运行,这提供了故障隔离,因为您可以单独重新启动应用程序而不会影响其他应用程序。大多数应用程序发布和使用状态,该状态存储在中央数据库中。
运营影响
在 Junos OS 演化版中,许多高可用性功能都是按应用而不是按节点提供的。某些应用程序运行全职备份以实现快速故障转移,而其他应用程序在发生故障时会在新节点上重新启动。
相关 CLI 命令
-
show system applications <node node-name>— 显示所有节点或特定节点的应用程序摘要信息。 -
restart process— 在 Junos OS 中,此命令重新启动特定进程。在 Junos OS 演化版中,同一命令会在发出命令的同一节点上重新启动特定应用(进程)。 -
request system application restart app application node node— 此命令特定于 Junos OS 演化版,并在特定节点上重新启动特定应用程序。
状态模型
Junos OS 演化版使用分布式状态基础架构。应用程序发布或订阅状态对象,这些对象存储在称为分布式数据存储 (DDS) 的状态数据库中,该数据库分布在节点之间。相比之下,Junos OS 进程在内部存储状态,通过内核与其他进程交换状态信息和状态变化。Junos OS 演化版状态模型是异步的,最终在传输层保持一致,在访问状态时在应用层保持因果一致性。这意味着,如果进程在 Junos OS 演化版中重新启动,信息不会丢失,因为它可以从 DDS 中检索状态信息。
运营影响
Junos OS 演化版状态模型可提高性能,因为您不必等待最慢的组件进行更新。应用程序从系统状态读取和写入,而无需等待所有其他进程首次完成更新。如果应用程序重新启动,则新实例会保留状态并从 DDS 中检索状态,即使应用程序是在不同的节点上生成的。
软件管理
每次在 Junos OS 演化版上安装软件映像时,都会自动保留之前的软件映像和配置。Junos OS Evolved 将软件映像存储在 /soft 目录中。每个版本的软件都存储在不同的区域中,从而确保软件包的安装不会影响系统上安装的其他软件版本。Junos OS 支持在设备上安装两个软件版本,而 Junos OS 演化版则支持在空间允许的范围内存储任意数量的软件映像。但是,我们建议您在系统上保留的软件版本不超过五个。
在成功安装过程中,安装包会完全重新安装现有软件。它保留了前一个版本的配置文件和类似信息,例如安全外壳和主机密钥。安装软件包后重新启动系统时,系统中的所有路由引擎和 FPC 都将运行新版本的软件。
运营影响
Junos OS 演化版可确保系统中的所有路由引擎和 FPC 运行相同的软件版本。在主路由引擎上安装软件映像时,如果路由引擎联机并且是系统的一部分,则系统会在两个路由引擎上安装新版本的软件。如果在系统中插入具有不同软件版本的路由引擎,并且尚未配置该 system auto-sw-sync enable 语句,则路由引擎将保留在系统外部,并且系统将生成软件不匹配告警。
安装新的软件映像时,以前的软件包将保留在单独的区域中,必要时可以手动回滚到该映像。通过 Junos OS 演化版,您可以使用当前配置文件或上次运行备用映像时的配置快照回滚到备用映像。
相关 CLI 命令
-
show system software list— 在 Junos OS 演化版上,查看每个节点上当前安装的映像。 -
show system storage— 查看可用存储空间。在 Junos OS 演化版上, /soft、 /var 和 /data 目录的容量必须小于 90%,才能安装其他映像。 -
request system software delete— 清理旧图像。从 Junos OS 演化版 20.1R1 开始,使用此命令而不是命令request system storage cleanup从系统中移除 ISO 映像。 -
request system snapshot— 拍摄当前用于运行设备的文件的快照,并将这些文件复制到备用固态硬盘 (SSD) 上。快照包括 /soft、 /config 和 /root 目录的完整内容、用户数据的副本以及 /var 目录中的内容( /var/core、 /var/external、 /var/log 和 /var/tmp 目录除外)。 -
request system software rollback reboot <package-name> <with-old-snapshot-config>— 将所有路由引擎和 FPC 回滚到另一个软件版本并重新启动。包括with-old-snapshot-config以下选项以使用与回滚软件映像对应的已保存配置。 -
request system software sync ( all-versions | current | rollback )— 将软件和配置从主路由引擎同步到其他节点,然后重新启动其他节点。 -
set system auto-sw-sync enable— 当新添加的路由引擎的软件版本与系统其余部分不同时,自动将软件和配置从主路由引擎同步到新添加的路由引擎并重新启动。
管理接口
在 Junos OS 演化版上,管理接口将被重命名,以便为每个路由引擎节点容纳一个以上的管理端口。
运营影响
Junos OS 演化版中的管理接口使用的名称与 Junos OS (fxp0, em0, me0) 不同。相反,Junos OS Evolved 管理接口名称格式为 device-name:type-port。例如:re0:mgmt-0、re0:mgmt-1re1:mgmt-0re1:mgmt-1。
输出 show interfaces 显示所有接口的状态,包括来自双路由引擎系统的两个路由引擎的管理以太网接口。
系统主机名
在 Junos OS 演化版中,系统主机名前置了相应的路由引擎编号,如 -re0 或 -re1。
运营影响
在 Junos OS 演化版中,指定 host-name 语句时,当前路由引擎名称将附加到您指定的语句 hostname 中。例如,在路由引擎 0 上, set system host-name my-host 将主机名设置为 my-host-re0。您还可使用该 %s 字符来指定替换路由引擎名称的位置。例如,在路由引擎 1 上, set system host-name %s_my_host 将主机名设置为 re1_my-host 。
相关 CLI 命令
-
set system host-name hostname
路由引擎防火墙过滤器
在 Junos OS 中,要控制物理接口和路由引擎之间的本地数据包流,可对环路接口的输入或输出应用无状态防火墙过滤器。环路接口 (lo0) 是路由引擎的接口,不携带任何数据包。在 Junos OS 中,应用于环路接口的过滤器同时适用于网络控制流量和管理流量。
另一方面,Junos OS Evolved 支持使用两种不同的过滤器来控制本地数据包的流动:一种用于网络控制流量(环路流量),另一种用于管理流量。因此,应用于环路接口的过滤器仅适用于网络控制流量。您还可以将过滤器单独应用于管理接口,以便对管理流量配置更严格的过滤器。
运营影响
在 Junos OS 演化版中,应用于环路接口的防火墙过滤器仅适用于网络控制流量。您必须将防火墙过滤器显式应用于管理接口才能过滤管理流量。在 Junos OS 演化版中,管理过滤使用基于 Netfilter(Linux 内核提供的框架)的路由引擎过滤器。因此,仅支持某些匹配项和作。 表 1 概述了 Junos OS 演化版过滤器应用。
| 接口 | 过滤器方向 | Junos OS 演化版行为 |
|---|---|---|
| lo0 |
输入 |
过滤器在数据包转发引擎应用,并应用于网络入口流量。 |
| 输出 |
过滤器将在数据包转发引擎应用,并应用于网络出口流量。 |
|
| 管理 |
输入 |
过滤器在路由引擎应用,并应用于管理入口流量。 |
| 输出 |
过滤器在路由引擎上应用,并应用于管理出口流量。 |
Junos OS 演化版网络堆栈
Junos OS Evolved 在本机 Linux 上运行。Linux 显示请求的网络拓扑信息(如接口和路由数据)的方式与 Junos OS 显示此信息的方式存在一些差异。Junos OS 演化版 CLI 旨在克服这些差异。因此,对于任何网络作,我们建议您使用 CLI 命令而不是 shell 命令,特别是对于需要指定路由实例的作。
如果在使用 Junos OS 演化版时必须在 Linux shell 中执行作,则需要了解以下路由实例,也称为虚拟路由和转发实例 (VRF):
default- 默认情况下同时处理 WAN 和管理流量,除非您配置mgmt_junos路由实例。mgmt_junos—配置此路由实例时,它会将管理端口放入自己的路由实例中,从而将管理流量与路由引擎的 WAN 流量分开。-
iri—处理控制平面流量(节点间通信)。在 Junos OS 演化版 CLI 中,这等同于__juniper_private1__路由实例。
运营影响
在 Junos OS 演化版 shell 中,可以使用 chvrf (更改 VRF)实用程序在特定路由实例 (VRF) 的上下文中执行命令。例如:
[vrf:none] user@host:~$ chvrf -JU default ping 172.16.1.1 [vrf:none] user@host:~$ chvrf -JU iri ping fpc1 [vrf:none] user@host:~$ chvrf -JU mgmt_junos ping 198.51.100.1 [vrf:none] user@host:~$ chvrf -JU iri ssh re1
系统日志记录
在 Junos OS 演化版中,每个节点都有标准 journalctl 工具,这是一个用于检索和过滤系统日志的接口。系统日志消息是从系统日志中解析的。该 relay-eventd 进程在所有节点上运行,并从系统日志中检索事件(基于系统日志配置)以及来自不同应用程序的错误消息,并将它们转发到 master-eventd 进程。该 master-eventd 进程在主路由引擎上运行,并将日志消息和错误写入磁盘。
使用 系统日志浏览器 应用程序可以查看或比较不同版本中的系统日志消息。
运营影响
在 Junos OS 演化版中,备份路由引擎上没有 messages 文件。所有备份路由引擎日志都位于 messages 主路由引擎节点上的文件中。
系统日志消息格式
默认情况下,Junos OS Evolved 会在系统日志消息中将节点名称追加到主机名;Junos OS 则不然。此作可使 Junos OS Evolved 系统日志消息符合RFC5424。但是,某些监控系统可能无法正确识别 Junos OS 演化版主机名,因为主机名-节点名称组合与主机名清单中的任何主机名都不匹配。
运营影响
如果监控系统无法正确识别 Junos OS Evolved 主机名,应发出 set system syslog alternate-format 配置模式命令。此命令更改 Junos OS Evolved 系统日志消息的格式。节点名称将前置到消息中的进程名称,而不是附加到主机名,从而允许监控系统正确识别主机名。
跟踪体系结构
Junos OS 演化版使用新的跟踪体系结构。所有正在运行的应用程序都会创建跟踪信息,同一应用程序的多个实例具有自己的跟踪信息。Junos OS 演化 trace-relay 版和 trace-writer 应用协调跟踪信息。 trace-relay 应用程序在本地节点上运行,并与每个应用程序共享内存缓冲区。当 Junos OS 演化版应用写入内存时,该 trace-relay 应用会直接从内存中读取数据并将其发送给 trace-writer 应用。每个路由引擎节点上都运行一个 trace-writer 应用。它接收从应用程序发送的 trace-relay 跟踪信息,并以通用跟踪格式 (CTF) 将其写入相应的文件。
对于运行 Junos OS 或 Junos OS 演化版的设备进行常规监控和故障排除,我们建议使用 CLI show 命令、系统日志消息、SNMP 和遥测数据等标准工具。应避免将跟踪消息用于常规调试目的和长期解决方案,因为它们可能会更改,恕不另行通知。
运营影响
在 Junos OS 中,可以通过在要跟踪的特定层级配置 traceoptions 语句来启用跟踪作。另一方面,Junos OS Evolved 使用基于应用的模型,因此可按应用记录、查看和配置跟踪消息。因此,Junos OS 演化版在 Junos OS 支持的许多层次结构级别上不支持该 traceoptions 语句。但是,某些层次结构级别(如 下的 [edit protocols]层次结构级别)仍需要配置 traceoptions 语句以启用跟踪消息。
尽管 Junos OS 默认情况下会为许多层次结构级别禁用全局追踪作,但某些进程会默认记录重要事件的追踪消息。相比之下,默认情况下,Junos OS 演化版上所有正在运行的应用都会在该 info 级别创建跟踪信息。
在 Junos OS 演化版中,不能直接查看跟踪文件,也切勿在 /var/log/traces 目录下添加、编辑或移除跟踪文件,因为这可能会损坏跟踪。相反,您可以使用 show trace application application-name node node-name 命令来读取和解码存储在跟踪文件中的跟踪消息。
相关 CLI 命令
-
show trace application application-name node node-name— 读取和解码跟踪文件。 -
clear trace— 手动清理跟踪文件。 -
set system trace application— 在应用程序级别修改跟踪消息配置。