运行在Juniper Networks高端网络设备之上的高性能互联网操作系统是如此与别不同,出类拔萃。而它的核心优势将使得能够熟练驾驭JUNOS的互联网工程师在Juniper Networks高端网络设备平台上从此变得同样与众不同,出类拔萃。主要有以下三个方面的特点:
n JUNOS: 单一操作系统(源代码库)
JUNOS真正的独到之处首先体现在最基本的层面:单一源代码库。有别于Cisco根据不同的平台将IOS分割成多个不同程序和版本,JUNOS在整个发展历程中始终都是一个系统。这个一致的操作系统令规划更轻松、实施更快速、日常运行更直观。Juniper对于每个JUNOS特性只进行一次性开发,然后将其应用到相关的所有平台上。例如与最大规模的运营商一样,企业客户在其JUNOS产品中使用经过加固的相同OSPF实施。每个特性在所有产品上都提供相同的用户体验:从基于JUNOS的最小平台(面向分支办事处的J系列路由器)到最大规模的产品(面向全世界速度最快的运营商网络核心的多机箱TX矩阵)。作为单一源代码库,Juniper多年来不断根据客户反馈添加JUNOS软件的部署变体,以便使所有用户都能受益于增强方法和全新特性。
n JUNOS: 单一软件版本
JUNOS单一版本的简便性与Cisco提供的复杂的分散IOS软件版本形成了鲜明对比。对于Cisco用户来说,必须经过严谨的规划和测试之后才能从至今为止逼近6000种IOS的版本当中选择出合适的一个既提供新功能,又能支持现有特性或硬件。
由于Cisco并不提供明确的下一个版本发布时间,这种不确定性将严重影响到季度预算和项目资源。用户不仅必须等待完全不同的软件版本为网络提供新特性,而且还必须做好一个或多个新版本延期发行的准备,有时甚至长达一年以上。此外,如果在部署了新服务后发现任何缺陷,用户还必须等待完全不同的版本提供修复包,直到安装了修复包后,新服务才能真正开始运行。
相比之下,JUNOS不存在IOS的“特征集”的概念,所有的功能均被打包在单一的镜像里面。单一版本模式仅需客户提供一个版本以供评估、实施和部署,而无需从大量平台特定的、接口特定的软件包中进行艰苦的选择,只需添加新特性即可。例如,MPLS、IPv6或组播特性存在于所有的软件版本中,如果用户需要这些特性,只需简单地打开它们即可。此外,JUNOS每个版本都是上一个版本的超集,只向软件的新版本中添加新特性是主要原则之一。
n JUNOS: 单一模块化软件架构
JUNOS采用统一的模块化软件架构,从根本上增强了软件的容灾能力。每个JUNOS Daemon都运行在自己受保护的内存空间内,可单独重启;一个模块“擦除”自己的内存不会影响其他模块。如果一个模块因故出现问题,系统中的其他模块仍可继续运行。如果换成了整体式操作系统,则不会有这样的灵活性,哪怕只是小问题也可能导致整个系统瘫痪。模块化的JUNOS已经被作为所有新一代系统的最佳软件设计方法。虽然Cisco在最新CRS 1.0版系统使用了模块化软件,但企业级设备仍然局限于传统软件代码及其混合架构的缺陷。
另外,JUNOS软件架构还能将路由控制与分组转发引擎完全隔离开,为它们提供各自的专用资源。因此,当一个引擎发生故障时,另一个引擎能够继续正常运行。例如,命令行接口(CLI)永远不会被锁定,即便在遭遇分布式拒绝服务攻击(DDoS)时也不例外。控制面板始终能够获得所需的计算资源,以便操作团队能够根据需要动态地添加过滤器来丢弃或限速攻击流量。此外,当路由引擎的控制面板出现问题或重启时,分组转发引擎仍可继续工作,保证较高的吞吐量,即便在使用大量的服务类别策略和安全过滤器时也不例外。
JUNOS软件功能被划分成多个软件进程,每个进程处理设备的一部分功能,并且各自运行起来的时候,都有自己的内存空间,这样保证了一个进程不会直接地影响到其它的进程运行。当一个进程失效的时候,整个系统不会失效,其它的进程还是会很好地运行,就是因为这种架构,使得JUNOS软件的扩展性很强,当要添加一种新的feature进来时,最小程度地减小系统的不稳定性。从以下可以看到,JUNOS软件将路由协议、接口管理、机框管理、SNMP、安全服务这些进程都作为一个独立的进程,如当接口管理模块失效时它并不会影响到路由协议的正常运行。如果要新增加一个模块,如firewall filter,只需要在JUNOS的主层次下添加一个firewall filter进程即可。
JUNOS是受信任的、安全的、提供高性能的网络架构操作系统软件,JUNOS内核是基于FreeBSD UNIX操作系统,它是个开源软件系统。从Juniper的EX系列交换机和SRX防火墙都可以看出来,正是因为JUNOS软件的这种强大的可扩展性,所以EX和SRX都可以直接在路由器的JUNOS软件基础上增加分别一个ethernet和security就可以实现交换和防火墙的功能。另外还有其它的产品,如MX/J系列路由器也是基于JUNOS软件的,所以说只要会JUNOS操作系统,就可以操作Juniper的M/T/J/MX路由器、EX交系列换机、SRX系列防火墙产品,而不需要遇到一种新产品就又要再学一种操作系统。
所有运行JUNOS软件的平台都有一种相同的设计理念,那就是控制层面(也叫做数据层面)和转发层面清晰地分离,控制路由协议的进程(RE,路由引擎)和通过路由器转发数据包的进程(PFE,包转发引擎)完全独立分开,这种设计使得每个进程都可以实现最大性能和稳定性,这种分离也就是为什么JUNOS能够基于同一个源代码支持许多不同的平台的原因。
RE的功能:
1) 维护路由和转发表
RE 是一台基于 x86架构的微处理器计算机,它相当于设备的大脑,主要任务是执行协议更新和系统管理,处理所有的协议进程和其它的控制设备的接口、机框组件、系统管理,以及用户对设备的访问的软件进程,维护路由表(RT)、桥接表和主转发表(FT)副本。软件将来自网络的所有协议流量交给RE去处理,这些软件进程运行在不同的JUNOS内核中,通过一条内部链路连接到PFE,实现与PFE的交互
2) 控制和监控机框
RE提供了除CLI和J-Web GUI两种管理和配置设备的方式,这两种界面都运行在JUNOS内核之上,并且提供了用户访问设备的接口
3) 管理PFE
RE通过提供准确的二层和三层转发来控制PFE,通过下载微代码和在PFE微代码中的管理软件进程,从PFE接收硬件和环境状态消息
PFE的功能:
1) 使用RE提供的二层和三层转发表,转发流量到目的地
PFE是转发层面的核心处理组件,它基于本地从FT(转发表)复制过来的条目,有条理地转发流量。PFE的转发表与RE的转发表是同步的,当PFE每次转发数据包时,他直接用本地的副本,而不用再向RE去查询路由条目,以快速更有效地转发数据包出去。这也保证了当控制层面失效时在转发层面还可以继续转发数据包
为了可以成功地转发流量到目的地去,对于一条目的网络条目一个转发表条目必须要存在,转发流量只经过转发层面出去,而不需要经过控制层面,以完成高性能的速率转发。
2) 通过自定义的ASIC实现转发路径,Juniper M/T系列产品不使用专门的处理器用于进程交换,而是基于拓扑的交换。自定义的ASIC芯片在硬件中提供增强的服务和功能,如组播,QoS队列和防火墙过滤
3) 实施不同的服务,如策略,状态防火墙过滤,服务类别(COS)
除了转发流量外,PFE也会实施一些高级服务特性,如限速,状态化防火墙过滤,CoS等,其它的服务可以通过特定的接口卡来实现
排除流量的处理:
1) 当流量的目的地是路由器自己由,流量由RE的CPU去处理
包地址是本地,如路由协议更新,telnet会话,ping,traceroute,以及源自RE的应答流量,这种情况常见于firewall filter,当做了状态防火墙过滤的时候,要注意不要过滤掉到防火墙自身的流量,如上面所说的路由协议更新,管理流量等
2) 如果流量需要ICMP消息的产生,如TTL超时,就通过PFE处理
路由器自身发送ICMP消息到源地址,以报告各种错误条件和响应ping请求,ICMP消息包含如目的地不可达或TTL超时(TTL减小至0)等
3) 在内部连接链路中限速保护RE以免受DOS攻击
4) JUNOS通过内部链路发送所有目的地为RE的排除流量到控制层面和转发层面,限制通过内部链路的流量。当拥塞发生时,到目的地为RE的本地和控制流量的优先级要高些,JUNOS内建的速率限制是不可配的(这个功能同样是应用于firewall filter里面)
M/T系列路由的PFE使用硬件ASIC芯片(特定应用集成电路,Application-Sepcific Integrated Circuits)来增强性能,而J系列路由器是通过实时系统线程实现包转发。因为RE提供了智能的方式,PFE只需要简单地执行下它自己的指示—那就是它转发帧或包,这种高度可扩展和确定性的性能,也使得诸如GRES(平滑路由协议重启)、NSR(不间断活动路由,也叫做NSF,不间断转发)和ISSU(在线软件升级)可以合在一起使用,在使用ISSU时必须要开启SSO和NSF。
JUNOS软件的路由协议进程(rpd)实现了各种路由协议在路由器上的运行,路由协议进程维护着一个或者多个路由表,然后从这些路由表中计算好最佳路由,并当作到目的网络的活动路由(其实就是常说的RIB),并把它放入到 RE 的转发表里(FIB)。PFE再通过内部链路从RE那里复制一份转发表,转发表的更新是拥有JUNOS软件的内核的高优先级,并且会立即执行。