作为一个企业级用户,您需要高密度的10G POS接口,并实现线速转发的电信级路由器吗?也许微软、Google会需要,不过暂时多数用户还没有如此大的广域网通信需求,高速链路和昂贵的电信级设备也是大多数企业用户无法承受的或目前业务所不需要的。但是,别和电信级标准说不,哪怕是在分支办公室这样的应用场所。因为,企业要实现真正的业务永续,那么企业关注的不应该仅仅只是网络的核心。作为网络的边缘,虽然投资不大,但它在保证企业实现业务永续的重要性上其实和网络核心是一样的。因为作为将远端数据转发到数据中心的网络最边缘的路由器也应该是个最稳定的路由器保证网络的不间断,它的不稳定,不健壮,将无法实现真正的业务永续。还有即使是人数不多的企业网运营团队,也需要规范的维护思想、流程,便捷的维护操作手段。
据悉,Juniper公司正在不断加强其在企业网市场的竞争力,特别是向企业提供交换机和中低端路由器。作为在电信级路由器市场取得骄人战绩的Juniper公司,他们推出的面向企业网路由器和交换机会有什么样的特色呢?更高的性能、更安全的网络解决方案和产品一直是Juniper的追求。而在上至T1600,小至J系列路由器,横向到所有交换机乃至安全产品中都采用JUNOS操作系统则是Juniper产品的最大特点。作为在电信级市场取得骄人成绩的JUNOS操作系统则是Juniper真正成功的基石。现在Juniper在企业级产品,包括中低端路由器----J系列中都融入了电信级产品的精髓----JUNOS,它让企业级产品同样具有电信级的不间断运营特性,更好的安全性和管理特性。
《网络世界》评测实验室有机会对Juniper公司的J6350路由器进行了评测。此次测试的重点在于JUNOS的健壮性,易用性以及安全性。让我们率先体验一下JUNOS能够给企业网带来的帮助。
测试亮点
● 模块化设计确保系统健壮
● 软件设计减少人为错误,保证网络稳定
● 多项默认设计确保系统安全性
JUNOS模块化设计分析

送测的两台Juniper路由器,上面是J4350,下面的J6350。模块化设计可以使用更多样的广域网链路。
上个世纪90年代的PC机,有一个reset键,方便在系统软件出问题的时候重新启动。直到今天PC机运行缓慢或者程序出现问题,很多人还习惯重新启动计算机。但是网络管理员是不应该有这个习惯,比如路由器运转逐渐变慢,或者某个服务模块死锁就重新启动路由器,或者干脆断电重来,网络设备不应该有reset键的,在电信级决不是好设计,在企业级网络也不是好设计。
应用在电信级路由器上的JUNOS操作系统在设计上采用了模块化的设计思路,以确保电信运营商对电信级IP网络提出的高可用性、尽可能少的宕机时间、高安全性和高性能等要求。虽然在J系列路由器上出于企业级用户对成本控制的要求,没有采用诸如高性能的ASIC、冗余的设计,如关键设备、电源和风扇,但是JUNOS的电信级、模块化设计给应用在企业级分支办公室的路由器以更强的健壮性和高可用性。在我们的测试中也体现了这一点。
众所周知,路由器通过操作系统主要实现三种功能:路由、转发和服务。和其他公司的操作系统不同,JUNOS操作系统采用了模块化设计,把路由器的三种功能分别放在了转发引擎模块、路由引擎模块和服务引擎模块,它们都相互独立,不再混为一谈。不同的软件模块之间,利用定义好的内部接口,确保内部不同处理进程之间的有效沟通。
JUNOS的在设计中另一个关键点是采用了处理资源保护机制。保证每个模块相对独立的处理资源,比如在电信级路由器中不同的处理资源可能有自己的ASIC芯片。而对于使用CPU和NP处理器的J系列路由器来说,各个处理模块都会有自己独立的受保护的内存处理资源。而JUNOS在设计中提供给用户很大的透明性,用户可以看到路由器关键的CPU和内存资源被不同软件模块,不同的进程占用的情况。用户通过这些信息可以明确地判断出网络中的异常问题比如对管理模块的攻击行为,并且依据此来分配处理资源增加新业务,以保证网络可以有更多的智能和更好的性能。
这样的模块化、提供处理资源保护的软件设计会带来什么好处呢。首先是更好的可扩展性和延续性,不会因为一些模块的调整而影响整个软件系统,提高开发的效率。模块化的设计对于最终用户来说,最大的好处是减少了宕机的时间,保证关键的通信服务不受影响。模块化的操作系统软件设计,每个处理模块,系统都为其预留相应的处理资源,这样当诸如管理或者其他程序模块因遭受攻击;或运算出现异常的,如路由计算停滞,转发工作停滞,这些异常行为不会无限制的占用CPU资源和内存资源,从而让其他功能没有计算资源可用,最终导致整个路由器资源全被耗尽。更通俗的讲,在使用运行DoS操作系统的PC机,可能会因为一个声卡的驱动程序安装问题,导致整个计算机死机。而对于运行UNIX、Linux乃至最新微软Windows操作系统的PC机来说,首先很少会因为一个程序的问题,重新启动计算机,很多程序即使出现问题也不会让整个计算机上运行的其他程序连带效率降低。即使有程序运行出现问题,会占用较多CPU内存资源,决大多数情况下用户都能够通过后台监控到究竟是哪个程序在耗用计算机资源,把它停掉,而把计算机拉回到正常运行的状态,而不会中断关键业务的处理,丢失关键的数据。
我们在测试中逐一验证了模块化带来的好处。
测试验证模块化优势
我们构建了一个真实的路由转发环境(详见“测试方法一:不间断的路由转发测试环境”)。这样的测试压力,看来并没有给J6350路由器带来什么压力,测试结果显示,没有数据包的丢失,数据包的延迟不大。而从CPU和内存等占用情况看,对J6350路由器的资源消耗也不大。
在J6350路由器持续正常转发数据包的过程中,我们模拟SNMP模块因为特殊原因运转不正常而重起被测路由器J6350的SNMP管理模块。J6350路由器的操作系统,并没有因为重启SNMP这个重要的管理模块程序而导致整个路由器操作系统的崩溃。从测试仪收集的数据显示,路由器转发非常正常,在重启SNMP模块的过程中没有造成数据包丢失,也没有出现数据包延迟的波动(见测试结果图1)。测试结果显示,模块化设计的JUNOS操作系统,在诸如SNMP这样的模块出现问题,重新启动的过程中不会影响到其他应用比如转发引擎和路由引擎的工作,不会因此而导致整个系统的崩溃,不会对作为网络基础设施的路由器所担负的通信工作造成影响。

重新启动SNMP模块没有任何丢包现象发生。
为了验证J6350路由器以及其运行的JUNOS操作系统的健壮性,我们针对J6350进行了一次DoS攻击。我们对J6350进行了100Mbps线速的Ping攻击(详细测试方法见测试方法二)。按照路由器的工作原理,针对路由器本身的诸如ping这样的ICMP数据包,路由器内置的处理器会专门地进行解包,并对其发出响应,对于依靠统一的CPU和内存资源完成数据包转发、路由信息维护,路由器内部监控和管理的路由器来说,极有可能因为Ping等DoS攻击造成CPU占用率过高,导致路由器瘫痪,而无法完成路由协议的正常维护操作,从而出现通信中断。开始测试时J6350路由器没有进行任何安全方面的配置,在Ping攻击开始后,路由器受到了一些影响,有一定数据包丢失,路由器的CPU占用率爬升到80%。虽然路由器的CPU占用率有所上升,但是路由器并没有因为这样强烈的Ping攻击而导致路由器频临死亡的状态,仍旧能够保证较强的转发能力,路由器的CPU资源并未因为受到攻击和维持转发而消耗所有的CPU资源,网络管理人员在这个时候依旧能够对路由器进行管理和操作,而且在敲入命令之后,路由器反映依旧如攻击发起前那样灵敏。我们在测试仪上看到,J6350仍旧能够维持正常的路由信息的更新和交换,J6350并没有因为遭受攻击而无法及时发送维护路由信息而导致总计300000条路由中任意一条路由的丢失,邻接关系的丢失。因为路由器仍旧有足够的处理能力,Juniper的工程师通过详细分析内部各进程资源的占用情况,通过J系列路由器自带的捕获数据包的功能等多种手段,发现受攻击的流量源头,通过增加访问控制列表,在Ping攻击数据包被成功过滤后,路由器CPU占用率恢复正常状态,丢包现象消失。模块化的设计使得路由器即使在受到攻击时,也不会把所有的CPU内存资源耗费在对攻击源的响应上。在安全攻击曾出不穷的今天,好的体系架构是确保安全的最佳手段。

DoS攻击稍有影响,在线添加ACL之后,恢复正常。
DoS攻击稍有影响,在线添加ACL之后,恢复正常。
测试验证模块化设计的软件易用性
J系列路由器后面板特写虽然没有冗余的电源,但是JUNOS带来了健壮的“心”。
JUNOS的模块化设计也给运营维护带来了很大帮助,能够在不间断正常流量的情况下增加ACL。我们在如测试方法一中提到的真实路由转发环境下,进行了添加ACL的操作。Juniper工程师添加的ACL分两个步骤,第一个步骤中添加的ACL和测试背景流相关,验证ACL是否启作用,而后修改ACL,让ACL与背景流量无关。在整个测试过程中我们一直维持着正常的转发流量,在验证ACL确实起作用之后,Juniper工程师编辑与背景流量无关的ACL并提交时,路由器没有因为这些操作而影响正常流量的转发,也就是说流量没有任何的中断。在添加ACL之后,Juniper的工程师还开启了ACL的Log功能,并将详细的Syslog写入到指定的文件当中,同时实时的监控ACL Log文件的变化,路由器并没有因为这些操作而丢弃数据包,数据包的转发延迟也相当稳定。这样的设计对于日常运维来说帮助很大,网络设备不会因为更改配置,以及监视实际流量情况而对整个关键的数据流量转发工作造成影响。
IP网络不是几十年前大学里研究用的网络。承载了语音、视频和关键商业应用的IP网络是企业的生命线。面对日益多变的世界,花样翻新的攻击手段,面对融合背景下越来越多地功能带来越来越复杂的软件设计,如果说设备出厂前就做到了百“毒”不侵,尽可认为是无稽之谈。网络设备应该从体系架构上为应对险恶“江湖”做好准备,在体系结构设计上尽可能减少对网络通信的中断,减少重新启动的次数。这样的设计也许在昨天应该说是好的设计,但是对于明天来说是必须的设计。
JUNOS易用性测试

Juniper J6350前面板特写,外形上和SSG系列颇为类似。双USB也增加了系统的易用性。
网络产品的易用性是否只对家庭网络产品有用呢?并非如此,尽管电信运营商和企业级用户的网络管理人员都具备专业的计算机网络知识,但是易用的网络设备仍旧能够给予他们更多的支持。
对于电信级、企业级用户来说,网络如同生命线,而很多时候造成生命线中断的恰恰是人为因素,比如复杂的配置中一行错误的命令。同时易用的网络产品也有利于网络管理员,快速应对突发事件的发生。
J6350路由器给网络管理员提供了基于Web和命令行的配置方式。Web的配置方式比较简洁,不需要特别加载一些Java的程序就可以进行配置,但也因此其图形化的界面并不如一些使用Java控件的配置程序更一幕了然,而这可能也是一种很难得平衡。
不过JUNOS的命令行配置界面设计得有很多独到之处,很多细微之处的设计,不仅仅便于用户使用,而且能够在系统级层面避免配置错误的发生。
J6350路由器运行的JUNOS操作系统是从Juniper电信级的M/T系列路由器上继承而来,有着同样的内核,所以所有的操作方式、命令完全一致,据称只要经过一次培训,就会配置所有Juniper的路由器。据称未来Juniper将推出的以太网交换机产品,安全产品都会采用JUNOS操作系统,届时将具备更好的通用性。JUNOS操作系统的命令模式和UNIX操作系统的命令模式非常类似,有着UNIX/Linux系统使用经验的技术人员,会感觉非常熟悉,上手很快。
因为类似UNIX操作系统,所以系统有类似于UNIX的用户管理,不同的用户有不同的配置权限,比如系统设计上root用户只能通过console登录路由器,有的用户权限只能看不能进行配置。多个用户可以同时登录路由器进行配置,这对于电信运营商庞大的网络和服务来说有帮助,而系统可以记录每一个用户的配置行为,在安全上这对于避免人为恶意操作非常有益。在多人配置中JUNOS就像很多UNIX大机一样,用户在配置界面中可以通过发信息的方式互通有无,协调工作。
JUNOS操作系统提供了帮助功能,这个功能要比不少厂家的帮助功能要强大。它不仅仅会列出命令所连带的参数,甚至在一些情况下会提供配置例子,比如你不知道BGP如何配置,可以直接来问JUNOS总共需要几步如何来做。
不仅仅如此,像很多的网络设备操作系统一样,JUNOS操作系统采用了层级化的结构,比如要进行配置必须进入配置模式,要配置路由协议需要进入到相应路由协议层级下进行配置,而配置接口也需要进入到相应的层级下进行配置。这样的设计有着很好的条理性,但也会给配置和查看设备状态带来不便,从配置到完成后检查运行状况,管理员需要不停的进入、退出不同的层级。而JUNOS在设计上充分考虑到这一点,通过一些附加参数和命令的使用,管理员可以快速的在不同的层级之间进行跳转,比如在路由协议层级里配置接口,或者在一个接口配置层级里查看整个路由器的配置状况。这样的设计无疑提高了管理员的工作效率。
JUNOS这样灵活的设计还有不少,比如ACL的配置和管理,JUNOS可以在不取消ACL应用的情况下,对一组ACL进行编辑,调整ACL的顺序,正如前面介绍的,我们在测试中就是在不取消ACL应用的情况下,对ACL进行调整。JUNOS还可以实现我们PC机的即插即用特性,在不插物理接口的情况下对整个路由器进行配置,而当相应硬件接口模块到齐,只要插入模块相应配置就会生效。对于一些大型企业网络部署来说,可以更好的提高生产效率,不必等所有的设备模块都到齐就可以完成配置,并先期部署下去,待相应功能模块到齐之后启用相应链路和功能。
JUNOS避免人为错误的贴心设计

J6350、J4350板上有4个千兆端口。
是人就有可能犯错误,而有些错误出现后则是灾难性的。比如可能因为网络配置或升级的需要,网管人员通过Telnet远程配置路由器,但这时候很有可能因为一个ACL设置时欠考虑的命令中断网络管理员远程访问的通路。在传统的情况下,网络管理人员就只能求助远方那边的人员帮忙,或者让他们在那边把错误改过来,或者干脆让他们把路由器重启。但如果远方那里没有人的话,那网管人员就要忙上好一阵了。JUNOS在设计的时候充分地考虑到了这一点,管理员完成配置之后,如果不再输入一个commit的命令,配置将不会生效。而且在一段时间之后如果配置不被确认,系统会再提示用户,如果系统仍旧得不到管理员的确认,则用户添加的配置无效。这样的好处在于减少了由于配置失误的原因,而引发网络中断后无法及时恢复的后果。
JUNOS操作系统会顺序保留前50个被确认生效且工作正常的配置,如果需要,可以利用rollback命令将以前的配置重新启用,这一设计非常贴心。假如用户在原有网络上增加新的服务,却不小心配置失误,导致原有应用受到影响,可以借助这一功能迅速恢复到以前状态,再进行相应的排错处理。而JUNOS也提供了相应的命令一方面检查没有提交的配置,同时能够对比未提交配置与已提交配置之间的差距,不同用户配置之间的差距,从而较为显著的提高排错的工作效率。还要提到的是JUNOS提供了命令的注释功能,管理员可以像编程序时那样,对一些配置加以注释,标记处自己做出的改变以及为什么改动,对于复杂的配置,这一小功能非常有用。
类似的减少人为配置错误的功能还有很多。比如管理员可以实现编辑一个TXT文件,把所有的配置做好,并检查好,在现场则可以直接将配置文件里用ftp等方式load进来,也不用再重新启动路由器, 当然, 也可以选择通过在终端程序上直接贴配置文件。比如现在由于业务复杂,路由器端口上的配置也相当复杂,JUNOS提供了copy功能,假如路由器几个端口除了IP地址等基础信息不同之外,绝大多数配置都极为类似,管理员可以直接将一个端口的配置文件copy到其他端口上,然后做简单的修改完成繁复的配置工作。同时,如果管理员没有对基础信息进行修改就commit配置,系统会报错,这一点也非常重要,在IP网上,如果出现两个地址完全一样、路由宣告域一样的接口,这一点点小小的纰漏造成的混乱可能是惊人的,而且在一个大型网络中可能排查出这样粗心大意造成的错误也会非常困难。
JUNOS提供的管理工具非常多。在我们测试过程中,Juniper的工程师可以通过CLI的配置界面实时查看接口接收、发送数据包的状况,而不必不厌其烦的不停show每个接口的状况。本以为这样的操作会消耗处理器的资源,但是实时监控数据转发流量对J6350路由器的转发性能没有丝毫的影响。JUNOS借用了UNIX系统的pipe功能, 并且可以多层pipe,在实际使用中可以设定很多的过滤规则,方便管理员迅速的找到他想要的信息,比如在查看系统日志的时候可以根据时间找到相应时间段的日志,对于大型网络、应用复杂、配置信息多的场景帮助良多。还有就是JUNOS能够通过命令查看机箱、接口模块的产品序列号。可不要小看这个小功能,很多企业都在加强资产管理,如果资产管理和统计在网络建成运行一段时间后开始,这个小功能就能起大作用,网络管理员不必为了抄一个序列号而中断网络,插拔接口模块。
当一个企业的广域网络重要到牵一发动全身的时候,而当企业广域网大到有几十上百台路由器的时候,当设备的端口总数有百余个、每个设备上都有百条以上配置的时候,有着电信级设计理念的JUNOS的易用性就会体现出来。而这仅仅是广域网,而若是局域网,且有的办公区局域网内就有几十台交换机千余个信息点的时候,JUNOS一些细小之处的便利设计将更有帮助。
测试JUNOS默认安全特性

J6350前面板特写,Root用户只能从Console进入。而Commit功能让远程登录变得更可靠。
在前面的健壮性测试中我们已经验证了JUNOS在面临DoS攻击的情况下,模块化操作系统的设计提供的系统级安全性。应该说作为网络的基石----路由器、交换机,它们的安全性无疑非常重要,而好的体系架构设计是保证这些“基石”安全性的基础。JUNOS操作系统还有很多默认设置给系统的安全带来增强。
首先是JUNOS在系统级的默认设置上就提供了很强的安全性。比如在访问控制上,JUNOS系统默认要求管理员的密码不能过于简单,密码长度要超过6位,而且密码的组合必须是数字与字母的混合组合。这就避免了集成商、网络管理员为了图方便,简单设置密码,而造成安全的漏洞。同时JUNOS中设定的密码系统都默认经过MD5加密存在,避免密码的泄漏。另外,JUNOS默认设定,用户远程登录路由器时必须使用SSH嵌套的加密链路。JUNOS软件里,指定一些私有地址、Loopback地址为不可路由,如有特殊需要,才可以通过手工配置移出,这样的设计对安全性很有帮助,网上的一些攻击行为通常伪造的源地址都是这些在公网上不存在的地址。
JUNOS路由器还提供了防火墙的功能,能够通过添加安全策略,对非法流量进行过滤。并且show firewall log可以查看所有的攻击者/中间者的源地址,帮助管理员溯本求源。JUNOS还有更为特殊的针对管理控制层面的防火墙,JUNOS软件对于网络管理应用均有限制,这是为了保证网络管理流量的安全性,可以设定每分钟同时在线用户数和每分钟内最大发起的连接次数,默认的数值分别为75和150,防止利用管理员端口对路由器发起DoS攻击。
JUNOS还提供了抓包的工具,管理员可以利用这个工具捕获发往路由器的控制报文,并且加以分析,结合对流量的分析,对内部资源的占用,分析出那些流量是可能的攻击流量,并加以限速,确保路由器的正常工作。
小节:向电信级学习

我们的测试实验室,两台Juniper路由器,上面是J4350,后面是测试仪,左侧是控制台——一台浪潮服务器。
随着网络成为企业、政府的生命线,而且随着网络的普及企业网的规模也不断扩展。愈来愈多的应用使得越来越多的企业的网络规模已经与不少电信网相当。加之业务永续这个概念的被越来越多的企业所接受,即便没有电信网相当规模的企业对作为支撑业务的基础----网络也提出了电信级的要求,而这种要求不仅仅局限在网络核心,网络的边缘和网络的核心都同样重要,更健壮,更强的可扩展性,更安全,更易用贯穿在网络的每个节点。仅仅有硬件,并不能实现这些目标,网络设备的操作系统才是实现这些目标的真正基石。当Juniper将代表电信网运营、管理精髓的JUNOS带入到企业网设备的时候,企业用户将感受到更大的利益,那就是网络更稳定,业务更流畅。
测试方法一:不间断的路由转发测试环境

不论是有几十个吉比特电信骨干网还是只有几兆带宽的企业网,都需要网络尽可能的减少故障中断时间。我们此次测试也是希望看看运行着JUNOS的J系列路由器,是否能够具备高端路由器那样的高可用性,低故障中断时间。为此我们用Spirent公司的SmartBits 6000配合Teramatrix卡和Terarouting 5.0软件,模拟了一个真实的不间断的路由通信环境。在这个环境中,我们用Smartbits在J6350的两个千兆接口每一侧模拟了一个AS域,并宣告150000条E-BGP路由,总计模拟了300000条的路由环境。同时在每个方向上我们模拟了500Mbps的流量,数据包长1518字节。需要说明的是每侧的流量目的地指向另一侧的150000条路由。
应该说这样的流量,如此大的路由拓扑是在一般的企业网难以企及的。由于背景流的目的地指向300000条路由的每个网段,这对路由器的转发提出了极高的要求。我们所有后续的测试都是在这样的通信背景下完成的。我们想看看,在J6350这样一个靠CPU和特定的NP处理器芯片同时处理路由、转发、管理、QoS、ACL、监控等众多工作的路由器中,JUNOS这个在运营商网络久经考验的操作系统会发挥何种不一样的作用。
测试方法二:DoS攻击

我们使用Smartbits 6000B的LAN3301A卡,配合SmartWindows测试软件,构建了对J6350路由器的一次DoS攻击。测试中我们将J6350路由器的一个接口与测试仪连接,测试仪以百兆线速的速率向J6350路由器的接口地址发起Ping攻击。
在进行Ping攻击的时候,用Smartbits 6000B连接J6350两个端口,而形成的总计300000的BGP路由网络,和双向共1G的真实网络通信流量并没有终止。我们希望通过这个测试看看J6350路由器在面对DoS攻击情况下性能是否受到影响。