本文中,我们会看一看如何多JUNOS配置文件进行操作。JUNOS配置文件在层级结构中很有条理;一旦你明白其结构和不同的层级,就可以轻松浏览文件并准确找到需要检测和更改的部件,而且还不会受到其他不需要部件的影响。
首先,我们登录路由:
Juniper5 (ttyd0)
login: jeff
Password:
--- JUNOS 8.5R1.13 built 2007-11-14 17:54:24 UTC
jeff@Juniper5>
该指令显示了用户名(jeff)和路由器的名称(Juniper5)。路由器现在处于可操作状态,处于这种状态下的时候,我们可以执行显示路由状态和数据库,ping和跟踪路由,远程登录(telnet)和ssh,重启系统进程等任务——这些任务大都是我们在监视和解决系统问题时需要用到的命令。JUNOS可操作模式相当于IOS用户的EXEC模式。
使用IOS的时候,问号可以为我们提供很多帮助;当我们不记得命令字符串中的下一个语句时或者只需要查看可用选项时,问号就成了基础信息工具。我们可以使用问号来查看可操作状态中所有可用的命令:
输入配置模式
[edit]
jeff@Juniper5#
JUNOS配置模式相当于IOS中专有的EXEC或启用的模式。注意指令从>改为了#,在你输入enable命令后IOS会有同样的更改。
另一种JUNOS配置模式的特性是位于指令上面的[edit]栏目。我们可以围绕配置层级来操作以便观察或更改文件的某部分;[edit]栏目准确指出了你所在层级的位置。当这一栏显示[edit]的时候,说明我们位于最顶层。因此,举例来说,如果在你的类型显示这一层级且没出现修改程序的时候,JUNOS会显示整个构造。
将show命令与问号一起使用,我们会看到构造顶部的层级:
与该列表一起的标签对层级做了很好的诠释。例如,所有的界面都配置在了interfaces级别下,所有的协议都配置在了protocols级别下,而所有的路由策略都位于policy-options级别下。
在每个顶层下面存在许多子层级。例如,在protocols下你可以找到BGP,OSPFv2,OSPFv3,MPLS,RSVP等。在those下可以发现更下一层的子层级。比方,在OSPF下,我们可以找到区域配置的层级,而在每个区域层级以下还可以找到用来指定区域内界面的层级。
配置的层级结构让我们可以只关注感兴趣的局部配置上。假设你只想看一下构造中的BGP部分。show protocols bgp会显示出整个BGP配置:
在上面的配置中,我们看到出现了一个本地地址(192.168.50.10),所有的BGP TCP对话都源自该地址,本地AS号码是65503,而且还存在三个同级组:CustomerX,CustomerY和CustomerZ。CustomerX具备一个输出路由策略,我们已将其命名为Xpolicy;由于用于该组(65510)的AS号码不同于本地AS号码,所有它们就是EBGP同级组。位于这个组之下有三个临近组,所有这些组都经由个人密码验证。同级组CustomerY(拥有三个临近组)和CustomerZ(有一个临近组)是IBGP,因为他们不具备指定单独AS号码,而且也没有配备验证。
假设,你所感兴趣的只是CustomerX下的临近组192.168.1.5的配置而不是整个BGP配置。我们可以用更明确的show命令,让JUNOS只显示出所需部分:
当然,如果你处于配置模式,可能会想作出更多操作。在配置模式中单独使用问号,就可以看到你能使用的各种操作:
笔者想为该配置添加更多要素,而要实现这一操作就要用到set命令。假设我们想为OSPF area 5添加界面fe-0/0/0。可以使用set,我们要按层级一直向下指定每一层知道我们到达所需位置——在area 5之下——界面要添加的位置:
如果没有启用OSPF或area 5不存在,相同的命令可能会启用该协议并创建area 5,除此之外再向area中添加界面。
另一个方法是先移动到需要的层级,然后用edit命令作出更改:
注意输入edit protocols ospf area 5之后,指令后的栏目改为显示我们所在的层级。我们再使用set命令往这一层添加界面fe-0/0/1。我们在这个时候指定整个层级,因为我们已经处于要作出更改的层级。
这两种方法可以用来轻松管理配置。如果你只要为配置添加一两个语句,那么在顶层进行操作,指定你要改变那一层的完整路径,会更简便。如果你要对某特定层级进行扩展性改变,一般可以先用edit命令移动到该层,然后直接作出更改就可以了。
edit命令可以带你到达指定层级,up可以上升一层。假设我们位于OSPF area 5,我们想上移到OSPF层:
你可以看到指令上面的那一栏在执行了up命令后发生了改变。每一栏的Show命令显示了该层下面的所有配置语句。
如果你想从任意层跳回到顶层,可以使用top命令:
在这个例子中,我们还可以通过执行up命令两次的方式到达顶部:[edit protocols ospf] => up => [edit protocols] => up => [edit]。同时使用edit,up和top命令,可以移动到任意配置文件中的任意位置从而可以进而更有效的操作。
除了set命令以外,还有一些重要的命令可用来更改配置。在这里我们不加赘述,只是点到为止:
- delete命令与set相反;它从配置中删除了语句。
- replace用来替换语句。
- insert 用来添加带有指定要素的语句时。
- deactivate 禁用某语句而又不想删除该语句的时候可以使用。
- activate 重新激活被禁用的语句。
- annotate 用来向语句添加注释;适用于那些复杂的配置。
JUNOS和IOS之间可操作性的区别还在于,当你向JUNOS配置中输入一个新语句后,它不会马上在路由上执行。你可以尽可能多的作出更改,检查更改,然后再将更改清楚明确地告诉路由后才执行。