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と同じネットワークに所属しているかのように通信を行うことができます。