こちらでは、CCNAの資格取得へ向けた情報を記載いたします。
【初心者向け】CCNA基礎 12章
1. ネットワーク層の機能
OSI参照モデルのネットワーク層(TCP/IPモデルではインターネット層)にはIPの他にもいくつかの重要なプロトコルが存在します。
今回は、そんなプロトコル達をご紹介していきます。
1-1. ICMP
まずご紹介するのが「ICMP」と呼ばれるものです。
「ICMP(Internet Control Message Protocol)」とは、ネットワーク上での通信状況を確認したり、通信時のエラーメッセージを送信する役割を持つプロトコルです。
このプロトコルには、IPv4用の「ICMPv4」というものと、IPv6用の「ICMPv6」というものがあります。
今回は例に倣って、使用頻度の高い「ICMPv4」について記述していきます。
まず、PC・サーバーからルータへ通信することが可能かを確認する際に「pingコマンド」というコマンドをよく使います。
pingコマンドとは、ICMPメッセージを送りたい相手(機器)へ送信して、応答の有無やその内容によって、それぞれ通信が可能かどうかを判断します。
ICMPでは、状況の問い合わせやエラーの通知を行うためのメッセージが定義されています。
また、pingコマンドは、ICMPの「エコー要求(Echo Request)」と、「エコー応答(Echo Reply)」を利用することで、それぞれの通信可否を確認していきます。
ちなみに、Cisco機器ではデフォルトで送信側がエコー要求を送信してから2秒以内に
相手からのエコー応答を受信することが出来ると、そこで通信可能だと判断します。
一方2秒以内に相手からのエコー応答を受信出来なかった場合は、時間超過として「pingコマンドが失敗した」と判断されてしまいます。
ネットワークのルート上で、通信エラーや設定の変更や何らかの変化が生じた場合は、ICMPで定義されている「エラー通知」というものを送信します。
例をあげると、発信したエコー要求にに対して何らかの理由で宛先まで到達しなかった場合、エコー応答をする代わりに、中継地点のルータなどから「宛先到達不能」のエラーメッセージが送信されてきます。
1-2. ICMPヘッダ
先程のICMPメッセージは、「ICMPヘッダ」と「ICMPデータ」の2つで構成されているもので、更にこの「ICMPヘッダ」のフォーマットは、「タイプ」「コード」「チェックサム」の3つで構成されています。
まず一番初めの「タイプ」の部分は1バイトとなっており、ICMPメッセージの種類を表す部分となり、この部分がエコー要求なら「8」でエコー応答は「0」、宛先到達不能は「3」といった中身になります。
次に「コード」の部分ですが、こちらも同じく1バイトとなっており、宛先到達不能メッセージだった場合に、エラーの種類が何かを示す値を入れる部分となっています。
最後に「チェックサム」の部分ですが、こちらは2バイトとなっており、エラーの有無をチェックするためのフィールドとなっています。
また、このICMPヘッダの後ろ部分には、それぞれのタイプに応じたICMPデータが続いています。
そして、ICMPはIP乗で動作するもののため、ICMPヘッダの前には、当然「IPヘッダ」が付加されることとなります。
2. ARP
続いてこの「ARP(Address Resoulution Protocol)」についてですが、こちらは、IPアドレスからMACアドレスを調べる役割を持つプロトコルとなります。
LAN内では、IPアドレスとMACアドレスの2つを使用して通信を行うのが一般的です。
そのため、どこかの端末と通信する際には、IPヘッダに含まれている宛先IPアドレスから宛先の端末を識別していきます。
そしてその下の層では、イーサネットヘッダに含まれる宛先MACアドレスで、宛先の端末を識別していきます。
端末のIPアドレスについては、自由に設定することが可能であり、そのIPアドレスに対応するMACアドレスが常に同じだとは限らないため、宛先のIPアドレスが解ったとしても、それに対応するMACアドレスの方は解らない状態です。
そこで登場するのがこの「ARP」となり、これを利用することで、宛先IPアドレスからそれぞれに対応する宛先MACアドレスを取得することが可能となります。
また、ARPは「ARP要求」と「ARP応答」の2種類のデータを送受信することで、それぞれのMACアドレスを取得します。
2-1. ARP要求の送信とARP応答の送信
まずはARP要求の送信の流れについてです。
仮に「PC1」「PC2」「PC3」まずがあったとして「PC1」の視点になった場合、先程記載した様に、宛先IPアドレスは解っていても、それに対応するMACアドレスまでは解らない状態となっています。
そこでこのPC1は最初にARP要求を、対象のIPを使ってPC2とPC3へそれぞれ送信し、対応するMACアドレスを各所に問い合わせします。
そして次に、それを受け取ったPC2とPC3は、届いたARP要求を確認していきます。
その後、PC2は自分のIPアドレスに対する問い合わせだったため、これに応答するために同じくARP応答を送信します。
逆にPC3については、中身を確認して対象ではない端末だったため、メッセージを自動的に無視し、何も応答しないという流れになります。
この様に、最初のメッセージ自体は一斉送信されてしまいますが、その後の返答は、対象の端末からのみ返ってくるという仕組みになっています。
また、PC2は問い合わせに対する答えとして、自身の対応するMACアドレスをARPパケットないに入れてから、問い合わせ先であるPC1へメッセージを送信します。
この時の通信については、PC1にだけ送信することとなるため、PC3には届かないユニキャスト通信となっています。
最後に、PC2からのメッセージを受信したPC1は、この内容を「ARPテーブル」という場所へ保存します。
ちなみにこの「ARPテーブル」というものは、先程のARPのやり取りによって判明したIPアドレスとMACアドレスの関連情報が、それぞれ登録されている場所となっています。
こうしておくことで、再度問い合わせをする必要がなく、ARPテーブルに対象の情報がない場合にのみ、ARP要求を送信するだけでよくなるという利点があります。
3. まとめ
お疲れ様でした。 ここまで読んでいただきありがとうございます。
今回は内容的にも複雑な物はなく、比較的頭に入ってきやすかったのではないでしょうか。
次回は、TCPとUDPについてまとめていきます。