● 一つのネットワーク上での詳細なやりとりについて
Ø arp
² MACアドレス/物理アドレス/ハードウェアアドレス/生アドレス
l IPアドレスとは別に、ネットワークインタフェースは個々にユニークなハードウェアアドレス(MACアドレス)を持っている。MACアドレスは原則全世界でユニークである。
l IP通信においても、最終的には端末のMACアドレスによって通信される。
l つまり一つのネットワーク上にある端末XからYへ通信を行う場合、XはYのIPアドレスを指定して通信をするのではあるが、パケット単位で見ると、IPアドレスからMACアドレスに付け替えられて通信を行っている。
² ARPはMACアドレスを取得するのに使われるプロトコルである。
² 端末は、IPアドレスに対応したMACアドレスの対応表を次々と記憶していく。この表をARPテーブルと呼ぶことがある。しかし一定時間になるとARPテーブルから消えていく。これは最新情報を保つためである。
² ある端末Xがある端末Yと通信したいとき、ARPプロトコルにより、ネットワーク上に端末YのIPアドレスをMACアドレスを知りたいとリクエストする。そのIPアドレスを持つ端末Yが生きていた場合は、端末Yがこのリクエストに応えて自分のMACアドレスを返す。これにより端末XのARPテーブルに端末YのMACアドレスが記載され、以降テーブルから消えるまでは問い合わせを行わないでテーブルを参照してパケットを送る。
Ø ARPによりMACアドレスが判明したら、IPアドレスによって通信する際にMACアドレスにより通信が行われる。
Ø ユーザにとってはARP・MACアドレスによる通信は殆ど意識せずにすむ。
Ø ネットワークのトラブルとしてMACアドレスが取得できない、記憶できないなどの場合がある。
Ø
● ネットワークをまたぐやりとり
Ø ネットワークをまたいだとき、ARPはどのようになるのであろうか。
Ø ネットワークをまたいだ(別のネットワーク上の)端末と通信をする場合は、デフォルトゲートウェイにまずパケットが送られることは既に開設した通り。つまり、別のネットワーク上の端末のMACアドレスを知る必要はなく、ゲートウェイのMACアドレスが分かればよいだけである。
Ø ある端末Xが別のネットワークの端末Aと通信をする場合、デフォルトゲートウェイRを知っているとする。この時、端末XはゲートウェイRのMACアドレスをARPプロトコルにより取得する。以降端末Aへパケットを送る際には、端末AのIPアドレス、ゲートウェイのIPアドレスおよびゲートウェイのMACアドレスを記載してパケットを送出する。ゲートウェイ(ルータ)Rはこのパケットをもらうと、端末AのMACアドレスを取得するため、端末AのIPアドレスをキーとしてARPリクエストを行う。ルータRが端末AのMACアドレスを取得できたら、取り込んだパケットに記入されていた自分のIPアドレス、MACアドレスを端末Aのものに書き換えてパケットを流す。
Ø
● DNSを利用した場合のやりとり
Ø
端末Xが別のネットワークの端末Aをホスト名で指定して通信する場合、
まずDNSサーバに対してホスト名Aに対するIPアドレスをリクエストする。DNSサーバのIPアドレスは、端末Xはあらかじめ知っている(設定されている)必要がある。DNSサーバのIPアドレスを知っている端末Xは、通信するのにDNSサーバのMACアドレスを知る必要があり、ARPを通じてこれを知り、実際のリクエストを行う。端末AのIPアドレスが分かったら、端末XはそのIPアドレスへの通信をしようとする。今端末Aは別のネットワークであるので、端末Xは直接端末Aへ通信を行わず、ゲートウェイへまずパケットを送る。ゲートウェイののIPアドレスは既に設定されているので、そのMACアドレスを取得してゲートウェイを通じて端末Aへとパケットを送ることになる。
● arp, ifconfig, ping, traceroute
(2) IPアドレスだけではなく、MACアドレスによる通信がなぜ必要なのか?
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-