概要
このドキュメントでは、従来のネットワークアーキテクチャを補完する、ネットワーキングへの新しいアプローチとしてのSoftware Defined Networking(SDN)について説明します。SDNの元の定義はOpenFlowに関連付けられています。
OpenFlow SDNの目標
OpenFlow SDNの主な目標を次に示します。
- ネットワークの拡張性の向上
- ネットワークの複雑さの軽減
- アプリケーション制御の向上
- 機能の独立性を有効にします。
- コントロールプレーンとデータプレーンを分離し、データプレーンを標準化することによって実現されます。コントロールプレーンは、高性能のマルチコアサーバ上で動作する汎用的で高度な分散ソフトウェアとして実装されます。
- OpenFlowは、フローベースの転送インフラストラクチャ(スイッチモデル)と標準化されたアプリケーションプログラマチックインターフェイス(プロトコル定義)を定義するOpen Networking Foundation(ONF)の仕様です。
- OpenFlowを使用すると、コントローラはセキュアなチャネルを介してスイッチの転送機能を制御できます。ローカルデバイスの設定はOpenFlowプロトコルの範囲外です。
機能の要約
これはFoucet OpenFlowコントローラです。
- OpenFlow 1.3スイッチ(TFM – テーブル機能メッセージを含む)
- レイヤ2スイッチング、VLAN、ACL、レイヤ3 IPv4およびIPv6ルーティング、スタティックおよびBGP経由
- 追加のSDNベース機能を有効にするために、ネットワーク内のL2/L3スイッチの代わりとして導入されます。
- OpenFlowは完全に異なる転送パラダイムであり、同じCatalyst 9000ハードウェアとソフトウェアを使用します。
- モードはOPENFLOWとNORMALの間で切り替えることができます。リブートが必要です。
OpenFlowは、コントローラ(コントロールプレーン)とイーサネットスイッチ(データプレーン)間のプロトコルです。スイッチにはパイプラインに配置されたフローテーブルがあり、フローはパケットを検査するルールです。
フローは次を指定します。
- 一致基準
- 優先順位
- パケットに対するアクション
- タイムアウト
パイプラインの例:
注:機能の依存関係はありませんが、スイッチはOpenFlowモードで起動する必要があります。Catalyst 9000シリーズスイッチのOpenFlowモードで使用可能なプラットフォーム:9300/9400/9500/9500-H
シスコの実装(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 |
C9kでは、スイッチ1とパイプライン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 |
グローバルtlsトラストポイント設定を使用する |
controller ipv4 10.104.99.42 port 6637 vrf Mgmt-vrf security tls local-trustpoint tp-blue |
ローカルのtlstrustpoint設定を使用するが、グローバルなtlstrustpointからはリモートのtlsコントローラ |
max-backoff 10 |
コントローラ接続がダウンした場合にOpenFlow接続を再試行する最大時間。デフォルト値は8秒です |
probe-interval 10 |
接続とのOpenFlow接続をプローブする時間間隔はアイドル状態になります。デフォルト値は5秒です。 |
rate-limit packet_in 2000 burst 3000 |
コントローラへのパケットレート制限、デフォルト値は0 |
statistics collection-interval 6 |
frequency:フロー統計情報を収集します。デフォルト値は5秒です。 |
datapath-id 0x1 |
未設定のデフォルト値が((1<<48))の場合は、switch datapath unique-id | system-mac-addr) |
default-miss controller |
どのフローとも一致しないパケットもコントローラにパントできます。デフォルトはdropです |
logging flow-modify |
flow-mod情報を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-config openflow |
OpenFlowの実行コンフィギュレーション情報を表示します。 |
show openflow switch number controllers |
コントローラへのOpenFlowエージェントの接続に関する情報を表示します。 |
show openflow スイッチ 番号 フローリスト |
インストールされているOpenFlowフローに関する情報を表示します。 |
show openflow スイッチ 番号 ポート |
OpenFlowエージェントのポートステータスに関する情報を表示します。 |
show openflow ハードウェア 機能 |
テーブルの数、テーブルサイズ、サポートされる一致/アクション/ミスなどのハードウェア機能を表示します。 |
show openflow スイッチ 番号 [グループ(groups)] |
Openflowグループに関する情報を表示します。 |
show openflow スイッチ 番号 stats |
OpenFlowインターフェイス(rx/tx)の統計情報、OpenFlowテーブルの統計情報(テーブルあたりの最大フロー数、テーブルあたりのアクティブフロー数、ルックアップと一致の数)を表示します。 |
show openflow スイッチ 番号 controller stats |
openflowコントローラの統計情報を表示します。 |
showコマンド – 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
|
各テーブルのイベントのリストと、フローに関するアクション(追加、削除、更新)の所要時間を表示します。 |