本文とサイドメニューへジャンプするためのナビゲーションスキップです。

スタートアップガイド

J-Net21 中小企業ビジネス支援サイト

  • J-Net21とは
  • スタートアップガイド
中小機構
  • メルマガ登録
  • RSS一覧
  • お問い合わせ

HOME > 製品・技術を開発する > デジ・ステーション

デジ・ステーション


初級ネットワーク講座
第11回 ARPの機能とデフォルトゲートウェイ

通信ネットワーク上で目的の機器と通信をするためには、ホスト名からIPアドレスを割り出す、または、IPアドレスからMACアドレスを割り出すなどの「名前解決」が必要である。今回は、いくつかある名前解決技術のうちの1つARPと、異なるネットワークとの接続に必要なデフォルトゲートウェイについて説明する。あわせてOSI参照モデルの第2層データリンク層、第3層ネットワーク層の機能についても説明する。

1 OSI参照モデルとは

1-1 OSI参照モデルは7層からなる

図1 OSI参照モデル

OSIとはOpen Systems Interconnectionの略で、メーカーや機種が異なる(Open)通信装置(Systems)を相互に接続(Interconnection)してデータ通信を行うこと。それを実現するためのガイドラインが、図1のOSI参照モデルで、国際標準化機構(ISO)が制定したものである。
 LANケーブルや通信回線などの通信媒体だけではデータ通信は成り立たない。そこでOSI参照モデルでは、ユーザやアプリケーションと通信媒体の間の通信機能を定義し、ユーザに近い部分から物理的な部分までの機能を7段階の階層に分類して、各層ごとに機能の仕様を定義した。各層での仕様をもとに通信規約であるプロトコルが作られることで、複雑になりがちのネットワークプロトコルを単純化できる。
 ただし、OSI参照モデルはあくまでもガイドラインすなわち目安であり、拘束力はない。


1-1 OSI参照モデルは7層からなる

図2 「ipconfig -all」実行画面

TCP/IPのIPというプロトコルは、OSI参照モデルの第3層「ネットワーク層」に相当する。IPを用いるネットワークを介して通信する機器は、通信機器を識別するためインターフェースごとにIPアドレスを割り当てる必要がある。
 この1つ下の階層、OSI参照モデルの第2層「データリンク層」のプロトコルは、Ethernet、PPPなどがあり、LANやWANなどのネットワークごとに異なる。
 LANの場合、Ethernetが用いられるのが一般的だ。Ethernetでは、各インターフェースを識別するためにMACアドレスを用いる。Ethernetに接続されている機器には、1つのMACアドレスと1つ以上のIPアドレスが割り当てられている。
 では、PCに設定されているIPアドレスなどの通信に関する設定を調べてみよう。これまでも何回か見てきたように、Windowsでネットワーク設定を確認するには、コマンドプロンプトで「ipconfig」と入力する。もっと詳しく見るためには、「ipconfig -all」と入力する。図2に示すのがその結果である。


図2の画面の情報から、主要な要素を抜き出してみる。

 IPアドレス 192.168.0.101
 サブネットマスク 255.255.255.0
 デフォルトゲートウェイ 192.168.0.254
 Physical Address(MACアドレス) 00-0B-97-2C-ED-71

少なくとも、これだけの設定があれば通信が可能である。

2 ARPでMACアドレスを究明!

2-1 ARPとは

今回学ぶARPは、ネットワーク層とデータリンク層にまたがって定義されている。ARPは、Address Resolution Protocol の略で、直訳すると「アドレス解決プロトコル」のこと。
 ネットワークに接続された当初、各コンピュータは自分以外のMACアドレスはわからない。しかしMACアドレスがなければ、コンピュータ間の通信は成立しない。そこで、IPアドレスを手がかりとして、そのIPアドレスに対応するMACアドレスを知るためのプロトコル、ARPが必要となる。

ARP要求パケット

通信先のコンピュータのMACアドレスを知る必要があるとき、通信元のコンピュータは、手がかりとなるあて先IPアドレス(TargetAddress)をパケットにして、ブロードキャストする。これをARP要求パケットという。
 ARP要求パケットは、ブロードキャストパケットなのでルータを超えることはできない。したがって、同一ネットワーク内に接続されている通信機器のIPアドレスからはMACアドレスを得ることができるが、異なるネットワークのMACアドレスは得ることができない。

ARP応答パケット

ARP要求パケットを受信した通信機器は、パケット内にあるTargetAddressと自分のIPアドレスが一致しているかを確認する。一致していなければ無視し、一致していたら自分のMACアドレスを含めたパケットをユニキャストで送信する。これをARP応答パケットという。

ARPキャッシュ

パケットを送信するたびにARP要求パケットとARP応答パケットのやり取りを繰り返すと、通信量が増えてしまう。そこで、PCも含めて通信装置はみなARPキャッシュを持っている。ARPキャッシュは、ARP応答パケットで得たIPアドレスとMACアドレスの対応関係を一定時間、記憶しておく。

次項で、もっと具体的にARPの働きを見ていこう。

コラム:arpコマンドの様々な使い方
 コマンドプロンプトで「arp -a」と入力すると、現時点で保存しているARPキャッシュの内容が表示される。
  「arp -d」と入力すると、ARPキャッシュの内容を強制的に消去することができる。

2-2 ARPの仕組み

あて先IPアドレスが決まったら、パケットを送信する前に、ARPによって、あて先MACアドレスを取得する。あて先のMACアドレスとは、次に送るべき(=次にパケットを受け取るべき)通信機器のIPアドレスに対応したMACアドレスである。あて先が同一のネットワークにあるか、異なるネットワークにあるかでARPの動作は異なる。

 

まずPCは、あて先が同一ネットワークか、あるいは異なるネットワークにあるかを、次の手順で確認する。

 

1. 自IPアドレスとサブネットマスクで、論理積(AND)を取り、自IPアドレスのネットワークアドレスを知る。
 論理積とは、すべての入力が「1」の場合だけ出力が「1」になり、それ以外の場合は出力が「0」となる演算のこと。ここでは、自IPアドレスとサブネットマスクを二進法に置き換え、同じ桁を比べて双方が「1」の場合のみ「1」、いずれか一方でも「0」ならば「0」とすることで、自IPアドレスのネットワークアドレスを導き出すことができる。

 

 自IPアドレス  192.168. 0.101 (11000000 10101000 0000000 01100101)
  サブネットマスク   255.255.255. 0 (11111111 11111111 1111111 00000000)
  ----------------------------------------------------------------論理積(AND)
  ネットワークアドレス 192.168. 0. 0 (11000000 10101000 0000000 00000000)

 

2. あて先アドレスとサブネットマスクで、論理積(AND)を取り、あて先IPアドレスのネットワークアドレスを知る。

 

 【例1】 あて先IPアドレスが192.168.0.26の場合
  あて先IPアドレス 192.168. 0. 26 (11000000 10101000 0000000 00011010)
  サブネットマスク   255.255.255. 0 (11111111 11111111 1111111 00000000)
  -----------------------------------------------------------------論理積(AND)
  ネットワークアドレス192.168. 0. 0 (11000000 10101000 0000000 00000000)

 

自IPアドレスとネットワークアドレスが同じため、あて先が同一ネットワーク内にあるとわかる。

 

 【例2】 あて先IPアドレスが133.194.98.92(www.recruit.co.jp)の場合
  あて先IPアドレス   133.194. 98. 92 (10000101 10000110 0110010 01011100)
  サブネットマスク   255.255.255. 0 (11111111 11111111 1111111 00000000)
  ------------------------------------------------------------------論理積(AND)
  ネットワークアドレス133.194. 98. 0 (10000101 10000110 0110010 00000000)

 

3. 【例1】の場合
 あて先が同じネットワークにあると判断した場合、次に送るべき(=次にパケットを受け取るべき)通信機器のIPアドレスは、192.168.0.26である。よってTargetAddressを192.168.0.26にしてARP要求パケットを送信する。

4. 【例2】の場合
 あて先が異なるネットワークにあると判断した場合、次に送るべき(=次にパケットを受け取るべき)通信機器は、デフォルトゲートウェイになる。デフォルトゲートウェイのIPアドレスは192.168.0.254で設定済みである。よってTargetAddressを192.168.0.254にしてARP要求パケットを送信する。

コラム:DHCPサーバは、ARPを使ってIPアドレスの重複を確認!
 1つのネットワーク内には、どれか1つに不具合が生じても対応できるよう、複数のDHCPサーバを設置することが推奨されている。しかし、1つのネットワークに配置されたDHCPサーバ同士では連携を取っていない。そのため、同じIPアドレスが異なるDHCPクライアントに割り当てられる可能性がある。
 それを防ぐため、DHCPクライアントではIPアドレスが確定したのち、自分自身に割り当てられたIPアドレスをもとにARP要求コマンドを送信する。もし同一ネットワーク内に同じIPアドレスが先に別のDHCPサーバから割り当てられたDHCPクライアントが存在する場合、ARP応答が返ってくる。存在しない場合は、ARP応答が返ってこない。
 このようにして、同じIPアドレスの重複割当の確認ができる。そのためDHCPによるIPアドレス取得には多少の時間を必要とする。

2-3 例題を解いてみよう!

【解答】

【解説】
 MACアドレスは、OSI参照モデルの第2層データリンク層に相当する。送信元・あて先MACアドレスは、Link by Linkといって、鉄道で言えば乗換駅から乗換駅の区間を指定する。これによって第2層データリンク層の機能である直接接続された機器間(隣接装置)でのデータフレームの転送機能が実現できる。
 IPアドレスは、OSI参照モデルの第3層ネットワーク層に相当する。送信元・あて先IPアドレスは、End to Endといって、鉄道で言えば出発地から目的地の区間を指定する。これによって第3層ネットワーク層の機能である経路制御・選択の機能が実現できる。

【次回予告】
 インターネット上のサーバにアクセスする際には、”recruit.co.jp”のようなドメイン名、”www”のようなホスト名を用いる。しかしIPパケットみると「あて先IPアドレス」はあれど「あて先ドメイン名」や「あて先ホスト名」なるものはない。そこで「ホスト名」や「ドメイン名」を「IPアドレス」に置き換える仕組みが必要となってくる。次回はその仕組みであるDNSの仕組みについて説明する。

取材協力 :株式会社アイテック

掲載日:2008年12月10日

キーマンズネット

出典元:株式会社リクルート キーマンズネット 2008年9月9日掲載分

検索

このページの先頭へ