JUNOS入门学习笔记

V1.01

Juniper

1 说明
首先,请注意文档题目:“xxx入门”,行家就不用看了,但我不介意您收藏本文。
写这个文档的目的,是为了把我的学习过程分享给大家,也希望初学JUNOS的朋友能和我一起讨论,一起学习。
本文出自我的博客:http://dongzi.de/lets-begin-junos-1.html
OK,献丑了,时间仓促水平有限,请大家指点本文的错误之处,我将感激不尽。
2 JUNOS简介
2.1 简介
JUNOS使用FreeBSD内核,模块化的设计,提供卓越的故障恢复能力并能够简单地集成IPv6、MPLS 等功能。
Juniper Junos is the software or the network operating system used in Juniper Networks hardware systems.It’s an operating system that is used in Juniper’s routing, switching and security devices. Juniper offers the Software Development Kit (SDK) to partners and customers to allow additional customization(From Wikipedia).
2.2 JUNOS启动顺序
第一,移动介质,例如 PC-card,PCMCIA。
第二,Flash Disk。
第三,IDE 硬盘。
3 JUNOS模拟器使用step by step
3.1 Olive简介
还是引入Olive这个词吧,我也是菜鸟,名字多了不好记。何为Olive呢?说白了,就是一台虚拟机,运行JUNOS的PC或者虚拟机。也就是说,一台Olive就是一台Juniper路由器。只不过因为它的JUNOS运行在PC或虚拟机上,所以我们称呼它为Olive。除了一些功能上的差异(如Olive效率肯定不如真实的路由器高效)外,你可以认为Olive就是一台Juniper路由器。
本文使用的Olive是已经封装好了的FreeBSD虚拟机文件,不用我们手动在FreeBSD上面安装JUNOS,使用起来非常方便。
3.2 JUNOS模拟器的获取
Rayfile:http://www.51CTO提醒您,请勿滥发广告!/zh-cn/files/7b0e66b8-c081-11df-a142-0015c55db73d/
115网盘:http://u.115.com/file/f04e538ef2
3.3 模拟器的安装及初始化
解压“JUNOS模拟器.rar”,得到的文件夹里有一个FreeBSD.vmx虚拟机系统文件,使用VMware Workstation打开该文件:
1 JUNOS入门学习笔记 打开该虚拟机文件后,可以看到系统配置了很多块网卡,还有一个 Serial Port ,多块网卡是用来模拟 Juniper 路由器的接口, Serial Port 也是一个虚拟的接口,配合 piped( 下载地址: http://u.115.com/file/f0295d2e96) ,可以把 console 信息输出到 CRT( 或其他终端程序 ) ,便于配置和操作。接着,让我们来设置好 Serial Port的名字,如下图:
2 JUNOS入门学习笔记 打开 piped ,新建一个管道:
3 JUNOS入门学习笔记新管道的设置如下:
4 JUNOS入门学习笔记现在,我们可以开启虚拟机的电源,启动成功后,出现如下界面:
5 JUNOS入门学习笔记

 

大家此时肯定会想到,在虚拟机里面直接就可以输入用户名,密码登陆了,也可以直接敲命令进去配置JUNOS了,为什么还要大费周折用Serial Portconsole信息映射到telnet呢?其实,当初我也是这样想的,但是,在虚拟机里面直接配置非常不方便,命令粘贴,复制,log日志等功能都没有,且界面不友好。废话少说,让我们启动强大的CRT吧:

6 JUNOS入门学习笔记

回车后是可以进去的:

7 JUNOS入门学习笔记差点忘了说,该模拟器的默认用户名是:root,密码是juniper123,进入系统后输入cli命令进入command line interface可以进行设备调试,使用configure或者edit进入配置模式,如上图我使用editJUNOS模拟器的安装及初始化已经介绍完毕,下面,我来介绍一下JUNOS里面的常用命令。

 

4 JUNOS常用命令介绍

4.1 巡检相关命令

request support information:此命令相当于cisco下面的show tech-support,以前我认为cisco这条命令非常牛,因为没怎么见人用过,一执行哗啦哗啦打印出一大堆东西,其实,呵呵,RCMS里的一键清脚本,大家懂的。在root>模式下使用 request support information(一般request,show这些命令都在root>模式下执行,相当于cisco的Route#模式,而要设置什么东西,就必须用set打头的命令,一般都在root#下执行,相当于IOS的Route(config)#),当然,你也可以在root#下执行root>里面的命令,前面加一个run参数就行了:

root> edit

Entering configuration mode

[edit]

root# run request support information

root@> show system uptime

此时此刻,你肯定和我一样,想到了cisco的do参数,比如在配置模式下执行do show run,没错,情况就是这样的。

request support information会request出很多东西来,这足够你整理出那份烦人的巡检报告了,当然,你完全可以定制自己的巡检命令,一方面可以边敲命令边看输出边观察(巡检时能在现场发现问题总比在家整理报告时发现的好),一方面也可以按需抓取信息,而不是一股脑去执行那条九十八合一的命令。下面我收集了一些常用的巡检命令和用途:

查看系统启动信息show system boot-messages

查看存储相关信息show system storage

查看系统进程信息show system processes extensive

查看系统启动时间信息show system uptime

查看系统连接信息show system connections

CPU利用率核查show chassis routing-engine

MEM利用率核查show chassis routing-engine

OSPF邻居关系核查show ospf neighbor

BGP邻居关系检查show bgp neighbor

HSRP信息检查 show vrrp extensive

电源状态核查show chassis environment pem

风扇状态核查show chassis environment

单板告警核查show chassis alarms

单板状态核查show chassis fpc/show chassis fpc pic-status

单板温度核查show chassis fpc/show chassis fpc pic-status

单板固件版本信息检查show chassis fpc detail

接口配置核查show configuration interfaces

接口描述规范性核查 show interface descriptions

AAA认证检查 show configuration system

引擎板冗余状态检查  show configuration chassis redundancy

NTP状态核查 show ntp associations

Telnet安全登录配置检查 show configuration system login

版本核查show version

查看配置show configuration

 

这里我提一点,show config的输出结果是设备的配置,相当于IOS的show run,你可以看到JUNOS的配置显示得井井有条,像C++一样,可读性很强,但是这样的配置仅仅是用来读的,无法像IOS那样直接从本台设备复制配置异地粘贴,在JUNOS里,要想把R1的配置粘贴到R2,我们当然有办法的:在show config的时候,加一个display set参数即可,如:root@Juniper# run show configuration | display set.注意观察输出的不同。好吧,关于巡检的事儿就到此为止,我也是一知半解。

 

4.2 JUNOS常用命令

其实从IOS向JUNOS迁移,也就是“把JUNOS作为第二语言”,公有技术我相信大家都比我掌握得好,关键就是命令方面的迁移,以及JUNOS的一些特性。Juniper官方网站上有很多非常好的入门视频教程手把手教你如何“把JUNOS作为第二语言”,视频教程中英文版本都有,推荐英文版的,都是些简单的英语,发音很纯正,就当练练听力.英文版视频教程(远程学习)的地址是:

http://www.juniper.net/cn/zh/training/technical_education/

welcome to JUNOS as a second language,让我们开始吧。

下面向大家介绍一下JUNOS里的常用命令,这里我只列出少量的命令,就当抛砖引玉,其他的,让我们一起在Lab中学习吧。

首先来说说JUNOS中的空格键和tab键:当你使用命令行界面(CLI)配置JUNOS的时候,假如你已经对IOS非常熟悉,那么在JUNOS上你同样能够获得类似的命令补全等功能,包括命令的自动完成,使用问号查询命令以及命令后的参数等等功能。稍有不同的地方在于JUNOS使用空格键替你自动完成命令输入:这点让我们的双手都能够实现自动补全命令的操作,因为我们在使用输入法输入中文的时候,总是习惯使用右手敲空格确认输入。

假如你需要同时配置JUNOS与IOS,你也大可不必太过担心当转换回IOS的时候适应不了没有空格键时候的感觉。至少这段时间不会太长,因为在JUNOS下面,tab键不但也可以与空格键同时承担完成命令的工作,它还有更重要的作用:它能够帮你自动完成诸如JUNOS软件名称,加载配置名称,接口名称,你自定义的策略名称,甚至路由协议底下不同组的名称等用户自定义名参数的输入。错误输入IOS文件名而导致升级失败?为了要输入ACL的名称频繁去show access-list而感到郁闷?在JUNOS下,有了tab键,你会感觉很贴心!

再来说说commit命令:JUNOS中,用户对路由器所输入的配置命令并不即时生效,需要用户commit以后才生效,相当于激活(这又让我想起《盗梦空间》里的kick刺激),当然你在commit之前,可以commit check预提交一下。JUNOS的配置冗余方面做得很好,rollback功能让你能轻松回滚配置。啰嗦了2大段文字,我也烦躁了,下面的命令直接贴出来算了:

提交前的检查

commit check

 

查看包含127的路由

show route | find 127

 

查看所有接口信息摘要

show interfaces terse

terse相当于IOS的brife

 

进入配置模式

admin@RSR04E-1> configure

Entering configuration mode

admin@RSR04E-1# set interfaces em1 mtu 1514

 

配置一个接口:

set interfaces em1 unit 0 family inet address 192.168.1.1/24

delete interfaces em1 unit 0 family inet address 192.168.1.1/24

 

命名

Set system host-name

 

开启telnet:

root@RSR04E-1# set services telnet

 

新建一个用户 admin

root@RSR04E-1# edit system login

[edit system login]

root@RSR04E-1# set user admin class super-user authentication plain-text-password

New password:star123

Retype new password:star123

 

[edit system login]

root@RSR04E-1# top

[edit]

 

启用 ssh 服务,协议指定版本 2,注意 ssh  版本 1 和版本2 不兼容。

root@RSR04E-1# edit system services

[edit system services]

root@RSR04E-1# set ssh protocol-version v2

root@RSR04E-1# commit

commit complete

 

设置 system  时间

operation mode:

set date YYYYMMDDHHMM.ss

通过 show system uptime 查看

root@RSR04E-1> show system uptime

 

设置时区

[edit system ]

set time-zone time-zone

 

ping

root@RSR04E-1>ping <address>

通过 ctrl+C 结束 ping  。

 

清除LED灯报警

clear alarm traffic

clear alarm event

 

开启生成树

Set protocol stp

 

OSPF相关:

set protocols ospf area 2 interface em1 metric 100

set protocols ospf area 2 nssa

 

静态路由:

set routing-options static route 1.1.1.0/10 next-hop 2.2.2.2

 

恢复出厂设置:

这里我还是要细讲一下:可以通过JUNOS CLI的load factory default命令恢复Juniper路由器、交换机的原厂默认配置。load factory default将清空当前JUNOS的活跃配置以及除root用户以外的所有用户帐号。另外root用户的登录密码同时被清除:无密码直接回车登录。在commit激活JUNOS原厂默认配置之前,你最好也同时设定root用户的登录密码。

在清空配置的时候,如提示:

‘system’

Missing mandatory statement: ‘root-authentication’

error: configuration check-out failed: (missing statements)

则需要设置root验证密码

root@Juniper# set system root-authentication plain-text-password

New password:

Retype new password:

继续commit check提示:

[edit]

root@Juniper# commit check

error: cannot create user account: root

error: user name is used by a system account

error: configuration check-out failed: daemon file propagation failed

这是因为之前我已经创建了一个username为root的账户,其实是我自己理解错了,set sys root-authen的时候系统会自动创建root用户,所有只要del掉之前我创建的那个root,check成功,直接commit,配置被清除。

root@Juniper# delete system login user root

[edit]

root@Juniper# commit check

configuration check succeeds

 

5 使用逻辑路由器做实验

5.1 JUNOS逻辑路由器简介

通过前面的学习,相信从来没接触过JUNOS(老鸟请绕道,呵呵)的朋友,已经对JUNOS有了一个大概的了解,JUNOS是不是很有趣啊?传说中的模拟器也不是那么难,对吧。好,让我们继续,下面介绍如何使用JUNOS强大的逻辑路由器功能来模拟多设备进行实验。

Juniper公司的JUNOS软件提供的逻辑路由器的特性使得一台物理路由器可以模拟出15台逻辑路由器, 加上本身的1个路由器, 一共可以在一台物理路由器上模拟出来16个路由器, 与传统的虚拟路由器不同, 每台逻辑路由器的路由进程都是独立的。

大家不用担心逻辑路由器的功能不全神马的:

逻辑路由器支持的特性如下:

1. RIP/RIPng/IS-IS/OSPFv2/OSPFv3/BGP/LDP/RSVP/MPLS协议的完整支持, 每个逻辑路由器均完整支持IPv4/IPv6;

2. MPLS L2 ×××/L3 ×××/CCC/VPLS;

3. PIM SM/PIM DM/DVMRP/;

4. 所有的policy都支持;

5. 所有的逻辑路由器支持Graceful-Switchover;

6. 逻辑路由器支持各种接口, 只要物理路由器上有物理接口, 逻辑路由器就可以借用;

7. SCU/DCU/u-RPF/CoS/CBF/policy based accounting/SNMP;

逻辑路由器的使用注意事项如下:

1. 所有的逻辑路由器和主路由器的配置是同一个配置文件;

2. 每个逻辑路由器都有一个单独的路由进程(rpd), 可以单独的重启这个进程;

3. 不支持一些特定的多业务卡, 包括AS/ES/MS等, 支持Tunnel Services PIC;

4. 不支持BFD/GMPLS/IPSec/P2MP LSP/port-mirroring/sampling;

5. 不支持LSP Ping和带AS号码查询的trace-route;

以上信息我也是到网上找的:-)。

 

5.2 JUNOS逻辑路由器原理及配置

还记得我们前面那张截图吗?我现在再重现一次:

11 JUNOS入门学习笔记

注意观察,FreeBSD是不是接了N多虚拟网卡,这些网卡是不是都桥接到了同一台虚拟交换机VMnet0中了?这是使用逻辑路由器做实验的前提。下面我们来简单说说逻辑路由器的原理。

logical router的配置原理: 物理接口上配好了vlan-tagging, 然后logical router下也可以配置接口(逻辑接口), 逻辑接口借用物理路由器的主接口,OK,看实例吧,说多了也是空话:

set logical-routers r1 interfaces em1 unit 10 vlan-id 10

set logical-routers r1 interfaces em1 unit 10 family inet address 12.1.1.1/24

set logical-routers r2 interfaces em2 unit 10 vlan-id 10

set logical-routers r2 interfaces em2 unit 10 family inet address 12.1.1.2/24

set interfaces em1 vlan-tagging

set interfaces em2 vlan-tagging

测试,用我们最熟悉的ping工具,当然,在逻辑路由器下使用ping又有一点不同:

比如逻辑路由器r1去ping 逻辑路由器r2的接口IP地址, 那么就是ping 12.1.1.2 logical-router r1,依此类推–是不是想到了IOS VRF下的ping,嗯,me too。

以上配置已经实现了两台路由器之间最基本的通信,现在我们在两台路由器之间运行OSPF协议,配置命令如下:

set logical-routers r1 interfaces em1 unit 10 vlan-id 10

set logical-routers r1 interfaces em1 unit 10 family inet address 12.1.1.1/24

set logical-routers r1 interfaces lo0 unit 0 family inet address 1.1.1.1/32

set logical-routers r1 protocols ospf area 0.0.0.0 interface lo0.0

set logical-routers r1 protocols ospf area 0.0.0.0 interface em1.10

set logical-routers r2 interfaces em2 unit 10 vlan-id 10

set logical-routers r2 interfaces em2 unit 10 family inet address 12.1.1.2/24

set logical-routers r2 interfaces lo0 unit 10 family inet address 2.2.2.2/32

set logical-routers r2 protocols ospf area 0.0.0.0 interface em2.10

set logical-routers r2 protocols ospf area 0.0.0.0 interface lo0.10

set interfaces em1 vlan-tagging

set interfaces em2 vlan-tagging

配置完毕后,我们可以查看OSPF邻居状态、路由等,这些命令在介绍巡检的时候都已经说过。

既然上面已经建立了一个IP子网, 那么按照此种方式, 可以建立多个IP子网, 这样, 可以随心所欲的建立任意逻辑路由器的多个IP子网(IP地址自己随意规划), 这样可以模拟一个比较复杂的IP网络了。

 

6 总结

关于JUNOS的入门以及Olive的使用,我就介绍到这,此文档写得非常随意,有很多个人意愿在里面,请大家多多包涵,我也就懂这么点了。您看了本文档,只要能学到一丁点新知识,我的目的就达到了。关于JUNOS,大家有好的见解或者学习方法什么的,也可以分享出来,平时遇到J的设备少,我们可以未雨绸缪,哈哈。

下面这张截图是我硬盘上存储的关于JUNOS的资料,感兴趣的话,欢迎随时可以向我获取,当然,这些东西网上都有。

8 JUNOS入门学习笔记