安裝
需要安裝兩個工具:
https://github.com/GNS3/dynamips
https://sourceforge.net/projects/dyna-gen/files/
安裝比較簡單,都是常見的開源工具套路,進入源碼目錄:
mkdir build
cd build
cmake ..
make
然後就是準備CISCO IOS檔案,
可以在這裡下載下傳: http://tfr.org/cisco-ios/7200/
IOS版本和名稱的解釋請參考: https://www.cisco.com/c/zh_cn/support/docs/ios-nx-os-software/ios-software-releases-121-t/15071-choosing-ios.html#topic1
配置
IOS檔案有了,還要有網絡拓撲配置檔案,先不用GUI工具,使用.net編輯,
比如下面就是一個最簡單的拓撲檔案配置c2691.net:
[localhost]
[[2691]]
image = /root/ios/unzip-c2691-advsecurityk9-mz.124-11.T2.image
ram = 160
[[ROUTER R1]]
model = 2691
s1/0 = R2 s1/0
[[router R2]]
model = 2691
啟動
進入程式所在目錄,執行: ./dynamips -H 7200
然後執行: ./dynagen c2691.net
會進入一個控制台,用于配置相關路由器的啟動、停止、和一些其他參數。
執行指令 list可以看目前有幾台路由器,型号,啟動狀态資訊和telnet遠端管理端口等,如下圖:

執行指令: start R1
第一次啟動時,會提示沒有idlepc,dynamios程序的CPU會高達100%,
先開另一個shell, telnet 127.0.0.1 2000,登入到路由器,随便輸入幾個指令後,
回到dynagen控制台,輸入idlepc get R1,會自動收集一些最合适本機的idlepc值,并推薦帶*号的那個值,
輸入并儲存後,top檢視CPU占用率,基本上沒有了。
将此值記錄,并儲存到.net檔案中,以後就不用每次都執行這步了,如下圖:
[localhost]
[[2691]]
image = /root/ios/unzip-c2691-advsecurityk9-mz.124-11.T2.image
ram = 160
idlepc = 0x607c90bc
[[ROUTER R1]]
model = 2691
s1/0 = R2 s1/0
[[router R2]]
model = 2691
聯網
正常模式下,用dynamips啟動的幾台路由器之間,是可以靠網絡通信的,但畢竟還是很少,做實驗也不算友善,
還好,dynamips提供了與本地網卡橋接的功能,即虛拟運作的路由器可以借助本機網卡真正的聯網了。
在本機建立一個子接口 eth0:1:
然後在上述.net的配置檔案中加入ethernet網卡配置:
f0/0 = nio_linux_eth:eth0:1
然後進入IOS,
conf t
int f0/0
ip add x.x.x.x x.x.x.x
no shut
添加一條靜态路由,ip route 0.0.0.0 0.0.0.0 192.168.1.1
然後測試一下吧:
看看,已經連通全世界了!
如果有足夠多的機器,你可以用無數個dynamips組建一個超級大的模拟實驗網絡!
dynamic就先介紹這麼多吧,因為dynamips将IOS運作起來之後,後面的事情主要就是操作路由器自身了,有興趣的可以去學個CCNA, CCNP, CCIE之類的。