L2スイッチ入門:レイヤー2の仕組みを図解でやさしく解説

ネットワーク

1_L2スイッチとは?

L2スイッチは、サーバやPCなどの機器を繋ぐネットワーク機器であり、データの転送を効率的行えます。OSI参照モデルとしてはレイヤー2に相当し、受信したデータ内のMACアドレスを参照し、L2スイッチ自体が持っているMACアドレステーブルと照合することで、目的地にデータを転送します。

L2スイッチとはの説明図。サーバやPCを接続する機器であることを示すイラスト

2_データを転送する仕組み

2-1_データ転送の流れを図解(まず送信元の機器でデータを作成する)

L2スイッチがデータ転送する前提として、通信データがどのような流れで作成されるかを確認しましょう。ここでは、Web通信http通信)を例に取ります。
——————————————————————-
①アプリケーション層に該当するWebブラウザでデータ内容の本体(httpリクエスト)を作成します。
②データ送信方法に関する情報として、TCPヘッダを追加します。
③送信先に関する情報として、IPヘッダを追加します
④最後に隣接機器に関する情報としてMACフレームを追加します 
⑤データ一式が完成したので、相手方に送信します。

データ転送の流れ図(送信元でデータ作成→ヘッダ付与→フレーム送信)
2-2_データ転送の流れを図解(L2スイッチがデータを受信してからの処理)

⑥送信データ内のMACフレームには宛先となるMACアドレスが格納されている(今回はWebサーバ宛て)
⑦L2スイッチが持つMACアドレステーブルには、MACアドレス対応するポート(=L2スイッチが持っている接続口)が記載されている。
————————————————————————
L2スイッチは、PCからデータを受信すると、⑥データのMACフレーム内の宛先MACアドレスと⑦MACアドレステーブルを照合することで、どのポートに転送するかを判断しています。

L2スイッチが受信後に行う処理の概念図。MACアドレス照合と転送先判定の流れ
バグ太郎
バグ太郎

ごめんなさい・・・そもそもMACアドレスって何でしたっけ・・・IPアドレスとの違いもあんまり分かっていません・・・

C-3PU
C-3PU

IPアドレスもMACアドレスも、通信を相手方に届けるために使用されるという点では同じです。
ただし、使用される場面には違いがあり、①IPアドレスは、宛先に到達するためにどのルートを経由するのかがよいかを判断するのに使用されます(ルーティング)。対して②MACアドレスは、データを運搬する上で実際に使用される宛先情報にになり、目的地にたどり着くために次どこに行ったらいいかの情報とも言えます。

バグ太郎
バグ太郎

うーん・・・なんとなくわかったような・・・

C-3PU
C-3PU

MACアドレスそのものや、IPアドレスとの役割の違いは別記事で解説していますのでそちらも参照してみてください。

3_効率的にデータを転送するとはどういうことか

L2スイッチの利点は、MACアドレステーブルを持っていることで必要なポートのみにデータ転送ができる点にあります。MACアドレステーブルを持っていないシェアードHUB(=バカHUB)と呼ばれるネットワーク機器の場合、受信したデータを全てのポートに流しており不要な通信が発生していました。
※現在、MACアドレステーブルを持たないシェアードHUBで実際の運用がされているケースは多くないかと思います。

3-1_シェアードHUB(=バカHUB)で機器を繋いだ場合

①PCからデータを送信する
②シェアードHUB(=バカHUB)が、全てのポートにデータを転送する
③各機器は受信したデータのMACアドレスが自身のMACアドレスであれば、そのまま受け取り、異なればデータを破棄します。

シェアードHUB(バカHUB)との比較図。全ポート送信とスイッチの違いを並べた図解

4_MACアドレステーブルについて

バグ太郎
バグ太郎

L2スイッチが通信を処理する流れと、シェアードHUBの解説でなんとなく概要を理解したのですが、L2スイッチの要となっているMACアドレステーブルはどのように設定されるのですか?一台一台、職人がL2スイッチに直接設定値を入れている感じなのですかね・・・

C-3PU
C-3PU

一台一台手で入力していると、L2スイッチに接続する機器が増えたり減ったりするとメンテナンスが大変ですよね?
設定される流れとしては、データを受信した際に送信元のMACアドレス受信したポートをMACアドレステーブルへ登録します。また、MACアドレステーブルにに存在しない宛先へのデータを受信した場合、L2スイッチはフラッディングという受信したポート以外の全てのポートにデータを転送する技術を使用し、データを宛先へ届けます。フラッディングによりデータが届いた宛先から応答があった場合、L2スイッチを経由するため同様にMACアドレステーブルに登録されます。

4-1_MACアドレステーブルに情報が登録されるまでの流れ(データ送信~フラッディング)

下記の図は、MACアドレステーブル空の状態でPCからWebサーバにデータを送信する例を取り上げています。
①PCからデータ送信
②PCからのデータを受信したL2スイッチは、送信元のMACアドレス受信したポートをMACアドレステーブルへ登録します。
③L2スイッチは、受信したデータの宛先MACアドレスがテーブルにないため、全てのポートにデータを転送します(=フラッディング

ラッディングの説明図。宛先不明時に全ポートへ転送する挙動を示す図

④PCから送信されたデータの宛先MACアドレスが、自身のものと一致していれば受け取り、応答の通信を返す
⑤応答の通信を受けたL2スイッチは、送信元のMACアドレス(Webサーバ)と受信したポート(2)をMACアドレステーブルに登録する
⑥②のタイミングでPCのMACアドレスとポート番号は既にテーブルに登録されているため、転送処理が可能。

MACアドレステーブル登録の図。送信元MACと受信ポートを学習する様子

(参考)よくある質問

Q1
L2スイッチとは何ですか?
A1

同一LAN内でMACアドレスを学習し、宛先ポートへフレームを転送する機器です。効率的に必要なポートだけへ送るため、シェアードHUBより無駄な通信が減ります

Q2
MACアドレステーブルはどうやって作られますか?
A2

端末から受信したフレームの送信元MACと受信ポートを登録し、一定時間で古いエントリは消える(aging)仕組みで管理します

Q3
宛先が不明なときはどう動作しますか?
A3

宛先MACアドレスがテーブルに無い場合はフラッディングで一時的に全ポートへ送信し、応答を受けた以降は、MACアドレステーブルに登録があるため必要なポートのみに転送されます。

コメント

タイトルとURLをコピーしました