查看完整版本: Junos Cookbook中文版第一章第一部分

孤独的狼 2007-12-4 19:08

Junos Cookbook中文版第一章第一部分

[size=2][font=SimSun]Juniper路由器是运行被称为JUNOS软件的网络操作系统的特殊的网络设备。在这本书中,我们说到的JUNOS特性都是运行在J系列,M系列和T系列路由器平台上。M系列和T系列是典型的高端大型路由器,一般应用于网络服务商,电话公司,大型的企业和大学。J系列路由器是低端小型路由器,是为商业和其他组织连接多个站点或互联网而设计的。JUNOS软件预装在新的Juniper网络路由器上,当你打开路由器时,软件自动开始运行。你需要做的第一件事情就是配置路由器。
JUNOS软件是作为一套包含各种组件的模块化软件包来发布,JUNOS软件的发布版本可以运行在所有J系列,M系列和T系列路由器上。书中的例子是基于M20路由器或J2300路由器的JUNOS7.4软件版本,但却适用于最近的JUNOS版本和将来发行的基于M,T,和J系列路由器家族。
这一章讨论基础的路由器配置,包括第一次如何配置路由器,从CLI命令行配置路由器,加载和保存配置文件,JUNOS软件使用文件和文件系统协同工作。也会讨论如何升级JUNOS软件,收集硬件和软件相关信息。
当你一起动路由器,你就必须配置基本的网络信息,比如路由器的name,IP地址和domainname,这样以来路由器在网络上就可达了。然后你就可以配置想要的软件特性了。配置路由器,通常情况下需要登陆到路由器并使用JUNOSCLI。包括J系列的一些路由器,还提供了基于web的接口称为J-Web。从CLI你可以指定配置文件使用明文(ASCII),这样你能够从CLI(在路由器上)或者ASCII文本编辑器(在服务器上)来阅读。在J-Web上,配置被保存为可以用J-Web,CLI,或者ASCII文本编辑器阅读的ASCII文件。
JUNOS CLI模式
通过这本书,我们将向你展示如何使用JUNOSCLI来配置和监控路由器。当它超越本书描述的CLI的设计和能力范围时,本节给出CLI模式的预览并描述一些基本的特性。通过其他章节,我们将给出更多的CLI的事例。对于JUNOS CLI的完整的信息,参阅Juniper网络web站点的JUNOS产品文档:[url=http://www.juniper.net/techpubs.][font=SimSun][size=2]http://www.juniper.net/techpubs.[/size][/font][/url]
[font=SimSun][size=2]JUNOS软件的低层操作系统是FreeBSD,当我们说到不同的CLI命令时,如果一个命令由FreeBSD发布或是一个标准的Unix用法,或者是简单的FreeBSD或Unix而使用了一个JUNOS名称,我们会指出这个命令是基于什么。如果你已经熟悉FreeBSD或Unix环境,这将帮助你理解JUNOS命令。
CLI有两种模式:操作模式operational mode和配置模式configurationmode。两种模式都有不同的命令。在操作模式,可以监控任何关于路由器硬件和软件以及检查网络操作。在配置模式,可以通过命令定义路由器的行为,比如指出使用什么网络地址,运行什么协议。理解两种模式的不同之处非常重要,哪种模式可以执行哪种行为,以及如何保持正在运行的模式。通过本书的其他章节,我们将向你展示当你配置路由器并验证它的操作时如何在两种模式下进行。
在路由器上,你可以通过看CLI提示状态来确定你处在哪种模式。基本的提示状态格式是username@router-name。当你进入操作模式时,提示的末尾会有个>符号;当你处于配置模式时,你看到的是#符号。整书都遵从这种约定,因此处理命令的时候要注意提示符号。提交命令时要考虑是在操作模式还是配置模式。
当你第一次登陆JUNOS路由器时,是处于操作模式。操作模式可用命令能让你监控路由器和网络操作。比如你可用获取路由器的邮件和软件的信息,到达路由器的网络流量,配置路由协议。整本书中,我们将向你展示如何使用操作模式命令检查路由器上发生的事情。
你可以使用大量操作模式命令,组织成相关的命令来监控你的路由器和网络。在路由器上,你可以用输入问号(?)的方式获得在线帮助。如果在操作模式的最高层top level输入’?’,就会看到一些能够用来监控路由器和实施操作的相关命令:
    aviva@router1> ?
    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

例如,使用不同的命令显示关于路由器,路由器的接口,协议软件的信息,而且可以在路由器上使用不同的请求request命令,比如重启和下载,安装升级软件。
操作模式的两个命令不是用来监控路由器或网络的:
Quit                用来退出CLI和路由器
Configure            用来进入配置模式,用来配置路由器
当你进入配置模式后,提示会由username@router-name>变为username@router-name#,提示的前面会有一行,[edit],说明你在配置模式。特别指出,[edit]说明你在配置层次的最高层,这有点向是在Unix文件系统的(/)。Edit就等同于是配置命令(edit是一个隐藏命令,因此你无法在完整的命令列表中看到它。)
配置模式有两个基本组件:
commands命令            用来执行路由器的配置的动作;
statements 语句        定义配置的有效关键字;
创建和修改路由器的配置时,使用配置模式的可用命令command添加语句statements配置来定义路由器的行为。如果在配置模式的最高层top level输入一个问号?,就会看到配置路由器时能够用到的命令:
    [edit]
    aviva@router1# ?
    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

创建和修改路由器的配置时,会主要用到edit和set命令来控制里面的语句statement。使用edit命令到你想要修改的配置部分(就像使用Unix的cd命令到不同的目录)并使用set命令配置特定的项目。Up命令让你到层次体系的上一层,top命令返回到层次体系的顶层[edit](这个命令相当于Unix的cd /命令)。在顶层,使用exit或quit命令返回到操作模式。
Show命令显示配置中的各项信息,从当前层次开始显示。如果你处于[edit]层次,你会看到完整的配置:
    [edit]
    aviva@router1# show
    version "7.4R1.7";
    groups  
    {
        re0 {
            system {
                host-name router1;
            }
            interfaces {
                fxp0 {
                    unit 0 {
                        family inet {
    …
如果在较低的层次,你看到的仅仅是配置的一部分。下面的例子是配置的OSPF部分:
    [edit protocols ospf]
    aviva@router1# show
    export export-statics;
    area 0.0.0.0 {
        interface fe-0/0/1.0;
        interface fe-1/0/1.0;
    }
为什么这里会有大括号({})?JUNOS软件使用大括号描绘配置文件的结构,描述相关的配置参数部分。如果你是一个C语言程序员,你会非常熟悉他们。
和set命令相反的是delete,它从配置中删除一项。你可用从配置中删除单独的一项(比如从上面的OSPF配置中删除interface fe-1/0/1.0),或者从OSPF配置中删除一整段比如area 0.0.0.0:
    [edit protocols ospf]
    aviva@router1# delete area 0.0.0.0
    aviva@router1# show
    export export-statics;

另一个快速命令是run,它允许你在配置模式中提交一个操作模式的命令。例如,在配置模式中run show route 命令相当于在操作模式中执行:
    [edit]
    aviva@router1# run show route <-- # 说明是配置模式
    inet.0: 20 destinations, 20 routes (19 active, 0 holddown, 1 hidden)
    + = Active Route, - = Last Active, * = Both
    0.0.0.0/0          *[Static/5] 07:36:18
                          Discard
    …
    aviva@router> show route <-- >说明是在操作模式
    inet.0: 20 destinations, 20 routes (19 active, 0 holddown, 1 hidden)
    + = Active Route, - = Last Active, * = Both

    0.0.0.0/0          *[Static/5] 07:36:18
                          Discard
    …

移动到配置部分意味着什么呢?想一想作为层次化配置语句和框架的JUNOS配置,是用大括号({})划分和定义这些语句的应用范围。这种层次结构提供了一个在路由器上配置大量特性和功能的组织方式,相关功能聚合在一起便于你配置路由器和流量配置时定位。当你初次进入配置模式,你在层次结构的顶级。你所在的层次结构和配置模式前导提示符是一致的。[edit]行显示你在层次结构的顶层。Edit命令允许你进入配置层次,这样一来所有配置命令都可以在当前框架内执行。当你在层次结构中移动时,方括号中文字的变化会显示你所在的层次。
你用来设置路由器的行为的配置语句statements也以层次结构的方式出现。如果你在配置层次结构的顶层输入edit ? ,你会看到JUNOS软件中你能通过配置来控制的主要功能:
    [edit]
    aviva@router1# edit ?
    Possible completions:
    > access              Network access configuration
    >accounting-options  Accounting data configuration
    >applications     Define applications by protocol characteristics
    >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

每一个完整的列表都是在特定配置层次的配置语句(statement)。例如,protocol语句是配置所有JUNOS路由协议的命令,位于层次结构顶级的:
    [edit]
aviva@router1# edit protocols  ?
    Possible completions:
     <[Enter]>              Execute this command
    > bfd                  Bidirectional Forwarding Detection (BFD) options
    > bgp                  BGP options
    > connections          Circuit cross-connect configuration
    > dvmrp                DVMRP options
    > igmp                 IGMP options
    > isis                 IS-IS options
    > l2circuit            Configuration for Layer 2 circuits over MPLS
    > ldp                  LDP options
    > link-management      LMP options
    > mld                  MLD options
    > mpls                 Multiprotocol Label Switching options
    > msdp                 MSDP configuration
    > ospf                 OSPF configuration
    > ospf3                OSPFv3 configuration
    > pgm                  PGM options
    > pim                  PIM configuration
    > rip                  RIP options
    > ripng                RIPng options
    > router-advertisement IPv6 router advertisement options
    > router-discovery     ICMP router discovery options
    > rsvp                 RSVP options
    > sap                  Session Advertisement Protocol options
    > vrrp                 VRRP options
      |                    Pipe through a command

如果你移动到层次结构的下一级,例如到protocol部分提示符会变成[edit protocols]:
    [edit]
    aviva@router1# edit protocols
    [edit protocols]
    aviva@router1#

在路由器上学习CLI
在前面章节的一些命令行中,我们演示了如果使用’?’来获得CLI和软件的相关上下文帮助。这个特性是CLI内置帮助的一部分,而且你将会经常性的使用它。当你在提示符上输入一个’?’时,CLI会显示一个可以使用的命令commands或语句statements列表,和一个简单的描述。如果你输入一个命令或者配置语句的一部分并加一个’?’,你会看到一个可用命令command或语句statement的子集。
例如,在操作模式,你可以看到show命令的一个子集:
    aviva@router1> show r?
    Possible completions:
      rip                   Show Routing Information Protocol information
      ripng                 Show Routing Information Protocol for IPv6 information
      route                 Show routing table information
      rsvp                  Show Resource Reservation Protocol information
    aviva@router1> show r

CLI显示可用命令的列表并重新显示你已经输入的命令,因此你不用再次输入它。例如要显示路由表的内容,你现在只需输入oute (前面的提示是show r):
    aviva@router1> show r?
    Possible completions:
      rip                   Show Routing Information Protocol information
      ripng                 Show Routing Information Protocol for IPv6 information
      route                 Show routing table information
      rsvp                  Show Resource Reservation Protocol information
    aviva@router1> show r
    aviva@router1> show route

在配置模式,你可以列出可用的配置语句statements的子集:
    [edit system]
    aviva@router1# set s?
    Possible completions:
      saved-core-context     Save context information for core files
      saved-core-files       Number of saved core files per executable (1..64)
    > services            System services
    > static-host-mapping Static hostname database mapping
    > syslog              System logging facility
    aviva@router1# set s^

为了最少化输入你必须输入的内容,敲空格键或Tab键来补全LCI命令command或语句statement。这有点像Unix shell的某些操作。
    aviva@router1# commit a
    Possible completions:
      and-quit               Quit configuration mode if commit succeeds
      at                     Time at which to activate configuration changes
    aviva@router1# commit an
    aviva@router1# command and-quit

上面的第一个命令是不明确的,因为有两种可能的结果。第二个命令是唯一的,因此但你输入空格键(或者Tab键)时,CLI自动完成这个命令,输入回车键执行这个命令。
输入一个完整命令后(但还没有输入回车),另外一个可用的命令集是控制输出格式。要使用这些命令,先输入’|’(管道),来定向来自管道左侧命令输出到右侧管道命令,这和Unix管道的工作几乎一样。下面是一下可用使用的命令:
    aviva@router1> show route | ?
    Possible completions:
      count                Count occurrences
      display              Show additional kinds of information
      except               Show only text that does not match a pattern
      find                 Search for first occurrence of pattern
      hold                 Hold text without exiting the --More-- prompt
      last                 Display end of output only
      match                Show only text that matches a pattern
      no-more              Don't paginate output
      request              Make system-level requests
      resolve              Resolve IP addresses
      save                 Save output text to file
      trim                 Trim specified number of columns from start of line

另外一个最小化输入的方法是使用键盘快捷方式。最简单的是上下箭头键,可用回滚到你最近输入的命令。(JUNOS软件就像Unixshell一样维护历史命令)如果你想修改一个命令而不是重现输入命令,你可用使用左右箭头键,退格Backspace键和删除Delete键。下面还有一些功能键的组合,和Emacs命令相似,可以用来在命令行上移动光标并编辑命令,见Table 1-1:

Table 1-1. 快捷方式      
快捷方式    动作      
Ctrl-p    显示历史命令中的上一个命令      
Ctrl-n    显示历史命令中的下一个命令      
Ctrl-a    移动到行首      
Ctrl-e    移动到行尾      
Ctrl-b    向后移动一个字符      
Ctrl-f    向前移动一个字符      
Esc-b    向后移动一个单词      
Esc-f    向前移动一个单词      
Ctrl-k    删除光标以后的内容      
Esc-d    往前删除一个单词(光标后面的一个单词)      
Esc-Backspace    往后删除一个单词(光标之前的一个单词)      
Ctrl-y    在光标处粘贴删除的单词或文本     

另一种方式的CLI帮助是安装在路由器硬盘的在线文档。这个文档附带在JUNOS产品配置指南中。当你登陆到路由器后,可以使用在线文档获得配置说明的信息。要获取配置说明的高级信息,你可用使用help topic命令。下面的例子显示了如何在路由器上获取配置domain name的高级帮助信息:
    aviva@router1> help topic system domain-name
    Configuring the Router's Domain Name
       For each router, you should configure the name of the domain inwhich the router is located. This is the default domain name that isappended to
       hostnames that are not fully qualified. To configure the domain name,
       include the domain-name statement at the [edit system] hierarchy level:
         [edit system]
         domain-name domain-name;
    Example: Configuring the Router's Domain Name
     Configure the router's domain name:
       [edit]
       user@host# set system domain-name company.net
       [edit]
       user@host# show
       system {
           domain-name company.net;
       }

使用help reference命令可用获取配置的语法和选项的帮助,就像Unix的man 记录一样。下面显示了doamin-name配置的reference帮助:
    aviva@router1> help reference system domain-name
    domain-name Syntax
      domain-name domain-name;
     Hierarchy Level
      [edit system]
     Description
      Configure the name of the domain in which the router is located. This is
      the default domain name that is appended to hostnames that are not fully
      qualified.
     Options
      domain-name--Name of the domain.
     Usage Guidelines
      See "Configuring the Router's Domain Name".
     Required Privilege Level
      system--To view this statement in the configuration.
      system-control--To add this statement to the configuration.


在本书中如何显示命令和配置
迄今为止在JUNOS CLI的说明中,我们已经描述了不同类型的命令和看起来想在路由器上的显示。由于对于初学者有点迷惑,这一节我们总结一下在本书中如何显示命令。
这里是一个操作模式的命令:
    aviva@router1> show route table inet.0

‘>’说明你处于操作模式,黑体字显示了你输入的内容。命令是show route。Table是这个命令的一个选项,inet.0(一个特定路由表的名字)是需要的完成table选项的一个变量。Table的名字是斜体的,你可以用你想要的路由表的名字来替换它。
这里是两个配置模式的命令:
    [edit]
    aviva@router1# edit system
    [edit system]
    aviva@router1#set login user aviva class operator

提示符后面的‘#’让你知道你处于配置模式,而且[edit]和[editsystem]也会显示你在配置层次结构中的位置。Edit和set是配置模式的命令。System,login,user,和class是配置语句。Aviva是user语句的必要变量,operator是class语句的一个必要选项。此外,你输入的都用黑体显示。你必须输入的命令command和语句statement就像下面显示的,是黑体;可用替代的变量用的是斜体。
在本书中,当我们演示如何配置路由器时,我们通常只说明你要输入的命令和你所在的配置层次,就像上面显示的一样。然而,有时候如果你必须输入一些命令来配置一个特性或者如果你输入一条命令导致了多级层次结构,我们将向你显示看起来可能的配置结果。我们上面输入的配置命令会出现下面的配置:
    [edit system]
    aviva@router1# show
    login {
        user aviva {
            class operator;
        }
    }

从层次结构的顶层来看,看起来是这样:
    [edit]
    aviva@router1# show
    system {
        login {
            user aviva {
                class operator;
            }
        }
    }

基于两个原因,我们用这种格式来显示。当你在路由器上做配置时,你可能会忘了你已经配置了什么。方括号中的提示文字([edit])是你所在配置层次的路图。Show命令显示了已经配置了什么。另外一个原因是JUNOS的配置,实际上就是一个文本文件。文件格式就和你输入show命令时所看到的一样。锯齿状显示了配置层次的级别,大括号({})表示相关配置语句组,分号(;)表示单独语句的结束。在本书中,有时我们会用这种格式作为总结配置一种特定特性的方法。你可以比较书中的内容和你在路由器上的配置,来确保你已经掌握了这些东西。
Recipe 1.1 第一次配置路由器

[/size][/font][font=SimSun][size=2]Recipe 1.1 第一次配置路由器
问题:
你已经安装并开启一台路由器,第一次配置JUNOS软件。
解决方案
使用如下的命令配置路由器
    root# cli
    root@>
    cli> configure
    [edit]
    root@# set system host-name router1
    root@# set system domain-name mynetwork.com
    root@# set interfaces fxp0 unit 0 family inet address 192.168.15.1/24
    root@# set system backup-router 192.168.15.2
    root@# set system name-server 192.168.15.3
    root@# set system root-authentication plain-text-password
    New password:
    Retype password:
    root@ show
    system {
        host-name router1
;
        domain-name mynetwork.com;
        backup-router 192.168.15.2;
        root-authentication {
             encrypted-password "$1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/"; ## SECRET-DATA;
        }
        name-server {
             192.168.15.3;
    }
    interfaces {
        fxp0 {
            unit 0 {
                family inet {
                    address 192.168.15.1/24;
                }
            }
        }
    }
    root@# commit
    root@router1# exit
    root@router1>


讨论
在大部分JUNOS路由器上,JUNOS软件安装在两个地方:flash驱动器和硬盘。当你第一次开启路由器时,运行安装在flash驱动器里的软件版本。硬盘里面的拷贝是一个备份。另外的软件备份拷贝通过可移动介质提供,典型的是PC卡或者是CF卡。
当你第一次开启你的路由器时,JUNOS软件自动导入并启动。在有的路由器上,一个脚本提示你路由器的基本信息。在其他一些路由器上,你使用J-Web浏览器执行初始化配置。基于这一点,你需要输入足够的基本配置信息以便路由器在网络上而且能通过网络登录。在路由器上实施初始化配置工作,你需要连接一个终端或笔记本电脑到路由器的console口,这是路由器前面的一个串行接口。
当你第一次连接到路由器的console是,必须使用root用户登录。Root用户就像是Unix的超级用户,可以完全访问路由器的所有功能。最初,root账户是没有密码的。你会发现你是root,因为路由器上显示的用户是root#。启用JUNOS CLI使用命令cli。Root@>提示符说明使用root用户进入了操作模式。一旦你启用CLI,输入configure命令进入配置模式。如果你看到上一个列子的最后,你会发现通过commit命令激活配置后,你配置的主机名会加到提示符的后面,因而提示符在配置模式下会变成root@router1#,在操作模式会变成router@router1。
当你初次配置路由器时,需要设置一些路由器的基本特性:
·    路由器的名称(路由器的主机名), 使用set system host-name 命令。
·    你的域名,使用命令set system domain 命令。
·    路由器fxp0接口的IP地址,使用set interfacesfxp0命令。Fxp0是路由器提供的一个分离的待外管理网络的以太网管理接口。(J系列路由器没有专门的管理接口,可以使用内置的一个快速以太网接口,fe-0/0/0或fe-0/0/1来代替)Juniper网络建议使用fxp0接口管理所有M系列和T系列路由器,这个口是为路由器保留来做管理的,因此它不转发流量。作为路由器物理组成的一部分,你应该连接fxp0到以太网来执行管理任务。最理想的是路由器还可以通过这个网络访问它的DNS和NTP服务器。如果你喜欢的话,你也可以用路由器的其他接口作为管理接口。在本书的其他部分,我们假设fxp0(或J系列路由器的fe-0/0/0)被配置为管理接口。
·    备份路由器的IP地址,使用set systembackup-router命令。选择一个和本地路由器直连的路由器。当且仅当你的路由器在启动时而且JUNOS路由软件(称为路由协议进程,或RPD)不能启动时,你的路由器才使用备份路由器。如果RPD不能启动,路由器将没有静态路由或默认路由,因此你无法直接访问它,但是可以通过备份路由器检查它。当路由器启动时,它会产生一条到备份路由器的静态路由。路由软件一起动,这条路由器就从路由表中被删除。对于有两个RE(RoutingEngineer)的路由器,备份RE,RE1,在路由器重启以后仍然使用备份路由器作为默认网关。因此你可以使用备份路由器登录到RE1。(RE0是首要primary,或主控master,RE。参见技巧1.30)
·    网络上的一个或多个DNS 名字服务器的IP地址,使用set system name-server命令。路由器使用DNS名字服务器将主机名转换为IP地址。
·   Root账户的密码。当你最先启动一台路由器的时候,root账户是没有密码的。为了保护路由器和网络的安全,配置root账户的密码是非常必要的。最简单的配置方法就是使用plain-text-password语句输入明文(ASCII)密码来配置密码。但你输入回车后,CLI提示你输入密码然后要求再次输入。但是当你输入密码的时候路由器并没有显示出来。你使用的密码不能全是小写字母,全是大写字母或全是数字。必须是混合大小写的字母,数字和标点符号。如果你不是按照这个标准来选择密码的话,你会看到一个错误信息: Error: require change of case, digitsorpunctuation.当你用show命令查看密码的时候,CLI用远不会真实的显示你所输入的内容。它立即使用MD5加密密码串并且在show命令输出中显示加密版本。介绍中的“选择密码的策略”一节到第二章会讨论选择安全密码的方法。技巧2.2阐述了如何使用SSH验证root用户。
为了让初次配置的路由器生效,实际上任何路由器的配置或配置改变后生效,使用commit命令。这个命令核实配置中是否存在语法错误并激活配置。
    root@# commit
    root@router1#

花点时间来评论你在JUNOS路由器上输入配置语句的风格是值得的。在这个秘诀中,你在[edit]配置层次级别,这是一个非常高的层次,因此你必须输入完整的层次到语句和语句本身。这个层次相当浅,因此没有过多额外的东西输入。当你在较深的层次工作时,你会发现到那个层次很容易,输入少和在配置中的感觉好。对于这个秘诀,在[edit system]层次你能输入大部分配置命令:
    root# cli
    root@>
    cli> configure
    [edit]
    root@# edit system
    [edit system]
    root@# set host-name  router1
    root@# set domain-name  mynetwork.com
    root@# set backup-router  192.168.15.2
    root@# set name-server  192.168.15.3
    root@# set root-authentication plain-text-password
    New password: $123poppI
    Retype password: $123poppI

然后你使用show命令时,你看到的仅仅是[edit system]层次的语句:

    [edit system]
    root@#show
    host-name router1;
    domain-name mynetwork.com;
    backup-router 192.168.15.2;
    root-authentication {
        encrypted-password "$1$ZUlES4dp$OUwWo1g7cLoV/aMWpHUnC/"; ## SECRET-DATA;
    }
    name-server {
         192.168.15.3;
    }

在部分配置中,你重复的使用相同的仅有少许改变的命令时,可以很方便的使用列在表1-1中的键盘顺序来实现。
这个recipe显示出从网络的其他系统访问路由器的最小配置,你还应该增加其他的一些设置提供更好的基本网络连接:
    [edit]
    root@router1# set system ntp server  192.168.2.100
    root@router1# set system time-zone  America/Los_Angeles
    root@router1# set system services ssh
    root@router1# set interfaces lo0 unit 0 family inet address  207.17.139.42/32
    root@router1# set system login user  aviva  class superuser
    root@router1# set system log user aviva authentication plain-text-password
    New password:
    Retype new password:
    root@router1# commit

第一个命令,set system ntpserver,配置一个NTP服务器的IP地址,为路由器设置适当的时间。由于在路由器上已经配置了DNS,你可以指定一个时间服务器的名字而不是IP地址,这个名字会被转换为IP地址。为了让路由器从服务器获得准确的时间,一个很好的办法就是配置4个NTP服务器的最小值。你还可以有选择的配置路由器所在的时区(参见Recipe6.2);默认情况下,时区是UTC。
为了能用SSH通过网络登录到路由器,用set system servicesssh命令在路由器上打开SSH服务。为了让它工作,SSH必须也被配置在网络服务器上。SSH也常用于从路由器拷贝文件。(JUNOSSSH使用Unixscp命令。)注意你还可以通过FTP或HTTP拷贝文件(见Recipe2.1),但是它们没有SSH安全。在有两个RE的路由器上,你可以在两个RE之间拷贝文件。(见Recipe1.30)
Set interfaces 命令通过配置loopback接口的地址设置路由器的IP地址(见Recipe7.3)。最后两条命令设置一个非root账户,让用户能够登录到路由器(见Recipe2.5)。
如果你的路由器有两个RE,你同样需要为第二个RE配置一个hostname和IP地址(见Recipe1.30).
此外,为了让配置的改变生效,用commit命令:

    root@router1# commit

Recipes 1.7, 1.15, 和 1.16 阐述了commit如何进行工作,包括如何临时commit配置的改变。
基于这一点,作为root用户来登录到路由器,就可以完全控制路由器。作为root,你可以实施shutdown路由器或者使路由器无法访问网络的操作。有是当你合法的执行这类操作时,你通常要确保路由器还可以被继续正常操作,而且你要把路由器的意外干扰机会降到最低。
基于这一点来配置路由器,你还应该加载一个已经存在的路由器配置文件,就向Recipe1.12描述的,或者增加一个用户到配置文件(见Recipe2.5),包括你自己的一个,然后退出并使用你的用户ID重等录到路由器上。
See Also
Recipes 1.7, 1.12, 1.15, 1.16, 1.17, 1.30, 2.1, 2.2, 2.5, 6.2, and 7.3[/size][/font][align=left][font=SimSun][size=2][/size][/font][/align][size=2][font=SimSun][b]Recipe 1.2. 从CLI配置路由器[/b]

[b]Problem[/b]

使用JUNOS CLI来修改路由器的配置

[b]Solution[/b]

你得在配置模式来配置路由器:
    aviva@router1> configure
    Entering configuration mode
    [edit]
    aviva@router1#

[b]Discussion[/b]

当你要修改路由器的配置时,登录到路由器,就像这个例子中显示的一样,进入配置模式,然后创建一个期望的路由器操作的配置语句的层次。还有其他配置路由器的方式,我们将在后面章节讨论,包括从远程服务器或本地路由器加载配置文件,和加载一个先前路由器的配置。
要想让配置生效,必须激活或提交它。

See Also
Recipe 1.7[/font][/size]
[size=2][font=SimSun][b]Recipe 1.3. 用唯一访问来配置路由器[/b]

[/font][/size][size=2][font=SimSun][b]Problem[/b]

[/font][/size][font=SimSun][size=2]同时会有多人能登录到路由器并修改配置;你要阻止其他人更改你的配置。

[/size][/font][size=2][font=SimSun][b]Solution[/b]

使用下面的配置命令进入配置模式:
    aviva@router1> configure  exclusive
    warning: uncommitted changes will be discarded on exit
    Entering configuration mode
    [edit]
    aviva@router1#

[/font][/size][size=2][font=SimSun][b]Discussion

[/b]由于同时可以有多人登录到路由器,几个人可能会同时修改路由器的配置。当你进入配置模式时你会发现其他人正在编辑配置:
    aviva@router1> configure
    Entering configuration mode
    Users currently editing the configuration:
        mike terminal p3 (pid 1088) on since 2005-02-30 19:47:58 PST, idle 00:00:44
    [edit]
    aviva@router1#

这里你会看到mike也登录进来了,正在配置模式中,空闲了44秒。然后,如果有人在你之后进入配置模式,CLI不会显示任何信息,因此你不会被通知。因此你需要检查:
    [edit]
    aviva@router1# status
    Users currently editing the configuration:
      aviva terminal p0 (pid 3358) on since 2005-06-09 11:22:18 PDT
    [edit]
      mike terminal p1 (pid 3768) on since 2005-06-09 11:48:31 PDT
    [edit]

当你修改配置的时候,如果你需要确保其他人任何人不能修改配置的话,使用configure exclusive命令进入配置模式。如果你不提交你所作的改变,当你退出配置模式的时候它们就丢失了。
[/font][/size][font=SimSun][size=2]如果其他用户锁定了配置,你可以强制他退出:

    aviva@router1> request system logout user  mike

当你进入配置模式时或者通过status命令,你会从显示的信息中知道用户名。
[/size][/font]
[table][tr][td][font=SimSun][size=2][/size][/font]
[font=SimSun][size=2][/size][/font]
[size=2][font=SimSun][b]Recipe 1.4. 显示创建配置的命令[/b]

[b]Problem[/b]

你有一份JUNOS路由器配置的拷贝或者你需要在其他路由器上复制一台路由器的配置,而且你要知道使用建立配置的命令。

[b]Solution[/b]

使用下面的命令列出创建配置的命令:
    [edit]
    aviva@RouterA# show |  display set

[b]Discussion[/b]

Show | display set命令是一个快捷的反向工程一台路由器配置的方式,当你正试图在大多数路由器上复制部分配置时,或者当你需要为你的网络操作记录配置,监控,或排错时。如果配置非常复杂的话,并且包括很多长命令和大量输入时,这个命令是非常有用的。
当你管道操作配置模式show命令的输出成显示为set的命令时,JUNOSCLI打印一个你需要从层次结构级别来产生已存在的配置命令列表。当你在配置的顶级(在[edit]级)使用命令时,CLI显示所有配置路由器的必要命令,对于大部分路由来说有很多命令。为了说明,这里有一个来自4个接口的路由器,在[edit interfaces]级别的输出:
    [edit interfaces]
    aviva@RouterA# show | display set
    set interfaces fe-0/0/1 unit 0 family inet address 10.0.15.2/24
    set interfaces se-0/0/2 unit 0 family inet address 10.0.21.1/24
    set interfaces se-0/0/3 serial-options clocking-mode dce
    set interfaces se-0/0/3 unit 0 family inet address 10.0.16.1/24
    set interfaces lo0 unit 0 family inet address 192.168.13.1/32

你可以立即单独剪切这些命令或者所有命令。它们生成下列配置:
    [edit interfaces]
    aviva@RouterA# show
    fe-0/0/1 {
        unit 0 {
            family inet {
                address 10.0.15.2/24;
            }
        }
    }
    se-0/0/2 {
        unit 0 {
             family inet {
                 address 10.0.21.1/24;
             }
        }
    }
    se-0/0/3 {
        serial-options {
            clocking-mode dce;
        }
        unit 0 {
             family inet {
                  address 10.0.16.1/24;
             }
        }
    }
    lo0 {
        unit 0 {
             family inet {
                  address 192.168.13.1/32;
             }
        }
    }


[b]See Also[/b]

Recipe 1.13[/font][/size]

[font=SimSun][size=2][/size][/font]
[/td][/tr][tr][font=SimSun][size=2]<[/size][/font][/tr][/table]

[size=2][font=SimSun][b]Recipe 1.4. 显示创建配置的命令[/b]

[b]Problem[/b]

你有一份JUNOS路由器配置的拷贝或者你需要在其他路由器上复制一台路由器的配置,而且你要知道使用建立配置的命令。

[b]Solution[/b]

使用下面的命令列出创建配置的命令:
    [edit]
    aviva@RouterA# show |  display set

[b]Discussion[/b]

Show | display set命令是一个快捷的反向工程一台路由器配置的方式,当你正试图在大多数路由器上复制部分配置时,或者当你需要为你的网络操作记录配置,监控,或排错时。如果配置非常复杂的话,并且包括很多长命令和大量输入时,这个命令是非常有用的。
当你管道操作配置模式show命令的输出成显示为set的命令时,JUNOSCLI打印一个你需要从层次结构级别来产生已存在的配置命令列表。当你在配置的顶级(在[edit]级)使用命令时,CLI显示所有配置路由器的必要命令,对于大部分路由来说有很多命令。为了说明,这里有一个来自4个接口的路由器,在[edit interfaces]级别的输出:
    [edit interfaces]
    aviva@RouterA# show | display set
    set interfaces fe-0/0/1 unit 0 family inet address 10.0.15.2/24
    set interfaces se-0/0/2 unit 0 family inet address 10.0.21.1/24
    set interfaces se-0/0/3 serial-options clocking-mode dce
    set interfaces se-0/0/3 unit 0 family inet address 10.0.16.1/24
    set interfaces lo0 unit 0 family inet address 192.168.13.1/32

你可以立即单独剪切这些命令或者所有命令。它们生成下列配置:
    [edit interfaces]
    aviva@RouterA# show
    fe-0/0/1 {
        unit 0 {
            family inet {
                address 10.0.15.2/24;
            }
        }
    }
    se-0/0/2 {
        unit 0 {
             family inet {
                 address 10.0.21.1/24;
             }
        }
    }
    se-0/0/3 {
        serial-options {
            clocking-mode dce;
        }
        unit 0 {
             family inet {
                  address 10.0.16.1/24;
             }
        }
    }
    lo0 {
        unit 0 {
             family inet {
                  address 192.168.13.1/32;
             }
        }
    }


[b]See Also[/b]

Recipe 1.13[/font][/size]
[size=2][font=SimSun][b]Recipe 1.5. 在配置中使用注释[/b]

[b]Problem[/b]

你要给路由器的配置文件增加注释,帮助人们读明白路由器是如何配置的。

[b]Solution[/b]

使用annotate 命令增加注释:
    [edit protocols ospf]
    aviva@router1# set area  0.0.0.0 interface fe-0/0/0
    aviva@router1# annotate area  0.0.0.0 "backbone routers"
    aviva@router1# show
    /* backbone routers */
    area 0.0.0.0 {
         interface fe-0/0/0.0;
    }

[b]Discussion[/b]

这通常是一个好习惯,在配置文件中包含注释为阅读配置的人阐明包括了什么。你可以在配置语句的当前层次结构级别添加注释。在这个recipe中,我们在[edit protocols ospf]中给area语句添加了一个注释。注释在语句之前立即出现。
使用annotate命令和一个空字符串删除注释。
    [edit protocols ospf]
    aviva@router1# annotate area  0.0.0.0 "" [/font][/size]

[/font][/size]

沧浪之水 2007-12-5 19:22

都收藏了!~~~~~~~~~~~~~~

雨笑残荷 2007-12-5 20:34

恩...是挺不错的哦!~~~~~~~~~

quadro 2007-12-10 14:34

收藏啦!!! :handshake

青春追风派 2007-12-17 19:08

谢谢了!~~~~~~~~:handshake

feitian5 2007-12-24 12:44

谢谢,有完整版本的吗?

pkneteasy 2007-12-24 13:15

我也要看完整版 的

红叶舞秋山 2008-1-2 13:08

收藏了,这么好的东东还真难找啊!真是不错的类,谢谢

梦幻紫色 2008-1-10 12:34

以前看的都是英文版的,我找这个中文版的找了好长时间了谢谢楼主了.

挥霍 2008-1-10 12:42

我是菜鸟哈、在配置路由协议这方面,我还不是太明白,有没有完整版的,发上来俺们再看看嘛

zona_ma 2008-1-10 14:22

挺不错的哦!~~~~~~~~~~~~~~~~~~~~~

迟迟相遇 2008-1-12 13:29

不错!够详细的,期待这中文第二版的第二部分的文章!

redfox 2008-2-13 17:30

thanks very much

arcom 2008-5-27 16:40

收藏了,这么好的东东还真难找啊!真是不错的类,谢谢

jansen0226 2008-5-28 12:51

好东西啊  就需要这样的东西来看看

jansen0226 2008-5-28 12:52

请问有没有 PDF 之类的东西啊
页: [1] 2
查看完整版本: Junos Cookbook中文版第一章第一部分