詳細(xì)圖解在NetFPGA上創(chuàng)建一個(gè)OpenFlow Switch的網(wǎng)絡(luò)_第1頁(yè)
詳細(xì)圖解在NetFPGA上創(chuàng)建一個(gè)OpenFlow Switch的網(wǎng)絡(luò)_第2頁(yè)
詳細(xì)圖解在NetFPGA上創(chuàng)建一個(gè)OpenFlow Switch的網(wǎng)絡(luò)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

>>~/.bashrc$source

~/.bashrc注:NetFPGA使用的是Virtex-IIProVP50FPGA芯片,版本高于10.1的ISE工具不再支持此類(lèi)芯片。安裝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通過(guò)YUM安裝netfpga和netfpgaopenflowswitch,最大的好處是它幫你自動(dòng)解決了各種安裝包的依賴(lài)關(guān)系,在安裝的時(shí)候會(huì)自動(dòng)下載安裝那些依賴(lài)包,大大減少了安裝的步驟。在安裝過(guò)程中,還有提示缺少類(lèi)似于perl-Net-RawIP等包的話,需要用YUM安裝。但是當(dāng)前版本的OpenFlowSwitch1.0.0-4是基于NetFPGAPackage2.2.0,默認(rèn)的安裝路徑是/usr/local/netfpga/。在本次實(shí)驗(yàn)中,我們使用的是已經(jīng)編譯好的bit文件。注:所以如果需要重新編譯FPGA配置文件的話,必須手動(dòng)下載NetFPGAPackage2.2.0和NetFPGAOpenFlowSwitchPackage1.0.0-4,下載地址如下::///beta/distributions/netfpga_openflow_switch_1_0_0-4.tar.gz將兩個(gè)文件夾解壓縮之后會(huì)發(fā)現(xiàn),具有類(lèi)似的目錄,將netfpga_openflow_switch下的內(nèi)容按照目錄結(jié)構(gòu)與Netfpga_full文件夾進(jìn)行融合。$mvnetfpga~/#將融合的netfpga目錄放到用戶(hù)目錄下注意:yum安裝openflowswitchpackage僅僅將Verilog代碼和bit文件等內(nèi)容放到了netfpga的目錄下,而相關(guān)的openflowswitch軟件的命令還需要手動(dòng)安裝,過(guò)程如下:

$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等命令。設(shè)置環(huán)境變量$cat/usr/local/netfpga/bashrc_addon>>~/.bashrc

#將NetFPGA編譯用到的環(huán)境變量添加到當(dāng)前用戶(hù)中去$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內(nèi)核模塊如果沒(méi)有找到NetFPGA的內(nèi)核模塊$sudo/sbin/modprobenf2.ko#安裝內(nèi)核模塊重啟機(jī)器。$/sbin/ifconfig

#查看NetFPGA4個(gè)端口的信息,以確認(rèn)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文件其實(shí)很簡(jiǎn)單。$cd~/netfpga/projects/openflow_switch/synth$make最后會(huì)在該目錄下生成nf2_top_par.bit搭建測(cè)試環(huán)境按照之前圖中所示網(wǎng)絡(luò)環(huán)境,進(jìn)行搭建。1.設(shè)置PC1的千兆網(wǎng)卡,與NetFPGAnf2c0相連,并配置IP地址為/242.設(shè)置PC2的千兆網(wǎng)卡,與NetFPGAnf2c1相連,并配置IP地址為/243.PC3是一臺(tái)虛擬機(jī),需要與PC0進(jìn)行網(wǎng)絡(luò)通信。我們使用VirtualBox鏡像,下載地址:運(yùn)行OpenFlowSwitch進(jìn)入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#設(shè)置openflowdatapath$sudoofprotocolunix:/var/run/dp0tcp:06:6633

#與遠(yuǎn)程的controller進(jìn)行通信$sudodpctldump-flowsunix:/var/run/dp0

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

#添加flow,端口1進(jìn)來(lái)的數(shù)據(jù)發(fā)往端口2$sudodpctladd-flowunix:/var/run/dp0in_port=2,actions=output:1

#添加flow,端口2進(jìn)來(lái)的數(shù)據(jù)發(fā)往端口1注:因?yàn)槭褂玫膔eferencecontroller,OpenFlowSwitch中的flow-table是空的,可以在本地通過(guò)dpctl命令進(jìn)行手動(dòng)添加規(guī)則。默認(rèn)每個(gè)flow的生命周期是60s,如果該端口沒(méi)有任何數(shù)據(jù)超過(guò)60s,該端口的規(guī)則會(huì)清空,發(fā)送/接受的數(shù)據(jù)回發(fā)給controller處理,直

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論