VLANについて勉強してみた

# はじめに
先週は、異なるネットワーク間の通信を行うためのルーティング機能に関して勉強をしました。
本来、ネットワークを分割する機器はL3層の機器(ルータorL3スイッチ)となりますが、L2スイッチでもネットワークを分割できる技術があります。
本日はその機能について学習していきます。

# 1.VLAN(Virtual LAN)について
### [1-1]概要
VLANは、1台のスイッチのポートを仮想的にグループ分けする事によって、それぞれのグループが各々一つのネットワークであるかのように見せる技術です。
異なるVLAN間で通信を行う際には、ルーティング機能の備わったネットワーク機器(ルーター等)が必要となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/71c15ee6-6948-8bad-f82e-44f45d1002f0.png)
<br>

### [1-2]デフォルトVLAN
VLANは"VLAN ID"という番号によって識別されています。
スイッチにはデフォルトで"VLAN1"が作成されており、特定のVLANに所属しないポートは全てこのVLANに割り当てられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/876d8f47-5eb2-af0a-ae1a-863d41db8245.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/04ec45d2-b988-c3b3-c446-d94891a18854.png)
<br>

### [1-3]管理VLAN
管理VLANは、管理者がリモートでスイッチを管理するためのVLANです。(telnet:tcp/23やsnmp:udp/161-162などを使用したリモート管理)
スイッチには管理VLAN用に用意された仮想的な管理インターフェイスがあり、そこにIPアドレスを割り当てることによりtcp/ip通信ができるようになり、リモート管理のための通信を行うことができます。

# 2.VLAN導入のメリット
### [2-1]通信効率の向上
VLANの設定を行い、ネットワークを分割すると、ブロードキャストドメイン(*1)の範囲が狭まります。
その為、フラッディング(*2)やブロードキャスト通信が発生した際に通信が行き交う範囲が狭くなり、帯域の圧迫やPC側のCPU負荷を軽減する事ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/a816b689-62cd-110c-b580-1ff59210fd24.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/91921a0e-6d91-7d97-39fa-63c3328b583c.png)

(*1)ブロードキャストドメイン
「ブロードキャスト(全員宛ての通信)」が届く範囲です。
届く範囲は同一ネットワーク内となっています。

(*2)フラッディング
スイッチの保有するMACアドレステーブルに宛先MACアドレスの情報がなかった場合、同一ネットワーク内のすべてのポートから(全員に向けて)フレームを送信します。
(MACアドレステーブルに宛先情報がある場合は、対象ポートのみから通信を送信します。)
自分宛てではないフレームを受け取った端末達は、フレームを破棄しますので、宛先端末にだけ届くようになっています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/33ee9a5d-b6e9-d775-40cf-6421042bd9a4.png)
<br>

### [2-2]柔軟なネットワーク設計
VLANは仮想的にグループ分けすることができるので、組織変更や部署変更が発生した場合でも、物理的な配線に変更を加えることなく柔軟に構成変更ができます。
ただ、仮想的な構成なので管理は複雑になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/cf0247b4-cb76-ea39-6343-1f24dba22199.png)
<br>

### [2-3]セキュリティの強化
用途によってVLANを分けることによって、同一スイッチ上で管理している端末同士での不適切なアクセスの防止などが期待できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/8f39e053-3baf-f38c-c6ba-c794e3469987.png)
<br>

# 3.L2スイッチのポートの種類
### [3-1]スイッチポートとは
L2(データリンク層)機器の物理ポートをスイッチポートといいます。
L2スイッチの全ての物理ポートはスイッチポートであり、1つor複数のVLANに所属しています。
なお、スイッチポートにはアクセスポートとトランクポートの2種類があります。
(因みに、L3スイッチの物理ポートには、L2処理用のスイッチポートとL3処理用のルーテッドポートの両方があります。)
<br>

### [3-2]アクセスポート
#### ・アクセスポート
アクセスポートには1つのVLANを割り当てる事ができ、割り当たっているVLANのフレームのみを転送します。
一般的に、クライアントやPC、サーバを接続するポートをアクセスポートとして使用します。
アクセスポートにVLANを割り当てる方法としては、スタティックVLANやダイナミックVLANなどがあります。

#### ・スタティックVLAN(ポートベースVLAN)
管理者が各ポートに手動でVLANを割り当てる方法です。
ポートとVLANを紐づけているので、接続する物理ポートを変更すると所属するVLANもかわってしまう可能性があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/13e73962-9412-51fd-3281-6122e06fd126.png)

#### ・ダイナミックVLAN(MACベースVLAN)
VMPS(*1)によって動的にVLANを割り当てる方法です。
MACベースのダイナミックVLANを利用するには、MACアドレスとVLANの紐づけ情報を保有するVMPSサーバが必要となります。
(一部のスイッチはVMPS機能を持っており、スイッチ自身がVMPSサーバとして動作することが可能です。)
ポートに着信したフレームの送信元MACアドレスをVMPSサーバのデータベースで検索し、その検索結果として通知されたVLANを割り当てます。
なお、ダイナミックVLANには、MACベース以外にもIEEE 802.1x認証を利用する方法などの割り当て方法があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/c8d01b8f-76f6-2fd3-108f-646fdaed2c8f.png)
①ホストAからのフレームを着信
②着信したフレームの送信元MACアドレスをもとに
　VMPSサーバにVMPS要求を送信
③VMPSサーバのデータベース上でホストAのMACアドレスを検索
④検索結果のVLANを応答

(*1)VMPS(VLAN Management Policy Server)
ダイナミックVLANで使用するサーバです。
各ホストのMACアドレスと所属するVLANの紐づけ情報を持っており、ダイナミックVLANが設定されているスイッチからリクエストがあると、所属しているVLANの情報を返してくれます。
<br>

### [3-3]トランクポート
#### ・トランクポート
トランクポートには複数のVLANを割り当てる事ができ、複数のVLANのフレームを転送します。
トランクポートから送信されるフレームにはVLANの識別情報が含まれたタグが挿入されます。
フレームを受信した側のポートでは、挿入されたタグの情報を参照し、どのVLANのポートに転送するべきかを決定します。
なお、タグを使用する際の標準プロトコル(機器間の共通ルール)にはIEEE 802.1Qを使用しています。

一般的に、スイッチやルータなどのネットワーク機器を接続するポートはトランクポートとして使用されます。
理由としては、スイッチ間をアクセスポートで接続した場合はVLANの数と同じ数だけ物理ポートが必要となってしまいますが、スイッチ間をトランクポートで接続した場合の物理ポートの数はVLANの数に影響されないからです。(以下図参照)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/c63a5151-140f-635d-0276-a7e8e32d941b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950373/2a0d86f4-3b77-17e8-8282-c81d6e5f8c9d.png)

#### ・IEEE 802.1QとネイティブVLAN
**IEEE 802.1Q**
トランクポートでの接続(トランクリンク)を行う際は、リンクの両端ポートで同一のトランクプロトコルを使用する必要があります。
使用しているスイッチのベンダに関わらず使用できる標準プロトコルに「IEEE 802.1Q」がありますが、このプロトコルにはネイティブVLANという機能があります。
(Cisco製品でのみ使用できる「ISL」というプロトコルもありますが、Cisco製品の中では主流となっている「IEEE 802.1Q」しかサポートしていない機器もあります。)

**ネイティブVLAN**
スイッチを管理するためのトラフィックの送受信に使用されるVLANがネイティブVLANです。
通常のトランクリンクプロトコルは、VLAN情報等を含んだタグをフレームに挿入することによって、フレームを受信したポート側でも転送対象のVLANがわかるようにしています。
しかし、ネイティブVLANに関しては、フレームにタグを付けずに送信します。
トランクポートでタグのないフレームを受信した場合は、ネイティブVLANであると判断されますので、事前にトランクリンクの両端のポートでネイディブVLANのVLAN IDを一致させておく必要があります。
(両端のポートでVLAN IDを一致させていなかった場合、スイッチ管理用の通信が意図しないVLANに転送されてしまいます。)
Ciscoの製品において、デフォルトのネイティブVLAN番号は「1」となります。
<br>

# おわり