• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    簡析yangUI流表控制

    2018-11-07 03:02:44
    網(wǎng)絡安全和信息化 2018年3期
    關鍵詞:流表環(huán)境變量命令

    基于ODL與mininet的實驗環(huán)境架構

    為便于學習者使用,實驗環(huán)境采用虛擬機實現(xiàn),依據(jù)目前計算機的主流配置,具體使用軟件如下:VMware Workstation12;Ubuntu14.04 desktop;distribution-karaf-0.3.3-Lithium-SR3(ODL版本);jdk-8u73-linux-x64;apache-maven-3.3.9。實驗環(huán)境要求能夠連接Internet,以便安裝mininet。

    基本環(huán)境搭建

    1安 裝VMware Workstation12并注冊key。

    2安 裝Ubuntu 14.04 desktop到VMware Workstation中,并設置該虛擬機網(wǎng)絡環(huán)境為NAT模式。

    圖1 下載到虛擬機

    圖2 添加環(huán)境變量

    具體操作請自行百度,本文不做闡述。系統(tǒng)安裝后可以啟用SSH服務,禁用防火墻、SELinux服務,便于集中精力完成流表控制。

    ODL運行環(huán)境搭建

    下 載distributionkaraf-0.3.3-Lithium-SR3(ODL版 本)、jdk-8u73-linux-x64、apachemaven-3.3.9到Ubuntu虛擬機內(nèi),如圖1所示。

    1.JDK環(huán)境安裝

    利用CTRL+ALT+T啟動終端,在終端中進行如下操作:

    (1)利用mkdir命令創(chuàng)建目錄/usr/lib/jvm :sudo mkdir/usr/lib/jvm

    (2)解壓下載的JDK包到該目錄:sudo tar-xzvf jdk-8u73-linux-x64.tar.gz-C/usr/lib/jvm

    (3)為便于操作和記憶,改目錄名為java :

    sudo mv/usr/lib/jvm/jdk1.8.0_73 /usr/lib/jvm/java

    2. Maven環(huán)境安裝

    (1)解壓下載的Maven包到/usr/lib/jvm目錄:

    sudotar-xzvf apache-maven-3.3.9-bin.tar.gz-C/usr/lib/jvm

    (2)同樣修改目錄名稱為maven:

    sudo mv/usr/lib/jvm/apache-maven-3.3.9/usr/lib/jvm/maven

    3.設置環(huán)境變量,使java與maven工作

    利 用gedit打 開~/.bashrc文件,在文件末位添加環(huán)境變量,如圖2所示。

    利用命令source~/.bashrc使環(huán)境變量生效,并可以利用echo命令查看環(huán)境變量是否生效。

    4.驗證環(huán)境是否成功

    在終端輸入mvn-v看顯示內(nèi)容是否成功顯示設置的Maven home,Java home等信息,如圖3所示。

    5.安裝并運行ODL控制器

    (1)利 用tar命令解壓ODL壓縮包:tar-xzvf distribution-karaf-0.3.3-Lithium-SR3.tar.gz

    (2)進入distributionkaraf-0.3.3-Lithium-SR3/bin目錄:cd distributionkaraf-0.3.3-Lithium-SR3/bin

    (3)利用./karaf啟動ODL,啟動成功如圖4所示。

    mininet環(huán)境架構

    1.mininet安裝

    (1)安裝git工具:sudo apt-get install git

    圖3 查看顯示內(nèi)容

    圖4 成功啟動

    圖5 查看端口是否在監(jiān)聽

    (2)利用git下載mininet:git clone git://github.com/mininet/mininet

    (3)安裝mininet與OpenVSwitch(后面簡稱OVS)

    cd mininet

    git tag

    #版本檢測

    gitcheckout-b2.2.2

    #切換版本到2.2.2

    cd util

    ./install.sh -a

    #安裝mininet

    2.測試mininet是否安裝成功

    (1)測試mininet是否安裝成功:sudo mn --test pingall。

    (2)查看mininet版本:mn --version

    (3)查看OVS版本:ovsofctl --version

    上述命令均成功說明mininet及OVS安裝成功。

    3.mininet與ODL連接

    為了便于mininet與ODL連接并實現(xiàn)通過ODL控制mininet中的網(wǎng)絡設備,ODL中需要安裝幾個feature:用于Web瀏覽器訪問ODL的odl-dlux-all;用于發(fā)現(xiàn)主機節(jié)點的odll2switch-all;用于訪問北向接口的odl-restconfigall等。

    在啟動后的ODL命令行界面執(zhí)行如下命令安裝:

    feature:install odldlux-all

    feature:install odll2switch-all

    feature:install odlrestconf-all

    安裝好后通過netstat-tnl命令查看6633、6653、8181端口是否監(jiān)聽,即相應服務是否啟動。

    如果端口已在監(jiān)聽說明正常工作,如圖5所示。其中,6653、6633端口啟動可能需要等待較長時間,取決于計算機性能。

    至此,mininet就可以與ODL連接了。mininet連接ODL可以采用mn命令,也可以使用mininet下的圖形化腳本minedit.py連接。

    yangUI流表控制實現(xiàn)

    為了便于操作,本文采用圖形化腳本miniedit.py建立仿真拓撲,然后與ODL建立連接。

    建立mininet的網(wǎng)絡拓撲并與ODL建立連接

    1.進入mininet的example目錄,利用“sudo./miniedit.py”啟動圖形界面建立如圖6所示拓撲。其中c0為控制器,設置其屬性如下:Controller Port為 6653;Controller Type為Remote Controller;Protocol為TCP;I P Address根據(jù)ODL服務器所在主機IP地址填寫,由于本實驗環(huán)境的mininet與ODL建立在同一服務器中,所以,可以寫127.0.0.1。h1與h2主機的地址采用了默認的10.0.0.0/8段的網(wǎng)址,如10.0.0.1與10.0.0.2。

    圖6 建立的拓撲結構

    圖7 設置界面

    圖8 拓撲結構圖

    2.利用miniedit中的edit菜單中的Preferences對話框設置主機的網(wǎng)絡地址,勾選Start CLI,并設置OVS使用的OpenFlow版本,本實驗環(huán)境采用默認,如圖7所示。

    通過ODL的yangUI查看流表

    1.通過Web方式登錄ODL,賬戶與密碼默認均為admin。登錄成功后可以看到交換機設備,但未見主機,此時,在mininet提示符下輸入pingall命令產(chǎn)生數(shù)據(jù)流,再次登錄就可以看到完整的拓撲了,如圖8所示。

    2.在mininet提示符下輸入“sh ovs-ofctl dumpflows s1”就可以看到交換機s1的完整流表情況。

    3.在ODL的yangUI界面下定位到opendaylightinvertory下的operational下的nodes選項,利用下面path中的GET動作,可以獲取到當前拓撲的所有流表信息。

    4.在yangUI獲取的流表信息與mininet中顯示的流表信息比較,可以得出相應的各選項的含義。如本環(huán)境中,node id為“openflow:1”,交換機s1的node-connector id為“openflow:1:LOCAL”,主機的node-connector id為“openflow:1:1” 和“openflow:1:2”

    由于本文主要分析流表控制,所以主要查看table list項,在里面找到table項,即id為0的表,這里面的flow list內(nèi)容就對應在mininet中查看到的流表內(nèi)容。

    其 中flow list中id為#UF$TABLE*0-1到#UF$TABLE*0-4對應初始的流表,id為#UF$TABLE*0-5和#UF$TABLE*0-6對 應priority為10的默認流表,通過比較yangUI中的流表內(nèi)容與mininet中顯示的流表信息可以理解yangUI中各選項含義。如match項、action項、priority項 和table_id項,通過這些選項的含義理解,就可以利用yangUI給網(wǎng)絡下發(fā)流表控制網(wǎng)絡的數(shù)據(jù)流向了。

    通過yangUI下發(fā)流表

    通過前文的操作理解,本部分通過流表下發(fā)實現(xiàn)簡單的數(shù)據(jù)流控制,從而讓讀者結合文章上下文理解流表控制的操作。

    流表下發(fā)前在mininet中利用pingall可看到主機間可正常通信,并可利用sh ovs-ofctl dump-flows s1看到s1的流表情況。

    下面利用yangUI的流表下發(fā)功能實現(xiàn)控制mininet中仿真的網(wǎng)絡中主機間不能通信。

    首先在ODL的yangUI界面下選擇opendaylightinvertory下的config下的nodes選項。然后展開下方的nodes,設置如下:

    node id 為openflow:1;添 加 table list(id為 0)項下的 flow list(id 為 0)項,在match項中采用了 ethernet-match,利 用主機MAC地址匹配,利用instruction list添加具體動作,instruction為apply-action-case,具體動作為drop-actioncase。為使新的流表工作,需要將優(yōu)先級調(diào)高,此處priority設置為12(因為默認流表的優(yōu)先級為10,所以新流表的優(yōu)先級要高于原先的流表優(yōu)先級才能工作),最后的table id設置為0。

    設置好選項后將path中的動作設置為PUT,點send下發(fā)流表,成功后在ubuntu下的mininet中利用sh ovs-ofctl dumpflows s1命令查看流表是否下發(fā)成功。

    此時,主機h1與h2就不能正常通信了。

    如果需要控制網(wǎng)絡再次正常通信,可再次下發(fā)流表,如將原先下發(fā)流表的優(yōu)先級設置為14,動作為output-action-case,具體的output-nodeconnector設置為 1,其他設置不變(即參考前面的設置),再次下發(fā)后,主機間就可正常通信了。

    總結:通過前面的操作就可以實現(xiàn)初步的SDN網(wǎng)絡控制了,在實際操作中如果發(fā)現(xiàn)流表下發(fā)不成功的情況,一般而言就是漏設了相關項,如table id,flow id等。本文主要探討了通過支持ODL南向協(xié)議的yangUI插件下發(fā)流表的操作內(nèi)容,相對簡單,主要為初學者引路。

    猜你喜歡
    流表環(huán)境變量命令
    基于最大熵模型的云南思茅松潛在分布區(qū)
    基于匹配動作表模型的可編程數(shù)據(jù)平面流表歸并
    只聽主人的命令
    基于時序與集合的SDN流表更新策略
    從桌面右鍵菜單調(diào)用環(huán)境變量選項
    徹底弄懂Windows 10環(huán)境變量
    基于緩存策略的OpenFlow流表存儲優(yōu)化方案研究
    電子測試(2018年21期)2018-11-08 03:09:34
    軟件定義網(wǎng)絡中一種兩步式多級流表構建算法
    移防命令下達后
    這是人民的命令
    乐亭县| 芜湖市| 永寿县| 云林县| 仁布县| 亳州市| 贵港市| 东乌珠穆沁旗| 枞阳县| 丰原市| 衡东县| 绥芬河市| 鞍山市| 同心县| 宜川县| 永康市| 金溪县| 洛浦县| 台安县| 大竹县| 都昌县| 二连浩特市| 剑阁县| 宁城县| 休宁县| 郴州市| 龙井市| 安阳市| 子洲县| 郎溪县| 罗平县| 体育| 武宣县| 松江区| 同仁县| 揭东县| 翁源县| 青州市| 维西| 田林县| 元朗区|