🏗️

イーサネットで使われる代表的な技術(MACアドレス,L2スイッチ,VLAN)

2022/08/08に公開

この記事ではイーサネットで使われる代表的な技術を3つご紹介します。MACアドレス、L2スイッチ、VLANについてです。

MACアドレス

イーサネットネットワークに接続している端末を識別するためのIDです。6バイト(48ビット)で構成されています。04-0c-29-43-5e-beのように、1バイト(8ビット)ずつ区切って16進数で表記します。

-(ハイフン)と:(コロン)

MACアドレスの桁区切り記号には-(ハイフン)、:(コロン)の2つが使われます。また桁区切り記号を使っていない製品もあります。-:で機器に合わせて入力する必要がある場合には注意が必要です。

ハイフン表記:04-0c-29-43-5e-be
コロン表記:04:0c:29:43:5e:be
何もなし:040c29435ebe

書き込まれる場所

一般的な意味でアプライアンスとは、器具、家具、電化製品など全般を指します。しかしITに関していえば、「特定の用途で使われる機器」のことを指します。アプライアンスには物理、仮想の2種類があります。

物理アプライアンス:物理的なネットワーク機器
仮想アプライアンス:仮想環境で動くネットワーク機器

物理アプライアンスであれば、物理NICを製造するときにROMへMACアドレスは書き込まれます。仮想アプライアンスであれば仮想NICへ割り当てられます。

ベンダー番号、シリアル番号

MACアドレスは前半と後半で異なった意味を持ちます。

  • 前半の24ビット(3バイト)
    IEEEが各メーカーに割り振った番号
    ベンダー番号、OUI(Organizationally Unique Identifier)
  • 後半の24ビット(3バイト)
    各メーカーが重複しないように割り振った番号
    UAA(Universal Administrated Address)ともいう

OUIはこちらのサイトでも公開されています。OUIを見れば通信している端末がどのメーカーによって製造されたかがわかります。

L2スイッチ

データリンク層で動作するネットワーク機器がL2スイッチです。L2スイッチには色々な呼び方がありますがどれも同じです。

L2スイッチ
レイヤ2スイッチ
スイッチ
スイッチングハブ

MACアドレスを元に特定の端末へデータを送信することができます。(ハブは全ての端末へデータを送信してしまいますが、)フィルタリングによって無駄なデータを流さずに済み、通信のパフォーマンスを向上させることができます。


MACアドレスアドレスを元に送信先を選択

(補足)ポート

ポート=港という意味がありますが、ここを窓口にデータが頻繁に出入りすることから名付けられました。一口にポートといっても大きく2つの意味があります。

  1. TCP、UDPで使う論理的なポート
  2. ネットワーク機器が持つ物理的なポート

どちらの場合でも、インターフェース(何かと何かをつなぐ、接点となる)のような役割を果たしています。

1. TCP、UDPで使う論理的なポート

パケットをどのアプリケーションに渡せば良いかを判断するために使う情報です。0~65535までの数字で表され、よく使われるプロトコルについてはあらかじめポート番号が決まっています。

ポート番号 プロトコル
20,21 FTP
22 SSH
23 Telenet
25 SMTP
53 DNS
80 HTTP
110 POP3
443 HTTPS

こちらのポートはアプリケーションの種類を識別するための(どこで受け取れば良いか決めるための)ポートとなっています。

2. ネットワーク機器が持つ物理的なポート

ケーブルを差し込むための物理的な差し込み口のことです。 LANポート、イーサネットポート、RJ-45ポートと呼ばれることもあります。この記事ではポートという言葉を「ネットワーク機器が持つ差し込み口」という意味の方で使っていきます。

MACアドレステーブル

スイッチはMACアドレステーブルというデータベースを持っています。初期状態では何も登録されていません。スイッチへネットワーク機器を接続すると、その端末からフレームが送信されます。スイッチは送られたフレームから2つの情報を登録します。(1)送信元MACアドレス、(2)着信ポート番号 です。

スイッチはMACアドレステーブルを見ながらフレームの転送先を切り替えます。ここまでの仕組みを難しい言葉で以下のように呼んだりもします。

  • MACアドレス学習機能
    MACアドレステーブルへ(1)送信元MACアドレス(2)着信ポート番号を記憶すること
  • スイッチング
    スイッチがフレームの転送先を切り替えること
  • MACアドレスフィルタリング
    MACアドレステーブルを元に送信先を選択すること

(スイッチング、MACアドレスフィルタリングはほぼ同じことだと思って頂いて構いません)

L2スイッチの動作

  1. 送信されたデータの送信元MACアドレスを読み取り、そのアドレスをMACアドレステーブルに登録
  2. 宛先MACアドレスを読み取り、一致するアドレスをMACアドレステーブルで調べる
  3. 宛先MACアドレスと一致するMACアドレスがあれば、そのMACアドレスが関連づけられているポートだけにデータを送信
  4. 一致するMACアドレスがない場合、初めにデータを受信したポート以外の全てのポートへ送信

(1)MACアドレスを登録済みの場合,(2)そうでない場合 の2パターンに分けて詳しく見ていきます。

(1)MACアドレスを登録済みの場合

PC-AからPC-Cへデータを送る場合を考えてみます。スイッチに接続されている機器は既にMACアドレステーブルへ情報が登録済みとします。まずPC-Aからスイッチへデータ(フレーム)が送られてきます。

スイッチはフレームから宛先MACアドレスを読み取ります。テーブルにはPC-CのMACアドレスとポート番号が登録されているので、そこに向けてだけデータが転送されます。

(2)MACアドレスが登録されていない場合

初めてデータを送信する場合を考えてみます。同じくPC-AからPC-Cへデータを送りましょう。PC-Aからスイッチへデータ(フレーム)が送られてきます。その際にスイッチはフレームから送信元MACアドレスの情報を読み取ります。そして着信ポート番号と一緒に、2つの情報をMACアドレステーブルへ登録します。


この時点ではまだポート1、PC-Aの情報しかない

スイッチはPC-Cがどのポートに接続されているかわかりません。その場合、初めにデータを受信したポート以外の全てのポートへデータを流します。(宛先がわからないので全てのポートへデータを転送します。)関係ないデータを受け取ったPC-Bはフレームを破棄し、PC-Cは自分宛のデータを受け取ることになります。


宛先不明で全てのポートへ転送

フラッディングとは受信したポート以外の全てのポートへデータを転送することを指します。

VLAN

1台のスイッチを仮想的に複数のスイッチへ分割する技術です。物理的には1つのスイッチを共有していても、別々のネットワークがあるかのように見せかけることができます。仕組みとしては番号を割り当てることでグループ化をおこなっています。スイッチのポートへVLAN IDという番号を割り当て、異なるVLAN IDが設定されているポートにはフレームを転送しないようにします。

逆も然りで、物理的には複数のスイッチでバラバラになったネットワークも1つにまとめることもできます。主に運用管理やセキュリティの目的で使われます。例えば営業部はVLAN1、経理部はVLAN2、総務部はVLAN3といった使い方です。これによって1台のスイッチだけで、3つのネットワークを仮想的に独立させて運用できます。

VLAN:5つの種類

1つのスイッチで仮想的に複数のネットワークを作る..といっても、VALNを実現するにはいくつか方法があります。代表的なのが以下の5つです。

名称 機能
ポートベースVLAN ポートによって割り当て
タグVLAN タグ情報を付与して割り当て
MACベースVLAN MACアドレスを元に割り当て
ユーザーベースVLAN ユーザー認証で割り当て
サブネットベースVLAN IPアドレスで割り当て

ここでは代表的なポートVLAN、タグVLANについてもう少し掘り下げていきます。

ポートベースVLAN

1ポート1VLANを割り当てる機能です。例えば1台のスイッチにPCが4台接続されていたとします。スイッチにはポートが4つ付いており、PCがそれぞれ接続されています。この場合、それぞれのポートに1つずつVLANを割り当てることができます。

VLAN1:ポート1,ポート2
VLAN2:ポート3,ポート4

異なるVLAN同士は通信できないので、仮想的に2つのネットワークを作ることができます。

1ポート、1VLAN

ポートベースVLANの欠点は、ポートとスイッチがたくさん必要になってしまう点です。1ポート、1VLANという絶対的な決まりが関係しています。例えば2台のスイッチを跨いで同じVLANに所属する端末同士が通信できるようには、VLANの数だけポートとケーブルを用意する必要があります。これではポートとケーブルがいくらあっても足りません。


何とか1本のケーブル,ポートでできないでしょうか

タグVLAN

フレームへVLAN情報を付与する機能です。送信するデータの中にVLAN ID情報を付与することで、ポートやケーブルの数に縛られることがなくなります。各機器がフレーム内のVLAN番号を見ることによって、ネットワークを仮想的に作ることができます。

タグVLANはIEEE802委員会のIEEE802.1qワーキンググループで標準化されています。

Discussion