Juniper模拟器使用指南

Juniper 模拟器使用指南
                                              Maa 2007-5-19 BJ

前言

本文的立意是在没有友商设备的情况下,利用 VMware 模拟器实现对友商设备协议部分内容的分析,对于新业务的理解和开发以及与友商设备的互通有着一定程度的帮助。
在此特别感谢蛋蛋同学,在他的个人网站nio.name 上我知道了Juniper 的这个模拟器,并且从此入门,再次向他致敬。
 
PS:删除了自己新浪blog上的内容,将这一篇文档转移到51上来。

资源准备

VMware 5.5 模拟器软件
Named Pipe TCP Proxy 软件
JUNOS 8.1R1.5 (提供封装好的 VMware 文件,我也是从蛋蛋的网站上获得的)
 

软件安装

分别安装 VMware NPTP 软件,在此不对软件的安装进行说明,按照对应软件的默认提示安装进行即可。
 

软件使用

NPTP
其作用有点类似于部门使用的串口服务器,它把设备的串口和一个( IP+ 端口)对映射在一起,我们只用 telnet 这个 ip 的对应端口,就可以获得相当于访问该设备串口的服务。
 
按下图建立一个串口和( IP+ 端口)对的映射就可以了。
 
 Juniper模拟器使用指南_第1张图片
 
 
 
在建立好上面的映射关系后,保持 NPTP 软件始终打开就行。
 
VMware
    VMware 打开封装成 VMware 文件的 JUNOS 后如下图所示:
 
 
该图是一个还未启动的 JUNOS ,可以看到上面的一些 Devices ,比如内存,硬盘,网卡以及串口( Serial )和 CPU ,都是可以编辑的,这里我们对 Serial 进行编辑,使其能够和 NPTP 软件设置的映射关联起来。双击 Serial 图标,弹出 [Serial port] 的对话框,设置其中的 [Connection] 部分,采用 [Use named pipe] 方式,并将 named pipe 设置为和 NPTP 软件中一致的 named pipe ,如下图所示。
 
 
这时,如上图中的 junos2001 junos2002 junos2003 分别代表三台 Juniper 的路由器,其中每台路由器具备 4 个网口。可以通过对网口的编辑,让路由器之间能够互通。双击网卡,通过弹出的 [Network adapter] 对话框可以看出网卡有四种类型,其中用户自定义类型可以通过自定义方式在 window 操作系统下产生一个虚拟网卡,使得虚拟机设备可以通过该虚拟网卡和 windows 操作系统通信,以便可以比较方便的抓包。
 
 
上面的相应配置做好之后,启动虚拟机,这时虚拟机界面会一直停留在如下图的界面,这是正常的。此时,请打开你的终端控制台,使用 telnet 方式访问之前通过 NPTP 软件设置好的 ip 地址和端口号,就可以看到本来是串口上看到的启动信息,等待系统启动完毕,会提示输入用户名和帐号。此后就可以正式配置 Juniper 的路由器了。
 
 
 

JUNOS使用

JUNOS 的配置模式:按我的理解 JUNOS 有三种模式
@% 
    操作系统模式,处于 FreeBSD 操作系统,可以使用常用的 FreeBSD 相关命令,比如 ls pwd cd 等等,通过命令 cli 可以进入用户模式;
>  
    用户模式,经过 JUNOS 封装的系统,可以进行一些简单的命令配置和所有信息显示,类似于我司路由器的 config t 之前的模式,使用 configure 命令可以进入配置模式;
#
    配置模式,在此模式下对路由器进行配置,类似于我司路由器的 config t 之后的模式。
 
JUNOS 的命令风格:
JUNOS 的命令风格在业界很特别,仅与 Alcatel 的命令风格略有相似之处。这里只作简单的介绍,具体的使用希望大家钻研。
 
JUNOS 采用 edit set delete show run show commit 来完成主体功能的配置。值得注意的是,在完成了某项功能的配置之后,只有使用 commit 命令提交成功之后,该配置才会生效,在 commit 提交之后,系统会对提交的配置进行合法性检查,只有通过合法性检查才算提交成功,否则系统会给出错误信息。合法性检查仅检查配置的合法性,并不检查配置的准确性与正确性,请注意。
 

RSVP的相关配置

RSVP 功能主要从 interfaces protocols routing-options 三个方面进行配置。
Interfaces
初始时, interface 视图下是没有什么配置的,但是我们可以通过 (run) show interfaces terse 命令看到有 em0 em3 四个网口,这就是我们虚拟机里看到的四个 intel 千兆网卡。
 
 
 
这样,我们需要给对应的网卡和 lo0 配上需要的 ip 地址。   
完成如下的配置即可
 
 
     
当完成了上述配置之后再显示接口信息会如下图。
 
 
        
值得注意的是,进行 TE 的相关配置时,物理接口必须支持 mpls 协议族,即 family mpls 。同时给物理接口配置了地址之后,可能使用上面的命令看不到具体的地址信息,并且也 ping 不通对端接口,这是正常的,应该是模拟器的原因,这时候需要保存一下配置,重启模拟器,就正常了。
 
Protocols
    Protocol 视图下,需要编辑三个对应的子视图, rsvp 子视图、 mpls 子视图和 ospf 子视图(视具体选用的 igp 而定)。
 
Rsvp 子视图的配置如下:
 
 
在子视图下添加 rsvp 接口,即使能对应接口的 rsvp 功能即可,这类似于我司设备在物理接口下使能 te 功能和设置带宽参数。
Mpls 子视图的配置如下:
 
 
在该视图下,首先也要添加 mpls 接口,其次在 te 隧道和其路径的配置都在该视图下进行,上图中的 lsp path 分别对应 te 隧道和显示路径,其他的一些属性配置整个业界大致都是一致的,仔细找下具体的命令即可,这里主要描述一个配置框架,不对细节太过于描述。
 
Ospf 子视图的配置如下:
 
 
在子视图下添加 ospf 接口,并配置 ospf 支持 te ,与我司设备配置一致。这里需要注意的是,由于模拟器的原因, ospf 不能支持组播,所以需要将 ospf 接口类型设置为 nbma ,并且显示指定 ospf 邻居,才能触发 ospf 发送单播的协议报文,建立 ospf 邻居,还有哪些方式可以实现同样的功能,个人没有去探究,因为在这里重点关注的是 te 而非 ospf ,望谅。
 

相关附件

一个较完整的配置和相关 lsp 的显示信息
           
root@% cli 
root>      
           
root> configure                
Entering configuration mode    
Users currently editing the configuration:         
  root terminal d0 (pid 3417) on since 2007-04-22 21:26:51 UTC         
      [edit protocols]         
           
[edit]     
root# run show configuration   
## Last commit: 2007-04-22 21:31:39 UTC by root    
version 8.1R1.5;               
system {   
    root-authentication {       
        encrypted-password "$1$67/rC6nA$NeboJ.WtV2i2UNzJHAyZT/"; ## SECRET-DATA            
    }      
    login {
        user mafm {            
            uid 2000;          
            class super-user;  
            authentication {   
                encrypted-password "$1$sp2gEjZW$RSjEalukJwDsrMZplbM 7L 0"; ## SECRET-DATA    
            }                  
        }  
    }      
    services {                 
        telnet;                
    }      
}          
logical-routers {              
    J2001; 
}          
interfaces {
    em0 {  
        unit 0 {               
            bandwidth 2m ;      
            family inet {      
                address 192.168.22.201/24;         
            }                  
            family mpls;       
        }  
    }      
    lo0 {  
        unit 0 {               
            family inet {      
                address 202.1.1.1/32;              
            }                  
        }  
    }      
}           
routing-options {              
    static {
        route 0.0.0 .0/0 next-hop 192.168.22.1;     
    }      
    router-id 202.1.1.1;       
}          
protocols {
    rsvp { 
        interface em0.0 {      
            bandwidth 2m ;      
        }  
        interface em1.0;       
    }      
    mpls { 
        traffic-engineering mpls-forwarding;       
        admin-groups {         
            gold 1;            
            silver 2;          
            copper 3;           
            best-effort 4;     
        }  
        class-of-service 0;    
        label-switched-path frr {                  
            to 202.1.1.3;      
            record;            
            admin-group include-all [ silver copper ];                  
            fast-reroute;      
            primary lsp1;      
        }  
        label-switched-path bypass {               
            disable;           
            to 202.1.1.2;      
            primary lsp2;      
        }  
        path lsp1 {            
            192.168.23.203 loose;                  
        }  
        path lsp2 {            
            192.168.23.202 strict;                 
        }  
        interface em0.0 {      
            admin-group [ gold silver copper best-effort ];            
        }  
        interface em1.0;       
    }      
    ospf { 
        traffic-engineering {  
            shortcuts lsp-metric-into-summary;     
        }  
        are a 0.0.0 .0 {         
            interface em0.0 {  
                interface-type nbma;               
                priority 10;   
                neighbor 192.168.22.202;           
            }                  
            interface lo0.0;    
            interface em1.0 {  
                interface-type nbma;               
                priority 20;   
                neighbor 192.168.23.202;           
            }                  
        }  
    }      
}          
            
[edit]     
root#      
           
[edit]     
root#      
           
[edit]     
root#      
           
[edit]     
root#      
           
[edit]     
root# run show mpls lsp        
Ingress LSP: 1 sessions        
To              From            State Rt ActivePath       P     LSPname
202.1.1.3       202.1.1.1       Up     1 lsp1             *     frr    
Total 1 displayed, Up 1, Down 0
           
Egress LSP: 0 sessions         
Total 0 displayed, Up 0, Down 0
           
Transit LSP: 0 sessions        
Total 0 displayed, Up 0, Down 0
           
[edit]     
root#      
           
[edit]     
root#      
           
[edit]     
root# run show mpls lsp extensive                  
Ingress LSP: 1 sessions        
            
202.1.1.3  
  From: 202.1.1.1, State: Up, ActiveRoute: 1, LSPname: frr             
  ActivePath: lsp1 (primary)   
  FastReroute desired          
  LoadBalance: Random          
  Encoding type: Packet, Switching type: Packet, GPID: IPv4             
 *Primary   lsp1             State: Up, COS: 0     
    SmartOptimizeTimer: 180    
          Include All: copper silver               
    Computed ERO (S [L] denotes strict [loose] hops): (CSPF metric: 51)
 192.168.22.202 S 192.168.23.203 S                 
    Received RRO (ProtectionFlag 1=Available 2=InUse 4=B/W 8=Node 10=SoftPreempt):         
          192.168.22.202 192.168.23.203            
    5 Apr 22 21:31:39.541 Selected as active path  
    4 Apr 22 21:31:39.523 Record Route:  192.168.22.202 192.168.23.203 
    3 Apr 22 21:31:39.523 Up   
    2 Apr 22 21:31:39.458 Originate Call           
    1 Apr 22 21:31:39.458 CSPF: computation result accepted  192.168.22.202 192.168.23.203 
  Created: Sun Apr 22 21:31:38 2007                 
Total 1 displayed, Up 1, Down 0
           
Egress LSP: 0 sessions         
Total 0 displayed, Up 0, Down 0
           
Transit LSP: 0 sessions        
Total 0 displayed, Up 0, Down 0
           
[edit]     
root#      
 

你可能感兴趣的:(vmware,职场,模拟器,休闲,juniper)