はじめに
この記事は、3分間NetWorkingを読んでインプットした知識をアウトプットするために執筆しています。
学習内容のまとめ、学習してみての所感や疑問などを記載しています。
記事を読んでみて、間違っていることへの指摘や感想などありましたら、ぜひコメントをいただければ幸いです。
3分間NetWorkingのリンクは以下の通り。
https://www5e.biglobe.ne.jp/aji/3min/
記事のトピックス
・ARP
・DNS
ARP
前回、データの転送には送信元MACアドレス、送信元IPアドレス、宛先MACアドレス、宛先IPアドレスが必要と話しました。
送信元MACアドレスはNICが取り付けられた時点で付与され、自動的に取得されます。
送信元IPアドレスは、ネットワーク管理者が手動で付与する静的IPアドレス(スタティックIPアドレス)と、DHCPをサーバとクライアントを利用して取得する動的IPアドレス(ダイナミックIPアドレス)がありました。
今回は宛先MACアドレスの取得方法についてまとめます。
宛先MACアドレスを取得するには、ARP(Address Resolution Protocol)というプロトコルを使用します。
ARPは宛先IPアドレスからMACアドレスを調べる仕組みです。宛先IPアドレスを知った後に、そのIPアドレスにMACアドレスが何かを聞いて確認します。
ARPテーブル
ARPでのMACアドレス取得の流れをまとめます。
まずは、データ転送を希望するホストは、宛先IPアドレスを取得します。
IPアドレス取得後、ARPテーブルと呼ばれる、IPアドレスとMACアドレスの対応表を参照し、該当のIPアドレスのMACアドレスを確認します。
このテーブルに知りたい宛先IPアドレスと宛先MACアドレスの対応が載っていれば、宛先MACアドレスを取得することができますが、対応が載っていない場合もあります。
その場合、ARP要求でテーブルに載せる必要があります。
ARPリクエスト・ARPリプライ
ARPはレイヤ3のプロトコルですが、IPアドレス解決のためのプロトコルなので、IPパケットを使用しません。ARPパケットという独自のパケットを使用してデータ転送を行います。
IPパケットではレイヤ4などの上位レイヤのデータを引き継いで使いますが、ARPはレイヤ3以降のレイヤでしか使いません。
ARPリクエスト・リプライの流れ
1.宛先にデータを転送するために、宛先IPアドレスを取得
2.ARPテーブルを参照し、宛先IPアドレスと宛先MACアドレスの対応を確認
3-1.対応があった場合、そのまま宛先MACアドレスを取得してARPパケットで転送
3-2.対応がなかった場合、ARPリクエストをブロードキャストで各ホストに送る
4.ARPリクエストを受け取った各ホストは、ARPパケットの中の宛先IPアドレスと自分のIPアドレスを比較する
→一致しなければ無視
→一致すれば、ARPリプライを送信
5.ARPリプライを受け取ったホストは、ARPテーブルにそのMACアドレスを追加する
6.4つのアドレスが揃い、データをARPパケットで転送する
ARPが多発することによる懸念
ARPはブロードキャスト通信のため、全員宛の通信が多発することによりネットワークの帯域幅を多く消費します。
スイッチやブリッジはフィルタリングによって宛先を指定することができるが、ブロードキャストはフィルタリングできないので、トラフィックに影響を及ぼしやすいです。
ブロードキャストが多発して、ネットワーク全体が通信できない状況になることをブロードキャストストームと言います。
DNS
ドメイン名とホスト名
宛先IPアドレスを知る方法です。
送信する相手のコンピュータの名前をドメイン名、ホスト名と言います。
ドメイン名はIPアドレスを人間が見やすいように変換したもので、IPアドレスと同じくコンピュータのネットワークの住所を表しています。
正確にはコンピュータの住所はホスト名の方ですが、ドメイン名の一部になっていることが多いです。
ドメイン名は正確にはネットワーク全体や組織を識別する名前になります。
IPアドレスと同じようにユニークな名前である必要があり、ドメイン名はICANNが管理しています。
ホスト名は組織のネットワーク管理者が付けます。
しかし、人間が見やすい形にしても、データを送信するにはどうしてもIPアドレスとして取得する必要があります。
DNS(ドメインネームシステム)
そこで、名前とIPアドレスを対応させるデータベースを持っているDNSサーバーに問い合わせを行い、宛先IPアドレスを取得します。
DNSサーバーは各組織に一つずつ、その組織のドメイン名とホスト名のみを管理しています。
そのため、他の組織のドメイン名やホスト名からIPアドレスを知りたいときは、他の組織のDNSに聞くことになります。
DNSの一連の流れとしては以下の通りです。
1.ユーザーがドメイン名を入力
2.DNSでまずは過去に同じようなリクエストがなかったか、キャッシュを確認する
3-1.キャッシュがあれば、それを返して終了
3-2.キャッシュがなかった場合は、新たにIPアドレスを取得して返す
これらの流れにより、ドメイン名からIPアドレスを取得することができます。
まとめ
今回はOSI参照モデル レイヤ3 ネットワーク層のARP、DNSについてまとめました。
次回もレイヤ3 ネットワーク層についてまとめます。
最後に、記事を読んで間違いの指摘などがあればコメントで教えていただけると幸いです。
ありがとうございました。