JUNOS配置管理

配置JUNOS,如同编辑WORD文档般方便、快捷、安全

Managing a JUNOS Configuration

记得我在2002年,刚开始接触JUNOS的时候,整个过程都让人感觉兴奋与激动;正如我在之前两篇讨论JUNOS commit的文档中所提及的,与IOS配置即时生效的特性相比,JUNOS的commit配置激活机制能更有效的降低人为失误所造成的网络故障。你所输入的所有配置对于JUNOS而言仅仅是一个待选配置(Candidate Configuration),仅当你确认全部配置无误而进行commit提交后,这份待选配置文件才被转变成为当前的活动配置文件(Active Configuration)生效,而你接着在它的副本基础上通过继续对路由器进行配置而创建新的一份待选配置。当然,虽然待选配置经过确认才会被commit激活,然而并不表示你的配置就一定会使得网络状态按照你设想的结果运行。你同样有可能会面临由于配置失误(不是输入失误)而造成的各种问题。此时你或者需要将配置回退到前一个活动配置的版本上面去。就好像我们在使用Office的时候经常需要使用undo功能一样,然而这种普遍的操作在IOS里面往往并不是那么简单。而JUNOS的rollback/save/load则允许你在某种程度上就像编辑MS Office Word文档一样编辑路由器的配置文件,比起VI,word要轻松很多。

JUNOS – rollback n

JUNOS自动为你保存之前50次commit后创建的活动配置副本,其中最后一次被commnit的副本也就是当前运行的配置编号为0,而被取代的上一个活动配置编号为1,以此类推。因此假如你发现commit以后网络出现问题而希望回退到上一个配置版本的话,那么你只需要使用rollback 1,然后重新commit一次即可,就像word的undo或者ctrl+z快捷键一样简单。而假如你在commit之前觉得当前的待选配置存在太多错误,而想直接撤销所有改动,回退到刚开始没有做任何修改的配置。正如直接不保存文档退出word,然后重新打开一样;JUNOS实现起来甚至比word要更快,你只需要执行rollback 0就可以了,连commit都不需要。

JUNOS – save / load override / load merge

更绝的还有word的另存为…(save as…)与全选(select all)/粘帖(paste),对于JUNOS同样不存在任何难度。JUNOS的save命令让用户将当前配置副本保存在该用户的主目录下面。在保存配置副本的时候需要注意如果你需要把整个配置文件保存下来,首先你需要使用top返回到配置层次的顶层[edit]上面。否则你所保存的仅仅是从[edit]到当前层次以下的配置,例如你在[edit protocols bgp]下使用save保存,你保存的仅仅是从[edit]到BGP协议层次下的配置信息。到你想使用前面保存下来的配置文件覆盖当前配置的时候,只需要load override然后指定源配置文件名即可。此时当前的配置会被清空而被加载的配置文件内容完全取代。覆盖行为相当于IOS的copy running startup。而另一种加载的方式为load merge,此时当前配置并不会被清空,而被加载的配置会合并到当前配置里面。合并行为相当于IOS的copy tftp running。注意我只是借用IOS用于对比的只是merge和override之间的区别;而JUNOS并不存在startup-config或者running-config。

JUNOS – load replace

那么在word底下编辑文档,更多的情况下可能仅仅是部分选定,然后复制(copy)或者剪切(cut)/粘帖(paste),来实现部分覆盖,而一般很少会使用全选覆盖的方式。同样JUNOS允许你对配置文件进行部分覆盖。上文提到,当你需要备份整个JUNOS配置文件的时候,你需要返回[edit]层次上进行save操作。而当我们在次级层次下进行save操作的时候,实际上JUNOS相当于使得我们将选定的层次以下部分的配置,复制到剪贴板(clip broad)中去一样。可以看到选定的部分被打上replace:的标识。我们进入逻辑路由器r1的OSPF协议层次下,此时等于用鼠标把该层次下配置内容的选定,然后在该层次下用save命令将其复制。

[edit logical-routers r1 protocols ospf]
nigel@itaa7.2# save nigelmeng-ospf
Wrote 23 lines of configuration to 'nigelmeng-ospf'

[edit logical-routers r1 protocols ospf]
nigel@itaa7.2# run file show nigelmeng-ospf
logical-routers {
    r1 {
        protocols {
replace:
            ospf {
                export 3/8;
                reference-bandwidth 10m;
                area 0.0.0.10 {
                    nssa;
                    interface lo0.1 {
                        passive;
                    }
                    interface fxp1.12;
                    interface fxp1.13;
                }
                area 0.0.0.5 {
                    interface fe-0/0/0.0;
                    interface fe-0/0/1.0;
                }
            }
        }
    }
}

之后我们把新的接口fe-0/0/2加入到OSPF区域5里面。

[edit logical-routers r1 protocols ospf]
nigel@itaa7.2# set area 5 interface fe-0/0/2    

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

之后,我又希望将原来的OSPF协议配置替换回来,那么我们只需要使用load replace将刚才复制的配置粘帖(paste)回去就可以了。JUNOS只会使用带replace:标识的内容覆盖当前配置文件中相对应的部分。

[edit logical-routers r1 protocols ospf]
nigel@itaa7.2# load replace nigelmeng-ospf
load complete

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

噢,对了,在word里面还有搜索(search)/替换(replace)文本的功能呢。

对,把整个配置文件贴到word里面,替换以后再贴回去不就行了?我为什么能想到配置JUNOS与word之间的关系?很简单,因为我正用word来写这篇文档嘛。

Advertisements

2 thoughts on “JUNOS配置管理

  1. JUNOS Rescue Configuration(救援配置) « JUNIPER JUNOS & CISCO IOS 互联路由

发表评论

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