簡介
本檔案將介紹軟體定義網路(SDN),作為補充傳統網路架構的新網路方法。SDN的原始定義與OpenFlow關聯。
OpenFlow SDN目標
以下是OpenFlow SDN的主要目標。
- 提高網路可擴充性。
- 降低網路複雜性。
- 允許更好的應用控制。
- 啟用功能獨立性。
- 通過將控制平面和資料平面分離以及資料平面標準化來實現。該控制平面被實現為運行在高效能多核伺服器上的全知、完善和分散式軟體。
- OpenFlow是來自開放式網路基礎(ONF)的一項規範,它定義了一個基於流量的轉送基礎架構(交換機型號)和一個標準化的應用程式程式設計介面(協定定義)。
- OpenFlow允許控制器通過安全通道來指揮交換器的轉送功能。本地裝置配置不在OpenFlow協定的範圍內。
功能摘要
這是水龍頭OpenFlow控制器:
- OpenFlow 1.3交換機(包括TFM表功能消息)
- 第2層交換、VLAN、ACL、第3層IPv4和IPv6路由(靜態和通過BGP)
- 作為網路中第2/第3層交換機的外掛替代進行部署,以啟用額外的基於SDN的功能。
- OpenFlow是一種完全不同的轉發模式,它使用相同的Catalyst 9000硬體和軟體。
- 模式可在OPENFLOW和NORMAL之間切換,需要重新引導。
OpenFlow是控制器(控制平面)和乙太網路交換器(資料平面)之間的通訊協定。交換機具有排列成管道的流表,流是檢查資料包的規則。
流指定:
- 匹配條件
- 優先順序機制
- 要對資料包執行的操作
- 逾時
示例管道:
註:雖然沒有功能依賴性,但需要在OpenFlow模式下啟動交換機。OpenFlow模式下的可用平台,Catalyst 9000系列交換機 — 9300/9400/9500/9500-H
Cisco實施(Cat9k上的OpenFlow模式)
正常操作和OpenFlow操作使用相同的影象。
交換機應處於OpenFlow模式。
ott-of-c9k-210#show boot mode
System initialized in openflow forwarding mode
System configured to boot in openflow forwarding mode
All the front panel ports are openflow ports (no hybrid mode)
Changing the boot mode (reload mandatory)
ott-of-c9k-210(config)#boot mode openflow
重新載入交換器。
檢驗交換機是否處於Openflow模式。
of-switch# show boot mode
System initialized in openflow forwarding mode
System configured to boot in openflow forwarding mode
“no boot mode openflow” followed by reboot reverts to normal mode.
CAT9300#show run openflow
feature openflow
openflow
switch 1 pipeline 1
controller ipv4 10.104.99.42 port 6653 vrf Mgmt-vrf security none
controller ipv4 10.104.99.42 port 6633 vrf Mgmt-vrf security tls
controller ipv4 10.104.99.42 port 6637 vrf Mgmt-vrf security tls local-trustpoint tp-blue
目前共支援8個控制器!
還支援IPV6控制器配置和操作。
OpenFlow下的命令選項 |
目的 |
交換機1管道1 |
交換機1和管道1是C9ks的唯一選擇 |
控制器ipv4 10.104.99.42端口6653 vrf Mgmt-vrf安全無 |
沒有安全性的控制器 |
控制器ipv4 10.104.99.42端口6633 vrf管理 — vrf安全tls |
使用tls的控制器,使用全域性tls信任點配置 |
控制器ipv4 10.104.99.42端口6637 vrf Mgmt-vrf安全tls local-trustpoint tp-blue |
採用tls的控制器,使用本地tlstrustpoint配置,但可從全域性tlstrustpoint進行遠端 |
最大回退10 |
控制器連線關閉時重試OpenFlow連線的最長時間,預設值為8秒 |
probe-interval 10 |
使用連線探測OpenFlow連線的時間間隔變為空閒,預設值為5秒。 |
速率限制封包_in 2000 burst 3000 |
封包速率限製為控制器,預設值為0 |
statistics collection-interval 6 |
收集流量統計資訊的頻率,預設值為5秒 |
datapath-id 0x1 |
switch datapath unique-id(如果未配置的預設值為(1<<48)) | system-mac-addr) |
default-miss controller |
不匹配任何流的資料包可被傳送到控制器。預設值為drop |
logging flow — 修改 |
將流模式資訊轉儲為日誌show logging,預設情況下未啟用 |
tls trustpoint local tp-local remote tp-remote |
安全控制器連線的全域性tls信任點# |
故障排除/調試
控制器端偵錯不在本文檔的討論範圍之內。
Openflow交換機並非支援所有常規平台CLI。為您的調試方案選擇並僅使用允許的CLI。
有關任何其他命令和參考資訊,請參閱此配置指南:https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/174/b_174_programmability_cg/openflow.html#id_76495
Show命令 — IOS®
指令 |
目的 |
show running-設定 openflow |
顯示OpenFlow運行配置資訊。 |
show openflow switch number controllers |
顯示有關OpenFlow代理與控制器的連線的資訊。 |
顯示 openflow 交換器 編號 流清單 |
顯示有關安裝的OpenFlow流的資訊。 |
顯示 openflow 交換器 編號 連接埠 |
顯示有關OpenFlow代理埠狀態的資訊。 |
顯示 openflow 硬體 功能 |
顯示硬體功能,如表數、表大小、支援的匹配/操作/未命中。 |
顯示 openflow 交換器 編號 組 |
顯示有關Openflow組的資訊。 |
顯示 openflow 交換器 編號 統計資訊 |
顯示OpenFlow介面(rx/tx)統計資訊、OpenFlow表統計資訊(每個表的最大流數、每個表的活動流數、查詢和匹配數)。 |
顯示 openflow 交換器 編號 控制器統計資訊 |
顯示openflow控制器狀態資訊。 |
Show commands - hardware:
指令 |
目的 |
show platform software fed switch active openflow 狀態 |
顯示有關安裝/成功/刪除的消息數量的統計資訊。 |
show platform software fed switch active openflow 流動 id |
顯示特定流中的資訊。 |
show platform software fed switch active openflow 群組 |
顯示有關流組的硬體資訊。 |
show platform hardware fed switch active fwd-asic 資源 tcam 利用率 |
顯示有關TCAM用法的硬體資訊。 |
show platform software fed <switch> active openflow error [brief |事件 |詳細資訊] |
列出所有OpenFlow錯誤(如果有)。 |
show platform software fed <switch> active openflow table [<table-id> |對映]
|
此命令可以提供表ID來顯示功能/匹配功能以及表的大小。 |
show platform software fed switch active openflow event
|
顯示每個表上的事件清單以及執行任何與流相關的操作(新增、刪除、更新)所用的時間。 |