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+端口)对的映射就能够了。
在创建好上面的映射关系后,保持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#