JUNOS配置导航 – Part 1

感谢Jeff Doyle最近在CISCO Subnet上发表的几篇关于JUNOS的weblog,从而得以使我下决心将Juniper101实验手册继续编写下去。尽管我从一开始便希望通过排除语言上的障碍,编写一本中文的Juniper技术手册,从而使得高端技术进一步在国内得到推广。然而由于我个人不太喜欢直接拿英文原版书籍翻译,当真正面对包括CJNR Student Guide在内5000多页JUNOS文档,并需要从最基础的内容开始入手,重新编排的时候,这的确并非一件让人愉快的事情。再加上中国互联网上让人无奈的看贴不回帖,匿名转贴等习俗,我曾经有好几次考虑放弃这个让人泄气的dirty work,体力活,而将Juniper101实验手册放到我们将要设立的ITAA内部会员专区里面的Wiki板块上完成。只是,最近ITAA举行的Juniper101技术研讨课程又再一次提醒我基础实验室操作手册的必要性。而Jeff这次的行动又再一次激发我将编写Juniper101实验手册这个项目继续进行下去,他尚且能够耐心的从最为基本的JUNOS配置开始,我自然也没有了说服自己放弃的理由。至少我发现原来整个互联网还有我们两个Weblogs,真正的在持续发布关于JUNOS的实验操作文档。这篇文档编排脚本参考Jeff Doyle的Navigating a JUNOS Configuration.
Navigating a JUNOS Configuration

对于刚开始接触JUNOS的人来说,JUNOS的配置看起来就跟C语言一样,跟Cisco IOS,甚至更早以前应用在Catalyst 5500/6000/6500交换机上同样使用set命令的CatOS的平面化组织完全没有可比性可言。可能有很多网络工程师就像我当年为了不想学习编程而选择网络一样,没想到碰到Juniper这种靠编程来配置的路由器。而JUNOS内核本身又是基于FreeBSD UNIX架构,我甚至怀疑要从shell开始编译Juniper路由器的配置。而实际上JUNOS跟编程一点关系都没有,它只是采用括弧的形式将配置文件通过层次化架构组织起来而已。当你明白了JUNOS的配置架构以及各个组织层次以后,你不但能够自由的在JUNOS配置间腾挪,明确找到你所需要设置的那部分配置;同时其它与你无关的配置也不会妨碍你的思路。此时再回过头来看IOS混乱的将路由协议,策略,接口配置,ACL…糅合到呆板的show running-config输出时,你或许能够明白我为何之前将JUNOS称为一种”毒“了。我们从登录Juniper路由器开始。

login: nigel
Password:

--- JUNOS 7.2R4.2 built 2006-02-14 07:33:49 UTC
nigel@itaa7.2>

JUNOS的命令提示符与IOS不同,IOS仅包含当前路由器的主机名称,而JUNOS的提示符在包含主机名(itaa7.2)的同时还包括当前登录用户的用户名(nigel),两者使用@连接起来。当前路由器存在与operational(运维)模式,你可能觉得类似于IOS的用户模式,两者均可以通过相同的”>”来确定当前所在的模式。然而,与IOS从用户模式进入特权(enable)模式往往需要输入密码验证不一样,JUNOS用户往往无需输入密码便能进入配置模式,由于并没有进一步的角色区分,用户在运维模式底下便能完成对路由器信息的全部监控与测试。而IOS还会将其划分成用户模式下的show命令集与特权模式下的show命令集。因此JUNOS的运维模式更确切的讲应该就是IOS的特权模式,只是提示符不一样而已。 我们可以在运维模式底下查看路由器状态,查看路由表,查看路由协议数据库,ping、traceroute、telnet、SSH等等。与在IOS下一样,我们可以通过直接输入?来查看当前模式下的所有命令。

nigel@itaa7.2> ?
Possible completions:
  clear                Clear information in the system
  configure            Manipulate software configuration
                       information
  file                 Perform file operations
  help                 Provide help information
  monitor              Show real-time debugging information
  mtrace               Trace multicast path from source to
                       receiver
  ping                 Ping remote target
  quit                 Exit the management session
  request              Make system-level requests
  restart              Restart software process
  set                  Set CLI properties, date/time,
                       craft interface message
  show                 Show system information
  ssh                  Start secure shell on another host
  start                Start shell
  telnet               Telnet to another host
  test                 Perform diagnostic debugging
  traceroute           Trace route to remote host

下一步对路由器配置我们需要进入JUNOS的配置模式,相对于IOS而言的全局配置模式(config)#

nigel@itaa7.2> configure
Entering configuration mode

[edit]
nigel@itaa7.2# 

此时你会发现提示符的头顶上了[edit]这样的标识,在整个配置过程当中,这个标识将告诉你当前所在的配置层次。如果你更喜欢将JUNOS的配置架构理解成UNIX的目录的话,那么[edit]标识等于UNIX下的pwd命令所告诉你的当前目录。

[edit]
nigel@itaa7.2# exit
Exiting configuration mode

nigel@itaa7.2> start shell
% pwd
/var/home/nigel
% cli
nigel@itaa7.2> configure
Entering configuration mode

[edit]
nigel@itaa7.2# 

由于我们刚刚进入JUNOS配置模式,我们在整个配置架构的最顶层(top),假如我们在这个位置输入单纯的show命令,那么JUNOS将列出所有的配置信息。当然,你可以要求JUNOS仅将你所关注的层次下的配置输出。

[edit]
nigel@itaa7.2# show ?
Possible completions:
  <[Enter]>            Execute this command
> access               Network access configuration
> accounting-options   Accounting data configuration
> applications         Define applications by protocol
                       characteristics
+ apply-groups         Groups from which to inherit
                       configuration data
> chassis              Chassis configuration
> class-of-service     Class-of-service configuration
> firewall             Define a firewall configuration
> forwarding-options   Configure options to control packet
                       sampling
> groups               Configuration groups
> interfaces           Interface configuration
> logical-routers      Logical routers
> policy-options       Routing policy option configuration
> protocols            Routing protocol configuration
> routing-instances    Routing instance configuration
> routing-options      Protocol-independent routing
                       option configuration
> security             Security configuration
> services             Service PIC applications settings
> snmp                 Simple Network Management Protocol
                       configuration
> system               System parameters
  |                    Pipe through a command

这里有趣的地方在于在上面输出的信息中,其中前面带”+”的条目如”apply-groups“指向的是”apply-group“这个层次已经是最后一层,而其它前面带”>“的条目指向的,则是该层次底下还可能包含着更多的子层,如”protocols“目录下还会包含BGP,OSPFv2, OSPFv3, RIP, MPLS, RSVP等等,而在”OSPF“这个子目录下面则又包含着”area“,其中进一步包含”interface”这样更明细的层次。可以参考上图。JUNOS这样的组织架构能够使你更为有效的在更短的时间内定位你所需要关注的配置。譬如我仅希望查看逻辑路由器r1的OSPF协议全部配置。

[edit]
nigel@itaa7.2# show logical-routers r1 protocols ospf
export 3/8;
reference-bandwidth 10m;
area 0.0.0.10 {
    nssa;
    interface lo0.1 {
        passive;
    }
    interface fxp1.12;
    interface fxp1.13;
}

相对于在IOS底下仅能通过show run | b r o仅仅过滤一部分的配置,JUNOS的层次化组织架构显然威力更大。通过上面的输出我们了解到逻辑路由器r1的OSPF协议内绑定了一个名为”3/8″的路由策略;全局参考带宽被修改为10M;通过r1输入NSSA区域10,并且有三个接口在该区域被通告到OSPF当中。进一步,假使你只希望查看与区域10相关的配置,你可以在上述的命令后进一步指定更为明细的层次。

nigel@itaa7.2# show logical-routers r1 protocols ospf
area 10
nssa;
interface lo0.1 {
    passive;
}
interface fxp1.12;
interface fxp1.13;

经过上述举例,应该能够了解到,JUNOS所谓的C语言只不过是使用大括号作为配置文件中各个层次之间划分的边界标识而已。这部分最后我们总结一下在JUNOS配置模式下的全部命令。

nigel@itaa7.2# ?
Possible completions:
  <[Enter]>            Execute this command
  activate             Remove the inactive tag from a
                       statement
  annotate             Annotate the statement with a
                       comment
  commit               Commit current set of changes
  copy                 Copy a statement
  deactivate           Add the inactive tag to a statement
  delete               Delete a data element
  edit                 Edit a sub-element
  exit                 Exit from this level
  help                 Provide help information
  insert               Insert a new ordered data element
  load                 Load configuration from ASCII file
  quit                 Quit from this level
  rename               Rename a statement
  rollback             Roll back to previous committed
                       configuration
  run                  Run an operational-mode command
  save                 Save configuration to ASCII file
  set                  Set a parameter
  show                 Show a parameter
  status               Show users currently editing
                       configuration
  top                  Exit to top level of configuration
  up                   Exit one level of configuration
  wildcard             Wildcard operations
Advertisements

7 thoughts on “JUNOS配置导航 – Part 1

  1. 看了孟老师对回帖的期待,我相信很多和我一样的学习者都很感激孟老师这种无私奉献的精神。中国人崇尚一日为师终身恩,您不必在意通过回帖得到认可。认可已经在大家的心中。
    另外,我猜测不回贴的一个理由是,师生有能力差距,我虽然很认真的学习你每一篇讲座,但目前还属于初级阶段,无法提出像样的问题。我们中国文化提倡深思熟虑才出口,和老外的互动式学习记忆是不同的。

  2. An Indian wedding is a union of two individuals for life.
    , specific projects can be developed in consultation with the new;
    wedding supplies design and procurement; responsible for the whole process of wedding video photography and post-production; responsible for the co-ordination of the wedding day arrangements
    and overall coordination; responsible for the same industry market information collected and
    shared with the team. Whether you go timeless, trendy, or somewhere in between, there are endless options available for
    on various online jewellery websites.

  3. ‘ It uses video editing techniques like music to create the atmosphere or mood. to watch the 7-minute video that explains how Instant Video Web Pages will make video marketing fast and easy. In the next article in our series about using social media as an online church marketing strategy, I.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s