データリンク層の仕事

データリンク層の仕事

物理層は物理的なネットワーク媒体の仕様を定義していて、どのようなハードウェアを使っていても、同じようにデータの送受信できるようにしています。データリンク層は物理層を助ける役目をしていて、物理層での0,1のビット列を、「フレーム」というデータの固まりに分割し上位層に伝える働きをします。おもに送信元及び宛先の物理アドレスや送信制御、フロー制御を定義しています。各ネットワークインターフェースカード(NIC)には固有のアドレスを持たなければなりません。このアドレスをMACアドレスと呼び、このMACアドレスはデータリンク層に属します。またデータリンク層では、簡単なエラー検出を行っていてデータの破損やエラーを防ぎます。

カプセル化

プロトコルの基礎」でデータのカプセル化について解説しました。データリンク層ではネットワーク層から「パケット」を受け取って、「フレーム」というデータにカプセル化して物理層に渡します。

カプセル化

データリンク層の規格にはいくつかありますが、現在は「イーサネット(IEEE802.3)」規格が主流で、イーサネット以外の規格が使われることはほぼ無くなりました。本書でもイーサネットを使ったカプセル化について説明していきます。
イーサネットの規格には、「Ethernet Ⅱ(DIX)イーサネット」と、「IEEE802.3」という2つの規格があります。

データリンク層の規格

DIXイーサネットとIEEE 802の関係

Ethernet Ⅱイーサネット

DIXイーサネットは「Xerox」と「Intel」、「DEC」の3社が1979年にDIX仕様として標準化された規格です。その後、改定を行い1982年にDIXイーサネットVer.2.0の仕様が公開されました。実際のデータ通信で使用されているイーサネット規格は、Ethernet Ⅱがほとんどです。

IEEE 802.3

その後、DIXイーサネットを国際的な標準規格にすることを目的に、IEEE(Institute of Electrical and Electronics Engineers)に提出し、802プロジェクトによって、イーサネットの標準化作業が進められ、1983年に最初の802.3規格が制定されました。現在「イーサネット」というと、この「IEEE 802.3」規格が主流になっています。

イーサネットのフレームフォーマット

Ethernet ⅡとIEEE 802.3でフレームフォーマットが以下のように異なります。

イーサネット・フレームフォーマット

IEEE802.3

Ethernet Ⅱフレームのキャプチャ画面

Ethernetキャプチャ画面

WiresharkではプリアンブルとFCSが表示されません。Wiresharkでキャプチャする前に外されてしまうためです。

データリンク層ではあて先に正しくデータを送るために、データの先頭にあて先情報を付与し、エラー検出のための情報をデータの最後に付与します。このとき先頭に付与する情報を「ヘッダ」、最後に付与する情報を「トレーラ」と呼びます。

トレーラ

宛先MACアドレス

サイズが6オクテット(48bit)のフィールドで、宛先となるノードのインターフェイスのMACアドレスが入ります。

送信元MACアドレス

サイズが6オクテット(48bit)のフィールドで、送信元のインタフェースのMACアドレスが入ります。

タイプ

タイプにはネットワーク層で使用されるプロトコル情報が入ります。プロトコルタイプはRFC1340で規定されており、IPだと0800、ARPは0806、RARPは8035が定義されています。

FCS

FCSはフレームが壊れていないかどうかをチェックするためのフィールドです。電気的なノイズなどが発生するとデータのビットがビット化けを起こしデータが壊れてしまう場合があります。データが壊れてしまったフレームは当然破棄しなければいけないのですが、データが実際に壊れているかどうかをFCSフィールドをチェックすることにより判断します。

IEEE802.3規格ではタイプフィールドの代わりにフレーム長、LLC、SNAPになり、SNAPの中にプロトコルタイプのフィールドがあります。

MACアドレス

MACアドレスとは、ネットワークアダプタ(NIC:Network Interface Card)に付けられる番号です。このMACアドレスはNICを製造する段階でメーカーが付ける番号で、全世界で重複しない一意の番号が設定されます。一意の番号を持たなければいけない理由は、同じ住所があると手紙をどちらに届ければ分からないのと同じように、同じMACアドレスを持っている機器がいると、どちらのデータを届ければ分からなくなるためです。

MACアドレス

イーサネットヘッダのMACアドレスフィールドには、あて先MACアドレスにデータを送りたいノードのMACアドレスをセットし、送信元MACアドレスには自分のMACアドレスをセットします。

MACアドレスは48ビットで、先頭から24ビットがOUIと呼ばれるベンダーコードで、IEEEが各ベンダーに割り当てています。後半24ビットは各ベンダーが管理する番号になります。

MACアドレスは12桁の16進数で表記され、8ビットずつをハイフンやコロンで区切ったり、16ビットずつをドットで区切って表します。

MACアドレスの表記方法

MACアドレスからNICのベンダーを調べる

特定のMACアドレスのNICだけネットワークに繋がらないとか、管理していないMACアドレスがネットワーク上に存在しているなど、ネットワークのトラブルシューティングでNICのベンダーを調べなければいけない場合があるかもしれません。

先ほど説明したように、先頭から24ビットはNICのベンダーコード(OUI)なので、このOUIからNICのベンダーを調べることができます。

OUIはIEEEが管理していて、IEEEのサイトで調べることができます。

standards-oui.ieee.org/oui.txt

またWiresharkのサイトで、該当のMACアドレスからベンダーを検索出来るページがありますので、トラブルシュートのときに活用できます。

Wireshark · OUI Lookup Tool

さらにWiresharkではキャプチャしたデータのMACアドレスを自動でベンダー名に変換してくれる設定があります。設定方法はメニューの「キャプチャ」→「オプション」をクリックして、「オプション」タブにある「MACアドレス解決」にチェックします。

Wiresharkの設定画面

ユニキャストとブロードキャスト

イーサーネットでは送信元とあて先が1:1だけではなく、複数のあて先に向けて通信を行う場合もあります。イーサネットでは通信パターンによって、「ユニキャスト」「ブロードキャスト」「マルチキャスト」の3つに分類されています。

ユニキャスト

あて先が単一のノードとなる通信をユニキャストと呼びます。送信元とあて先が「1:1」となる通信で、あて先MACアドレスには通信相手のMACアドレスが入ります。

ユニキャスト

ブロードキャスト

あて先がすべてのノードに向けて行う通信をブロードキャストと呼びます。送信元とあて先が「1:全て」となる通信で、あて先MACアドレスには「FFFF.FFFF.FFFF」が入ります。ブロードキャストを利用する代表的なプロトコルには「ARP」があります。ARPの動作については後ほど詳しく解説します。

ブロードキャスト

マルチキャスト

あて先が特定のグループに向けて行う通信をマルチキャストと呼びます。送信元とあて先が「1:グループ」となる通信で、あて先MACアドレスにはグループアドレスが入ります。あるノードがマルチキャストを送信すると、そのグループに属しているノードだけが受信を行います。

マルチキャスト

ARP(Address Resolution Protocol)

ARPは「IPアドレスに基づいて相手のMACアドレスを調べる」ためのプロトコルで、RFC826にて定義されています。MACアドレスはデータリンク層で動作し、IPアドレスはネットワーク層で動作します。この2つのアドレスはそれぞれ協調して動作しなければならず、それぞれの橋渡し的な動作をするのがARPになります。

以下のような簡単なネットワーク構成を見ながらARPの動作について見ていきましょう。

ARPの動作

ここで、PC-CからPC-Aに対して通信を行うとしましょう。この時にPC-Cが送信するパケットヘッダのあて先IPアドレスに設定される宛先IPアドレスはPC-Aのアドレス「10.1.1.1」が設定されます。当然あて先MACアドレスにもPC-AのMACアドレスが設定されなければデータは届きません。しかしPC-CがPC-AのMACアドレスを知るにはどうすればよいのでしょうか?

ARPの動作

そこでARPを使用して、PC-AのMACアドレスを調べます。PC-AのIPアドレスに対するMACアドレスをARPを使って問い合わせます。ARPには、「ARPリクエスト」と「ARPリプライ」という2種類あります。

ARPリクエストは、MACアドレスを知りたいノードが対象のIPアドレスとMACアドレスの対応を調べるために使用します。この時の送信方法は、ネットワーク内の全ノードにデータを送信する「ブロードキャスト」が使われます。

ARPの動作

このときターゲットとなるIPアドレスを持っているノードが存在していた場合、そのノードが「ARPリプライ」を返します。それ以外のノードはARPリクエストのフレームを破棄します。

ARPの動作

「ARPリクエスト」はブロードキャストで行われたが、「ARPリプライ」はユニキャスト(1対1通信)で行われます。
以上のようなやり取りによって、PC-CはPC-AのMACアドレスを知ることができます。

ARPキャッシュ(ARPテーブル)

ARPによって一度学習したMACアドレスとIPアドレスの関連付け情報は、「ARPキャッシュ(ARPテーブルともいいます)」としてそのノード上で一定時間保存されます。そして次に通信をする場合は、このARPキャッシュを参照して該当する関連付け情報があれば、その情報を使用します。

このように出来るだけ無駄なトラフィックをネットワーク上に流さないようにしています。ARPキャッシュの保持時間は、OSなどにより異なり、Windowsの場合は10分、Linuxでは15分、ルータは機種によって変わりますが数時間となっています。一定時間更新されない関連付け情報は保持時間を過ぎると削除されます。

WindowsでARPテーブルを見るには、コマンドプロンプトで、「arp -a」と入力します。

表示結果は以下のようになります。

C:\>arp -a

インターフェイス: 10.0.2.15 --- 0x2
  インターネット アドレス 物理アドレス           種類
  10.0.2.2              52-54-00-12-35-02     動的
  10.0.2.255            ff-ff-ff-ff-ff-ff     静的
  224.0.0.22            01-00-5e-00-00-16     静的
  224.0.0.252           01-00-5e-00-00-fc     静的
  224.0.0.253           01-00-5e-00-00-fd     静的
  239.255.255.250       01-00-5e-7f-ff-fa     静的
  255.255.255.255       ff-ff-ff-ff-ff-ff     静的

表示部分の「インターネットアドレス」がIPアドレスで、「物理アドレス」がそのIPアドレスに対するMACアドレスを表しています。

最後のTypeに表示されている「動的」は、このエントリを自動で取得し
たことを表しています。「静的」はその名の通り管理者が手動で設定したarpエントリということを表しています。

基本的にARPテーブルの更新や追加はOSが自動で行ってくれるので、普段は意識することは全くありません。

ARPヘッダ

ARPヘッダは以下のように構成されています。

ARPヘッダフレームフォーマット

実際にネットワーク上に流れているARPパケットをキャプチャしたデータは以下です。

この中で注目してほしいフィールドは以下の5つです。

Opcode(オペレーション):2バイト

このパケットが「ARPリクエスト」なのか、「ARPリプライ」なのかを識別するためのフラグです。ARPリクエストだと「1」が、ARPリプライだと「2」がセットされます。 

Sender MAC address(送信元ハードウェアアドレス):可変長

送信元のMACアドレスがセットされます。MACアドレスは6バイトの固定にもかかわらず、このフィールドは可変長となっています。これはMACアドレス以外のアドレスにも対応出来るようにあらかじめ可変長にしているようです。

Sender IP address(送信元プロトコルアドレス):可変長

送信元のIPアドレスがセットされます。

Target MAC address(宛先ハードウェアアドレス):可変長

宛先のMACアドレスがセットされます。「ARPリクエスト」の場合はあて先のMACアドレスが不明のため、「00:00:00:00:00:00」がセットされます。

Target IP address(宛先プロトコルアドレス):可変長

宛先のIPアドレスがセットされます。「ARPリクエスト」の場合は、ここにセットされたIPアドレスに対するMACアドレスを調べます。

ARPコマンドを試してみよう

ARPに関する解説の最後は、実際にWindowsやMACでARPコマンドを試してみましょう。

ARPコマンドはネットワーク障害の切り分け時によく使いますので、使い方は覚えておきましょう。

ARPキャッシュを表示

ARPキャッシュを表示するコマンドは「arp -a」です(Windows/MAC共通)

Windowsでの実行結果
C:¥arp -a

インターフェイス: 10.0.2.15 --- 0x2
  インターネット アドレス 物理アドレス           種類
  10.0.2.2              12-34-56-78-90-ab     動的
  10.0.2.255            ff-ff-ff-ff-ff-ff     静的

表示部分の「インターネットアドレス」がIPアドレスで、「物理アドレス」がそのIPアドレスに対するMACアドレスを表しています。
「種類」が「動的」の場合は、ARPメッセージのやり取りで自動的に学習したテーブルを表しています。 

MACでの実行結果
$ arp -a

? (172.20.10.1) at 12:34:56:78:90:ab on en7 ifscope [ethernet]
? (172.20.10.255) at ff:ff:ff:ff:ff:ff on en7 ifscope [ethernet]

ARPキャッシュの削除

ARPキャッシュを削除するコマンドは「arp -d」です(Windows/MAC共通)

障害などでサーバを交換した場合、IPアドレスは同じでもMACアドレスが変わってしまいます。ARPキャッシュが残ったままだと昔のサーバのMACアドレスを覚えたままになり、通信が出来なくなってしまいます。そこで一度ARPキャッシュを削除して、再度MACアドレスを学習させてあげる必要があります。そのような場合に必要になるコマンドです。

Windowsでの実行結果

WindowsでARPキャッシュを削除する場合は、管理者特権でコマンドプロンプトを起動する必要があります。

#すべてのARPキャッシュを削除する場合は
C:¥sudo arp -d -a

#特定のIPアドレスのARPキャッシュのみ削除する場合
C:¥sudo arp -d 192.168.10.10
MACでの実行結果

MACの場合、ARPキャッシュを削除するにはroot権限が必要なため、sudoコマンドで実行します。

#すべてのARPキャッシュを削除する場合は
$ sudo arp -d -a
192.168.10.10 (192.168.10.10) deleted
192.168.10.11 (192.168.10.11) deleted

#特定のIPアドレスのARPキャッシュのみ削除する場合
$ sudo arp -d 192.168.10.10
192.168.10.10 (192.168.10.10) deleted

手動でARPキャッシュを設定する

ARPキャッシュを手動で設定するコマンドは「arp -s」です(Windows/MAC共通)
頻繁にアクセスするサーバーがある場合に無駄なARPメッセージのやり取りを抑えるために手動でIPアドレスとMACアドレスを設定しておきたい場合や、トラブルシュートの1つとして手動でARPキャッシュを設定したい場合に使用します。

Windowsでの実行結果

「arp -s」に続けて、IPアドレスとMACアドレスを入力します。

C:¥arp -s 192.168.10.10 12-34-56-78-90-ab
MACでの実行結果

Windowsと同様に「arp -s」に続けて、IPアドレスとMACアドレスを入力します。

$ arp -s 192.168.10.10 12:34:56:78:90:ab

機器の交換時のARPキャッシュには注意

ARPキャッシュは一定時間ARP情報を保持することで、無駄なトラフィックを減らすことができます。しかしARPキャッシュが原因でトラブルが発生してしまうことがあります。

よくあるのが、すでに存在しないMACアドレスがARPエントリに残っている場合です。ノードの故障でノードを交換した場合など、同じIPアドレスを使用してMACアドレスが変わる場合などに起こります。

ARPキャッシュにはIPアドレスに対応したMACアドレスが交換前のMACアドレスがエントリされているため、そのエントリが残っている限り、交換前のMACアドレス宛にパケットを送信しようとします。そのためarpキャッシュの保持時間がクリアされるまで、通信障害が発生してしまいます。

ARPキャッシュ

このような問題を解決するにはGARP(Gratuitous ARP)を利用します。

GARPとは

GARPとは特別なARPパケットで、送信元IPアドレスとあて先IPアドレスの両方に自分自身のIPアドレスをセットします。

通常のARPは自分自身以外のIPアドレスを問い合わせて、対応するMACアドレスを取得するために使用しますが、GARPは自分のIPアドレスや、自分がこれから使おうとしているIPアドレスについて問い合わせを行います。

GARPをブロードキャストで送信することで、他のノードから応答があればそのIPアドレスは既に使用されていることが分かりますし、アドレスの競合を回避することができます。

また、ネットワーク上の他のノードが保持している古いARPキャッシュを破棄して、最新の内容に更新するよう通知するためにも使われます。

GARPに対応したノードであれば、交換したノードをネットワークに接続すると、GARPを送出し自分自身のMACアドレスが変更されたことを通知します。GARPを受け取ったノードはARPキャッシュを更新します。

GARPに対応していないノードの場合は、手動で古いARPエントリを削除する必要があります。WindowsやMACでARPキャッシュを削除するコマンドは以下の通りです。

 arp -d [IPアドレス]

IPアドレスを指定せず、「arp -d」を実行すると、保持されているエントリを全て削除します。

データリンク層で動作する機器

データリンク層で動作する代表的な機器として、「L2スイッチ」があります。
L2スイッチはMACアドレスをもとにフレームをスイッチングします。
以下の例をもとにL2スイッチの動作を見ていきましょう。

L2スイッチ

上図のようにノードAからノードEへの通信が発生した場合、ノードAは宛先であるノードEのMACアドレスをイーサネットフレームの宛先MACアドレスフィールドにセットしてフレームを送信します。

フレームは電気信号に変換されて送出されL2スイッチに到達します。L2スイッチは送られてきた電気信号をフレームに変換し、あて先MACアドレスを調べます。そして該当するMACアドレスが接続されているポートのみにフレームを転送します。

この時どのポートにどのMACアドレスを持っているノードが接続されているかを、「MACアドレステーブル」で管理していて、そのテーブルを参照して処理しています。

MACアドレステーブル

このようにL2スイッチは余計なポートにフレームを流さないため、ノードAとノードEが通信中であっても、その他のノード同士が通信を行うことが出来ます。

L2スイッチは入ってきた信号をフレームに変換し、そのフレームを解析して宛先MACアドレスを自身がもっているMACアドレステーブルと参照し、該当のポートに転送するという処理を専用のチップ(ASIC:Application Specific Integrated Chip)を用いてハードウエア処理しています。
ソフトウエア処理と違いハードウエアで処理しているため非常に高速に処理を行うことができます。

ハブとスイッチの違い

物理層で動作するハブの場合、送られてきた信号を電気的にしか処理しません。そのため、宛先がどのノードなのかを意識せずに、入ってきた信号をすべてのポートに送出します。

ハブの動作

ハブの場合、あて先ノードが存在しないポートにもデータを流してしまうため、L2スイッチと比べてネットワークの使用効率を大幅に下げてしまうというデメリットがあります。そのため最近のネットワークにでは、ほぼL2スイッチが採用されていてハブが使われることは無くなりました。

コリジョンドメインとブロードキャストドメイン

L2スイッチの動作で理解しておかなければいけないことに、コリジョンドメインとブロードキャストドメインがあります。

ネットワークエンジニアとして仕事をしていると必ず遭遇する単語ですので、ここでしっかりと理解しておきましょう。

コリジョンドメイン

イーサネットのネットワークにおいて、衝突信号が伝わる範囲を「コリジョンドメイン」と呼びます。通常イーサネットで複数のノードが同時に送信を行うとパケット同士が衝突する可能性があります。そのため各ノードはお互いに送信中かどうかを意識しながら通信を行っています。この意識しながら通信を行っている範囲を衝突信号が伝わる範囲を「コリジョンドメイン」と呼びます。

L2スイッチはコリジョンドメインを分割しますので、L2スイッチのポートごとに別のコリジョンドメインになります。ネットワーク内で出来るだけコリジョンドメインを分割すること、つまりリピータやハブではなくL2スイッチを導入することでネットワークの伝送効率を向上させることが出来ます

ブロードキャストドメイン

イーサネットのネットワークにおいて、ブロードキャストパケットが伝わる範囲を「ブロードキャストドメイン」と呼びます。リピータやハブ、L2スイッチなどはブロードキャストパケットを伝達するため、これらで構成されたネットワークは単一の「ブロードキャストドメイン」となります。

後述するルータはブロードキャストを伝達しないため、「ブロードキャストドメイン」の間にルータを接続することにより、別々の「ブロードキャストドメイン」を構築することが出来ます。

先ほど説明したARPはブロードキャストドメインを超えて送信することはできません。そのため1つのブロードキャストドメインが1つのLANと見ることもできますし、実際に現場では、1つのブロードキャストドメインをLANと呼んだり、セグメントと呼んだりします。

ブロードキャストドメイン

L2スイッチは各ポートに固有の「コリジョンドメイン」を持っており、自身が保持しているコンピュータのMACアドレスをMACアドレステーブルに記録し、該当のポートに対してのみフレームを転送します。
このように「L2スイッチ」は「コリジョンドメイン」を分割することが可能ですが、「ブロードキャストドメイン」を分割することは出来ず、すべてのポートに対して転送されます。

VLANでブロードキャストドメインを分割する

L2スイッチはブロードキャストドメインを分割できないのですが、VLANという機能を使えばL2スイッチでブロードキャストドメインを分割することが可能です。
VLANは実環境でも必ずといってもいいほど利用する機能です。とても重要な機能ですのでしっかりと理解していきましょう。

VLAN(Virtual LAN)とは、論理的に1台のスイッチに独立した複数のLANを持たせることが出来る機能です。

VLANの動作

上図のように、一見すると普通のネットワークに見えても、論理的には3つのブロードキャストドメインに分割することが可能な技術がVLANです。

VLAN

3つのLANは完全に独立していて、LAN同士の通信は出来ません。物理的には同じスイッチを使っているため、1つのLANに見えても論理的に切り離された3つのLANを構成しています。

VLAN機能を使用するとポートごとに、どのブロードキャストドメインのグループに属させるかを自由に決めることができます。VLANではこのグループのことを「VLAN ID」という番号で管理します。VLAN IDの範囲は機種によってさまざまですが、基本的には「VLAN ID 0」はシステムで予約されているため使えず、「VLAN ID 1」はデフォルトVLANとして決められているため、実際に自由に利用出来る番号は2以降になります。

VLANを活用すれば物理的には1台のスイッチでも、あたかも複数のスイッチで構成されたネットワークであるかのように使うことも可能です。

VLANを使った論理的な分割

VLANにはいくつかの方式がありますが、代表的なVLAN方式は以下の2つになります。

  • ポートVLAN
  • タグVLAN

ポートVLAN

ポートVLANはスイッチのポートにVLAN番号(VLAN ID)を割り当てる方法で、最も基本的なVLANの使い方です。それぞれのポートにVLAN IDを割り当てて、1つのスイッチを仮想的にブロードキャストドメインを分割します。

下図のようにポート1~4までをVLAN1、ポート5~8までをVLAN2に設定した場合、そのポート配下のPCはすべて同じVLANに属することになります。当然そのポート配下にハブを接続した場合も、そのハブ配下のPCはすべて同じVLANに属します。

ポートVLAN

タグVLAN

タグVLANは、フレームにVLANタグと呼ばれる情報を付与してフレームごとにどのVLANに属しているのかを識別出来るようにする方法です。

フレームに付与されるタグの既述は、「IEEE802.1Q」で標準化されています。以下の図のように、フレームヘッダに4バイトのVLANタグを付与します。

タグVLAN

このようにフレームごとにフレームを識別するタグを付与することで、 同じ1本のケーブル上に複数のVLANを共有させることが可能になります。

ポートVLANとタグVLANを使ったネットワーク構成例

各フロアに複数の部門が存在するような構成の場合、各部門ごとにスイッチを用意するというのはとても非効率です。

タグVLANとポートVLAN

このような場合は、ポートVLANとタグVLANを利用してネットワークを構成します。

タグVLANとポートVLAN

各フロアにスイッチを設置し、2つの部門の端末をポートVLANで収容し、スイッチ間のポートにタグVLANを利用することでスイッチもLANケーブルも1セットで済みます。

タグVLANのフレームフォーマット

タグVLANは、フレームにVLANタグと呼ばれる情報を付与してフレームごとにどのVLANに属しているのかを識別出来るようにする方法です。

フレームに付与されるタグの既述は、「IEEE802.1Q」で標準化されていて、VLANタグのフレーム・フォーマットは以下の通りです。

通常のイーサネットフレーム

通常のイーサネットフレーム

タグ・フレーム付きのイーサネットフレーム

タグ付きのイーサネットフレーム

タグ・フレームは宛先MACアドレスのフィールドと、イーサネット・タイプのフィールドの間に挿入されます。

タグ・フレームが追加される分、フレームの長さは長くなります。タグ無しのフレームの最大長が1518バイトなのに対して、タグ・フレームが追加されたフレームの最大長は1522バイトとなります。

4バイトのタグ・フレームのうち、前半の2バイトがフレームのタイプを表すビットになり、「IEEE802.1Q」を表す「8100」という値がセットされます。後半2バイトで、VLANタグの制御情報を識別する値(TCI:12ビット)がセットされます。VLAN1なら「1」が、VLAN2なら「2」がセットされます。

TCIが12ビットで表されるということは、必然的にVLAN Idの範囲が0~4095の範囲となります。ただし0と4095は予約されている値のため、実際に利用できる範囲は、1~4094までとなります。

実際にタグ・フレームが付与されているフレームをキャプチャした結果が以下です。

タグ付きのイーサネットフレームキャプチャ画面

以上のようにVLANを駆使することで、1台のスイッチでブロードキャストドメインを分割することが可能になるため、トータルのスイッチの数を減らすことができるため、トータルコストも減らすことが出来ます。

また、物理的な接続に関係なくスイッチの設定を変更するだけでLANを自由に構成することが出来るため、人事異動等でフロアのレイアウトが変わった場合でも、スイッチのVLAN設定を変更するだけでLANを変更することが可能になるというメリットもあります。

VLAN間で通信を行うには?

VLANはブロードキャストドメインを分割することができて便利なのですが、スイッチにVLANを設定しただけでは、VLAN間の通信を行うことができません。

VLAN間通信の方法

その場合はブロードキャストドメイン間の橋渡しをする装置が必要になります。代表的な装置はルータで、ネットワーク層で動作する装置です。

ルータを使ったVLAN間通信の方法

ルータは各VLANを1つのネットワークとして扱うため、1つのポートにIPアドレスを割り当ててあげれば、ルータを介してVLAN間で通信を行うことが出来ます。

関連記事