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#