3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ネットワークの自動化【SDNの概要】

Last updated at Posted at 2021-03-01

CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。

1.SDNの概要と実装

1-1.ルータやスイッチの内部構造

ルータやスイッチには、大きく分けて 3つの役割があります。
データプレーン、コントロールプレーン、マネジメントプレーンという 3つの役割があります。

■ 1-1-1.データプレーン

データプレーン(データ転送機能)は、ネットワーク機器がデータの転送処理を行う部分になります。
受信したデータの宛先をテーブルから検索し、送り先を決定しデータの転送をします。
また、データのカプセル化やACLによるフィルタリングなど、データの転送に
必要な処理もこのデータプレーンで実行されます。

■ 1-1-2.コントロールプレーン

コントロールプレーン(制御機能)は、データプレーンを制御する部分になります。
データプレーンがデータを転送する際には、転送する為の宛先が不可欠です。
データを転送する為に必要なルーティングテーブルやMACアドレステーブルなどの
経路情報を作成・制御する
役割を担います。
また、IPアドレスとMACアドレスをひも付けるためのARPやIPv6のNDP(Neighbor Discovery
Protocol)もコントロールプレーンの機能です。

■ 1-1-3.マネジメントプレーン

マネジメントプレーン(管理機能)は、ネットワーク機器の構成・設定管理する部分となります。
データプレーンやコントロールプレーンとは異なり、直接的にデータの転送処理に
関わる事はしません。マネジメントプレーンを操作する事で、設定した内容が
データプレーンやコントロールプレーンに反映
されます。

TELNET、SSH、SNMPなどの様々な管理用プロトコルにより、ユーザに対する
機器の操作・管理の機能を提供しています。


#### 1-2.SDNの概要 SDN(Software Defined Network)とは、従来はネットワーク機器がそれぞれ行ってきた ネットワーク制御とデータ転送処理を分離し、制御部分をソフトウェアの操作だけで動的に 設定(変更)する技術の仕様の総称です。

SDNでは、SDNコントローラ全てのコントロールプレーンの機能を集中管理・集中制御します。
その為、各ネットワーク機器ではデータプレーンの機能のみが動作し、SDNコントローラからの制御に
よってデータ処理を行います。
ファイル名

1-3.SDNのアーキテクチャ

SDNのアーキテクチャ(構造)は、3つに分かれています。
インフラストラクチャレイヤ、コントロールレイヤ、アプリケーションレイヤの 3つに分かれます。

下記の図参照
ファイル名

■ 1-3-1.インフラストラクチャレイヤ

インフラストラクチャレイヤは、データの転送を実際に行うネットワーク上に配置された
ルータやスイッチなどの機器が該当する
レイヤです。データプレーンの機能を実現します。
コントロールレイヤからの制御により動作し、データの転送の役割を担います。

これらの機器の制御には OpenFlow※1、NETCONF※2、RESTCONF※3、OpFlex※4といった
標準プロトコルや、機器ごとに設定されたAPI(Application Programming Interface)を利用します。
このプロトコルやAPIを纏めて、Southbound API(サウスバウンドAPI)または
サウスバウンドインターフェースと呼びます。
コントロールレイヤから見て下に位置する為に、このような呼ばれ方をしています。

※1 後程解説
※2 NETCONFは、ネットワーク機器の設定や状態を取得/更新する為の管理用プロトコル
※3 RESTCONFは、RESTを基にネットワーク機器の設定を取得/更新する為の HTTPベースの
  通信プロトコル
※4 OpFlexは、APICと様々なベンダーの「仮想/物理スイッチ、L4/L7デバイス」のインターフェースと
  なるプロトコル

また、従来の機器でも使用可能な TELNET、SSH、SNMPといったプロトコルを用いて
SDNコントローラからネットワーク機器を制御する事もある為、これらのプロトコルも
サウスバウンドAPIに含まれます。

■ 1-3-2.コントロールレイヤ

コントロールレイヤは、SDNコントローラが該当するレイヤです。
コントロールプレーンの機能を実現します。

インフラストラクチャレイヤのネットワーク機器を制御し、同時にインフラストラクチャレイヤの
各機器のネットワーク機能をアプリケーションレイヤに提供
します。
アプリケーションレイヤとコントロールレイヤを繋ぎ、やり取りする際のAPIを纏めて
Northbound API(ノースバウンドAPI)または、ノースバウンドインターフェースとも
呼ばれます。コントロールレイヤから見て上に位置する為に、このような呼ばれ方をしています。

■ 1-3-3.アプリケーションレイヤ

アプリケーションレイヤは、SDNコントローラを操作する各種アプリケーションが該当するレイヤです。
SDNコントローラを操作するアプリケーションは、SDNコントローラとセットになってベンダーから
提供されるものあれば、カスタマイズしたアプリケーションを自作する事も出来ます。
ユーザは、これらのアプリケーションを通じてSDNコントローラを操作します。

■ 1-3-4.API

API(Application Programming Interface)とは、あるコンピュータプログラム(ソフトウェア)の
機能や管理するデータなどを、外部の他のプログラムから呼び出して利用する為の手順や
データ形式などを定めた規約です。

例えば、ルーティング制御するアプリケーションは、APIを使用する事でコントロールレイヤの細かい
プログラム仕様を知らなくても、SDNコントローラに設定や制御、また情報を受け取るといった事が
出来るようになります。

■ 1-3-5.Northbound API

ノースバウンドAPIは、サウスバウンドAPIとは異なり、標準的なプロトコルやAPIは存在しません。
SDNコントローラを提供する各ベンダーによってAPIが提供されています。
SDNコントローラとSDNコントローラを操作するアプリケーションがインストールされた端末は、
多くの場合ネットワーク上の異なる場所に配置されています。その為、アプリケーションと
SDNコントローラはネットワークを介してデータのやり取りを行う
為、HTTPやHTTPSと
とても相性が良いので、これらを用いてやり取りを行う場合、REST API※1というAPIが使用されて
います。この場合、ノースバウンドAPIにREST APIが使用されているという事になります。

※1 RESTとは、ソフトウェアアーキテクチャ(基本構造)の1つです。
以下の要件を満たすものが「REST」と呼ばれます。

RESTの要素      説明   
クライアント/サーバ型 要求を行うクライアントと、要求を処理して応答するサーバで構成
ステートレス 処理を行うにあたって前提となる状態を保持しない
キャッシュの制御 レスポンスの情報を一定期間保持可能かを指定出来る
階層構造 データや処理ごとに階層構造を取り、それぞれ独立している
コードオンデマンド サーバだけでなくクライアント側でも処理実行が出来る

▶︎ 補足:HTTPやHTTPSととても相性が良いのは、HTTPやHTTPSが以下の特徴である為
⚫️ WEB(HTTP)サーバとブラウザ(クライアント)で構成
⚫️ HTTPは状態(ステート)を管理しない
⚫️ キャッシュの可否をサーバからクライアントに通知出来る
⚫️ URIによってアクセスするリソースを分離する
⚫️ JavaScriptなどで、WEBブラウザ側で処理が出来る


#### 1-4.OpenFlow ##### ■ 1-4-1.OpenFlowの概要 OpenFlowとは、通信ネットワークを構成する通信機器を一つの制御装置で集中管理し、 複雑な転送制御を行なったり柔軟にネットワーク構成を変更出来る技術です。 つまり、通信ネットワークを構成するスイッチでの、パケットの転送方式をすべてコントローラー側で 決めて、個々のスイッチをパケットの転送に専念させる事で、全体として効率のよいネットワークを 作るという発想である。

業界団体のOpen NetworkingFoundation(ONF)によって標準仕様の策定が行われています。

OpenFlowは、従来のネットワーク機器では内部にある「コントロールプレーン」と
「データプレーン」を分離
させています。SDNコントローラである OpenFlowコントローラと、
ネットワーク機器であるOpenFlowスイッチで構成され、OpenFlowによってコントローラと
スイッチのやり取りを行います。
OpenFlowは機器とコントローラ間を制御するサウスバウンドAPIに該当します。
ファイル名

■ 1-4-2.OpenFlowの通信の流れ

OpenFlowコントローラでは、複数のOpenFlowスイッチの設定や動作を一括して管理出来ます。
ネットワーク管理者はOpenFlowコントローラ上で、各スイッチの動作を記述したフローテーブル
作成して、OpenFlowコントローラからネットワーク上のOpenFlowスイッチへとOpenFlowプロトコル
よって配送、各スイッチはこれに基づいてデータの転送や破棄、宛先の書き換えなどを実行します。

OpenFlowスイッチは、それぞれは保持しているフローテーブルに従って通信を転送する為、
ホップバイホップ方式と呼ばれる通信転送方式となります。
ファイル名

フローテーブルには記述できる情報には、OpenFlowスイッチの物理ポート番号、
送信元・宛先MACアドレス、VLAN ID、MPLSラベル、送信元・宛先IPアドレス、
TCP/UDPポート番号等が記述出来ます。

OpenFlowは、OpenFlowコントローラにより一括でネットワーク内のOpenFlowスイッチを制御し
フローテーブルによる柔軟な通信制御を実現する事が出来ますが、フローテーブルの設定や
維持・管理が難しい事、ネットワーク内の全ての機器がOpenFlowに対応している必要があると
いった課題も抱えています。

■ 1-4-3.OpenDaylight

OpenDaylightは、ベンダーの垣根を超えたOpenFlowコントローラを共同開発をする為の
プラットフォームとして開発されたオープンソースのSDNコントローラです。
OpenDaylightは、OpenFlowコントローラのみならず、様々なサウスバウンドAPIに対応した
凡庸的なコントローラになっており、各ベンダーはOpenDaylightを利用して独自の
SDNコントローラを開発する事が可能です。

Ciscoは、このOpenDaylightコントローラーを基に Cisco Open SDN Controllerをリリース
しましたが、現在は生産・販売は行っていません。


## 関連投稿記事 [CiscoのSDNソリューション](https://qiita.com/k-yasuhiro/items/9fe436e4ca70aa8a2fc0) [ネットワークの自動化](https://qiita.com/k-yasuhiro/items/3995d9fd9d8b087c07bd)
3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?