Proxy ARP

「Proxy ARP」は、代理ARPとも呼ばれます。

 Proxy ARPは、あるホスト宛のARP要求に対して、ルータが、そのホストに代わってルータのMACアドレスで応答をします。サブネットを理解できない(設定できない)ホストが存在するネットワークで使用されます。

 下のネットワーク構成のように、ネットワークアドレスが包含関係にあるようなネットワークで有効です。

※Router_AのF0インターフェイスに「172.16.0.0/16」ネットワークに属するIPアドレスを割り当てることはできません。E0インターフェイスのIPアドレスとオーバーラップするからです。Ciscoルータの場合、無理やり割り当てようとしても下のようにルータに警告されます。

Router_A(config-if)#ip address 172.16.255.254 255.255.0.0
% 172.16.0.0 overlaps with Ethernet0
警告メッセージ

ルータには、オーバーラップしないように正しいIPアドレスを割り当てる必要があります。

話は戻ります。

コンピュータAが所属する本当のネットワークは、「172.16.1.0/24」
コンピュータBが所属するネットワークは、「172.16.2.0/24」

になっています。

 しかし、コンピュータAのサブネットマスクは、「255.255.0.0」になっているため、コンピュータAは、自分が「172.16.0.0/16」に所属していると勘違いしています。

つまり

 ルータの左側が「172.16.0.0/16」ネットワークで、ルータの右側が「172.16.2.0/24」になっており、次の関係が成り立っています。

172.16.0.0/16 ⊃ 172.16.1.0/24

 コンピュータAからコンピュータBにパケットを送信する場合、コンピュータAは、コンピュータBと同じネットワークに所属していると判断してしまいます。

 そこで、コンピュータAは、デフォルトゲートウェイのIPアドレスに対してではなく、コンピュータBのIPアドレスに対してARP要求を行います。

 ARPは、ブロードキャストを使用するため、同一ネットワーク(サブネット)内であれば、MACアドレスの解決を行うことができますが、別ネットワーク(サブネット)にあるホストのMACアドレスは、解決することができません。

 そこで、Proxy ARPが有効なインターフェイスを持つルータが、このARP要求を受信した場合、コンピュータBの代わりにARP応答パケットを送信します。

その結果、コンピュータAは、コンピュータBと同じネットワークに所属しているかのように通信が行えます。

話は戻ります。

コンピュータAが所属する本当のネットワークは、「172.16.1.0/24」

コンピュータBが所属するネットワークは、「172.16.2.0/24」

になっています。

 しかし、コンピュータAのサブネットマスクは、「255.255.0.0」になっているため、コンピュータAは、自分が「172.16.0.0/16」に所属していると勘違いしています。

つまり

 ルータの左側が「172.16.0.0/16」ネットワークで、ルータの右側が「172.16.2.0/24」になっており、次の関係が成り立っています。

172.16.0.0/16 ⊃ 172.16.1.0/24

 コンピュータAからコンピュータBにパケットを送信する場合、コンピュータAは、コンピュータBと同じネットワークに所属していると判断してしまいます。

 そこで、コンピュータAは、デフォルトゲートウェイのIPアドレスに対してではなく、コンピュータBのIPアドレスに対してARP要求を行います。

 ARPは、ブロードキャストを使用するため、同一ネットワーク(サブネット)内であれば、MACアドレスの解決を行うことができますが、別ネットワーク(サブネット)にあるホストのMACアドレスは、解決することができません。

 そこで、Proxy ARPが有効なインターフェイスを持つルータが、このARP要求を受信した場合、コンピュータBの代わりにARP応答パケットを送信します。

 その結果、コンピュータAは、コンピュータBと同じネットワークに所属しているかのように通信を行うことができます。