dynamips 路由模擬器使用簡介

dynamips是一個模擬CISCO路由器IOS運行的一個軟件,區別於一些培訓中使用的模擬器,他幾乎可以完美的運行CISCO的命令行,幾乎所有的命令他都可以運行。

以下簡單的介紹一下使用前的配製方法。

首先,下載PUTTY.EXE和WinPcap_4_0_beta1.exe這兩個文件,然後解壓縮你下載的這個模擬包。

先安裝WinPcap_4_0_beta1.exe,然後將PUTTY.exe拷貝到C:\windows\system32

1、運行“1 獲取網卡參數.cmd”,選擇相應的網卡參數(具體圖片和實例看PDF,注意一定是物理網卡)。

2、記下來網卡參數後,參看PDF運行“2 獲取idle_pc參數.bat”記錄下來你得到的參數,挑一後面的數字最大的那個記下來。
===================================================
例如:
Done. Suggested idling PC
0x606d0ef0 (count=32)
0x606d0ef4 (count=25)
0x605c33fc (count=80)*我就用的是這個*
0x605c345c (count=79)
0x605c3490 (count=37)
0x605c34a0 (count=56)
0x6067b690 (count=72)
0x6067b6c0 (count=39)
0x6067c820 (count=31)
0x6067d100 (count=68)
===================================================
下面簡單的解釋一下"2 獲取idle_pc參數.bat"文件。用記事本打開文件,可以看到命令。
一個是“cd dynamips”,這條命令是進入相應的目錄(dynamips.exe所在的目錄),此目錄應該和這個BAT文件在相同的目錄下,如果你更改了目錄的文件名,那麼需要在這行命令中作相應的修改。
在這個命令下是一些提示信息。提示信息以下是主要的命令。
簡單介紹一下參數
dynamips -t npe-400 -r 64 -X unzip-c7200-is-mz.122-37.bin
-t npe-400 (設置終端的類型,好像不用更改)
-r 128 (設置內存佔用,我用的這個IOS需要128M,有的IOS只需要64M,當然內存越大越好)
-X (不曉得是幹什麼的)
unzip-c7200-is-mz.122-37.bin(IOS映像文件名,如果你下載了其他的IOS文件,也需要把文件先放在和dynamips.exe相同的目錄理,然後用相應的文件名替換這個參數。注意每當你下載了新的IOS文件,都要重新取得idle_pc參數。)

3、打開“3 修改參數.bat”,就可以看到打開了一個記事本。如果用記事本直接打開dynamips目錄下的rplab.net也是一樣,只是記得修改完了存盤就行了。
下面以我的rplab.net文件做個示範:
===================================================================
autostart = false

[localhost]
port = 7200
udp = 10000

`router R1`
image = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
確定路由器的IOS映象的絕對路徑,根據你的IOS文件名和絕對路徑填寫,一定要正確。
model = 7200
確定IOS的類型
console = 3001
登陸的端口,用SecureCRT登陸,就需要使用這裏面的端口,需要保證每臺設備的端口不同。
npe = npe-400
終端類型
ram = 128
運行時內存大小,可以自己根據IOS映象版本不同自行調整。
confreg = 0x2102
可能初始狀態時0x2142,其實就是路由器的寄存器狀態。
idlepc = 0x605c33fc
這個就是第二步得到的數值,需要自己試驗,通常是數值最大的那個。如果數值不正確,可能導致CPU佔用100%,以及IOS運行性能。
exec_area = 64
不知道幹什麼的。
mmap = true
兩個選擇,true和false,內存小於512的朋友可以選爲true。選true時需要留出相應的硬盤空間,據說是2G左右。
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 1
s1/1 = R2 s1/0
s1/2 = R4 s1/0
以上幾條是模擬IOS的端口配置,和拓撲連接,我還在繼續研究中。據說通過更改這些可以更改拓撲結構。

一下配置解釋同上,不過是另外的路由器的配置,如果鏡像的文件相同,建議使用相同的idlepc數值,可以多個路由器使用相同的IOS鏡象文件。
`router R2`
image = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
model = 7200
console = 3002
npe = npe-400
ram = 128
confreg = 0x2102
idlepc = 0x6080134c
exec_area = 64
mmap = true
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 2
s1/1 = R3 S1/0
s1/2 = R4 s1/1

`router R3`
image = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
model = 7200
console = 3003
npe = npe-400
ram = 128
confreg = 0x2102
idlepc = 0x6080134c
exec_area = 64
mmap = true
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 3
s1/2 = R4 s1/2

`router R4`
image = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
model = 7200
console = 3004
npe = npe-400
ram = 128
confreg = 0x2102
idlepc = 0x6080134c
exec_area = 64
mmap = true
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 4

`ethsw SW1`
1 = dot1q 1
2 = dot1q 1
3 = dot1q 1
4 = dot1q 1
5 = access 1 NIO_gen_eth:\Device\NPF_{98ADB87F-0580-4250-800B-68EA41EA38B0}
這個就是第一步得到的那個網卡參數,按照格式填到這裏就可以了。
=====================================================================

當以上步驟都做完,就可以開始測試了。
按照文件夾內PDF文檔的說明,先運行“4 啓動服務.cmd”,如果你更改了文件目錄,需要編輯此文件的“cd dynamips”命令,更改爲相應的目錄名。然後運行“5 dynagen.bat”,同樣需要確認目錄的正確性。
通過以上的操作,你的模擬器應該可以運行了。

下面的三個連接可以下載,本文內容在CCNA拓撲的壓縮包裏。其他的兩個設置類似,大家自己試驗一下吧。
其中CCNA和CCNP都是模擬7200系列路由器;交換機模擬,模擬的是3600系列設備。
最後一個是SecureCRT一個TELNET登陸軟件。
另外我在嘗試自己做拓撲配置設備型號,等有了結果再在這裏記錄。
下載地址:
[url]http://www.thdao.cn/file/rom/SecureCRT510.rar[/url]()
[url]http://www.thdao.cn/file/rom/WinPcap_4_0_beta1.exe[/url]()
[url]http://www.thdao.cn/file/rom/dynamips.rar[/url]()
[url]http://www.thdao.cn/file/rom/putty.exe[/url]()
如何修改,並生成自己的拓撲圖
Dynamips有不同版本,但目前來看它是一個路由器的模擬軟件,關於交換的部分是模擬了在路由器上插不同端口板。

通常我們用的是0.2.5-RC1到0.2.6-RC2中的某個版本,最新的是0.2.6-RC4。
0.2.5版本僅僅可以支持3640、3660、7200三個型號的設備,只能模擬路由器。
0.2.6-RC1之後,作者加入了在3600系列上對NM-16ESW交換模塊的支持,可以支持3620、3640、3660、7200四種設備,同時解決了某些配置下,電腦CPU佔用100%的問題。
0.2.6-RC3和0.2.6-RC4是作者最近才開發出來的,聽說BUG不少。但是這兩個版本在原有支持的設備上新增了2691、3725、3745。

Dynamips有兩種運行方式,一是作者開發的(廢話),安裝完軟件後,通過編輯BAT文件運行,打開一個BAT文件,就相當於啓動了一臺設備。其優點是運行比較穩定,沒有2G內存佔用的限制(後面會說到這個問題),相對後一種方式的CPU和內存佔用小(大概3%-5%),一臺虛擬設備宕機,不影響其他虛擬設備。缺點是文件較多,需要配合SecureCRT等telnet工具使用,且邏輯性較差,如果想自己做拓撲難度較高(雖然有專用的工具)。

第二種運行方式是使用Dynagen程序,調用.net文件。Dynagen這個程序似乎不是由chris編寫,而是另外的一個人製作的。它克服了BAT模式下需要SecureCRT等telnet工具的弊病(也可以使用),而且其使用的.net配置文件,邏輯性較強,更適合自己製作拓撲結構。但是它對CPU和內存的佔用相對BAT模式較高,而且如果一旦某個虛擬設備宕掉,所有開啓的設備都需要重新啓動。另外,由於32位的Windows系統對程序的運行有一個2G內存的限制,所以無法開啓過多的設備。如果真的需要開啓足夠數量的虛擬設備,需要用其它的方法來彌補。不過就我目前來看,開4個虛擬7200路由器,系統就已經快扛不住了,不知道誰的主機能開10個以上。使用Dynagen程序大都是由一些人對整個程序進行了簡單的修改,最有代表性的就是“工大瑞普模擬器”。

以上簡單說了Dynamips模擬器的情況,下面我們來看它的配置。因爲我個人更喜歡Dynagen的運行方式,所以我們先來看它的配置文件。注:需運行在0.2.6-RC2版本下。
以下我們截取一段配置文件,來看看它的配置方法。
藍色字體爲說明。
*********************************************************************
autostart = false
是否開啓自動運行,如果該值爲true,那麼你運行程序後,所有的設備都會自動啓動(如果設備有很多,那將是個災難),建議設置爲false,以後用哪個開那個就可以了。
[localhost]
port = 7200
udp = 10000
以上是設置所有的虛擬設備使用的端口號,應該是定義了一個起始端口,後面的自行分配,我沒有查到具體的設備端口,僅僅是猜測。

`router R1`
前面的router是定義設備的類型,由此也可以看出,其實Dynamips只能模擬路由器。
後面的R1是你自己定義的設備名稱,需要區別於其他設備。
image = D:\cisco IOS rom\IOS\c3640-jk9o3s-mz.124-10a.bin
這個就是網上下載的IOS文件路徑,最好寫絕對路徑。
model = 3640
這句定義了你的路由器型號,根據不同的IOS寫不同的型號,不同型號的虛擬設備有差異的,這個是3640。
console = 2001
這個是定義了登陸的接口,在整個配置中此值必須唯一。2001其實就是2001端口,看到上面的[localhost]了嗎?那是地址,也可以用127.0.0.1來代替。也就是說,如果你要用telnet的方式登陸,那麼地址就是127.0.0.1:2001,我會專門寫出SecureCRT軟件的用法。
ram = 96
定義這個虛擬設備使用多大的內存,可以自己試試看,如果值太小,虛擬設備啓動不了的,如果你的內存夠大,也可以擴大此值。
confreg = 0x2102
配置寄存器的值,我建議直接設置爲2102,很多朋友都說配置存儲不了,就是因爲這個配置寄存器設成了2142。其實不是不能保存設備,而是如果配置爲2142,設備啓動時不會讀取配置。
idlepc = 0x603e0068
這個數值影響了程序的性能,最好多試幾個。
exec_area = 64
看樣子象是命令或者程序的空間,但是我一直不清楚這個設置是幹什麼的。
mmap = true
如果你的內存足夠大,那麼可以把它設置成false,讓程序完全在內存裏運行。如果你和我一樣,只有512M內存,那麼我建議你設置爲true。注意:如果設置爲true,需要在程序所在的磁盤內留出一定的磁盤空間,推薦預留1G以上的空間。
slot0 = NM-1FE-TX 36系列的1端口快速以太網模塊,連接虛擬交換機必須使用這個。
slot1 = NM-4T 36系列的4端口串口模塊。
slot2 = NM-1FE-TX 36系列的1端口快速以太網模塊,這個用來連接其他的設備。
上面的三行顯示了在虛擬設備的插槽內所使用的模塊(或者叫線卡)。3640可以支持4個模塊,3660支持6個。支持的模塊種類後面再說。
f0/0 = SW9 1 本機的f0/0連接到了名稱爲SW9的設備的1端口。
s1/1 = R2 s3/0 本機的s1/1連接到了名稱爲R2的設備的s3/0端口。
s1/2 = FR1 1 本機的s1/2連接到了名稱爲FR1的設備的1端口。
f2/0 = SW1 f1/15 本機的f2/0連接到了名稱爲SW1的設備的f1/15端口。
以上4行顯示了拓撲的連接情況,=前面的是本機的端口,=後面的是鏈接到的設備名稱和端口。格式爲:本機端口=對方名稱對方端口。一旦在這裏定義了連接,則不需要在對端設備進行設置,否則會出錯。

`router R2`
同上,這個設備叫“R2”。
image = D:\cisco IOS rom\IOS\c7200-jk9o3s-mz.124-10a.bin
這個設備使用的是7200的IOS,7200和3600可以使用的模塊不一樣喔。
model = 7200
定義設備爲7200。
console = 2002
這個設備用2002端口登陸。
npe = npe-400
定義7200的NPE類型,具體幹什麼用,我還不明白,不過用這個數值就挺好。
ram = 128
7200當然要大一些的內存嘍,我設置128M據說有人設置256M。
confreg = 0x2102
idlepc = 0x6074ae38
exec_area = 64
mmap = true
以上幾條和第一個設備相同,是通用配置,以下不再贅述。
slot0 = PA-C7200-IO-FE 7200的1端口快速以太網模塊,連接虛擬交換機必須用這個。
slot1 = PA-FE-TX 7200的1端口快速以太網模塊,這個端口用來連接其他的設備。
slot2 = PA-A1 7200才支持的1端口ATM模塊,36系列不支持這個的。
slot3 = PA-4T 7200的4端口串口模塊。
好了,看到了嘛,36系列和72系列的模塊是不一樣的,自己做拓撲的時候可別弄亂了。[/FONT-COLOR]
f0/0 = SW9 2 本機的f0/0連接到了名稱爲SW9的設備的2端口。
f1/0 = SW1 f1/14 本機的f1/0連接到了名稱爲SW1的設備的f1/14端口。
s1/2 = FR1 2 本機的s1/2連接到了名稱爲FR1的設備的2端口。
a2/0 = AT1 1 本機的ATM a2/0端口連接到了名稱爲AT1的設備的1端口。
以上是這個虛擬設備的拓撲連接,R1和R2有一條串行鏈路,因爲在R1上進行了定義,所以不用再在這裏定義了。

`router SW1`
這個設備叫SW1,因爲它的主要功能是模擬交換機,但是設備類型依然是router。
image = D:\cisco IOS rom\IOS\c3640-telco-mz.123-11.T.bin
這次我們使用3640的IOS文件。注意:如果你想要模擬可管理的交換機,必須用3600系列的IOS,而且版本越高越好否則無法支持所需的模塊。
model = 3640
console = 3001
定義登陸端口3001。
ram = 128
confreg = 0x2102
idlepc = 0x60fe8088
exec_area = 64
mmap = true
slot0 = NM-1FE-TX 36系列的1端口快速以太網模塊,上面說過了。
slot1 = NM-16ESW 36系列的16端口快速以太網模塊,模擬可管理交換機就靠他。
f0/0 = SW9 3 本機的f0/0連接到了名稱爲SW9的設備的3端口。
f1/11 = PC1 f0/0 本機的f1/11連接到了名稱爲PC1的設備的f0/0端口。

`router PC1`
這個設備叫做PC1,我們用一個路由器來模擬一臺PC,可以多模擬幾個,然後接到交換機上練習VLAN配置,這裏就說一個。
image = D:\cisco IOS rom\ios\c3640-i-mz.112-20.P.bin
這個IOS其實沒什麼要求,越小越好。因爲我們只需要它有個以太口,同時我們不用它什麼功能,有個ping 和trace命令就夠了。
model = 3640
console = 4001
虛擬PC從4001開始。
ram = 32
只要能運行,內存越小越好。
confreg = 0x2102
idlepc = 0x6017144c
exec_area = 32
mmap = true
slot0 = NM-1FE-TX 就這一個模塊。

`ATMSW AT1`
前面的ATMSW說明這個設備是ATM交換機,後面的AT1是它的名字,方便大家連接他。這個設備不可管理,就象是ISP的設備。
1:1:100 = 2:2:200
應該是ATM的參數,但是我還沒有學會ATM技術,所以這個數值我也不知道是怎麼回事。以後學了再補上。

`ethsw SW9`
前面的ethsw說明這個設備是以太網交換機,後面的SW9是它的名字,方便大家連接他。這個設備同樣不可管理。
1 = dot1q 1 端口1,封裝802.1Q,屬於VLAN1。
2 = dot1q 1 端口2,封裝802.1Q,屬於VLAN1。
3 = dot1q 1 端口3,封裝802.1Q,屬於VLAN1。
4 = access 1 NIO_gen_eth:\Device\NPF_{DE5D9A8A-6CC2-4F44-BEC4-4FC0EEEB566C}
這個是你的網卡,相當於你的網卡也接在了這個虛擬的交換機上,建議將網卡設置上。

`FRSW FR1`
前面的FRSW說明這個設備是幀中繼交換機,後面的FR1是它的名字,方便大家連接他。這個設備也不可管理。
1:102 = 2:201
以上應該是幀中繼交換機的虛電路,還沒有比較透徹的理解幀中繼,以後補吧。
*********************************************************************

另外需要說明的是,在配置文件中你可以用“#”來進行配置語句的註釋。
例如:slot0 = NM-1FE-TX #36系列的1端口快速以太網模塊
好了,.net文件就這樣,我們可以自己搭建自己的拓撲了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章