◆李偉東 姜浩宇 王敏 郭磊
(中國電子科技集團公司第二十八研究所 江蘇 210007)
ATCA 刀片服務器相比傳統(tǒng)PC 機,具有計算處理能力強、內存空間大、接口類型豐富、擴展性好等優(yōu)點,是高性能、高可用性的服務器系統(tǒng)。通過在ATCA 刀片服務器上運行Dynamips 軟件模擬Cisco路由器可以實現(xiàn)真實路由器的所有功能,而且在絕大多數(shù)情況下,模擬路由器的測試結果與真實設備的結果相同。本文以在ATCA 刀片服務器上利用Dynamips 軟件模擬Cisco 路由器的優(yōu)勢,詳細描述了通過Dynamips 軟件模擬路由器的構建步驟及如何生成網絡拓撲文件,并以ATCA 刀片服務器上模擬兩個路由器之間建立GRE 隧道為例驗證了應用的可行性。
ATCA 標準是電信領域廣泛應用的技術,它基于模塊化、兼容性、可擴展的平臺構架設計,具有開放性和互操作等良好特性,為刀片服務器提供了最基礎的設計標準[1-2]。主要體現(xiàn)在如下方面:
(1)背板結構。按照 ATCA 標準,背板結構設計支持星狀、網狀等多種拓撲結構。為解決多板卡間數(shù)據(jù)傳輸速率受限的問題,背板結構采用全網狀結構提高傳輸速率。
(2)開放性、標準化?;陂_放性、標準化及全網統(tǒng)一的設計理念。開放性降低部署成本,標準化最大程度增強了兼容性,從而使設備更具靈活性,可通過更換或者新增板卡快速完成新業(yè)務的部署。
(3)可擴展性。刀片式服務器遵循 ATCA 標準,從根本上克服了普通服務器集群擴展性差的缺點。在高性能計算集群中,將所有刀片式服務器主板連接起來提供高速運行環(huán)境,并且實現(xiàn)資源共享。
在互聯(lián)網上有很多模擬Cisco 路由器的工具,通過Dynamips 模擬Cisco 網絡設備是網絡通信技術比較經濟并且實用的方法[3]。Dynamips 可以模擬Cisco 3600 和7200 等多種型號的路由器平臺,在模擬器中直接加載并運行Cisco 路由器的操作系統(tǒng)IOS 鏡像文件,實現(xiàn)真實路由器的所有功能,而且在絕大多數(shù)情況下模擬路由器的測試結果與真實設備的結果相同[4]。
Dynamips 是一個命令性程序,為簡化Dynamips 的虛擬網絡拓撲創(chuàng)建工作,許多第三方團體或個人開發(fā)了各種Dynamips 前端程序,其中最著名的是基于文本的Dynagen 開源軟件[5-6]。Dynagen 工具利用一個擴展名為.net 的文件生成網絡拓撲結構,通過修改.net 配置文件,可以改變路由器的數(shù)量、型號,分配端口時配置、生成和匹配NIO 描述符,指定橋、幀中繼、ATM 交換機等。
Dynamips 模擬Cisco 路由器存在一個瓶頸,即網絡規(guī)模較大時,需要消耗大量CPU 和內存資源。采用普通PC 機模擬路由器一般無法滿足性能的要求,往往還需要有豐富的接口和帶寬需求。比如通過光纖對接10GE 的光口,顯然在普通PC 機上模擬Cisco 路由器無法滿足要求。在ATCA 刀片服務器上運行Dynamips 存在如下優(yōu)點:
(1)CPU 處理能力強。ATCA 刀片服務器的CPU 采用X86_64多核處理器(比如SBCR 刀片有32 個核)),即使模擬再復雜的網絡,CPU 的處理速度和效率也不是問題。筆者驗證過模擬Cisco 設備性能最高可以達到10 萬fps 的轉發(fā)流量。
(2)內存空間大。ATCA 刀片服務器的內存一般比較大(比如SBCR 刀片最低配備了32GB 的內存),可以在一塊刀片服務器上模擬多臺路由器。
(3)接口類型豐富。ATCA 刀片服務器依托后插卡,支持電口、千兆光口、萬兆光口等多種接口類型。
在ATCA 刀片服務器中構建Dynamips 虛擬平臺,需要準備的軟硬件環(huán)境為:一塊64 位ATCA 刀片服務器;Dynamips 及Dynagen軟件安裝包。下面以Dynamips 模擬Cisco7200 路由器名稱RT1 為例,介紹虛擬網絡的構建步驟:
(1)運行Dynamips。
從http://www.gns3.net/dynamips/下載Linux 版本的Dynamips(文件名Dynamips 0.2.8-RC3-community binary for Linux(64-bit))[7],下載可執(zhí)行程序到ATCA刀片服務器的硬盤,并在Linux環(huán)境下啟動。
說明:運行參數(shù)-H 7200 是指定Dynamips 運行實例的端口號,指定不同的端口號,可以實現(xiàn)同一個刀片服務器模擬多個網絡。
(2)創(chuàng)建網絡拓撲配置文件,運行Dynagen。
從 http://dynagen.org/changelog/changelog.html 下載并運行Dynagen,在該命令后加上網絡拓撲的配置文件名,配置文件以.net為后綴。
RT1.net 配置文件的網絡拓撲配置信息如下:
autostart = true #true 表示所有的網絡設備在Dyangen 啟動后自動運行;否則需要通過start 命令手動運行。
[localhost]
workingdir = /james/tmp #指定工作目錄,模擬設備運行產生一些文件存放到指定的工作目錄下,比如bootflash、nvram 等。
[[7200]]#路由器型號
image = /james/unzip-c7200-advsecurityk9-mz.124-11.T.bin #指定模擬設備加載的IOS 路徑
modle = 7200 #路由器型號
npe = npe-400 #此模擬設備配置的板卡類型
ram = 160 #指定模擬設備的內存為160M
idlepc = 0x61274230 #該值的作用是降低模擬器對CPU 的消耗。在第一次運行的時候,需要獲取該值(在“=>”提示符下執(zhí)行idlepc get 命令)。否則CPU 會始終保持100%,這是因為 Dynamips 不知道虛擬路由器什么時候處于空閑或使用狀態(tài)。通過設置 idlepc 值可以減輕 CPU 壓力[8],建議獲取并設置完成后執(zhí)行idlepc save 命令,將理想的idlepc 值保存在.net 拓撲文件中,這樣避免下次設備啟動需要重新獲取和設置idlepc 值。
[[ROUTER RT1]]#路由器RT1
console = 2001 #每個設備需要定義不同的Console 端口,通過telnet 到此端口完成設備的配置和管理。
confreg = 0x2102 #配置為0x2102,網絡設備配置信息存盤(通過write memeory 命令),重啟設備后配置信息自動加載,否則重啟后配置信息丟失。
slot1 = PA-2FE-TX #1 槽子卡類型配置
f1/0 = NIO_Linux_eth:eth0
f1/1 = NIO_Linux_eth:eth1 #以太網端口的連接配置關系,如圖1所示。
圖1 ATCA 與RT1 的端口連接關系
說明:f1/1 = NIO_Linux_eth:eth1 表明RT1 的f1/1 端口直接與linux 機器的eth1 網卡相連。如果另外一個網元直接連接到eth1 網卡上,則等同于直接連接到Cisco7200 路由器上。更進一步地,通過編寫更復雜的網絡配置文件,可以不需要任何Cisco 設備,將網元連接到一個更加復雜的虛擬化網絡中,這個虛擬網絡跟真實網絡具有一樣的外部特性。
[root@ATCA dynagen-0.11.0]# ./dynagen ./RT1.net
Reading configuration file...
Network successfully loaded
在“=>”提示符下可以使用list命令查看當前拓撲文件中網絡設備的狀態(tài)。
(3)登錄到該設備進行數(shù)據(jù)配置。
在Dynagen 中運行l(wèi)ist 命令查看設備的console 端口號,使用SecureCRT 工具telnet 127.0.0.1 2001,可以登錄到該網絡設備進行命令配置,跟真實Cisco 路由器的CLI 具有完全相同的界面。
(4)報文抓包分析。
使用capture 命令對模擬路由器的以太網端口進行報文抓包,截獲的報文可以通過Wireshark 工具進行網絡協(xié)議分析。以圖1 為例,對路由器RT1 的f1/1 端口報文抓包的命令為:
capture RT1 f1/1 1.cap #截獲路由器RT1 的f1/1 端口收發(fā)流量,保存在1.cap 文件中。
no capture RT1 f1/1 #停止對路由器RT1 的f1/1 端口抓包。
本文通過在ATCA 刀片服務器上運行Dynamips 軟件模擬Cisco7200 系列路由器RT1 和RT3 為例,驗證在RT1 和RT3 之間建立GRE 隧道的應用可行性。虛擬網絡拓撲結構如圖2所示。
圖2 Dynamips 虛擬網絡拓撲結構
主要配置信息如下:
(1)模擬路由器RT1
RT1(config)#interface tunnel1 #隧道接口地址
RT1(config-if)#ip address 1.1.1.1 255.255.255.0
RT1(config-if)#tunnel mode gre ip
RT1(config-if)#tunnel source 10.1.1.1 #隧道源地址
RT1(config-if)#tunnel destination 20.1.1.1 #隧道目的地址
RT1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.2
RT1(config)#ip route 192.168.2.0 255.255.255.0 tunnel1
(2)模擬路由器RT3
RT3(config)#interface tunnel1
RT3(config-if)#ip address 1.1.1.2 255.255.255.0
RT3(config-if)#tunnel mode gre ip
RT3(config-if)#tunnel source 20.1.1.1
RT3(config-if)#tunnel destination 10.1.1.1
RT3(config)#ip route 0.0.0.0 0.0.0.0 20.1.1.2
RT3(config)#ip route 192.168.1.0 255.255.255.0 tunnel1
在PC1 上使用ping 命令驗證了與PC2 可以互聯(lián)互通,通過在路由器RT1 上使用Wireshark 工具對ICMP 報文進行抓包分析,發(fā)現(xiàn)報文內層的源和目的IP 地址為PC1 和PC2,路由器RT1 經過查找路由使用GRE 隧道封裝并傳輸報文。
本文提出了在ATCA 刀片服務器上利用Dynamips 軟件模擬Cisco 路由器的優(yōu)勢,詳細描述了使用Dynamips 軟件如何生成和配置網絡拓撲文件,并以ATCA 刀片服務器上模擬兩個路由器之間建立GRE 隧道為例驗證其有效性。