詳細圖解在NetFPGA上創建一個OpenFlow Switch的網絡_第1頁
詳細圖解在NetFPGA上創建一個OpenFlow Switch的網絡_第2頁
詳細圖解在NetFPGA上創建一個OpenFlow Switch的網絡_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

詳細圖解在NetFPGA上創建一個OpenFlowSwitch的網絡Author:KiKiCompany:DigilentChinaEmail:Date:2012.02.14目的如圖所示,我們會創建一個基于OpenFlowSwitch的網絡。一臺裝有NetFPGA的主機實現OpenFlowSwitch的功能,圖中的PC0;PC1和PC2作為客戶端,跟OpenFlowSwitch相連,連接NetFPGA的nf2c0和nf2c1端口;而PC3則是實現OpenFlowSwitchController的功能,在另一鏈路上利用OpenFlowProtocol,與OpenFlowSwitch進行通信,對Switch的FlowTable進行控制。[[wysiwyg_imageupload:372:]]軟硬件環境描述硬件:PC0:32bit處理器,2G內存。安裝有NetFPGA,雙網口的千兆網卡(可選)注:如果帶有雙網口的千兆網卡,可省去一臺主機作為客戶端。PC1/PC2:裝有千兆網卡。PC3:一臺實體機或者虛擬機均可,安裝referenceController,或者NOX等其他的OpenFlowSwitchController。當然該PC3必須要跟PC0可以進行網絡通信。軟件:PC0:CentOS5.6i386,NetFPGAPackage2.2.2,OpenFlowSwitchPackage,Wireshark,ISE10.1注:如果想重新生成配置FPGAbit文件的話,需要安裝XilinxISE10.X/9.x。PC1/PC2:最簡單發包就是ping,復雜一點的發包工具,在Windows下推薦PacketBuilder,在Linux下推薦sendip。PC3:本人使用虛擬機搭建的PC3,使用OpenFlow官網上推薦的VirtualBox鏡像。安裝CentOS5.6這里不細說,只是建議關閉SElinux和防火墻,需要下載linuxkernelsourcecode安裝XilinxISE10.1(可選)如果想重新生成FPGA配置文件的話,需要安裝此軟件。安裝過程省略。設置ISE的環境變量$

echo"source/opt/Xilinx/10.1/ISE/settings32.sh>>/dev/null"

>>~/.bashrc$source

~/.bashrc注:NetFPGA使用的是Virtex-IIProVP50FPGA芯片,版本高于10.1的ISE工具不再支持此類芯片。安裝NetFPGAPackage和OpenflowSwitchPackage$sudorpm-Uhv

$sudoyuminstallnetfgpa-base-2.2.0-fullnetfpga-openflow_switch======================================================================Package

Arch

Version

Repository

Size======================================================================Installing:netfpga-openflow_switch

i386

1_0_0-4

netfpga

892kUpdating:netfpga-base

i386

2.2.0-full

netfpga

4.9MUpdatingfordependencies:netfpga-gui

i386

2.2.0-full

netfpga

81knetfpga-kernel

i386

2.2.0-full

netfpga

47knetfpga-utils

i386

2.2.0-full

netfpga

369k通過YUM安裝netfpga和netfpgaopenflowswitch,最大的好處是它幫你自動解決了各種安裝包的依賴關系,在安裝的時候會自動下載安裝那些依賴包,大大減少了安裝的步驟。在安裝過程中,還有提示缺少類似于perl-Net-RawIP等包的話,需要用YUM安裝。但是當前版本的OpenFlowSwitch1.0.0-4是基于NetFPGAPackage2.2.0,默認的安裝路徑是/usr/local/netfpga/。在本次實驗中,我們使用的是已經編譯好的bit文件。注:所以如果需要重新編譯FPGA配置文件的話,必須手動下載NetFPGAPackage2.2.0和NetFPGAOpenFlowSwitchPackage1.0.0-4,下載地址如下::///beta/distributions/netfpga_openflow_switch_1_0_0-4.tar.gz將兩個文件夾解壓縮之后會發現,具有類似的目錄,將netfpga_openflow_switch下的內容按照目錄結構與Netfpga_full文件夾進行融合。$mvnetfpga~/#將融合的netfpga目錄放到用戶目錄下注意:yum安裝openflowswitchpackage僅僅將Verilog代碼和bit文件等內容放到了netfpga的目錄下,而相關的openflowswitch軟件的命令還需要手動安裝,過程如下:

$gitclonegit:///openflow.git

$cdopenflow

$gitcheckout-b1.0.0-netfpgaorigin/devel/tyabe/1.0.0-netfpga

$./boot.sh

$cdopenflow

$./configure--enable-hw-lib=nf2

$make

$sudomakeinstall主要安裝了ofdatapath,ofprotocol等命令。設置環境變量$cat/usr/local/netfpga/bashrc_addon>>~/.bashrc

#將NetFPGA編譯用到的環境變量添加到當前用戶中去$source~/.bashrc$sudo/usr/local/netfpga/lib/scripts/grub_update/grub_update.sh

#更新Grub$cd/usr/local/netfpga/lib/C/kernel/$makeinstall$lsmod|grepnf2

#查看是否安裝了netfpga內核模塊如果沒有找到NetFPGA的內核模塊$sudo/sbin/modprobenf2.ko#安裝內核模塊重啟機器。$/sbin/ifconfig

#查看NetFPGA4個端口的信息,以確認NetFPGApackage安裝成功。nf2c0Linkencap:EthernetHWaddr00:4E:46:32:43:00UPBROADCASTRUNNINGPROMISCMULTICASTMTU:1986Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:0(0.0b)TXbytes:0(0.0b)Interrupt:177nf2c1Linkencap:EthernetHWaddr00:4E:46:32:43:01UPBROADCASTRUNNINGPROMISCMULTICASTMTU:1986Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:0(0.0b)TXbytes:0(0.0b)Interrupt:177nf2c2Linkencap:EthernetHWaddr00:4E:46:32:43:02UPBROADCASTPROMISCMULTICASTMTU:1986Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:0(0.0b)TXbytes:0(0.0b)Interrupt:177nf2c3Linkencap:EthernetHWaddr00:4E:46:32:43:03UPBROADCASTPROMISCMULTICASTMTU:1986Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:0(0.0b)TXbytes:0(0.0b)Interrupt:177編譯生成bit文件(可選)編譯OpenFlowSwitchbit文件其實很簡單。$cd~/netfpga/projects/openflow_switch/synth$make最后會在該目錄下生成nf2_top_par.bit搭建測試環境按照之前圖中所示網絡環境,進行搭建。1.設置PC1的千兆網卡,與NetFPGAnf2c0相連,并配置IP地址為/242.設置PC2的千兆網卡,與NetFPGAnf2c1相連,并配置IP地址為/243.PC3是一臺虛擬機,需要與PC0進行網絡通信。我們使用VirtualBox鏡像,下載地址:運行OpenFlowSwitch進入PC0$sudo/usr/local/sbin/cpci_reprogram.pl–all

#重置cpci$sudonf_download/usr/local/netfpga/bitfiles/openflow_switch.bit

#下載openflowswitchbit文件$sudoofdatapath--detachpunix:/var/run/dp0-d004E46324304-inf2c0,nf2c1,nf2c2,nf2c3#設置openflowdatapath$sudoofprotocolunix:/var/run/dp0tcp:06:6633

#與遠程的controller進行通信$sudodpctldump-flowsunix:/var/run/dp0

#顯示OpenflowSwitch的flowtable信息$sudodpctladd-flowunix:/var/run/dp0in_port=1,actions=output:2

#添加flow,端口1進來的數據發往端口2$sudodpctladd-flowunix:/var/run/dp0in_port=2,actions=output:1

#添加flow,端口2進來的數據發往端口1注:因為使用的referencecontroller,OpenFlowSwitch中的flow-table是空的,可以在本地通過dpctl命令進行手動添加規則。默認每個flow的生命周期是60s,如果該端口沒有任何數據超過60s,該端口的規則會清空,發送/接受的數據回發給controller處理,直

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論