内容

概要

OpenFlow SDNの目標

機能の要約

シスコの実装（Cat9kでのOpenFlowモード）

トラブルシューティング/デバッグ

Showコマンド – IOS®

概要

このドキュメントでは、従来のネットワークアーキテクチャを補完する、ネットワーキングへの新しいアプローチとしての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

各テーブルのイベントのリストと、フローに関するアクション（追加、削除、更新）の所要時間を表示します。