【図解】Proxy(プロキシ)-ARPの仕組みと設定(cisco/fortigate)、ローカルProxy-ARP

Proxy-ARP とは

Proxy-ARP とは、自分宛ではない ARP 要求に対し、ルートを知っている IP であれば、その IP の端末の代わりに ARP 応答を返す機能です。

ARP 応答を受け取った端末は、Proxy-ARP で ARP 応答した端末にパケットを送ってきますが、その端末はルートを知っているので、ルーティングによりさらにパケットを転送します。

NATのProxy-ARPの例

例えば下記のような NAT 設定をしているルータの場合、PC B から「5.5.5.5 の MAC アドレスは何か?」という ARP 要求を、10.1.1.254 のインタフェースで受信します。10.1.1.254 のインタフェースは自身宛の ARP 要求ではありませんが、5.5.5.5 は自身で保有していると知っているので、Proxy-ARP の機能により「5.5.5.5 の MAC アドレスは [Gi 0/1 のインタフェースの MAC アドレス]ですよ」と返信します。

一昔前までは、上記のような NAT 設定をする場合、Proxy-ARP の設定を入れてないことで通信トラブルになることが多かったですが、最近の機器は自動で Proxy-ARP を返すような設定になっていることが多いです。

また、NAT と似たような構成で、SSL-VPN/IPsec VPN 装置も Proxy-ARP を実行することが多いです。

SSL-VPN装置のProxy-ARPの例

例えば SSL-VPN 装置にリモートログインした PC が 10.1.1.101/32 の IP アドレスが払い出されたとします (SSL-VPN では慣例的にログイン PC は /32 の IP アドレスが払い出されます)。

リモート PC から社内サーバへ通信し、その返信パケットがルータに届き、ルータの 10.1.1.254 のインタフェースからリモートPC (10.1.1.101) へ通信しようとします。

その際、ルータは同セグメントだと思っている (相手が /32 ということは知らない) ので、ARP 要求を Broadcast します。SSL-VPN 装置はこの ARP を受信し、Proxy-ARP の機能により「10.1.1.101 の MAC アドレスは [SSL-VPN 装置の MAC アドレス]ですよ」と返信します。

これらはあくまで一例で、とにもかくにも、自分がルート情報を持っている IP の ARP 要求に応答するのが Proxy-ARP なのです。

FortiGateでのProxy-ARPの設定

FortiGate では残念ながら前述の構成では Proxy ARP がデフォルトでは有効になりません。

以下に、10.1.20.101 から 10.1.20.200 の範囲で Proxy-ARP に応答する設定を示します。

lab-fw # config system proxy-arp
lab-fw (proxy-arp) # edit 1
lab-fw (1) # set interface dmz
lab-fw (1) # set ip 10.1.20.101
lab-fw (1) # set end-ip 10.1.20.200
lab-fw (1) # next
lab-fw (proxy-arp) # end

CiscoのProxy-ARPの設定

Cisco では以下のように設定します。

(config-if)# ip proxy-arp

ローカルProxy-ARPについて

通常の Proxy-ARP 設定の場合は、自身がその IP を持っている場合だけでなく、その IP へのルート情報を持っていても ARP 応答します。

自身の保有する IP のみに ARP 応答させたい場合は、以下のようにローカル Proxy-ARP の設定をします。

(config-if)# ip local-proxy-arp

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG