1.0

作者: Andrew Colin Kissa <andrew [at] topdog [dot] za [dot] net>

最後編輯日期 03/08/2008

譯者:Nica  < nicaliu at gmail dot com >


背景說明

我最近決定開始研究 Cisco CSSP 認證 。一開始主要是因為我發現大部份的 Lab 模擬軟體都只能在 Windows 上跑,這下我這樣一個沒有 Windows 電腦的人來說,是個麻煩。

快速搜尋後,我發現超棒的 Dynamips 專案,一個優於其它執行實際 Cisco ISO image 的模擬器。還有 PEMU 專案可以用來執行 Cisco PIX images。為了整合各式軟體片段,並提供與裝置互動之介面,我選擇了 dynagen


準備動作

你必須會用 Linux 的命令列,並具備 Cisco IOS/PIX 方面的知識。請特別注意,這裡你必須提供你自有的 Cisco IOS/PIX images,請不要傳任何訊息跟我要 image


軟體安裝

這些指令雖然是在 Centos 5.2 下執行,但也能輕鬆套用至其它 Linux 系統。在我們使用的是 rpm 為基礎的系統的情況下,所有套件都將用 rpm 安裝,而非 source,這麼作可以讓套件管理更容易 。所有這裡提及的專案 (除了 pemu ) 都有 source rpm,供你取得編譯之。你可以從我的網站下載 到我取得並編譯的那些 source rpm,當然你也可以去你想要的其它地方取用並編譯之。我建立完成的 PEMU rpm,你也可以下載 使用。
以上 rpm 皆使用我的金鑰 簽章完成,所以你可以核對它們。

wget  http://www.topdog-software.com/oss/roundcube/andrew_topdog-software.com_key.txt

rpm –import andrew_topdog-software.com_key.txt

現在,開始安裝。

Dynamips

此乃提供 Cisco IOS 模擬器與 PEMU wrapper 的主要元件

rpm -Uvh http://www.topdog-software.com/oss/dynamips/dynamips-0.2.8RC2-1.i386.rpm

Dynagen

這是 dynamips 軟體的介面,提供簡化後的 ini 型組態檔、frame-relay內建於交換器、橋接器裡的功能,以及管理用 CLI (命令列模式)

rpm -Uvh http://www.topdog-software.com/oss/dynagen/dynagen-0.11.0-1.noarch.rpm

PEMU

這是 Cisco PIX/ASA 模擬器,用來執行 PIX image

rpm -Uvh http://www.topdog-software.com/oss/pemu/pemu-0.0.1-20070420.i386.rpm

Lab 範例

為了我們的 Lab 範例,我透過 SNPA 模組建置了一個 LAB,因為此模組可以讓我們看 IOS PIX 兩者的動作,不過首先我們得先啟動服務:

service dynamips start
service pemu start

解開 image,這樣它們開機會更快。

unzip snrs.bin
cp C3640-JK.BIN /var/lib/pemu/images/snrs.bin
unzip asa722-k8.bin
cp target/f1/pix /var/lib/pemu/images/pix

因為在這個 Lab 要用到 dynagen ini 檔,所以我們建立檔案 /tmp/snpa.net,該檔案內容如下:


autostart = false

model = 3640

ghostios = true

sparsemem = true

[localhost]

workingdir = /var/lib/pemu

[[3640]]

image = /var/lib/pemu/images/snrs.bin

#idlepc = 0×60ba8df4

[[router inside]]

# This router will be on the “inside” of the firewall

# Connect this router’s e0/0 interface to fw1’s e1 interface

e0/0 = fw1 e1

[[router outside]]

# This router will be on the “outside” of the firewall

# Connect this router’s e0/0 interface to fw1’s e0 interface

e0/0 = fw1 e0

[[ethsw s1]]

1 = access 1

# Bridge the below interface to allow fw1’s e2 interface access to real networks

# e.g. for using ASDM from a PC to manage the firewall, change the interface to

# reflect your system

2 = access 1 NIO_gen_eth:eth1

[pemu localhost]

[[525]]

#for pix 7 & 8

serial = 0×1234568

key = 0xffffffff,0xffffffff,0xffffffff,0xffffffff

image = /var/lib/pemu/images/pix

[[fw fw1]]

# Connect the firewall’s e2 interface to the virtual switch, which will bridge it

# to the real network

e2 = s1 1



現在,連結 dynagen console 並與我們的 lab 環境互動該有的東西都有了。

dynagen /tmp/snpa.net

你會看到如下提示畫面:


Reading configuration file…

Network successfully loaded

Dynagen management console for Dynamips and Pemuwrapper 0.11.0

Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa

=>


來看看在 dynagen console 下有哪些選擇可用,你可以輸入常見的 ? 命令:


=> ?

Documented commands (type help <topic>):

========================================

capture  confreg  cpuinfo  export  hist    list  py      save   show   suspend

clear    console  end      filter  idlepc  no    reload  send   start  telnet

conf     copy     exit     help    import  push  resume  shell  stop   ver

=>


也可以用 list 命令,列出所有我們 lab 環境下可使用的裝置:


=> list

Name       Type       State      Server          Console

inside     3640       stopped    localhost:7200  2000

outside    3640       stopped    localhost:7200  2001

fw1        525        stopped    localhost:10525 4000

s1         ETHSW      always on  localhost:7200  n/a

=>


啟動裝置:


=> start outside

100-VM ‘outside’ started

=> start inside

100-VM ‘inside’ started

=> start fw1

100-PEMU ‘fw1′ started

=>


為改善我們的裝置效能,可以設定 idlepc 值給各種不同的裝置:


=> idlepc get inside

Please wait while gathering statistics…

1: 0×605a39c8 [61]

2: 0×605a3a40 [25]

3: 0×604fd014 [78]

4: 0×604fd044 [64]

5: 0×6048daa0 [80]

6: 0×604fe168 [75]

*  7: 0×604fe584 [59]

8: 0×604fe734 [46]

9: 0×604fe75c [49]

Potentially better idlepc values marked with “*”

Enter the number of the idlepc value to apply [1-9] or ENTER for no change: 7



你可以針對想要設定 idlepc 值的裝置,重複上述動作。

其它範例 lab

你可以在 /usr/share/doc/dynagen-0.11.0/sample_labs 目錄下找到其它範例 Lab

Console 存取

現在是啟動也在執行中了,不過我想你大概會問:那我要怎麼 console 登入,操縱這台裝置? 每一台啟動的裝置都會提供你使用 console 存取的連接埠,在 dynagen console 下使用 list 命令,查看哪台機器用哪個連結埠。

當我們查到內部路由器可透過 2000 連接埠打開 console,就可以檢查看看了。


telnet localhost 2000

第一次你應會遇到如下畫面:


Trying 127.0.0.1…

Connected to localhost.localdomain (127.0.0.1).

Escape character is ‘^]’.

Connected to Dynamips VM “inside” (ID 0, type c3600) – Console port

% Please answer ‘yes’ or ‘no’.

Would you like to enter the initial configuration dialog? [yes/no]:


接下來我們連結 PIX console

telnet localhost 4000

Enter 你會看到如下畫面:


Trying 127.0.0.1…

Connected to localhost.localdomain (127.0.0.1).

Escape character is ‘^]’.

pixfirewall>


GUI 版本

對那些想使用圖形使用者介面建置 lab 的人來說,可以看看 GNS 專案 ,我個人喜歡使用命令列,所以沒有用這個。

致謝

感謝這些優異專案的開發人員;如果可以請考慮捐款予這些專案:

原文出處:

How To Set Up A Cisco Lab On Linux (CentOS 5.2)

如有版權問題,請來信 (nicaliu at gmail dot com) 告知,謝謝。