Skip to main content
Proxy Basics

What is Proxy ARP? The Complete Guide to Address Resolution Protocol [2026]

8 min read

What is Proxy ARP? A Deep Dive into Network Proxying

Introduction

In the complex world of networking, ensuring that data packets reach their correct destination is paramount. While standard routing handles most of the heavy lifting, specific protocols are required for local communication. This brings us to the concept of Proxy ARP, a networking technique that has been around since the early days of the internet but remains relevant in specific modern topologies and scenarios like mobile roaming and transparent subnetting.

As a proxy expert, I often see Proxy ARP misunderstood. It is not a "proxy server" in the traditional HTTP sense, but rather a Layer 2 (Data Link Layer) and Layer 3 (Network Layer) mediation technique. Below, we break down exactly how it works, why it is used, and its security implications in 2025.

---

How Standard ARP Works

To understand Proxy ARP, we must first understand standard ARP.

When a device (Host A) wants to communicate with another device (Host B) on the same Local Area Network (LAN), it knows Host B's IP address but needs the MAC address to construct the Ethernet frame.

1. The Request: Host A broadcasts an ARP Request packet to the entire network: "Who has 192.168.1.5?" 2. The Reply: Host B sees its IP and responds directly to Host A: "I am 192.168.1.5, here is my MAC address (aa:bb:cc...)." 3. Communication: Host A caches this mapping and sends data.

The Limitation: ARP requests are Layer 2 broadcasts. They do not cross router boundaries. If Host B is on a different subnet, Host A never receives a reply, and typically, the OS would toss the packet to the Default Gateway.

---

Defining Proxy ARP

Proxy ARP is the mechanism where a router (or a layer 3 switch) answers ARP requests on behalf of a target host that resides on a different network segment.

When Host A broadcasts "Who has 192.168.1.5?", the Router—knowing that 192.168.1.5 is reachable via one of its other interfaces—replies to Host A with its own MAC address.

Host A, fooled by this response, sends the traffic to the Router's MAC address. The Router then forwards the packet to the actual destination on the other subnet using standard routing tables.

The Technical Process (Step-by-Step)

1. Detection: Host A (10.0.0.2) wants to ping Host B (10.0.1.2). Crucially, Host A is misconfigured or has a wide subnet mask, making it believe B is on the local link. 2. Broadcast: Host A broadcasts: ARP Request: Who has 10.0.1.2? Tell 10.0.0.2 3. Proxy Intervention: The Router (connected to both 10.0.0.0 and 10.0.1.0) receives the broadcast. It checks its routing table and sees 10.0.1.2 is reachable. 4. The Proxy Reply: The Router sends a unicast reply to Host A: 10.0.1.2 is at (Router's MAC Address). 5. Transmission: Host A updates its ARP cache, associating Host B's IP with the Router's MAC, and transmits the frame. 6. Forwarding: The Router receives the frame, strips the Layer 2 header, and routes the packet to the actual Host B on the other interface.

---

Comparison: Standard Routing vs. Proxy ARP

It is vital to distinguish between standard routing behavior and Proxy ARP.

| Feature | Standard Routing | Proxy ARP | | :--- | :--- | :--- | | Host Configuration | Hosts MUST have a Default Gateway IP configured. | Hosts do NOT need a Default Gateway. They rely on ARP for local IPs. | | ARP Request | Broadcasts only for local subnet IPs. Requests for remote IPs are ignored by the host (sent to gateway). | Broadcasts occur for any IP the host thinks is local (even remote ones). The router replies. | | MAC Address Target | Traffic to remote IPs is sent to the Gateway's MAC. | Traffic is sent to the Router's MAC, but the host thinks it is the Target's MAC. | | Transparency | The host knows it is sending traffic through a gateway. | The host is "tricked" into thinking the destination is local. |

---

Real-World Use Cases

While less common in modern enterprise LANs (which prefer strict subnetting and gateways), Proxy ARP is critical in specific scenarios.

1. Transparent Subnetting

Imagine you have a single large Class B network (e.g., 172.16.0.0/16). As the company grows, physical congestion becomes an issue. You want to split the network into two smaller segments connected by a router, but you do not want to reconfigure hundreds of servers to change their Subnet Masks or Default Gateways.

By implementing Proxy ARP on the router, the old servers continue to function without reconfiguration. They ARP for an IP on the other side, and the router answers seamlessly.

2. Mobile IP and Roaming

This is a very common use case in 2025, particularly in WiFi networks. When a mobile device (roamer) moves from Access Point A (Subnet A) to Access Point B (Subnet B), its IP address remains the same, but its physical location changes.

If the device roams to a new subnet, traffic destined for its home subnet would be dropped without Proxy ARP. A "Home Agent" on the home network uses Proxy ARP to claim the mobile device's IP address. It captures the traffic and tunnels it to the device's new location (Foreign Agent), ensuring continuous connectivity without dropping packets.

3. Inverse ARP (InARP) in Frame Relay

In Frame Relay or ATM networks, devices know the DLCI (Data Link Connection Identifier) but not the IP address of the far side. Inverse ARP is used to dynamically map these. While slightly different, it relies on the same principle of resolving addresses at the data link layer.

---

Implementing and Verifying Proxy ARP

Linux Configuration

In Linux environments, Proxy ARP is handled per-interface.

To enable Proxy ARP on eth0:

Enable proxy arp for the specific interface

echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp

Or using sysctl for persistence

sysctl -w net.ipv4.conf.eth0.proxy_arp=1

To check if it is active:

sysctl net.ipv4.conf.eth0.proxy_arp

Output: net.ipv4.conf.eth0.proxy_arp = 1

Python Simulation

Using Python and Scapy, we can visualize how an ARP table looks when Proxy ARP is active. The "trick" is that the mapping for the *remote* IP will point to the *router's* MAC.

from scapy.all import ARP, Ether, srp

def get_arp_table(ip_target): # Create an ARP request to ask who has the specific IP arp_request = ARP(pdst=ip_target) # Create an Ethernet frame to broadcast the request broadcast = Ether(dst="ff:ff:ff:ff:ff:ff")

packet = broadcast / arp_request

# Send the packet and wait for a response (timeout 2s) result = srp(packet, timeout=2, verbose=False)[0]

if result: # result[0] is the query, result[0][1] is the answer sent, received = result[0] print(f"IP: {received.psrc}") print(f"MAC: {received.hwsrc}")

# If Proxy ARP is working, the MAC returned for a remote IP # will match the Gateway's MAC, not the actual host. else: print("No response (Timeout)")

Test a known IP on the network

get_arp_table("192.168.1.1")

---

Disabling Proxy ARP: Why and How?

In high-security environments, Proxy ARP is often disabled.

Why disable it? 1. ARP Spoofing Risks: An attacker could potentially masquerade as a router using Proxy ARP techniques to intercept traffic (Man-in-the-Middle attacks). 2. Network Efficiency: It increases the workload on the router as it must reply to ARP requests for every single host on connected subnets. 3. Confusion: It masks the actual network topology, making troubleshooting harder for administrators.

How to disable (Linux/Cisco):

  • Linux: sysctl -w net.ipv4.conf.all.proxy_arp=0
  • Cisco: no ip proxy-arp (on interface configuration mode). Cisco routers have this enabled by default on LAN interfaces.

---

What is "No Proxy ARP"?

This configuration command explicitly tells the interface not to respond to ARP requests for IP addresses that are not assigned to that specific interface.

If you see the search term "what is no proxy-arp", it refers to this administrative state. It forces the network to behave strictly according to standard routing rules: if a host is not on the local subnet, the host must send the packet to its gateway, and the gateway will not "help" by lying about the MAC address.

---

Conclusion

Proxy ARP is a "hack" in the purest sense of the word—a clever solution to make networks behave in a way that defies the strict rules of IP routing. While largely superseded by DHCP and strict subnetting in enterprise LANs, it remains a fundamental concept for understanding how mobile IP works and how networks can be bridged transparently. For network engineers and scraping experts managing distributed clusters, understanding Proxy ARP is essential for diagnosing connectivity issues where IP addresses and physical locations conflict.

Share: