Junos OS 演化版与 Junos OS 之间的主要区别
虽然我们已将 Junos OS 演化版与 Junos OS 对齐,但在操作 Junos OS 演化版时,需要牢记一些关键差异。Junos OS Evolved 建立在 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 演化版将软件映像存储在 /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 演化版管理接口名称格式为 device-name:type-port。例如:re0:mgmt-0
、、re0:mgmt-1
re1:mgmt-0
、re1: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 演化版外壳中,您可以使用(更改 VRF)实用程序在特定 chvrf
路由实例或 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
进程在所有节点上运行,并从系统日志中检索事件(基于 syslog 配置)以及来自不同应用程序的错误消息,并将其转发到 master-eventd
进程。该过程 master-eventd
在主路由引擎上运行,并将日志消息和错误写入磁盘。
使用 系统日志资源管理器 应用程序可以查看或比较不同版本中的系统日志消息。
运营影响
在 Junos OS 演化版中,备份路由引擎上没有 messages
文件。所有备份路由引擎日志都位于 messages
主路由引擎节点上的文件中。
系统日志消息格式
默认情况下,Junos OS 演化版会将节点名称附加到系统日志消息中的主机名;Junos OS 则不会。此操作可使 Junos OS 演化版系统日志消息符合RFC5424。但是,某些监控系统可能无法正确识别 Junos OS 演化版主机名,因为主机名-节点名称组合与主机名清单中的任何主机名都不匹配。
运营影响
如果监控系统未正确识别 Junos OS 演化版主机名,则应发出 set system syslog alternate-format
配置模式命令。此命令更改 Junos OS 演化版系统日志消息的格式。节点名称将附加到消息中的进程名称中,而不是附加到主机名中,从而允许监视系统正确标识主机名。
跟踪体系结构
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
— 在应用程序级别修改跟踪消息配置。