大家好,我是新盟教育的小瑤同學。今天為大家分享網絡工程師必須精通的模擬器教程——小凡(Dynamips),還在發愁網絡實驗從何開始嗎?實驗模擬器的安裝、設置、使用教程妥妥全了,圖文并茂,拿起你的軟件壓縮包,跟著一起做吧~
聲明:本文主要是為剛剛認識dynamips這個模擬器的朋友。我寫這個東西是因為這個模擬器比較有實用價值。希望大家用好這個模擬器,完成學習。有什么問題歡迎大家在評論區發言。
不說廢話了直接進入主題吧,看門見圖:
首先我按圖中序號對每個區域進行介紹:
①:此區域是選擇交換機和路由器的個數(有點廢話)
②:這個地方是選擇設備類型,IOS路徑,idle-p值NPE類型,虛擬(表示虛擬設備的RAM所占的內存大小,因為dynamips在模擬時候需要將主機的物理內存模擬成模擬設備的RAM)
③:此區域是配置分布式的dynamips的設置區域(請看分布式專題),對諦率擲此?這個區域暫時還用不到.
④:這里可以選擇一些不需要IOS的模擬設備。如:FrameRelay交換機ATM交換機,以太網交換機(現在已經有支持交換的模塊NM-16ESW).由模擬器自己提這些功能.
⑤:設備類型,選擇你所需要模擬的設備,以上的設備為dynamips目前支持的類型,其他的都不支持.
⑥:這里可以設置連接到主機通信(下文詳細介紹)
⑦:可以直接讀取真實設備里的NVRAM里的配置文件(.ini格式)
⑧:輸出目錄(自己先建立).
(根據上面這個拓撲來介紹,希望大家在弄懂基本東西以后,可以再舉一反三吧。東西是活的,活學活用!)
接下來,我從起始配置到最后開始實驗再做逐步講解。
1.首先選擇根據上面這個拓撲圖(建立在做實驗的時候在草稿紙上畫好拓撲圖,注釋好個端口設備的IP)。我們來用dynamipsGUI來配置腳本文件(注意:現在的dynamipsGUI和dynamipsee都是可以視化的寫dynamips的腳本程序,不是模擬器。很多初學者,總以為這兩個程序是模擬器。真正的模擬器是dynamips )。未安裝的朋友請先下載,下載好安裝,點擊桌面DynamipsGUI圖標打開即可。
2.好了,打開以后,根據上面的圖我們假設R1,R2,R3都使用3640,而R4使用7200.那么我們選擇路由器個數為4,并選擇橋接到PC。在⑤設備類型里鉤選3640 和7200。如圖:
3.在②設備配置區域里下拉選擇7200,然后瀏覽選擇你的IOS文件點擊下載IOS(cisco ios文件夾).(注意IOS在網上下載后,后綴名為BIN,大家需要將后綴名字改為RAR,然后再解壓出來,這樣在運行模擬設備時候就避免了再解壓)接一下步是最讓初學者感到困惑的地方,計算idle-pc值(idle-pc只為了解決在開啟模擬設備時不至于你的CPU占有率達到100%,所以這個值對于能做好實驗很重要)。好,指定好IOS路徑以后,我們點擊計算idle-pc,確定IOS文件存在,之后在彈出窗口中按任意鍵繼續。如圖:
之后看到的就是設備的啟動了(如同真實設備一樣)。然后在設備的用戶模式下(Router>)下先按組合鍵ctrl+] 接著在單獨按i鍵。記住不要三個鍵一起按。按完以后就是等待了。如圖:
等待一會兒,出現下圖:
看到下面出現一排值,這就是我們所需要的idle-pc值。那么這么多我們怎么選擇呢?好!注意看count等于后面的數字。找到一個count最大值,然后記下前面的一串16進制數。例如上面這圖,count=72,這個里面有兩個72的值,我們同時記下這兩個值。0x605c33fc 和0x605c345c。然后再回到dynamipsGUI界面,將0x605c33fc(或者0x605c345c)填入,(說一下這地方的原則:大家不要一味的相信最大值就是必須要選擇的值,這要看情況而定,如果當你選擇一個最大值,然后在后面開設備的時候卻出現了CPU100%的情況,那么這個時候你就應該重新去計算idle-pc值,直到CPU占有率維持在一個正常值,我上面說的選取最大的count值是應該理解為從最大的count值開始去試,這樣一直到找到一個合適的idle-pc值)
4.接下來是NPE類型這里 dynamipsGUI已經有默認值了,我們不需要在去設置它,而在虛擬內存這里dynamipsGUI作者也給出了各個類型模擬器的默認值,大家可以根據IOS的大小去更改,也要根據自己的物理內存而定。而后面的參數128 --disk0 4 ,128的意思是拿128MB的物理內存來作為虛擬設備的RAM, --disk0 4是dynamips的參數在說明文件中的解釋為: --disk0 <size> : Set PCMCIA ATA disk0: size.這是節省內存的參數.不過3600不支持這個參數,大家如果想深入研究可以讀說明文檔內容,如下:
The emulator currently supports the following platforms:
- Cisco 7200 (NPE-100 to NPE-400)
- Cisco 3600 (3620, 3640 and 3660)
- Cisco 2691
- Cisco 3725
- Cisco 3745
- Cisco 2600(2610/2611/2620/2621/2610XM/2620XM/2650XM)
To emulate another platform, use the "-P" command line option (for example,
"-P 3725" or "-P 3600").
For the 7200, you can change the NPE type with the "-t" option.
It is possible to select "npe-100", "npe-150", "npe-175", "npe-200",
"npe-225", "npe-300" and "npe-400". The "npe-g1" is not working.
For the 3600, a 3640 with 128 Mb is emulated by default. You can change this
with the "-t" option and by specifying "3620" or "3660".
Don't forget to set the chassis type depending on your IOS image,
a c3660 image will not run on c3640 hardware and vice-versa.
Remark: PCMCIA card emulation is not supported yet with Cisco 3600.
還有一個要說明的,大家如果在以后碰到dynamipsGUI界面的虛擬碰到后面跟一個參數-X(注意為大寫)比如96 –X 意思是不使用一個模擬的RAM文件,這樣可以使用速度更快.原說明文檔也有介紹:-X : Do not use a file to simulate RAM (faster)
小編對新手的建議:關于NPE,大家在使用dynamipsGUI時就使用默認的,關于虛擬大小如何設置,主要還是根據你的IOS大小來定,dynamipsGUI也給了默認值。
5.接下來我要拿來單講的就是這個寄存器的值了。很多人在做實驗的時候都問,為什么copy run start以后,下次重新啟動虛擬設備時,設置沒有被保存?主要就是這個地方的設置問題了。學思科的人都清楚0x2142和0x2102了.。0x2142啟動時是不從NVRAM讀配置;而0x2102相反,因為dynamips默認是0x2142 所以我們需要在這個地方改為0x2102就可以了。然后再到虛擬的路由設備里面在show ver看看,你會發現寄存器的值0x2142(雖然我們這之前在dynamipsGUI已經配置過)但還是要重新再改一次寄存器的值才能最后保存你的配置命令:config-register 0x2102
然后再配置在copy run start,再reload看看,你就會發現設置保存成功!
6.好的~上面已經把7200都配置好了,完成以后,點寄存器下面的確定,3640也是一樣(其它的設備也是如此配置)配置完后確定,OK!兩個設備都配置完畢。接下來,哦~還記得我上面的那個拓撲圖吧。對,還有一個橋接到本地PC與我們自己的主機通信(我要說明一下:不一定非要橋接到PC,我這里是故意弄一個PC橋接,因為很多朋友這個地方搞不清楚),我們選擇⑥區域里的下拉,選擇NIC-O(dynamips可以支持多塊網卡橋接),然后點擊計算橋接參數,在彈出的界面里已經有很詳細的說明。如圖:
在這里我就不再重復了(免得說我羅嗦!)。只說一點.例如這張圖中我們應該選擇的是第三個網卡信息,即本地網卡信息而不應該選擇第二個(是PPPOE撥號的),OK。如本圖應該為: \Device\NPF_{36CC519A-AAF8-4C53-A9EC-7E0B88D917D6},記下網卡信息最好填到dynamipsGUI界面相應位置。好了,現在選擇一個輸出目錄吧,下一步!!
6.這里就是確定設備名字和telnet端口還有各個slot模塊信息。關于slot的模塊可以期待下我后面的文章(下面我不再作模塊介紹了):配置好每個設備點擊確定配置,好,根據上面那個拓撲圖我也配置一下。首先是R4(7200)根據圖中要求如圖:
然后是3640 三個都是一樣的:
這里我解釋一下界面下面的控制臺輸出(操作系統我就不廢話了,不會還有哪個連自己是什么系統不知道的),如果選擇TCP輸出則需要用telnet連接。推薦使用SecureCRT 。
如果是直接輸出,就是不用telnet連接了,直接在窗口下輸出CLI界面,就是???(沒辦法說清楚了,大家自己去用用看就知道了)。完事!下一步。
7.根據拓撲連設備吧。就是將拓撲圖中各個相連的端口連起來(廢話),我也連了一下。發個圖,新手自己慢慢體會~(注:圖中XPC就是主機)
最后完事點生成BAT文件。再到你的輸出目錄里去吧~生成的文件如圖:
然后依次點R1.bat,R2,bat,R3,bat,R4.bat 意思是打開這四個模擬路由器!.
然后就用SecureCRT連接了IP地址是:127.0.0.1 端口根據配置的console的值!
例如本教程中R1路由器端口設置的是2001 下面我們使用SecureCRT來登陸。
安裝好SecureCRT 打開,點在標簽中建立連接
如下圖:
點新會話看下圖:
接著下圖:
下一步如圖:
接著下一步就可以了,最后在連接就看到下圖了:
寫到這里,小凡(Dynamips)模擬器的安裝、配置、使用教程就基本結束了,后面就看各位工程師們在上面的大展宏圖了。順便說一句,如果你還沒有模擬器的軟件、SecureCRT 、iOS等等,就在評論區留下你的郵箱,小編看到就會發給你啦!
最后,祝各位網絡工程師們學習順利,技術步步高升!
PNET支持多種鏡像,比如dynamips、IOL、QEMU等。正常IOL、dynamips的鏡像一般L2、L3的網絡設備鏡像,而QEMU格式的鏡像就顯得非常的多了。比如思科的ASAv、ESA、WSA、N9K、ISE、CSR、StealthWatch等網絡設備鏡像,華為的USG6000v、WAF5000、AR1000等網絡設備鏡像,H3C的vAC、vBRAS、vFW、vLB、vSR等網絡設備鏡像,還包括了國外的Check Point、F5、Juniper等著名廠商設備鏡像。
上傳鏡像自然需要調用到CLI登錄進服務器,將鏡像上傳至指定目錄,不同的鏡像需要上傳至不同的目錄,才能夠被PNET所識別。
連接到PNET所在的服務器,需要用到類似XSHELL(配套XFTP)、secure-CRT、putty、WSL等終端連接工具,下面推薦一款。
secure-CRT
SecureFX
1、dynamips鏡像介紹
Dynamips用于模擬思科設備的模擬器,能夠模擬1700、2600、3600、3700、7200平臺。因為它能運行標準的IOS鏡像,盡管模擬器陳舊,但是很多人還是喜歡用。
目前常用的就是C3725和C7200鏡像
2、IOL鏡像介紹
IOL(IOS on LINUX)是思科路由器和交換機的OS,可以運行在x86平臺的任意LINUX發行版系統之上。IOL具備支持交換機的高級特性、占用系統資源更少、啟動更快等特點。
缺點就是BUG較多,部分高級特性(比如PVLAN、鏈路聚合)只有指定版本支持,一般使用IOL的L2、L3層鏡像
3、QEMU鏡像介紹
QEMU使得EVE-NG擁有更加強大的虛擬能力。隨著KVM與QEMU越來越容易使用,很多設備廠商也都開發了能夠在KVM環境下運行的鏡像,甚至能適配openstack環境。QEMU類型的鏡像種類眾多,不僅僅支持網絡設備,連操作系統都支持。所以QEMU類型的鏡像相比dynamips和IOL更為復雜,涉及目錄和鏡像文件的名字也必須和官方給定的名字。
Dynamips鏡像格式以.image為后綴名,Dynamips鏡像上傳至/opt/unetlab/addons/dynamips/目錄下。
上傳dynamips全過程:
修正權限的作用主要是保證dynamips對于這個IOS鏡像有讀取的權限。
Dynamips是個模擬器,它會在x86的平臺下模擬cisco的CPU,所以dynamips需要實時地將虛擬地CPU的指令翻譯成在x86下可執行的指令。Idle-pc(idle pointer counter)就是空閑計數器,這里簡稱idle值,用來記錄虛擬CPU何時不工作,從而可以在它不工作時停止翻譯工作,這樣就能降低dynamips的CPU占用率。如果使用了錯誤的idle值將會導致dynamips的CPU占用率過高,所以需要計算出合適的idle值以降低CPU占用率。計算idle值需要用到dynamips命令,那么先來看一下dynamips的命令。格式:dynamips -P <ios_image>
本例以3725平臺為例,鏡像名為c3725-adventerprisek9-mz.124-15.T14.image
1、加載鏡像:dynamips -P 3725 /opt/unetlab/addons/dynamips/c3725-adventerprisek9-mz.124-15.T14.image
2、計算idle值:同時按住ctrl + ] ,大約15s左右,快速放開按i,即可開始計算idle值。記住idle值 --idle-pc=0x60c09aa0
3、退出,同時按住ctrl + ],也是相同時間,快速放開按q,即可退出
4、使用計算的idle值來啟動dynamips鏡像:dynamips -P 3725 /opt/unetlab/addons/dynamips/c3725-adventerprisek9-mz.124-15.T14.image --idle-pc=0x60c09aa0
不管是計算idle還是退出,都有點反人類設計,很容易就不能成功,所以多試幾次,把握時間精度,
未使用計算的idle值CPU占用量
可以看到dynamips進程占用了CPU資源的100%
使用了計算的idle值CPU占用量
可以看到dynamips進程占用CPU資源的2%
但是你會發現,每次運行都要使用idle值很麻煩,進入/opt/unetlab/html/templates/目錄,查看到所有的yml文件,其中部分文件就是修改idle值的關鍵。
我們通過修改/opt/unetlab/html/templates/下的dynamips設備文件,比如c3725.yml,將計算的idle值填入到idlepc字段,這樣下次啟動c3725時,就會以該idle值運行,占用CPU資源將非常的少。同理其他dynamips計算出的idle也可以對相應的yml文件進行修改!
刷新頁面
IOL鏡像格式一般以.bin為后綴名,IOL鏡像需要上傳至pnet的/opt/unetlab/addons/iol/bin/目錄中。導入IOL鏡像后,需要執行CiscoIOUKeygen.py的工具來生成license,然后將license導入進iourc中。
IOL鏡像命名規則:
示例:i86bi_linux-adventerprisek9-ms.155-2.T.bin
上傳IOL鏡像全過程:
[license]
pnetlab=c833425160bc61ec;
QEMU的鏡像,官方對于該鏡像的上傳和識別有著相應的標準。就是QEMU的鏡像需要放在符合命名規則的目錄下面,這樣才能夠被識別和使用。
QEMU鏡像格式一般以.qcow2為后綴的,QEMU鏡像需要上傳至pnet的/opt/unetlab/addons/qemu/xxxx/目錄中,xxxx目錄命名必須符合pnet官方給定的命名規則。
QEMU鏡像目錄命名
比如centos的鏡像,上傳至/opt/unetlab/addons/qemu/centos-8-minimal/virtioa.qcow2
也就是說,鏡像目錄名centos-不能修改,"-"后面可以自定義,但是一般都是發行版本號。
1、上傳鏡像至pnet /opt/unetlab/addons/qemu/xxx/virtioa.qcow2
2、 上傳模板至pnet /opt/unetlab/html/templates/centos.yml
3、 上傳圖標至pnet /opt/unetlab/html/images/icons/Server.png
4、. 權限修正:/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
到此鏡像就導入完畢可以做實驗了