アプリ版:「スタンプのみでお礼する」機能のリリースについて

ARPテーブルに登録される情報について質問させてください。
ARP要求を行いARP応答が合った場合に
動的に宛先のIPアドレスとMACアドレスの情報がARPテーブルに登録されると認識していたのですが。

・ルーターを超えている場合はMACアドレスはルーターのMACアドレスになる
・VPN環境で他の拠点と通信を取った際には通信が取れても
ARPテーブルに相手先のIPアドレスの情報が登録されない
ゲートウェイが登録されているようには見えるのですが・・・

勉強不足で申し訳ございません。
ping応答が得られないときにARPテーブルの情報から通信状況を確認しようとしたところ
この部分の動きがうまく理解できませんでした。
上記動作となる理由をどなたか教えていただけないでしょうか?

A 回答 (3件)

御質問に回答致します。



>・ルーターを超えている場合はMACアドレスはルーターのMACアドレスになる

⇒ルーターを超えている場合というか、ゲートウェイを超えている場合は、ゲートウェイのMACアドレスがARPテーブルに登録されます。

一般にゲートウェイを超える場合は、異なるサブネットワークに存在するので、ノードは自らのルーティングテーブルを確認し、あて先となるサブネットワークのゲートウェイとなるルータやマルチレイヤスイッチ(L3スイッチなど)に対してARP要求をします。

そのため、ルータのMACアドレスになるように見えるだけです。

・VPN環境で他の拠点と通信を取った際には通信が取れてもARPテーブルに相手先のIPアドレスの情報が登録されないゲートウェイが登録されているようには見えるのですが・・・

⇒相手先のIPアドレスが異なるサブネットワークならゲートウェイのMACアドレスが登録されます。

ルータの動作を理解すると分かり易いと思います。

ノードから異なるサブネットワークへの通信をする場合、ノードはルーティングテーブルに登録されているそのサブネットワークのゲートウェイとなるルータに対してARP解決をしそこにパケットを送信します。

パケットを受け取ったルータは、まずレイヤー2の階層でMACアドレスを解読し、レイヤー3に渡し、レイヤー3であて先のIPアドレスを解読します。

その際、ルータは以下の二通りの動作をします。

1.ゲートウェイ(ルータ)があて先のノードと同じサブネットワークにされている場合
そのあて先IPアドレスが自分の別インタフェースに直接接続されているサブネットワーク内に存在するものなら、ルータはパケットの送信元MACアドレスを自らのインタフェースのMACアドレスに変更し、あて先MACアドレスをあて先ノードのMACアドレスに変更(ARPテーブルをみるか、ARP解決)し、パケットを送出します。

2.ルータ(ゲートウェイ)があて先のノードと同じサブネットワークに接続されていない場合
自分の接続されているサブネットワークに存在しない場合は、ルーティングテーブルからそのサブネットワークのゲートウェイ(あて先サブネットワークを知っているルータ)を確認し、ルータはパケットの送信元MACアドレスを、そのゲートウェイと同じサブネットワークに接続されている自らのインタフェースのMACアドレスに変更し、あて先MACアドレスをゲートウェイのMACアドレスに変更(ARPテーブルをみるか、ARP解決)してパケットを送出します。

あて先のサブネットワークが直接接続されているルータに届くまで「2.」の動作をルータ間で繰り返し、直接接続されているルータに届いたら「1.」の動作をし、最終的にはあて先ノードに届きます。
    • good
    • 0

> ARP要求を行いARP応答が合った場合(中略)ARPテーブルに登録されると認識



これは、「宛先IPアドレスが送信元IPアドレスと同じネットワーク内にある場合」という前提条件が付いた場合のみ正しいです。
異なるネットワークに通信する際は、該当するゲートウェイアドレスのMACアドレスをARP要求し、ARPテーブルに登録されます。

なので、
> ・ルーターを超えている場合はMACアドレスはルーターのMACアドレスになる

ARPテーブルには、「ルーターのIPとルータのMACアドレス」が登録されます。
接続先のIPアドレスはARPテーブルにはのりません。
VPN接続時も同様です。

ping応答がないときにarpのエントリを見るのは切り分けの一つの方法ですが、ARPの動作を正しく理解していないと間違った結論にたどり着いてしまうので注意してください。
    • good
    • 0
この回答へのお礼

>ARPの動作を正しく理解していないと
>間違った結論にたどり着いてしまうので注意してください。

おっしゃっていただいているとおりですね。
その先の通信やフレームも含めてちゃんと理解したいと思います。
ありがとうございました。

お礼日時:2011/11/15 11:14

>ARP要求を行いARP応答が合った場合に


>動的に宛先のIPアドレスとMACアドレスの情報がARPテーブルに登録されると認識していたのですが。

おおもとに勘違いがあるように思いますが違いますでしょうか?

ARP要求は宛先IPアドレスに送信するために必要なMACアドレスを得るために行いますが、
この宛先IPアドレスに送信するために必要なMACアドレスには2つのケースがあります。
・同一ネットワークの場合は宛先IPアドレスそのものに対応するMACアドレス
・異なるネットワークの場合はゲートウェイのIPアドレス対応するMACアドレス

つまり、そもそもARP要求を行うときのあて先IPアドレスに設定する値が、本来の宛先IPアドレスではなくゲートウェイのIPアドレスです。
従って、異なるネットワークの場合は宛先IPアドレスに対してARP要求は行っていません。

ARP要求で得ようとしているMACアドレスはレイヤ2(データリンク層)の通信のためのものです。
IP通信はレイヤ3(ネットワーク層)の通信です。
説明が長くなるのでここでは書きませんので入門書や初級ネットワークのWebサイトを参照頂きたいですが、この関係が理解できればわかると思います。

一応参考となるWebサイトを記載します。
http://www5e.biglobe.ne.jp/~aji/3min/29.html
    • good
    • 0
この回答へのお礼

ありがとうございます。

ご指摘のとおりそもそも認識が間違っていました。
このなるネットワークの場合は
ARPテーブルには
宛先のIPアドレスとルーターのMACアドレス
が登録されると思い込んでいました。

異なるネットワークの場合はルーターに向けてARP要求を行い
ARPテーブルには
ルーターのIPとMACアドレスが登録されるんですね。
記載していただいたサイトや他のサイトも確認して再度勉強しなおします。

お礼日時:2011/11/15 11:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!