Proxy ARP(プロキシアープ)について説明します。
通常のARPに関しての説明は、下記を参照してください。
Proxy ARP(プロキシアープ)の概要
Proxy ARP(プロキシアープ)とは、自身が保持していないIPアドレスへのARP要求に対して、代理で応答する機能です。ネットワーク機器では、サブネットを設定できない端末が存在する場合等に利用されることがあります。
現在では、適切なネットワーク管理やセキュリティの観点から、あまり利用されない技術となっています。
Proxy ARPの動作
ネットワーク構成
下記のネットワーク構成で、Proxy ARPの動作を確認します。※Router1/2はCiscoルーターです。
送信元ホスト
- MACアドレス:52:54:00:0d:76:ee
- IPアドレス:192.168.1.1
- サブネットマスク:設定無し ※設定不可の機器を想定
- デフォルトゲートウェイ:設定無し
Router1のGi0/1
- MACアドレス:52:54:00:1b:dd:5f
- IPアドレス:192.168.1.254
- サブネットマスク:255.255.255.0
- ルーティング:宛先 172.16.10/24、ネクストホップ 10.0.0.2
interface GigabitEthernet0/0
ip address 192.168.1.254 255.255.255.0
interface GigabitEthernet0/1
ip address 10.0.0.1 255.255.255.0
ip route 172.16.1.0 255.255.255.0 10.0.0.2
TCP/IPの通信の詳細は下記を参照してください。
Router1のProxy ARPが無効の場合
まず、Router1のGi0/0でProxy ARPが無効の場合の動作を説明します。
Router1のGi0/0に「no ip proxy-arp」を設定します。
interface GigabitEthernet0/0
no ip proxy-arp
送信元ホスト(192.168.1.1)から、宛先ホスト(172.16.1.1)へ通信を開始します。送信元ホストはサブネットマスクの設定がないため、同一セグメントへの通信と同様に、ARPにより172.16.1.1のMACアドレスを問い合わせます。
ARP要求のパケットは下記の通りです。
パケットキャプチャ抜粋
Ethernet II, Src: 52:54:00:0d:76:ee, Dst: ff:ff:ff:ff:ff:ff
Destination: ff:ff:ff:ff:ff:ff
Source: 52:54:00:0d:76:ee
Type: ARP (0x0806)
Address Resolution Protocol (request)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: request (1)
Sender MAC address: 52:54:00:0d:76:ee
Sender IP address: 192.168.1.1
Target MAC address: 00:00:00:00:00:00
Target IP address: 172.16.1.1
Router1がARP要求を受け取ります。しかし、自身のネットワーク内のIPアドレスに対するARP要求ではないため、このパケットは破棄されます。(ARP応答を返しません)
送信元ホストは、宛先ホストのMACアドレスが解決できないため、通信を始めることができません。
Router1のProxy ARPが有効の場合
次に、Router1のGi0/0でProxy ARPが有効の場合の動作を説明します。
Router1のGi0/0に「ip proxy-arp」を設定します。
interface GigabitEthernet0/0
ip proxy-arp
Cisco機器の場合、「ip proxy-arp」はデフォルトで有効なため、コンフィグ上には表示されません。
送信元ホスト(192.168.1.1)から、宛先ホスト(172.16.1.1)へ通信を開始します。送信元ホストはサブネットマスクの設定がないため、同一セグメントへの通信と同様に、ARPにより172.16.1.1のMACアドレスを問い合わせます。
ARP要求のパケットは下記の通りです。
パケットキャプチャ抜粋
Ethernet II, Src: 52:54:00:0d:76:ee, Dst: ff:ff:ff:ff:ff:ff
Destination: ff:ff:ff:ff:ff:ff
Source: 52:54:00:0d:76:ee
Type: ARP (0x0806)
Address Resolution Protocol (request)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: request (1)
Sender MAC address: 52:54:00:0d:76:ee
Sender IP address: 192.168.1.1
Target MAC address: 00:00:00:00:00:00
Target IP address: 172.16.1.1
Router1がARP要求を受け取ります。自身のネットワーク内のIPアドレスに対するARP要求ではありませんが、「172.16.1.1」宛のルーティング があり、「ip proxy-arp」が有効なため、ARP応答を返信します。
Router1がARP要求に代理応答するための条件は下記の通りです。
・ARP要求を受信するインターフェースで「ip proxy-arp」が有効なこと
・ARP要求の「Target IP address」に対するルーティング を保持していること
ARP応答のパケットは下記の通りです。
パケットキャプチャ抜粋
Ethernet II, Src: 52:54:00:1b:dd:5f, Dst: 52:54:00:0d:76:ee
Destination: 52:54:00:0d:76:ee
Source: 52:54:00:1b:dd:5f
Type: ARP (0x0806)
Padding: 000000000000000000000000000000000000
Address Resolution Protocol (reply)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: reply (2)
Sender MAC address: 52:54:00:1b:dd:5f
Sender IP address: 172.16.1.1
Target MAC address: 52:54:00:0d:76:ee
Target IP address: 192.168.1.1
「Sender MAC address」が、Router1のGi0/0のMACアドレスとなっていることがわかります。
送信元ホストは、宛先ホストのMACアドレスが解決できたため、通信を開始することができます。
送信元ホストのARPテーブルを確認すると、172.16.1.1のMACアドレスとして、Router1のGi0/0のMACアドレスが登録されています。
Desktop:~$ arp -a
172.16.1.1 at 52:54:00:1b:dd:5f [ether] on eth0
Proxy ARPの利用上の留意点
Proxy ARPの機能については、下記のような留意点があるため、現在ではあまり利用されていません。(Cisco機器のインターフェースではデフォルトで有効化されているため、明示的に無効にすることが多いです。)
- 端末の設定(IPアドレス/サブネットマスク/デフォルトゲートウェイ)が適切ではないにも関わらず、通信が可能になってしまうことがある。
- ネットワーク機器が交換され、Proxy ARPが無効になると、通信が不可になってしまう。※管理上の問題
- 不正な端末が接続されても通信が可能になる。※セキュリティ上の問題
- ルーターがデフォルトルートを持っている場合、どのようなARP要求にも応答してしまう。
- ARP通信が大量にネットワーク上を流れてしまう。
- ルーターのリソースに影響を与える可能性がある。
以上で、Proxy ARPとは(機能・動作とCisco機器の設定)の説明は完了です!