分佈式 dynamips+dyangen (更新於07.3.30)

更新內容:
很多網友都反映用此文方法行不通,現象爲:分佈在各計算機上的路由器能起來,但互聯的端口是Down的,以至於ping 不通。在此特別感謝 flyxj 網友QQ聯繫到我才引起我的高度注視使問題得到解決,不會再給讀者誤導(本人能力是很有限的)。
原因經分析找到了,NET文件中有[localhost]一句,localhost 會被本地的hosts文件解析成127.0.0.1,想畢各位已經明白了吧,分佈在各計算機上的路由器之間的連接是通過UDP=後邊指定的端口通信的,由於127 和192不在同一子網,所以端口自然UP不起來了。
注意:筆者用最新的dynamips 0.2.7RC1和dynagen 0.90 實驗不成功,有錯誤提示,google 了一下說是兩個版本不匹配(暈)。請更新後仍不成功的朋友換本文推薦的版本試一下


dynamips 固然是個好東西,但其對內存苛刻的要求又讓人頭痛,雖說現在的內存比較便宜了,可對於像我這樣的學生一族,又豈能承受的了。筆者01年買的電腦,一直也在升級,到現在才用上了512的內存。
那些有錢人新買來的電腦多是1G內存雙核CPU,居然用來玩卡丁車,內存佔用沒上過500,這自然勾起我節約能源的愛國之心,用他們的電腦分擔幾臺路由器,來完一大網絡的模擬。“要學會花別人的錢”,嘿嘿,“要學會用別人的電腦”更恰當!於是筆者嘗試了一下dynamips的分佈式功能。

我們舍宿四臺電腦,通過四口的傻瓜路由相連。不詳細說了,充份發揮一下拓樸的優勢!
Highslide
Copyright by Beafuture's blog


下面以 dynamips for 工大瑞普full version 爲藍本實現如下的拓樸(老版本可能會存在問題)
Highslide
Copyright by Beafuture's blog


要再每臺電腦上安裝上winpcap,並按如下結構複製文件。
e:\
┠─dynamips
        ┃
        ┣ ios ━ unzip-c3620-i-mz.122-37.bin
        ┃
        ┣ dynamips   ━┳cygwin1.dll
        ┃                      ┗dynamips-wxp.exe
        ┣ workingdir         //空目錄
     ┗ 啓動虛擬服務.cmd         //內容爲:cd dynamips
                                                             dynamips-wxp.exe -H 7200

本次實驗筆者是在PC1上作的,前端程序dynagen要放到PC1上,所以要加入如下目錄和文件:
e:\
┠─dynamips
        ┃
        ┣ dynagen ━┳configspec
        ┃                   ┣dynagen.exe
        ┃                   ┣dynagen.ini
        ┃                   ┗library.zip
        ┣ labini ━━━ test.net   //內容見下
     ┗實驗控制檯.cmd           //內容爲:cd dynagen
                                                           dynagen.exe ..\labini\test.net

test.net 文件內容:

autostart = false

[192.168.1.101]
port = 7200
udp = 10000
workingdir = ..\workingdir\
   
   `router R1`
   p_w_picpath = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3001
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false
   slot0 = NM-1FE-TX
   slot1 = NM-4T
   s1/1 = R2 s1/0
   s1/2 = R4 s1/0

[192.168.1.102]
port = 7200
udp = 10000
workingdir = ..\workingdir\

   `router R2`
   p_w_picpath = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3002
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false  
   slot0 = NM-1FE-TX
   slot1 = NM-4T
   s1/1 = R3 S1/0
   s1/2 = R4 s1/1

[192.168.1.103]
port = 7200
udp = 10000
workingdir = ..\workingdir\

   `router R3`
   p_w_picpath = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3003
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false
   slot0 = NM-1FE-TX
   slot1 = NM-4T
   s1/2 = R4 s1/2

[192.168.1.104]
port = 7200
udp = 10000
workingdir = ..\workingdir\

   `router R4`
   p_w_picpath = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3004
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false
   slot0 = NM-1FE-TX
   slot1 = NM-4T

此時在PC1上運行
實驗控制檯.cmd
啓動虛擬服務.cmd
PC2 3 4 上分別運行 啓動虛擬服務.cmd ,這樣就可以實驗了。

總結:
其實原理很簡單,dynagen作爲前端,所以只需要在操作此實驗的pc上有就行了,net文件也應在此pc上。而路由器是運行在各個服務器端的,所以dynamips要在每個PC上都有,ios也要放在服務器端。dynagen會將NET文件中的信息發送給各各服務器端,並實現各路由器之間的連接,有了這個思想就可以用更多的pc搭建更大的拓樸了。

此文章是回憶實驗寫的,有出錯或不明白的請留言(推薦),或至email到:[email][email protected][/email]

作者:Beafuture'blog
地址:[url]http://www.pppei.cn/blog/post/34/[/url]
版權所有。轉載時必須以鏈接形式註明作者和原始出處及本聲明!

0

收藏

cnhbhg

19篇文章,7W+人氣,0粉絲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章