ネットワークアーキテクチャ【VPNの概要】

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

前回投稿記事
-
こちらの[ネットワークアーキテクチャ【LANの設計モデル / WANの仕組み】](https://qiita.com/k-yasuhiro/items/31b5f456c7d64778602f)投稿記事の続きです。


3. VPN
-
#### 3-1.VPNの概要
拠点間接続を行う際に利用されるWANサービスの主流となっているのがVPNです。

##### ■ 3-1-1.VPNとは？
VPNとは、インターネットや通信事業者の閉域網で直接接続しているかのように見せかける
<font color="Red">仮想的なプライペートネットワーク接続</font>です。
VPNにより、企業の拠点間のデータをやり取りしたり、外出先から社内のネットワークに
アクセスしたりする場合でも、安全に企業の拠点間通信を実現出来ます。
<img width="500" alt="ファイル名" src="https://i.gyazo.com/da6ea0525f0b6dd5a6c60ace0e31fa9e.png">

##### ■ 3-1-2.VPNの特徴
VPNの特徴として次のような特徴が挙げられます。
⚫️ 拠点間に安全な通信を可能にする
⚫️ コストが抑えられる
⚫️ 拡張性が高い

⚫️ 拠点間に安全な通信を可能にする
契約しているユーザのみが使用する為、多数のユーザが使用するインターネットを利用するよりも
信頼性が上がります。また、暗号化などの技術により安全に通信を行う事が出来ます。

⚫️ コストが抑えられる
インターネットを利用するVPNでは、インターネット接続の回線をそのまま利用出来る為、
コストを低く抑えられます。また、<font color="GReen">専用線のように占有しない分、専用線よりも低い料金</font>で
済む場合があります。

⚫️ 拡張性が高い
VPNでは、n 対 n の<font color="GReen"><b>フルメッシュ型通信</b></font>が可能です。
拠点をVPN網に接続すれば他の拠点と接続出来る為、拠点の追加が容易に出来ます。
<br>
#### 3-2.VPNの種類

##### ■ 3-2-1.インターネットVPN
インターネットVPNは、<font color="DodgerBlue"><b>インターネットを利用する</b></font>VPNです。インターネット接続の際に
使用していた拠点のルータをVPN対応の機種に変える必要がありますが、既存の
インターネットを利用する為、導入コストは低く抑えられます。しかし、パブリックな
インターネットを通過する為、<font color="Red">解読されないように暗号化</font>が必要です。

##### ■ 3-2-2.IP-VPN
IP-VPNは、<font color="DodgerBlue"><b>通信事業者の閉域IP網を使用する</b></font>VPNです。インターネットとは隔離されている
ネットワークとなる為、一般のユーザがアクセスする事はなくインターネットVPNより安全に
利用出来ます。その分、インターネットVPNよりコストが掛かります。

また、他ユーザの通信が混在しないように、通信事業者側で、
<font color="Red"><b>MPLS（Multi-Protocol Label Switching）</b>※1</font>という技術を使用して宛先を識別します。

IP-VPNは、通信事業者のVPNがIPベースとなる為、<font color="green"><b>ネットワーク層のプロトコルとして
IPしか使用出来ません。</b></font>
>
※1 MPLSは、ラベルと呼ばれるタグを使用したパケットを転送する技術です。
MPLSでは、20byteのIPヘッダを参照したIPルーティングではなくて、
<font color="GReen">4byte</font>の短い固定長のラベルを付け、その情報に完全に一致するネクストホップを
<font color="Red">LFIB（ラベル転送テーブル）</font>から検索してパケットを転送します。
読み込み情報を少なくする事で、IPルーティングよりルータの処理を軽減した高速転送を
実現しています。
>
現在では、MPLSは高速転送を目的として使用されるのではなく、ラベル付けを行う事で
ネットワークに色々な付加サービスを提供する目的として利用されています。

##### ■ 3-2-3.インターネットVPNの種類
インターネットVPNは、用途に2つに分ける事が出来ます。
⚫️ サイト間VPN
⚫️ リモートアクセスVPN
<br>
⚫️ サイト間VPN
拠点にVPN対応のルータを設置し設定を行う事で各拠点のルータ間でトンネルが作成され
暗号化や復号の処理を各ルータが行います。<font color="green"><b>暗号化、復号の処理、カプセル化、非カプセル化を、
全てルータで行う</b></font>事から、各端末にVPN接続用のソフトウェアをインストールする必要はありません。
VPNを実装したルータ同士を接続する構成となっています。

サイト間VPNでは複数の端末が1つのVPNルータを使用します。
<img width="600" alt="ファイル名" src="https://i.gyazo.com/66c90ac94422654bd76dfddff35b97c1.png">

⚫️ リモートアクセスVPN
リモートアクセスVPNでは、PCにVPN接続用のソフトウェアをインストールして、<font color="green"><b>そのPC上で
暗号化とカプセル化を行い</b></font>、リモート接続先のVPNゲートウェイと通信を行います。
VPNを実装したルータとVPN接続用のソフトウェアをインストールしたPCとを接続する構成と
なっています。

リモートアクセスVPNでは、クライアント機器と接続したい拠点のVPNルータで
トンネル接続を行います。IPsecやSSLまたはTLSを使ったVPN接続を行います。
<img width="550" alt="ファイル名" src="https://i.gyazo.com/896061bb74187bb82d8519e545d9b58a.png">

<br>
#### 3-3.VPNの技術
VPN接続は、<font color="red"><b>トンネリング</b></font>と<font color="red"><b>暗号化</b></font>の技術によって実現しています。

##### ■ 3-3-1.トンネリング
トンネリングは、相手と通信する為のパケットを別のプロトコルのデータ部に隠蔽する事で、
通信したい端末の間にネットワーク上でトンネルを作成し、仮想的に専用線を作成する技術です。
>
トンネリングを行えるプロトコルには PPTP、L2F、L2TP、IPsec、GRE などがあります。
これらのうち暗号化を行えるプロトコルは、IPsecだけとなります。
なので、IPsec以外のプロトコルをトンネリングに使用した場合、暗号化の為に別途
IPsecなどのプロトコルを使用する必要があります。

##### ■ 3-3-2.暗号化
VPNでは、送信元のルータでパケットをカプセル化する際に暗号化し、宛先のルータで
カプセル化の解除と復号を行う事で、パケットの盗聴による情報の漏洩を防ぐ事が出来ます。

##### ■ 3-3-3.トンネリングで使用されるプロトコル
トンネリングプロトコルには、PPTP、L2F、L2TP、IPsec、GRE などがあります。

⚫️ PPTP
PPTP（Point to Point Tunneling Protocol）は、PPPを拡張したプロトコルです。
PPTPは、発信元のPAC（PPTP Access Concentrator）と接続を受けるPNS（PPTP Network Server）
という2つのVPN装置の間で仮想トンネルを構築します。
PPTPには、暗号化の機能を持たない為、暗号化プロトコルの
<font color="RED">MPPE（Microsoft Point-To-Point Encryption）</font>プロトコルを組み合わせて使います。

⚫️ L2F
L2F(Layer 2 Forwarding)は、レイヤー2で動作するプロトコルです。
PPTPはトンネル確立のための制御コネクションにTCP、PPPフレームのカプセル化に
GREを使用するのに対し、L2Fはトンネル確立のための制御コネクションとカプセル化の
両方にUDPを使用します。

⚫️ L2TP
L2TP(Layer 2 Tunneling Protocol)は、PPTPとL2Fのトンネリングプロトコルの仕様を
統合してIETFにより標準化されたプロトコルです。

構築する際に定義していた発信側となるPACは L2TPではLAC（L2TP Access Concentrator）と
定義し、受信側となるPNSは L2TPではLNS(L2TP Network Server)と定義しており、
このLACとLNSとの間でVPNトンネルを構築します。
トンネルとセッションの確立のためにL2F同様にUDPを使用します。

⚫️ IPsec
IPsecは、暗号化システムの技術によりネットワーク層にて、データのセキュリティを保護するのに
使用されるプロトコルです。IPsecは、PPTPやL2TPとは異なり、トンネリングと暗号化の両方の
機能を備えています。
IPsecは、ネットワーク層で動作するので、上位層であるトランスポート層でTCPであろうが
UDPであろうが問題なく動作するし、制限もない事から特定のアプリケーションに依存しません。
ただしネットワーク層である為、IPである必要があります。

IPsecは、<font color="Red"><b>AH（Authentication Header）</b>※2</font>と<font color="Red"><b>ESP（Encapsulated Security Payload）</b>※3</font>という
２つセキュリティプログラムから成り立っています。
>
※2 AHは、認証機能やデータが改竄されていない事を保証する機能を備えていますが、
パケットの暗号化は出来ません。
※3 ESPは、AHの機能に加え、暗号化を行います。
>
また、上記以外にも秘密鍵情報の交換を安全に行う IKE（Internet Key Exchage）という
鍵交換のプロトコルも存在します。

<br>
IPsecは、<font color="Red"><b>トランスポートモード</b>※4</font>と<font color="Red"><b>トンネルモード</b>※5</font>という２つ通信モードがあります。
>
※4 トランスポートモードでは、元のIPヘッダを使用して、データ部のみを暗号化します。
※5 トンネルモードでは、IPヘッダとデータ部両方を暗号化し、新しいIPヘッダを付加します。
<img width="500" alt="ファイル名" src="https://i.gyazo.com/6f3acef1563ed3ec529dfa2e9beec684.png">

#### 3-4.その他のVPN

##### ■ 3-4-1.SSL-VPN
SSL-VPNは、SSLを使用して暗号化を行う技術です。
SSL-VPNを利用するには、接続を受ける側（サーバ等）にSSL-VPN対応の機器が必要ですが、
接続する側では、WebブラウザなどにSSLの機能が実装されている為、接続用のソフトウェアは
必要がありません。
なので、リモートアクセスVPNの場合、PCに必ずVPN接続用のソフトウェアを
インストールする必要があるのに対して、SSLによるリモートアクセスVPNの場合はWebブラウザ
さえあれば通信可能です。
<br>
##### ■ 3-4-2.広域イーサネット
広域イーサネットは、IP-VPN同様に企業で多く利用されているWANサービスです。
通信事業者の<font color="DodgerBlue"><b>広域イーサネット網</b></font>を使用し、データリンク層のプロトコルにより転送処理を
行う為、<font color="Green"><b>IP以外のネットワーク層のプロトコルによる拠点間の通信が可能</b></font>です。
LANで一般的に使用するイーサネットでそのまま通信事業者の広域イーサネット網に接続する為、
広域イーサネッでは、イーサネットフレームをそのまま送信する事が出来ます。

広域イーサネット網は、共有のネットワークであり、顧客の通信を識別する為に<font color="DodgerBlue"><b>VLANタグ</b></font>や
MPLSをベースにした <font color="Red"><b>EoMPLS（Ethernet over MPLS）<b></font>などの技術を使用します。

<img width="600" alt="ファイル名" src="https://i.gyazo.com/c194a2409dc15a53f13c04bf8c99ad39.jpg">
<br>
#### 3-5.GREの概要
GRE（Generic Routing Encapsulation）は、<font color="DodgerBlue"><b>トンネリングプロトコルの１つ</b></font>です。
<font color="green"><b>GREトンネリング</b></font>では、通信したいネットワーク層のプロトコルを他のネットワーク層の
プロトコルにカプセル化します。
##### ■ 3-5-1.GREの特徴
⚫️ マルチプロトコルに対応している
⚫️ マルチキャストやブロードキャストのパケットをトンネリング出来る
⚫️ IPsecとは異なりセキュリティがない
<br>
▶︎ マルチプロトコルに対応している
マルチプロトコルに対応しているので、複数のネットワーク層のプロトコルをカプセル化
する事が出来ます。つまり、インターネットなどのIPネットワークを通じて二拠点間の機器と
一対一に直結し、<font color="GReen">IPを含む任意のプロトコル</font>による通信を透過的に行う事が出来ます。

その際に、GREトンネルリングを経由し通信が行われる場合、GREヘッダー共に、
新しいIPヘッダーを付加してカプセル化を行いパケットを転送します。
GREトンネリングにおけるパケットフォーマット以下の通りになります。
<img width="500" alt="ファイル名" src="https://i.gyazo.com/db2654ea2c2b92a8bd0355000f0a04e5.png">

▶︎ マルチキャストやブロードキャストのパケットをトンネリング出来る
GREは、マルチキャストやブロードキャストに対応しているので、
GREを使用してパケットのカプセル化を行うと、<font color="Green"><b>マルチキャストやブロードキャストで
あってもユニキャスト化</b></font>して通信出来ます。

それに対して、IPsecではマルチキャストやブロードキャストでパケットを転送出来ません。
すなわち、ダイナミックルーティングのルーティングプロトコルが使用出来ません。
このような場合、<font color="DodgerBlue"><b>RIPやOSPF、EIGRPといったダイナミックルーティングのルーティングプロトコルの
通信をGREでカプセル化</b></font>して、IPsecのトンネリングにより転送すると、
拠点間で<font color="Green"><b>ダイナミックルーティングを使用してルート情報を交換</b></font>出来ます。

▶︎ IPsecとは異なりセキュリティがない
GREは暗号化を行いませんので、IPsecに比べるとセキュリティ面では弱いプロトコルに
なってしまいます。そこで暗号化を行いたい場合、IPsecと組み合わせて <font color="Red"><b>GRE over IPsec<b></font>を
使用します。GRE over IPsecは、GREでカプセル化を行い、それをさらにIPsecで
カプセル化して暗号化します。


GREの事例として、<font color="Red"><b>DMVPN<b></font>があります。
DMVPN（Dynamic Multipoint VPN）とは、複数の拠点を接続するVPNの設定作業を簡略化する、
<font color="DodgerBlue"><b>Cisco独自のVPN設計<b></font>です。<font color="green"><b>ハブアンドスポーク構成<b></font>を取り、スポーク拠点間の通信時はスポーク拠点
同士で動的にGRE over IPsecトンネルを作成する事が出来る為、ハブルータの暗号化に掛かる
処理負荷を減らす事が出来ます。

##### ■ 3-5-2.IPsecとGREの違い
IPsecとGREの違いを纏めたものがこちらになります。
<img width="650" alt="ファイル名" src="https://i.gyazo.com/0ea36751e5a891af959e4ebd6f3b2508.png">