欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Lab1Mininet安装设定与使用.ppt

    • 资源ID:5436914       资源大小:7.74MB        全文页数:86页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Lab1Mininet安装设定与使用.ppt

    ,Mininet 安裝設定與使用,Lab,1,行動寬頻尖端技術課程推廣計畫,1,實驗目標與步驟實驗背景知識實驗設備與環境實驗內容,Outline,實驗目標與步驟,Lab,1,行動寬頻尖端技術課程推廣計畫,3,實驗目標與步驟,1.安裝虛擬機以及Ubuntu系統2.安裝Mininet3.安裝Ryu Controller4.讓Mininet與外部Controller進行連接5.Mininet的Topology設計6.使用REST API控制Ryu Controller,實驗目標,在一部PC上利用虛擬機安裝Ubuntu作業系統,並且在Ubuntu上安裝Ryu Controller、Mininet,以模擬SDN使用狀況。,實驗步驟,實驗背景知識,Lab,1,行動寬頻尖端技術課程推廣計畫,5,Mininet&Ryu,Mininet是一套運作於Linux作業系統的網路環境模擬軟體,其功能目的與Packet tracer類似。Mininet主要是針對SDN的網路環境來進行模擬,同時它也支援OpenFlow協定。Ryu是來自日本NTT所開發設計的SDN控制器。使用Python所寫成,可以支援OpenFlow 1.0、1.1、1.2、1.3、1.4、1.5版本。,6,REST 設計風格,REST(Representational State Transfer)是Roy Thomas Fielding博士於2000年在博士論文中提出的一種全球資訊網軟體架構風格,目的是便於不同軟體/程序在網絡(例如:網際網路)中互相傳遞信息。在 REST 中的資源(Resource)代表整個網路上的資源。網路上提供了各式各樣的資源,而網路上的資源由 URI(統一資源標識符,Uniform Resource Identifier)來提供。Client 透過 URI 來獲取資源的具體象徵(Representational),並且使應用程式轉變其狀態(以 Browser 而言,取得 HTML、CSS、JavaScript 來產生畫面),隨著不斷取得資源的具體象徵,Client 端不斷地改變其狀態,這樣不斷的反覆(iterations)過程就是所謂的Representational State Transfer。,7,REST API,符合REST設計風格的Web API稱為RESTful API。它對資源(Resource)有以下三個方面的定義:,1.直觀簡短的資源地址:URI,比如:http:/傳輸的資源:Web服務接受與返回的網際網路媒體類型,比如:JSON,XML,YAML等。3.對資源的操作:Web服務在該資源上所支持的一系列請求方法(比如:POST,GET,PUT或DELETE等)。,HTTP請求方法(Request Method)在RESTful API中的典型應用:,實驗設備與環境,Lab,1,行動寬頻尖端技術課程推廣計畫,9,實驗設備:PC,實驗設備,10,Ryu ControllerMininet,實驗環境,PC Software:,Ubuntu Software:,(能夠使用HTTP Method(如:POST/GET/DELETE/UPDATE)之Google Chrome插件),VirtualBoxUbuntu 16.04 LTSGoogle Chrome with Postman,11,實驗架構拓樸圖,Windows:裝設虛擬機(VirtualBox)、Ubuntu16.04 Ubuntu:安裝Ryu以及Mininet,讓Ryu連接Mininet,實驗內容,Lab,1,行動寬頻尖端技術課程推廣計畫,1.安裝虛擬機以及Ubuntu系統2.安裝Mininet3.安裝Ryu Controller4.讓Mininet與外部Controller進行連接5.Mininet的Topology設計6.使用REST API控制Ryu Controller,實驗步驟,Lab,1,行動寬頻尖端技術課程推廣計畫,14,VirtualBox官方網站中有針對不同作業系統提供安裝套件,我們選擇Windows版本。,安裝虛擬機以及Ubuntu系統,15,到Ubuntu的官網下載我們所用的版本16.04 LTShttps:/,下載Ubuntu安裝檔,16,到Ubuntu的官網下載我們所用的版本16.04,下載Ubuntu安裝檔,17,安裝環境(1),1,2,開啟VirtualBox,按下新增。設定使用者名稱、作業系統類型、作業系統版本,18,安裝環境(2),3,4,3.記憶體大小建議配置為4096 MB。4.點選立即建立虛擬硬碟,19,安裝環境(3),選擇VDI。6.虛擬機硬碟大小建議配置10GB以上。,5,6,20,安裝環境(4),7.點選右鍵選擇設定值。選擇網路。選擇橋接介面卡,7,8,9,21,安裝環境(5),10.雙擊左鍵開啟虛擬機。11.選擇欲安裝的映像檔。,10,11,22,安裝環境(6),12.選擇繁體中文。13.點選安裝Ubuntu。,12,13,23,安裝環境(7),14.選擇安裝Ubuntu同時下載更新。15.選擇清除磁碟並安裝Ubuntu,接下來一連串的步驟都不需要做更動。,14,15,24,環境架設完成,16.漫長的安裝步驟結束後,便能成功進入Ubuntu系統。,1.安裝虛擬機以及Ubuntu系統2.安裝Mininet3.安裝Ryu Controller4.讓Mininet與外部Controller進行連接5.Mininet的Topology設計6.使用REST API控制Ryu Controller,實驗步驟,Lab,1,行動寬頻尖端技術課程推廣計畫,26,開啟終端機,點選左方 按鈕,並且輸入terminal 點選,1,2,3,27,Mininet安裝,在終端機上輸入以下指令,Step 1:安裝git$sudo apt-get update$sudo apt-get install y git,Step 3:安裝 Mininet$./mininet/util/install.sh a,Step 2:下載 Mininet 套件$git clone https:/,28,開啟Mininet,會出現預設的Topology(如右下圖所示),開啟Mininet$sudo mn,29,Mininet基本指令介紹,開啟Mininet預設拓樸$sudo mn,展示節點mininetnodes,幫助mininethelp,展示連結mininetnet,30,Mininet基本指令介紹,30,展示所有節點的網路資訊mininetdump,讓 host1 ping host2minineth1 ping h2,讓所有主機互相pingmininetpingall,展示 host1 的網路介面minineth1 ifconfig,31,Mininet基本指令介紹,展示switch1的flows資訊mininetsh ovs-ofctl dump-flows s1 O openflow13,開啟host1及host2的終端機(terminal)畫面mininetxterm h1 h2,刪掉switch1所有的flowmininetsh ovs-ofctl del-flows s1 O openflow13,重整 Mininet$sudo mn-c,1.安裝虛擬機以及Ubuntu系統2.安裝Mininet3.安裝Ryu Controller4.讓Mininet與外部Controller進行連接5.Mininet的Topology設計6.使用REST API控制Ryu Controller,Lab,1,行動寬頻尖端技術課程推廣計畫,實驗步驟,33,Ryu Controller安裝,Step 1:更新軟體資料庫$sudo apt-get update,Step 3:安裝Ryu Controller所需的Python套件$sudo apt-get install libxml2-dev libxslt1-dev python-eventlet python-routes python-webob python-paramiko y,Step 2:安裝Python套件庫$sudo apt-get install python-pip python-dev-y,Step 4:安裝pip套件$sudo pip install oslo.config$sudo pip install msgpack-python,Ryu Controller安裝,Step 5:下載Ryu套件$sudo git clone https:/,Step 6:安裝Ryu$cd ryu$sudo python./setup.py install,Step 7:測試是否成功$sudo ryu-manager,成功畫面如圖,28,若出現錯誤訊息請查看底下兩頁投影片。,35,安裝常見錯誤,安裝常見錯誤一:,解決方法$sudo pip install tinyrpc,36,安裝常見錯誤,安裝常見錯誤二:,解決方法$sudo pip install-r tools/pip-requires$sudo python setup.py install,輸入$sudo ryu-manager查看是否安裝成功,1.安裝虛擬機以及Ubuntu系統2.安裝Mininet3.安裝Ryu Controller4.讓Mininet與外部Controller進行連接5.Mininet的Topology設計6.使用REST API控制Ryu Controller,Lab,1,行動寬頻尖端技術課程推廣計畫,實驗步驟,38,Ryu與Mininet連接(1),開啟Ryu Controller$sudo ryu-manager,39,Ryu與Mininet連接(2),開啟一個新的Terminal,並在新的Terminal開啟Mininet$sudo mn-mac-switch ovs,protocols=-controller=remote,ip=,port=,詳細參數設定說明請看下一頁。,40,Ryu與Mininet連接(3),指令參數介紹$sudo mn-mac-switch ovs,protocols=-controller=remote,ip=,port=,41,Ryu與Mininet連接(4),h1 ping h2 h1 ping h2這時候,會發現host間無法傳送封包。原因是因為目前OpenFlow Switch內的Flow Table是空的,因此我們必須要在Ryu Controller掛載APP(應用程式)才能使host間正常傳送封包。,42,Ryu與Mininet連接(5),讓h1可以跟h2互ping:重新開啟Ryu Controller,並且掛載內建預設的APP$ryu-manager,1.分派管轄網路內的封包流向2.處理不明封包,simple_switch_13.py這個APP能夠實現簡單交換器的功能,並可簡單區分為兩個主要功能:,43,Ryu與Mininet連接(6),結束原先的Mininet,並重新開啟Mininet$sudo mn-mac-switch ovs,protocols=-controller=remote,ip=,port=,44,Ryu與Mininet連接(7),再一次讓h1 ping h2 h1 ping h2此時,就能發現我們能成功地讓兩台主機互ping,1.安裝虛擬機以及Ubuntu系統2.安裝Mininet3.安裝Ryu Controller4.讓Mininet與外部Controller進行連接5.Mininet的Topology設計6.使用REST API控制Ryu Controller,Lab,1,行動寬頻尖端技術課程推廣計畫,實驗步驟,46,Mininet Topology-1,Mininet TopologyMininet本身有提供一些內建的拓樸給我們使用,以下將介紹各種內建拓樸的開啟方式。,$sudo mn-toposingle|linear|tree,Mininet 內建拓樸開啟可用參數,Mininet Default Topology(預設)$sudo mn,47,Mininet Topology-2,Mininet Single Topology(單一個Switch)$sudo mn-topo single,3,$sudo mn-toposingle|linear|tree,Mininet 內建拓樸開啟可用參數,48,Mininet Topology-3,Mininet Linear Topology(線性)$sudo mn-topo linear,3,$sudo mn-toposingle|linear|tree,Mininet 內建拓樸開啟可用參數,49,Mininet Topology-4,Mininet Tree Topology(樹狀)$sudo mn-topo tree,2,$sudo mn-toposingle|linear|tree,Mininet 內建拓樸開啟可用參數,50,Custom Topology,Custom TopologyMininet也可以透過腳本程式的撰寫(python)來定義拓樸。,Step 1:進入範例拓樸檔資料夾$cd mininet/custom,Step 2:開啟範例拓樸$sudo mn-custom topo-2sw-2host.py-topo mytopo,在終端機上輸入以下指令,動手做做看:將Mininet內建的拓樸腳本topo-2sw-2host.py從linear,2改為linear,3。,51,Custom Topology,可以發現 custom topo-2sw-2host.py 的連接方式為linear,2,nodes net,52,Custom Topology,下載vim編輯器$sudo apt-get install vim,使用vim編輯器開啟 拓樸腳本檔案$vim topo-2sw-2host.py,上方紫色區塊為註解,加入Hosts與Switches,加入節點之間的鏈結,53,本節要示範將拓樸改成 linear,3,Custom Topology,將新加入的s3、h3與原 本的設備連接。,加入 s3、h3,並將其他設 備的編號稍做修改,以方 便之後的觀察。,上方紫色區塊為註解,修改好之後使用鍵盤依序鍵入:esc:wq!進行存檔。,54,Custom Topology,修改後,custom topo-2sw-2host.py 連接方式已改為linear,3,$sudo mn-custom topo-2sw-2host.py-topo mytopo,nodes,net,links,1.安裝虛擬機以及Ubuntu系統2.安裝Mininet3.安裝Ryu Controller4.讓Mininet與外部Controller進行連接5.Mininet的Topology設計6.使用REST API控制Ryu Controller,Lab,1,行動寬頻尖端技術課程推廣計畫,實驗步驟,56,Postman,(在Google搜尋:Postman並安裝),Postman利用Postman來對Ryu Controller來下REST API,57,REST APIRyu Controller有提供REST API來對它做類似下指令的動作,我們可以利用它來新增Flow、查詢switch狀態 等功能。,常用之REST API介紹,Ryu Controller常用之REST API:,Ryu Controller內建之REST API查詢:,58,常用之REST API介紹,URI:/stats/switches,取得所有連接到Controller的Switch清單,Switch DPID,範例:,59,常用之REST API介紹,URI:/stats/flow/,取得指定Switch中所有的Flow,範例:,Flow Entry,60,常用之REST API介紹,URI:/stats/flowentry/add,新增一條Flow,範例:,61,常用之REST API介紹,URI:/stats/flowentry/delete,刪除指定的Switch裡條件相符的所有Flow,刪除指定的Switch裡所有的Flow,URI:/stats/flowentry/clear/,範例:,範例:,62,REST API 範例實驗,在步驟四的實驗中,當Ryu Controller還沒掛載APP時,Host間是無法傳送封包的。原因是Flow Table為空,而解決方案為掛載simple_switch_13 APP,在接下來的步驟中,我們將要改成透過REST API對Controller下達Flow Entry的方式來讓Host間能夠正常地傳送封包。,要使用REST API必須掛載ofctl_rest這項APP,$sudo ryu-manager,63,REST API 範例實驗,開啟Mininet連接Ryu Controller,拓撲使用預設拓撲。,64,REST API 範例實驗,這時候,會發現Host間無法傳送封包。h1 ping h2,65,REST API 範例實驗,開啟Postman並且利用底下的API新增Flow Entry:http:/:8080/stats/flowentry/add第1條 當抓到來源為port1的封包時,將其封包從port2送出去,1,2,3,4,port1,port2,66,REST API 範例實驗,第2條當抓到來源為port2的封包時,將其封包從port1送出去,port1,port2,1,67,REST API 範例實驗,在Ryu Controller視窗可以看到剛才下的兩條Flow,使用Mininet再次執行ping,會發現Host間已經開始正常傳送封包了,h1 ping h2,68,REST API 範例實驗,利用這個API可以看到我們剛剛所下的兩條Flow:http:/:8080/stats/flow/,1,回傳Flow的內容(其中一條Flow),69,REST API 範例實驗,利用這個API我們可以把所有的Flow都刪除 http:/:8080/stats/flowentry/clear/,1,70,REST API 範例實驗,這時,再次使用此API,會發現剛剛所下的Flow都被刪除了 http:/:8080/stats/flow/,1,回傳Flow的內容為空値,71,REST API 範例實驗,所有的Flow都被刪除了,因此h1 與 h2 也就立即停止通訊。,h1 ping h2,72,封包偽造實驗,封包偽造實驗情境說明:有一位駭客想要對特定的Host進行流量攻擊(DoS),詳細需求如下:,請你利用Python程式撰寫此拓樸腳本,並使用REST API來協助這位駭客達成目標,最後透過Mininet與Wireshark觀察實驗結果。,1.透過 Host1 對 Host2 進行流量攻擊,並且將這個惡意行為嫁禍給Host32.透過 Host3 對 Host4 進行流量攻擊,並且將這個惡意行為嫁禍給Host1,73,封包偽造實驗,思考如何達成?,當 Host1 要傳送封包給 Host4 時,我們可以在Switch2,將該封包來源IP&MAC位址改為Host3的IP&MAC位址(偽造來源)將該封包目的IP&MAC位址改為Host2的IP&MAC位址(攻擊目的)將該封包送往連接Host2的Port,我收到來自Host3的封包在攻擊我,我要發送惡意封包到Host2,並且假裝是Host3做的,我是無辜的,我並沒有收到來自Host1的封包耶,74,封包偽造實驗,思考如何達成?,當 Host3 要傳送封包給 Host2 時,我們可以在Switch3,將該封包來源IP&MAC位址改為Host1的IP&MAC位址(偽造來源)將該封包目的IP&MAC位址改為Host4的IP&MAC位址(攻擊目的)將該封包送往連接Switch1的Port,我要發送惡意封包到Host4,並且假裝是Host1做的,我是無辜的,我並沒有收到來自Host3的封包耶,我收到來自Host1的封包在攻擊我,75,封包偽造實驗,步驟一:利用Python撰寫拓樸腳本,步驟二:開啟Ryu Controller(包含以下兩個APP)$,動手做做看:請根據72頁的拓樸圖撰寫出拓樸腳本,存檔為topo-lab1.py。,步驟三:開啟Mininet與自己撰寫的拓樸腳本$sudo mn-mac-controller=remote,ip=127.0.0.1-custom topo-lab1.py-topo mytopo-switch ovs,protocols=OpenFlow13,-mac 為讓Host的MAC位址為一組簡單排列的序號(從00:00:00:00:00:01 00:00:00:00:00:04),76,封包偽造實驗,步驟四:檢查拓樸的連接是否正確 net,步驟五:測試Host之間是否能夠正常互相ping pingall,77,封包偽造實驗,步驟六:根據73頁的思考,要對Switch2下達一條Flow:,封包符合判斷條件(match):eth_src,ipv4_src(來源MAC/IP位址)為 Host1eth_dst,ipv4_dst(目的MAC/IP位址)為 Host4eth_type(封包類型)為 2048(IPv4)ip_proto(封包所使用的協定)為 1(ICMP),dipd 為 2 的Switch,動作一(actions):type為SET_FIELD(設定封包欄位)field為欲設定的封包欄位將封包來源MAC/IP位址設定為Host3的MAC/IP位址,動作二(actions):type為SET_FIELD(設定封包欄位)field為欲設定的封包欄位將封包目的MAC/IP位址設定為Host2的MAC/IP位址,動作三(actions):type為OUTPUT(送出封包)port為欲將該封包往哪一個Port送出,畫紅色底線之處需由學生自行填入。,78,封包偽造實驗,步驟七:根據74頁的思考,要對Switch3下達一條Flow:,動手做做看:請修改剛剛對Switch2所下達的Flow,現在我們只要對Switch3下達一條類似的Flow就可以了!,79,封包偽造實驗,步驟八:開啟Host1的Wireshark,並選擇網卡擷取封包 h1 sudo wireshark&(在Mininet的Terminal),1,2,80,封包偽造實驗,步驟九:Filter欄位輸入icmp,並按兩下Enter在本實驗中我們僅需要觀察ICMP(Ping)類型的封包,1,81,封包偽造實驗,步驟十:重複步驟八步驟九,開啟 Host2Host4的Wireshark視窗,Host1,Host2,Host3,Host4,1,2,3,4,82,封包偽造實驗,步驟十一:用Host1 ping Host4並觀察結果。h1 ping h4,1,4,83,封包偽造實驗,步驟十二:用Host3 ping Host2並觀察結果。h3 ping h2,1,4,84,封包偽造實驗,恭喜你已順利通過SDN駭客初級訓練班課程!,Lab,1,行動寬頻尖端技術課程推廣計畫,ENDThank You,

    注意事项

    本文(Lab1Mininet安装设定与使用.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开