亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenDayLight 的流表控制研究

        2023-09-12 00:50:30
        科學(xué)技術(shù)創(chuàng)新 2023年21期
        關(guān)鍵詞:流表表項(xiàng)命令

        高 麗

        (蘭州石化職業(yè)技術(shù)大學(xué),甘肅 蘭州)

        1 OpenDayLight 介紹

        SDN 控制器是SDN 中的應(yīng)用程序,類似網(wǎng)絡(luò)的“大腦”,控制網(wǎng)絡(luò)中的所有設(shè)備,而原來的通用網(wǎng)絡(luò)硬件只需要聽從控制器的命令進(jìn)行“傻瓜式”轉(zhuǎn)發(fā)就可以了,完全將網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)平面和控制平面相分離,實(shí)現(xiàn)網(wǎng)絡(luò)的集中控制和智能化管理。

        SDN 開源的控制器[1]主要有NOX、POX、Ryu、Floodlight、OpenDayLight(ODL)等,其中NOX 是一款OpenFlow 控制器,是SDN 開發(fā)的基礎(chǔ),POX 多用于快速開發(fā)控制器原型。Ryu 與OpenStack 平臺(tái)相結(jié)合,提供很多API,支持創(chuàng)建網(wǎng)絡(luò)管理應(yīng)用。Floodlight 是基于Beacon 的企業(yè)級(jí)OpenFlow 控制器。ODL 是Linux基金會(huì)管理的開源項(xiàng)目,本研究主要介紹ODL。

        ODL 是使用JAVA 語言開發(fā)的控制器,它的框架具有模塊化、可升級(jí)、支持多協(xié)議、可擴(kuò)展的特點(diǎn)。ODL 框架包括網(wǎng)絡(luò)應(yīng)用編排與服務(wù)、控制器、物理/虛擬網(wǎng)絡(luò)設(shè)備三層,三層之間有北向接口與南向接口連接??刂破魍ㄟ^北向接口向應(yīng)用層提供服務(wù),使用控制器收集信息進(jìn)行分析、部署網(wǎng)絡(luò)規(guī)則。南向接口通過多種協(xié)議,動(dòng)態(tài)地連接在業(yè)務(wù)抽象層(SAL)。ODL 平臺(tái)采用OSGI 框架,支持模塊化和可擴(kuò)展。YANG UI是ODL 中基于DLUX 的應(yīng)用,通過動(dòng)態(tài)封裝、調(diào)用YANG 模型和相關(guān)REST APIs,生成并展示UI 界面。在ODL 中通過YANGTools 項(xiàng)目管理YANG,該項(xiàng)目包含YANG、YANG 模型的代碼生成和DOM/Java 格式之間的映射,DataStore 的建模及其操作(RPC 和通知),提供RESTCONF 訪問數(shù)據(jù)等模塊。為了簡(jiǎn)化和促進(jìn)ODL 應(yīng)用程序的開發(fā),ODL 提供了基于YANG 模型生成并呈現(xiàn)簡(jiǎn)單的界面,相關(guān)的feature 組建有odldlux-core、odl-dluxapps-yangui、odl-dluxapps-yangvisualizer、odl-dluxapps-yangman 等。

        2 構(gòu)建OpenDayLight 控制器

        2.1 環(huán)境準(zhǔn)備

        構(gòu)建OpenDayLight 控制器的環(huán)境所需要的環(huán)境,硬件環(huán)境中CPU 數(shù)量為2 核、內(nèi)存空間為4G、磁盤容量為20G,軟件環(huán)境需要Ubuntu16.04、Mininet、Open-DayLight。本研究是在已經(jīng)安裝Mininet 工具的基礎(chǔ)上進(jìn)行ODL 的安裝和使用。

        2.2 安裝準(zhǔn)備

        在root 模式下:

        (1)安裝OpenDayLight 的依賴包:apt-get update。

        (2)安裝基礎(chǔ)包:apt-get install unzip lrzsz。

        (3)安裝運(yùn)行環(huán)境JDK。命令apt-get install openjdk-8-jdk。

        (4)設(shè)置JDK 環(huán)境變量。

        打開配置文件:vi /etc/profile。在文件最后添加以下設(shè)置:

        export JAVA_HOME=/usr/lib/jvm/java-1.8.0-ope njdk-i386

        export JRE_HOME=u${JAVA_HOME}/jre

        export CLASSPATH=.:${JAVA_HOME)/lib:$(JRE_HOME)/lib

        export PATH=${JAVA HOME}/bin:$PATH

        注意為使得文件生效,要執(zhí)行source /etc/profile命令。并使用echo ${JAVA_HOME}和java -version命令確認(rèn)JDK 版本、配置是否生效。

        2.3 下載安裝OpenDayLight

        OpenDayLight 為開源軟件下載鏈接:

        解壓壓縮文件,并打開文件org.apache.karaf.managemnet.cfg 修改參數(shù)如下:

        OpenDayLight 已安裝成功,在distribution-karaf-0.6.0-Carbon 目錄下使用命令./bin/karaf 啟動(dòng)karaf 容器,開啟界面見圖1。

        圖1 OpenDayLight 的開啟界面

        此時(shí)通過karaf 安裝feature。安裝內(nèi)容如下,在此提醒需要嚴(yán)格按照以下順序安裝,否則可能會(huì)導(dǎo)致無法訪問UI 界面。

        如果沒有按照順序安裝,致使無法登錄進(jìn)入ODL主界面[2]。需要?jiǎng)h除data 后重新安裝組件。

        3 OpenDayLight 控制器的使用

        3.1 開啟ODL

        Miniet 環(huán)境下,在Miniedit 界面化工具下創(chuàng)建拓?fù)洌慌_(tái)交換機(jī)下掛三臺(tái)主機(jī)。運(yùn)行拓?fù)洌诖颂嵝炎⒁忾_啟OpenDayLight。

        在下發(fā)流表之前,查看以下內(nèi)容:

        (1)登錄控制器c0。執(zhí)行netstat -an | grep 6633 命令,得到c0 是否處于監(jiān)聽的狀態(tài)。

        (2)登錄交換機(jī)s1。在c0 處于監(jiān)聽狀態(tài)的前提下,執(zhí)行ovs-vsctl show 命令,查看交換機(jī)的網(wǎng)卡鏈接情況,此時(shí)結(jié)果中is_connectedde 的值為true 時(shí),表示已連接到控制器c0。

        (3)查看主機(jī)IP 地址。分別登錄h1、h2、h3,使用ifconfig 命令查看IP 地址為10.0.0.1、10.0.0.2、10.0.0.3。

        3.2 基于openflow1.0 下發(fā)流表

        OpenFlow1.0 協(xié)議只支持單流表,處理數(shù)據(jù)包的流程簡(jiǎn)潔。它的工作流程即是交換機(jī)接收、解析數(shù)據(jù)包,之后從table 0 開始匹配,匹配成功時(shí)對(duì)該數(shù)據(jù)包執(zhí)行相應(yīng)的動(dòng)作、更新計(jì)數(shù)器;如果匹配失敗則將數(shù)據(jù)包交給控制器c0。

        操作如下:

        (1)切換到交換機(jī)s1,使用命令ovs-vsctl set bridge br0 protocol=OpenFlow10.

        (2)在瀏覽器中輸入http://127.0.0.1:8181/index.html,開啟ODL 的web 界面。使用賬號(hào)和密碼:admin登錄之后,加載網(wǎng)絡(luò)拓?fù)洌榭赐負(fù)涔?jié)點(diǎn)ID 信息,得到端口號(hào)及對(duì)應(yīng)節(jié)點(diǎn)控制器ID、MAC 地址等。

        (3)基于節(jié)點(diǎn)信息,選擇expand all 中的open daylight-inventoryrev 2013-08-19, 設(shè)置node id=openflow:1,table id=0,flow{id}的信息。

        (4)點(diǎn)擊flow list 后面的“+”,設(shè)置id=1,flow id會(huì)自動(dòng)同步,然后match --> ethernet-match -->ethernet -type,填寫“type”為“0x0800(IPv4)”。

        (5)選擇“l(fā)ayer-3-match”下拉框中的“ipv4-match”,彈開“l(fā)ayer-3-match”,補(bǔ)充完整源IP 地址和目的 IP 地址,分別為 h1、h2 的 IP 地址是10.0.0.1,10.0.0.2。

        (6)設(shè)置instructions 的動(dòng)作為丟包。彈開instructions,點(diǎn)擊instruction list 后面的“+”,instruction order 設(shè)置為0,instruction 的值選擇為“apply-actionscase”;彈開apply-actions,點(diǎn)擊“action list”后面的“+”,action order 設(shè)置為0,action 設(shè)置為“dropaction-case”。

        (7)配置priority 為27,cookie 為100000000,table_id 為0,idle-timeout 為0,hard-timeout 為0。

        (8)發(fā)送流表。選擇PUT 動(dòng)作,點(diǎn)擊Send,彈出request sent successfully 提示信息,即發(fā)送成功。

        (9)測(cè)試流表下發(fā)情況。返回mininet 終端,輸入命令sh ovs-vsctl dump-flows s1,查看下發(fā)流表。在新下發(fā)內(nèi)容的流表中,priority=27,IP 源地址、目的地址分別為h1、h2 的地址,動(dòng)作是drop。再通過執(zhí)行h1 ping h2,得到100%丟包率,見圖2。

        圖2 h1 與h2 無法通信

        由結(jié)果圖可知h1 與h2 之間不通,h1 與h3 通,新下發(fā)的流表項(xiàng)生效。如果刪除下發(fā)的流表項(xiàng),h1 再次ping h2,此時(shí)可以正常通信。

        3.3 基于openflow1.3 下發(fā)流表

        OpenFlow1.3 協(xié)議支持多流表匹配[3]。數(shù)據(jù)包處理的原理如下:

        收到設(shè)備的報(bào)文后,首先進(jìn)行解析,解析后按照優(yōu)先級(jí)別開始依次匹配流表項(xiàng)。一般根據(jù)報(bào)文頭的字段和報(bào)文類型進(jìn)行匹配。如果匹配成功,按照指令集更新相關(guān)信息,并按照指令確定是否前往下一個(gè)流表,不前往則終止執(zhí)行動(dòng)作集。匹配失敗有兩種情況,一種是存在無匹配流表項(xiàng)(table miss),它的處理方式是將報(bào)文轉(zhuǎn)發(fā)給控制器、丟棄或轉(zhuǎn)發(fā)給其他流表。一種是不存在table miss 表項(xiàng)則丟棄該報(bào)文。

        操作如下:

        (1)指定OpenFlow1.3 版本連接ODL。使用命令mn -c 清除上面繪制的topo,創(chuàng)建拓?fù)?,指定協(xié)議為OpenFlow1.3。命令為

        mn --custom sdn.py --topo mytopo --controller=remote,ip =127.0.0.1,port =6633--switchovsk,protoctls=OpenFlow13

        (2)分別通過GET、Send,DELETE、Send,查看配置流表node id=openflow:1,table id=0 信息并刪除流表信息。

        (3)pingall 并使用命令sh ovs-ofctl dumpflows -O OpenFlow13 s1 查看下流表,所有流表項(xiàng)正常發(fā)送。

        (4)下發(fā)流表。這里設(shè)置node id=openflow:1,table id=2,其余參考基于OpenFlow1.0 的設(shè)置方式下發(fā)流表。

        (5)再次查看流表,h1 發(fā)送流表給h2,actions的值為drop。但在測(cè)試h1 ping h2,發(fā)現(xiàn)h1 發(fā)送h2的包并沒有丟棄,是連通的,這是因?yàn)镺penFlow1.3 版本的流水線式處理流表,從優(yōu)先級(jí)最高的table0 開始,依次匹配,這里執(zhí)行了優(yōu)先級(jí)更高的table0,導(dǎo)致h1 與h2 能夠正常通信。這里將instruction 設(shè)置為goto-table-case,使得table0 轉(zhuǎn)到table2,并設(shè)置priority的值為23,接下來通過選擇PUT、Send 下發(fā),再回mininet 下查看流表及h1 和h3 連通性。

        (6)查看流表結(jié)果,得到priority=23,actions 的值為goto_table:2 的流表項(xiàng)。

        測(cè)試hi ping h2 連通性,結(jié)果見圖3。得到h1 ping h2 丟包率為100%。

        圖3 h1 與h2 無法通信

        結(jié)束語

        本研究在安裝Mininet 環(huán)境下,通過程序生成真實(shí)網(wǎng)絡(luò)流量,對(duì)OpenFlow 流表實(shí)現(xiàn)控制。通過ODL的YANG UI 進(jìn)行比如改寫源和目的主機(jī)的IP、MAC地址、優(yōu)先級(jí)別等操作,下發(fā)不同流表來自主的控制轉(zhuǎn)發(fā)行為、控制主機(jī)之間的連通性,使得控制網(wǎng)絡(luò)更加靈活多樣。

        猜你喜歡
        流表表項(xiàng)命令
        一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
        只聽主人的命令
        基于時(shí)序與集合的SDN流表更新策略
        基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
        基于緩存策略的OpenFlow流表存儲(chǔ)優(yōu)化方案研究
        簡(jiǎn)析yangUI流表控制
        軟件定義網(wǎng)絡(luò)中一種兩步式多級(jí)流表構(gòu)建算法
        移防命令下達(dá)后
        SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
        這是人民的命令
        亚洲伊人久久大香线蕉| 麻豆AⅤ精品无码一区二区| 亚洲综合网一区二区三区| h视频在线免费观看视频| 在线观看av片永久免费| 国产欧美一区二区精品仙草咪| 亚洲女同精品一区二区久久 | 日韩字幕无线乱码免费| 中国国产不卡视频在线观看 | 日本亚洲色大成网站www久久| 亚洲色欲Aⅴ无码一区二区| 亚洲另类国产精品中文字幕| 欧美成人精品第一区| 天天躁狠狠躁狠狠躁夜夜躁| 亚洲专区路线一路线二天美| 成年男女免费视频网站点播| 脱了老师内裤猛烈进入| 欧美人与动人物牲交免费观看| 亚洲欧洲AV综合色无码| 黑丝美腿国产在线观看| 337p日本欧洲亚洲大胆| 国内少妇偷人精品视频免费| 日韩精品一区二区三区中文9| 亚洲香蕉av一区二区三区| 国内精品卡一卡二卡三| 宅男噜噜噜| 国内精品久久人妻性色av| 亚洲欧美中文日韩在线v日本| 国产免费av片在线观看播放| 亚欧乱色束缚一区二区三区| 精品亚洲一区中文字幕精品| 九九久久自然熟的香蕉图片| 在线观看免费a∨网站| 青青青伊人色综合久久| 久久精品色福利熟妇丰满人妻91| 爆爽久久久一区二区又大又黄又嫩| 午夜精品一区二区三区无码不卡| 亚洲av一区二区在线| 国产不卡视频一区二区三区| 亚洲另类国产综合第一| 国产精品女人一区二区三区|