2.1ONF定義的SDN基本架構:
- 應用層:實現網絡流量的靈活控制,使網絡做爲管道智能
- 控制層:網絡虛擬化實現方式,核心技術OpenFlow
- 轉發層新型創新架構,實現網絡設備控制與轉發分離
2.2核心思想
1.Decoupling:控制平面負責上層的控制決策;數據平面負責數據的交換轉發(網絡邏輯集中控制)node
2.Abstraction:python
- 轉發抽象:路由表,MPLS標籤表,ACL訪問控制表抽象流表
- 分佈狀態抽象:分佈狀態抽象成全局網絡視圖
實現下發控制命令;收集設備和鏈路狀態,爲上層應用提供全局網絡視圖
- 配置抽象:網絡行爲表達經過編程語言實現,將抽象配置映射爲物理配置,利用控制器提供的API,基於控制層提供的全局網絡視圖
3.Programable:開放接口編程編程
接口:網絡
- 控制平面--應用平面(北向接口):REST API ;JAVA API
- 控制平面--數據平面(南向接口)實現協議:OpenFlow,NETCONF,OF-Config,OVSDB
- 東西向接口:多控制器或控制器與外部組件之間通訊
數據平面:架構
- 高性能網絡數據處理框架DPDK
- SDN數據平面可編程:P4
2.3Mininet應用實踐(SDN仿真工具)
- 運用mininet可視化工具建立網絡拓撲結構
- 運用mininet交互命令建立網絡拓撲結構
- 運用python腳本構建網絡拓撲結構
建立一個真實的虛擬網絡,其中包含真實的工做組件,但運行在機器上,便於測試框架
- 命令行: sudo mn(簡單拓撲:控制器-交換機--兩個主機) controllers-switches-hosts
- 交互式命令: py net.addHost('h3')(添加主機)
- python應用程序 sudo python lab_1.py
更多:http://mininet.org/編程語言
基本命令:
- help:顯示可能的mininet命令列表
- nodes:顯示節點列表
- net:顯示網絡拓撲(ASCII編碼)
- dump-顯示每一個節點的接口設置和表示每一個節點進程的PID
- <node id>ifconfig相似於定義網絡接口的Linux命令
基本命令行參數:
- --topo-啓動時經過命令行定義拓撲
- --switch-定義使用交換機,默認使用ovsk交換機
- --controller-定義使用控制器,若爲指定默認控制器,做爲集線器使用