CiscoのSDNソリューション

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

前回投稿記事
-
こちらの [ネットワークの自動化【SDNの概要】](https://qiita.com/k-yasuhiro/items/a5fe7b1aed909a078b9e)投稿記事の続きです。

<br>
2. SDNの概要と実装
-
#### 2-1. Cisco ACIの概念

Cisco ACI（Application Centric Infrastructure）は、<b>Cisco</b>によって提供されている
主に<font color="DeepSkyBlue"><b>データセンター向け</b></font>のSDNソリューションです。また、Ciscoが販売するネットワーク機器及び
サーバを組み合わせて提供するプロダクト名です。

Cisco ACIでは、ネットワークの設定や機能を抽象化（プール化）し、それぞれの設定値を
組み合わせたプロファイルを作成します。
>
プール化とは、データなどの資源をすぐに取り出せるように一時的に貯めておく保管領域などの事。
プロファイルとは、対象に関する属性や設定などの情報を列挙した、一纏まりのデータの集合の事。


次に、その設定プロファイルをCisco ACIにおけるSDNコントローラである
<font color="red"><b>APIC（Application Policy Infrastructure Controller）</b></font>からネットワーク機器へ適用し、
サウスバウンド APIには Ciscoが独自に開発した <font color="red"><b>OpFlex</b>※1</font>を使用し、ネットワーク機器には
データセンター向けのCisco製スイッチ<font color="green"><b>Nexus 9000シリーズ</b></font>を使用する事により
その設定プロファイルの設定内容を反映させます。


>
※1 OpFlexプロトコルは、APICと様々なベンダーの「仮想/物理スイッチ、L4/L7デバイス」の
インターフェースとなるプロトコルです。OpFlexではOpenFlowとは異なり、シンプルな
ネットワークポリシーを定義するだけで SDNを構築する事が出来る利点があります。
つまりそれは、アプリケーションエンジニアでもネットワーク機器の設定を自分達で出来るように、
色々と抽象化して複雑な考え方を無くしたという事です。
>
下記の画像がOpFlexプロトコルの動作イメージ
<img width="550" alt="ファイル名" src="https://i.gyazo.com/a863963d7e3d2e83787a393995c74b27.png">

#### 2-2. Cisco ACIの構成

##### ■ 2-2-1. 従来のネットワーク構成
従来のネットワークの基本型は、コア・ディストリビューション・アクセスの3階層モデルで
コア層の機器から複数の機器が枝分かれしているように見える構成によってツリー型と
呼ばれています。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/18eb55854bd18f977a0784a758c6fd13.png">
近年のデータセンターでは、仮想化が進み、サーバの配置において、物理的な制約が
なくなってきている事から、縦ではなく、横のトラフィックが増加してきている為、
そこで生まれたのが、スパイン / リーフ型ネットワークです。

##### ■ 2-2-2. スパイン / リーフ型ネットワーク
Cisco ACIでは、スパイン / リーフ型と呼ばれる構成でネットワーク網を構築しています。
Cisco ACIのスパイン / リーフ型ネットワークでは、<font color="DeepSkyBlue"><b>ファブリック型ネットワーク※2</b></font>を
<font color="red"><b>スパインスイッチ</b></font>と<font color="red"><b>リーフスイッチ</b></font>によって形成しています。
下記の図2参照
<img width="550" alt="ファイル名" src="https://i.gyazo.com/35e283604280af25f2ae84ecc13299a9.png">
>
※2 ファブリック型ネットワークとは、ネットワーク構成をその名の通り繊維のような
<font color="red">メッシュ型構造</font>にする事によって高可用性、帯域の向上、拡張性の向上を実現する事が出来ます。
>
ファブリック型について詳しくは下記の記事を参照
[ファブリックとは？](https://www.fujitsu.com/jp/products/computing/storage/switches/feature/006/)

##### ■ 2-2-3. スパイン / リーフ型構成の特徴
特徴は以下の通りです。
⚫️ 各リーフスイッチは全てスパインスイッチに接続する。つまり、各スパインスイッチは
　 全てのリーフスイッチに接続している。
⚫️ リーフスイッチは相互に接続できない。
⚫️ スパインスイッチは相互に接続できない。
⚫️ エンドポイントであるサーバなどはリーフスイッチのみに接続する。

各リーフスイッチは、全てのスパインスイッチと、各スパインスイッチは、全てのリーフスイッチと
接続されていますが、リーフスイッチ同士、スパインスイッチ同士は接続しません。
これにより、サーバ間の通信が発生した場合、１～２ホップで通信出来るようになり、遅延を
一定に保つ事が出来るようになります。

また、リーフ / スパイン型ネットワーク内で、<font color="green"><b>スイッチング容量が不足した場合、
スパインスイッチを追加する事で対処</b></font>でき、<font color="DeepSkyBlue"><b>サーバを接続するポートが不足した場合、
リーフスイッチを追加する事で対処</b></font>が可能となっていて、ネットワークの拡張性も
スムーズに行う事が出来ます。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/345587f814d05825da1389301dfa079f.png">

##### ■ 2-2-4. インテントベースネットワーク
Cisco ACIは、インテントベースネットワークの構築を実現する事が出来ます。

具体的には、リーフスイッチに接続しているエンドポイントのサーバなどを、
物理的な配置事ではなく機能事などの分類によって <font color="red"><b>EPG（End Point Group）</b></font>という
グループに分けます。そして、EPG間の通信の許可・拒否を定義した通信ポリシーを作成し
適用する事で、それらの設定に基づいて動的にネットワークを構成してくれます。

グループ単位でポリシーを決定する事が出来る為、<font color="green"><b>シンプルな定義のみでネットワークを全体の
通信ルールを設定</b></font>することが出来ます。

##### ■ 2-2-5. APIC-EM
Cisco ACIを導入したファブリックネットワーク網を構築するには、Nexus 9000シリーズのような
ハイエンドモデルのスイッチを使用する必要があります。その為、導入するには既存の機器を交換する
必要があります。そこで、<font color="green"><b>既存のネットワーク機器でもSDNを実現可能にしたのが 
<font color="red"><b>APIC-EM（APIC Enterprise Module）</b></font>という SDNコントローラ</b></font>です。ライセンス不要であり、
無料でダウンロード出来ます。
>
※ しかし、現在では製造・販売は終了となっています。
　Cisco DNA Centerが大体機能を引き継いでいます。

APIC-EMは、各ネットワーク機器のコントロールプレーンやデータプレーンに直接働きかける事は
出来ませんが、既存のネットワーク機器を <font color="DeepSkyBlue"><b>SSH、TELNET、SNMPといったプロトコルを使用して
制御</b></font>する事が出来る為、各機器をAPIC-EMの制御下に置く事が出来ます。
APICに比べて実現可能な事が少ないですが、既存のCisco機器などが利用出来る事から段階的に
SDNを導入したい場合に有用です。

<br>
#### 2-3. Cisco SD-Access

##### ■ 2-3-1. Cisco SD-Accessの概要
Cisco SD-Access（Cisco Software-Defined Access）とは、Ciscoが提供する<font color="DeepSkyBlue"><b>企業向け</b></font>の
新しいSDNソリューションです。SDNコントローラに <font color="red"><b>Cisco DNA Center</b></font>を使用し、
ユーザは Web GUI上の操作や自作プログラムを実行して制御します。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/183226b9e94936e9f4be8343a2aef4a5.png">

Cisco SD-Accessのアーキテクチャでは、ネットワークファブリックにおいて、
実際のネットワーク機器や配線といった物理ネットワークを指す<font color="red"><b>アンダーレイネットワーク</b></font>と
通信を行う両端の機器をVXLANという仮想的なトンネルで結んだ論理的ネットワークを指す
<font color="red"><b>オーバーレイネットワーク</b></font>という考え方を取り入れています。

##### ■ 2-3-1. アンダーレイ
アンダーレイは、オーバーレイの機能を提供する為の基盤となる物理ネットワークです。
ネットワークファブリックのアンダーレイを構成する機器は、配置される位置と役割から
大きく3つに分類されます。

▶︎ ファブリックエッジノード
エンドポイントデバイスに接続する機器です。エンドポイントとファブリック間の
トラフィックをカプセル化/非カプセル化して転送する役割を担っています。

▶︎ ファブリックボーダーノード
Cisco SD-Accessの制御外の機器であるWANルータなどと接続する機器です。
別のファブリックに接続する役割を担っています。

▶︎ ファブリックコントロールプレーン
LISP Map-Serverとして機能する機器です。

<img width="550" alt="ファイル名" src="https://i.gyazo.com/092a27bd71d443c7125ebbe1bd2cc7e5.png">


##### ■ 2-3-2. オーバーレイ
オーバーレイは、物理的なアンダーレイ上に構築される仮想化された論理ネットワークです。
オーバーレイには、VXLANとLISPという2つ機能から成り立っています。
Cisco SD-Accessではコントロールプレーンは LISPを使用して論理ネットワーク内のルーティング情報を
作成し、データプレーンは VXLANを使用してデータ転送をします。

▶︎ VXLAN
VXLAN（Virtual eXtensible Local Area Network）とは、レイヤ2フレームをカプセル化する事で
物理的に異なるレイヤ3ネットワーク上に論理的なレイヤ2ネットワークを構築するする技術です。

仮想化が主流になった近年では、物理サーバ間での仮想マシンの移動やコピーといった、
エンドポイント間の横移動が多く発生しています。ネットワークが異なる物理サーバ間で
移動が発生した場合、移動前と移動後ではネットワークが異なるので、同じIPアドレスが使用
出来ません。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/5590ea540128075c0aa1eca24348d40a.png">

そこで、これらの問題を解決する為に考えられた技術が VXLANです。
VXLANでは、送信元側でイーサネットフレームに VXLAN IDを付加してカプセル化することで、
レイヤ3ネットワークを超える事が出来ます。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/ad7106fec41cabb30ed290c488c5ab3f.png">


VXLANでは <font color="red"><b>24ビット</b></font>のVXLAN IDによって、最大で約1600万のネットワークを構成する事が出来ます。
これによって、大規模な複数のデータセンターにまたがった仮想データセンターを構築する事が出来ます。

VXLANを使用する事で、<font color="green"><b>同じVXLAN IDが割り当てられたデバイス同士は、物理的なレイヤ3スイッチ
ネットワークをまたいで、同一のネットワークを構築する</b></font>事が可能になります。

<br>
▶︎ LISP
LISP（Locator/ID Separation Protocol）は、デバイスのエンドポイントID（<font color="red"><b>EID※3</b></font>）としてのIPアドレス
またはMACアドレスと、デバイスのネットワーク上の位置を示すルーティングロケータ（<font color="red"><b>RLOC※4</b></font>）と
しての機能を分離してルーティングを行うトンネリングプロトコルです。
LISPを使用する事でファブリック上の各エッジノードは、各エッジノードのアドレス及びネクストホップを
知る事なく通信を行う事が出来ます。
>
※3 EIDとは、エンドポイント（デバイス）のIPアドレスの事
※4 RLOCとは、LISPを有効にしているルータのIPアドレスの事

LISPの通信転送の流れは、

先ずLISPによる仮想ネットワークのルーティング情報の作成を行います。
エンドポイントと接続しているファブリックエッジノードは、EIDをLISP Map-Server（MS）に
送信します。その情報を受信したLISP Map-Serverは、EIDとRLOCの対応表を登録します。

下記の図参照
<img width="550" alt="ファイル名" src="https://i.gyazo.com/9d816a0d3d18a70a18ae40b350ce0c2f.png">
>
カプセル化を行うルータをITR(Ingress Tunnel Router)
カプセル化を解除するルータをETR(Egress Tunnel Router)
ITR、かつ、ETRとして動作しているルータをxTRという

ファブリック内で通信が行われる場合、転送先を調べる為に通信の宛先IPアドレスを
LISP Map-Serverに問い合わせします。LISP Map-Serverは自身が保有する
対応表からEIDに該当する行を検索し、記載されているRLOCのルータに問い合わせ
接続性を確認します。そして到達可能である事を送信元に通知します。

下記の図参照
<img width="550" alt="ファイル名" src="https://i.gyazo.com/c47d2f2a6752989057b04c680e397cb2.png">
受け取った情報を基に、VKLANを使用して通信をカプセル化します。
カプセル化によって付与された新しいIPヘッダ内に、それぞれのRLOCを送信元と宛先に
指定して、ファブリックネットワークに転送します。

<br>
#### 2-4. Cisco DNA Center
##### ■ 2-4-1. Cisco DNA Centerの概要
Cisco DNA Center（ Cisco Digital Network Architecture Center ）は、Cisco SD-Accessで
使用されるSDNコントローラです。ノースバウンドAPIは <font color="red"><b>REST API</b></font>を、サウスバウンドAPIは <font color="DeepSkyBlue"><b>SSH、
TELNET、SNMP、NETCONF、RESTCONF</b></font>といった複数のプロトコルもサポートしています。
その為、NETCONF、RESTCONFといった比較的な新しいネットワーク機器だけでなく既存の
ネットワーク機器も従来通り管理する事が出来ます。

Cisco DNA Centerを利用する事により、Cisco SD-Accessで構成されたネットワークを
GUIによって一元管理する事が出来ます。GUIによって、ネットワーク上にある多数の
ネットワーク機器の運用管理をよりシンプルに最適化し、テンプレートにより、ネットワーク全体の
ポリシー設計、プロビジョニング、アシュアランスを直感的に行う事が出来ます。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/3545bbc5a63a9824c542d9042434bf96.png">

##### ■ 2-4-2. スケーラブルグループ
SDNコントローラであるCisco DNA Centerでは、スケーラブルグループによるアクセス制御を
GUI上にて設定できます。先ず、管理者がユーザやデバイスをグループとして定義します。
次に、<font color="red"><b>SGT（Scalable Group Tag）</b></font>と呼ばれるタグを管理者が定義したグループに割り当てます。
最後にそのSGTごとに、許可や拒否のアクセスポリシーを適用すれば完了します。

スケーラブルグループによるアクセス制御では、管理者は適用する機器を考える必要がなく
Cisco DNA Centerにポリシー（政策）を指定するだけで完了します。具体的な設定は、
サウスバンドAPI通じてCisco DNA Centerからファブリックネットワーク全体へと自動で
行われます。

##### ■ 2-4-2. Cisco DNA Centerの特徴
▶︎ GUIによる一元管理
管理者がポリシーやネットワーク設定を行う為の機能がGUIで提供されています。

▶︎ ネットワーク機器のプラグアンドプレイ
Cisco DNA Centerが導入されたネットワークでは、接続すると自動的にCisco DNA Centerに
認識されます。そして、初期設定などが自動で行われ、接続後すぐにネットワーク内の機器として
動作します。

▶︎ Easy Qosの機能
Easy Qosでは、Qosの設定をGUIからポリシーを選択して機器に適用するだけで簡単に設定が出来ます。
機器や機種ごとに管理者が判断して設定するよりも手間を省く事が出来るようになりました。

つまり、Cisco DNA Centerでは、どの機器に設定するか、どういった設定をするかという事は
一切考えず「どこからどこへの通信は許可する」といった「ポリシー」を指定するだけで必要な
設定は、全てCisco DNA CenterからCisco SD-Accessファブリックに反映されます。
これがインテントベースネットワーク（意図に基づくネットワーク）によって実現されるネットワーク
です。



<br>
## 関連投稿記事
[ネットワークの自動化](https://qiita.com/k-yasuhiro/items/3995d9fd9d8b087c07bd)