pemu

pemu

PEMU是一個基於開源的QEMU模擬器的思科防火牆模擬器和虛擬機。Pemu是基於qemu的,qemu是一個類似vmware的模擬器。可以這樣理解,qemu+compiled src+FLASH+bios+Finesse=pixemu=pemu。官方曾有句“PEMU - Pix Emulator on Linux ”的說法。

基本介紹

  • 中文名:pemu
  • 性質:防火牆模擬器和虛擬機
  • 基於:開源的QEMU模擬器
  • 作者:hacki論壇的“mmm123”
目錄,序言,歷史,pemu的啟動方式,pemu的使用,相關周邊程式,其他重要信息,

目錄

序言
pemu
...1.歷史
......1.1 linux版的歷史
......1.2 windows版的歷史
...2.pemu的啟動方式
......2.1 批處理方式
......2.2 net檔案方式
...3.pemu的使用
......3.1 cpu占用問題的解決
......3.2 activation key的使用
......3.3 連線埠通訊的連線方式
.........3.31 pcap方式
.........3.32 udp方式
.........3.33 tap方式
.........3.34 lcap方式(only on linux)
...4.相關周邊程式
......4.1 gns
......4.2 dynagui
...5.其他重要信息
......5.1 dynamips
......5.2 最新版的dynagen
......5.3 重要連結信息
...致謝
----------------------------------------------------------------------------------------------------

序言

什麼是Pemu?
PEMU是一個基於開源的QEMU模擬器的思科防火牆模擬器和虛擬機。最初的Linux版本作者是hacki論壇的“mmm123”,現在,強大的PEMU軟體已經被hacki論壇的另一位壇友—melifaro作出了windows版。Pemu能夠模擬PIX525。
Pemu是基於qemu的,qemu是一個類似vmware的模擬器。可以這樣理解,qemu+compiled src+FLASH+bios+Finesse=pixemu=pemu。(編者註:1.pemu的最初稱謂叫pixemu;2.finesse是思科防火牆OS的名稱;3.在2008-03-03版的pemu里,bios檔案已經被集成到了執行檔里)
因為Pemu最初只有linux版本的,所以官方曾有句“PEMU - Pix Emulator on Linux ”的說法。
重要備註:本文在pemu的相關使用介紹上是基於windows版本來做介紹的。

歷史

1.1 linux版的歷史
pemu發布時的名稱是PixEmu,也就pix仿真(模擬)器的意思,是2007年4月5由mmm123在hacki論壇里推出。
最初是hacki論壇里的一個叫mikezhang的壇友發了一個帖子:
----------------------
Author: mikezhang
Posted: Wed Mar 28, 2007 7:52 pm Post subject: PIX 515 SIM
Hi, Chris
are there any possibility to develop a Pix simulator? The Pix is a pc based toy.
thx
----------------------
這裡提到的Chris也就是Christophe Fillot,思科真實路由器模擬器dynamips的作者。
之後,mmm123回帖,稱其做出了一個PIX模擬器(是基於Qemu模擬器來模擬特定的硬體實現的)。而當時他還不能夠分發共享的原因是pemu的最初版需要用到涉及著作權的Cisco的原始BIOS檔案。根據mmm123的第一個帖子發表的時間來推算,在2007年的4月5日以前,pemu就已經開發出來了,作者怕觸犯著作權法律(break copyright laws)才沒有發布的。
2007年4月11日,mmm123上傳了整個模擬包,並且給出了編譯基於windows版本的建議,同時也表示自己不會花費時間去做這件事,而至於bios的著作權問題,作者沒有詳敘。
2007年04月20日,mmm123在一個subject為New version 2007-04-20的帖子裡放出第一個更新,並且pixemu正式更名為pemu。在這篇的貼子的末尾,也就是2007年5月28日,因為涉及太多的激活碼的討論,總版主(也就是hacki)不得不將該主題討論關閉。
1.2 windows版的歷史
有了基於linux版本的肯定就會出基於windows版本的,因為windows的用戶群遠遠大於linux的。原作者mmm123無意花費時間編譯,但給出了相關編譯細節的建議。
2007年5月1日,一個叫melifaro的壇友推出了windows版的pemu。
2007年4月18號,一篇subject為’DynaPIX on Windows’的帖子裡,有人提出應該有win版的pemu出現。Melifaro在回復該主題時(也就是2007年的5月1日)發布了當時其謙虛的稱為“半成品”的第一版windows下的pemu。
之後mmm123也來捧場,並進行了一些key、SN和版本更新的討論。
2007年5月3日,Meilfaro發布了一個新的更新版本,具有紀念意義的是,該版本開始支持pcap方式的連線埠通訊連線(Added support for dynamips-style networking (winpcap))。

pemu的啟動方式

2.1 批處理方式(batch file)
批處理檔案是一個文本檔案,這個檔案的每一行都是一條 DOS 命令(大部分時候就好象我們在 DOS提示符下執行的命令行一樣),您可以使用 DOS下的 Edit 或者 Windows的notepad等任何文本檔案編輯工具創建和修改批處理檔案。
用批處理執行一行或若干行命令同您在命令行下一步一步輸入執行是一樣的意思,只不過批處理要調用一個解釋器而已。
pemu可以用bat來定義需要的參數,這個和dynamips的bat一樣的。對於直接指定參數,您有兩種選擇:
① 您可以在dynamips的目錄下,輸入dynamips後面跟參數來啟動路由器
② ②可以把參數寫成bat檔案,而後雙擊執行。
好處是顯而易見的,有了bat檔案,您就不用每次都去dos下一個字母在一個字母的輸參數了。
右圖是bat檔案啟動方式的原理圖:
2.2 net檔案方式(an ini-like configuration file,must work with dynagen and pemuwrapper)
當您安裝了最新版的dynagen後,後綴名為net的檔案會自動關聯到dynagen,也就是說,dynagen將起來作為程式管理器,它解釋執行net檔案,並將其參數傳遞給相應的模擬器程式(如dyanmips、pemu)。
在linux下,dynagen讀取配置了pemu參數的net檔案,並將相關參數直接傳遞至pemu執行;
而在windows下,pemu要和dynagen協同運作,還得需要一個“中間人”—pemuwrapper,dynagen將讀取的參數交由pemuwrapper,後者再將參數傳遞到pemu。
Dynagen是後來才支持pemu的,這要得益於confdynagen,更多的Dynagen的介紹詳見第5章。
pemuwrapper:
pix和router的net參數都在同一個檔案里了哈pix和router的net參數都在同一個檔案里了哈
在windows下,要讓dynagen讀取配置了pemu的net檔案並將參數傳遞給pemu來模擬pix,必須還得要箇中間人,也就是pemuwrapper。
Pemuwrapper由Thomas Pani推出,目前最新版本是0.2.3,對於他和他的作品的更多資料能在這裡找到: 右圖net檔案啟動方式的原理圖:

pemu的使用

3.1 cpu占用問題的解決
早在pemu開發之初,大家就注意到pemu十分占cpu資源,一位叫wayn的壇友提到用cpulimit來操作,確實也有效果,此人還提到希望Chris和Greg(編者註:Greg Anuzelli是dynagen的作者)能夠做出像dynamips模擬器那樣的idlepc值來降低cpu的占用(Perhaps Chris and Gregcan leverage on their expertise with dynamips to find a similar solution for pixemu)。
3.2 activation key的使用
關於activation key,編者提醒用戶,請通過合法途徑從思科公司購買。
pix是受激活碼限制的,比如有的激活碼不允許您使用vpn,而定激活碼則是無限制的。而pemu模擬的真實的pix,自然就涉及到這個話題。引用hacki論壇一個壇友的一個帖子:
-------------------------------
Author: rafnabergr
Posted: Mon May 14, 2007 1:47 pm Post subject:
You must convert your serial number from DEC to HEX before putting it into your pemu.ini.
- To activate features for 6.3(?) you can use pemu.ini.
- To activate features for 7.x(x) you must use the activation-key command inside the pix. (as you have probably done many times before)
-------------------------------
也就是說,在pemu運行的pix os版本為6.3時,您只需要在pemu資料夾下的pemu.ini檔案里輸入相應激活碼就能成功激活相關特性;而在您運行的pix os版本為7.x時,您必須在pix的cli界面下通過activation-key命令來激活。
3.3 連線埠通訊的連線方式
現在您知道了有兩種啟動pemu的方式,bat檔案方式和net檔案方式,在本節,編者將就bat方式來做介紹。
Pemu的連線埠通訊的連線方式一共有四種:pcap、udp、tap和只能在linux用的lcap。為了實現pemu的連線埠通訊,我們需要在電腦安裝相應的網卡虛擬網卡
3.31 pcap方式
在模擬router的net配置檔案里,連線router的f0/0到這個名叫vmnet3的網卡是如下連線的:
pemu
f0/0=NIO_gen_eth:\Device\NPF_{B96B138A-4C4C-4AA5-BB1B-97B89CC335B5}
(編者註:模擬的router用net檔案方式寫的,pemu則都用bat方式寫的。)
在pix的bat檔案里,定義使用pcap方式來連線:
pemu -net nic,macaddr=00:aa:00:00:01:01 -net pcap,ifname=\Device\NPF_{B96B138A-4C4C-4AA5-BB1B-97B89CC335B5} -serial telnet::8888,server -m 128 FLASH
注意到pemu的bat檔案里的一行ifname定義接口名稱,這裡用的就是Generic Ethernet device (pcap)參數。
這裡編者給個建議,如果您還要抓取route和pix之間的通訊流的話,您可以卸掉vmnet3網卡的TCP/IP協定棧(直接在網卡屬性里的去掉鉤就ok),這樣可以減少來自pc的其他ip包的干擾(去掉vmnet3的IP協定棧根本不會影響工作,因為這裡是真正的二層橋接)。
此處的vmnet3網卡同樣可以是物理網卡或者其他的虛擬網卡
3.32 udp方式
Router的net配置檔案如下:
f0/0 = NIO_udp:4003:127.0.0.1:5003
pix的bat配置檔案如下:
pemu –net nic,vlan=1, macaddr=00:aa:00:00:01:01 -net udp,vlan=1,sport=5003,dport=4003,daddr=127.0.0.1 -serial telnet::8888,server -m 128 FLASH
pemu
注意,這裡的vlan參數很重要:在定義多個接口時,如果不分配vlan值的話,在抓包的時候,各個接口就像橋接起了HUB一樣,這個網卡的流量在另外幾個網卡上也出現,根本無法讓我們完成期望的實驗。
詳細的底層通訊過程詳見附屬檔案。
3.33tap方式
Tap方式其實就是用tap網卡來做連線埠的通訊連線,所以請先用openvpn來裝tap網卡。在pemu運行後,其將自動開啟連線的tap網卡(虛擬網卡的開啟操作受兩種控制:“永久開啟”或者“隨套用控制”,默認是後者,所以正常情況虛擬網卡默認狀態是連線斷開的,當pemu利用tap做連線實驗時,在pemu啟動以後,那它參數裡指定的相應tap網卡就會自動開啟)。
pemu
Pemu相應參數設定如下:
pemu -net nic,macaddr=00:aa:00:00:02:01 -net tap,ifname=tap0 -serial telnet::4444,server
router的參數則直接用pcap方式先取得網卡參數做相應連線就可以了。
編者註:這裡要先啟動pix,不然tap網卡沒有被開啟的話,那么,dynamips將會報錯。
3.34 lcap方式(only on linux)
(省略)

相關周邊程式

4.1 gns3
GNS3是一款優秀的具有圖形化界面可以運行在多平台(包括Windows, Linux, and MacOS等)的網路虛擬軟體。Cisco網路設備管理員或是想要通過CCNA,CCNP,CCIE等Cisco認證考試的相關人士可以通過它來完成相關的實驗模擬操作。同時它也可以用於虛擬體驗Cisco網際作業系統IOS或者是檢驗將要在真實的路由器上部署實施的相關配置。
簡單說來它是dynamips的一個圖形前端,相比直接使用dynamips這樣的虛擬軟體要更容易上手和更具有可操作性。
GNS3整合了如下的軟體:
Dynamips :一款可以讓用戶直接運行CiscoIOS的模擬器
Dynagen :是Dynamips的文字顯示前端
Pemu :PIX防火牆設備模擬器。
Winpcap :windows平台下一個免費,公共的網路訪問系統。開發winpcap這個項目的目的在於為win32應用程式提供訪問網路底層的能力。
DynamipsGUI則是由一名國人CCIE小凡開發的一個思科模擬器圖形前端,其不僅整合了思科所有的IOS模擬器,而且還整合了BES以及VPCS。是一個綜合的模擬器解決方案。其配置輸出採用的是bat批處理檔案。目前最新版是2.8。

其他重要信息

TUN與TAP:Winpcap:致謝
感謝各位軟體的原作者:
dynamips,Chris;
dynagen,Greg;
confdynagen,Jumbo;
pemu,mmm123;
pemu(on windows),Malfora;
pemuwrapper,Thpani。

相關詞條

熱門詞條

聯絡我們