2017-02-22

CS5137701 軟體定義網路與網路功能虛擬化 [sdn1] (week 1)

課程:CS5137701 軟體定義網路與網路功能虛擬化           Software-Defined Networking and Network Function Visualization
周次:1
日期:2017/2/21
章節:sdn1



    目標

        封包經過RouterSwitch到達目的地
        希望讓封包盡可能走最短路徑(時間上)
        此外封包有時需分散流量以避免設備的佇列過滿導致掉封包(俗稱壅塞)


    傳統

        方法:
            在傳統網路中,藉由OSPF等協定,設備會記錄鄰近設備的訊息
            每個設備都有自己的控制層來決定資料層的Flow table(又稱Forward table)
            也就是DSNP
            利用這方式決定封包導向
        缺點:
            彈性低
            無法便宜的取得網路拓譜,網管人員管理不易
            每個設備獨立運作難以達成最佳解甚至會額外產生錯誤
        優點:
            部分設備中毒遭駭,整體網路依然能正常運作
        架構圖:



    SDN

        方法:
            將所有控制層都集中在一台主機
            如此一來,Controller能藉由向各設備請求資料來決定該如何配置Flow table
            Controller與Switch之交需要一種協議來溝通(南橋API)
            Openflow就是協議的一種,由ONF這組織制定
            我們能在軟體的Switch──例如OpenVSwitch──上進行Openflow測試
        優點:
            彈性高,能有很細緻的控制規則
            能取得完整網路拓譜,更容易做出最佳化的規劃
        缺點:
            Controller若中毒被駭,整個網路將癱瘓或陷於嚴重資安風險中
            表格有限,沒存在Control flow的規則會需要不同級別的時間去尋找路徑
            Switch的CPU可能不夠力
        架構圖:


SDN與Openflow基礎知識

    SDN層級

        模擬器/偵錯工具
            oftrace、oflops、openseer
        應用程式(控制邏輯,traffic工程)
            ENVI(GUI)LAVIn-Casting
        控制器
            NOX(C寫的)FloodLight(java)BeaconTremaOpenDayLight
        Slicing software
            FlowVisor將各個網路使用者的traffic分開
            在現有硬體下,能讓每位使用者依據需要自訂拓譜
        硬體 (OpenFlow Switches)
            Software Ref. Switch
            NetFPGA (一種可編成硬體,(verilog)非常低階的程式語言,硬體導向快但有限)
            Broadcom Ref. Switch
            OpenWRT (裝在AP中的韌體,讓基地台能支援openflow)
            PCEngine WiFi AP
            Open vSwitch


    Flow table欄位功用

        MATCH - 配對條件
        ACTION - 達成配對時執行行為
        COUNTER - 統計各條規則被配對到幾次
        PRIORITY - 如果某封包有配對到多項,依序優先度來選擇
        TIME OUT - 太久沒被用到的規則會被刪除以輕量化Flow Table


    二元性質比較

        主動規則(proactive rule)與反應規則(reactive rule)
            前者事先將規則布置在Switch,減少了未來封包詢問時間(flow setup time)
            後者剛好相反,待Switch配對失敗後詢問Controller得到配對方式
                反應規則雖然能比較有效率使用有限且昂貴的空間
                但因大量封包需要詢問Controller,可能形成瓶頸
        micro flow與wild card
            前者能進行非常細緻的控制,例如擋掉特定的Flow
            後者利用聚合規則,當兩條規則Prefix相同則將規則合併,減少Flow table使用量
        集中控制器(Centralized controller)與分散式控制器(Distributed controller)
            事情就是分分合合,合合分分
            為了解決瓶頸問題,有時我們會需要多個控制器來分別控管一個區域的設備
            再仰賴一個上層的Controller來協調各個Controller之間的運作


    SDNOpenFlow運作方式

        封包進來比對header並查Flow table依據規則與優先序處理封包
        如果沒有配對到規則,就去問Controller

    Openflow處理封包方式種類

        轉發到Switch的特定埠口(可以是實體埠,也可以是虛擬埠)
            a. ALL - 俗稱flood,除了進來埠口外,將封包傳給所有埠口
            b. CONTROLLER - 傳給Controller
            c. LOCAL - 傳給Router OS
            d. NORMAL - 根據傳統規則L2FL3S
        丟掉
            防火牆功能
        修改封包
            a. 修改封包內資料(來源、目的地、IP等)
            b. 在封包外加上VLAN標籤
            c. 設定佇列ID


    Openflow的轉發延遲

        根據以下這篇文張來探討轉發延遲
            Tango: Simplifying SDN Control with Automatic SwitchProperty Inference, Abstraction, and Optimization
        fast path
            已經對談的連線,封包的行進被稱為fast path
            是一種昂貴的硬體裝置,3, 5年需更換
            速度非常快,能對每個封包處理,但是能儲存的規則少
        slow path
            尚未對談的起始封包,封包的行進被稱為slow path
            他需要比fast path多做一些查表與設定
            因此封包必須要進到CPU才能處理,相對花了相當多的時間
            由於花的時間實在太多,若所有封包都走這條路會非常慢            參考Differences between packets in slow path,fast path and offloaded
        controller path
            找不到對應的規則,需要詢問controller才能知道如何處理封包

沒有留言:

張貼留言