ARP Explained: How Address Resolution Protocol Works, ARP Tables, Gratuitous ARP and Troubleshooting
When a computer wants to communicate with another IPv4 device on the same Ethernet network, knowing the destination IP address is not enough. Ethernet switches forward frames using MAC addresses, while applications and IP routing operate using IP addresses.
Something must connect these two addressing systems.
That mechanism is the Address Resolution Protocol (ARP).
ARP allows an IPv4 host to discover the link-layer address associated with an IPv4 address on its local network. In a typical Ethernet environment, this means learning the destination device’s MAC address—or the MAC address of the default gateway when the destination is on another IP network.
A simplified example looks like this:
PC-A
IP: 192.168.10.10
MAC: AA:AA:AA:AA:AA:AA
|
| "Who has 192.168.10.20?"
v
Switch
|
v
PC-B
IP: 192.168.10.20
MAC: BB:BB:BB:BB:BB:BB
PC-B responds:
192.168.10.20 is at BB:BB:BB:BB:BB:BB
PC-A can then build an Ethernet frame addressed to PC-B’s MAC address.
ARP appears simple, but it sits at one of the most important boundaries in TCP/IP networking. Understanding it helps explain default gateways, VLAN behavior, Layer 2 switching, local subnet communication, duplicate IP addresses, stale neighbor information, ARP spoofing, failover mechanisms, and many common connectivity failures.
This guide explains ARP from the packet level through practical troubleshooting.
For the surrounding networking concepts, read Computer Networking Explained, TCP/IP Explained, and Routers, Switches and Network Devices.
What Is ARP?
ARP stands for:
Address Resolution Protocol
ARP is defined in RFC 826 and is used to resolve protocol-layer addresses into link-layer addresses on networks such as Ethernet.
In the most common IPv4 Ethernet scenario, ARP answers a question like:
What MAC address corresponds to IPv4 address 192.168.1.50?
The result might be:
192.168.1.50
|
v
00:1A:2B:3C:4D:5E
The host can then send an Ethernet frame to that MAC address.
This relationship between IP and Ethernet addressing is fundamental to IPv4 communication on a local Ethernet network.
Why Is ARP Necessary?
Consider two computers:
PC-A
IP: 192.168.1.10
MAC: AA:AA:AA:AA:AA:AA
and:
PC-B
IP: 192.168.1.20
MAC: BB:BB:BB:BB:BB:BB
PC-A wants to send an IPv4 packet to:
192.168.1.20
At Layer 3, PC-A knows the destination IP address.
But the IP packet must normally be encapsulated inside an Ethernet frame for transmission across the local Ethernet network.
That frame needs a destination MAC address:
Ethernet Frame
+-------------------------+
| Destination MAC |
+-------------------------+
| Source MAC |
+-------------------------+
| EtherType |
+-------------------------+
| IPv4 Packet |
+-------------------------+
PC-A therefore needs to determine:
192.168.1.20 → Which MAC address?
ARP performs that resolution.
IP Address vs MAC Address
Understanding ARP requires understanding the different jobs of IP and MAC addresses.
| Address | Primary Role |
|---|---|
| IP address | Logical Layer 3 addressing and routing |
| MAC address | Link-layer identification and local Ethernet forwarding |
A simplified packet path is:
Application
|
v
TCP / UDP
|
v
IP packet
|
v
Ethernet frame
The IP packet may contain:
Source IP: 192.168.1.10
Destination IP: 192.168.1.20
while the Ethernet frame contains:
Source MAC: AA:AA:AA:AA:AA:AA
Destination MAC: BB:BB:BB:BB:BB:BB
ARP helps the sender determine the appropriate destination MAC for local delivery.
For a deeper explanation of these layers, see TCP/IP Explained.
How ARP Works Step by Step
Suppose PC-A wants to communicate with PC-B.
Configuration:
PC-A
IP: 192.168.1.10
MAC: AA:AA:AA:AA:AA:AA
PC-B
IP: 192.168.1.20
MAC: BB:BB:BB:BB:BB:BB
Subnet:
192.168.1.0/24
PC-A determines that 192.168.1.20 belongs to its directly connected subnet.
It now needs PC-B’s link-layer address.
Step 1: Check the Neighbor/ARP Cache
PC-A first checks whether it already has a usable mapping:
192.168.1.20 → BB:BB:BB:BB:BB:BB
If a valid entry already exists, a new ARP request may not be necessary.
If no usable entry exists, ARP resolution begins.
Step 2: Send an ARP Request
PC-A broadcasts an ARP request:
Who has 192.168.1.20?
Tell 192.168.1.10
The Ethernet destination is the broadcast MAC:
FF:FF:FF:FF:FF:FF
Step 3: Switch Floods the Broadcast
The Ethernet switch floods the broadcast through appropriate forwarding ports in the same VLAN, except the port on which the frame arrived.
Step 4: PC-B Recognizes Its IP
Hosts receiving the ARP request inspect the target protocol address.
PC-B recognizes:
Target IP = 192.168.1.20
as its own address.
Step 5: PC-B Sends an ARP Reply
PC-B responds with information equivalent to:
192.168.1.20 is at BB:BB:BB:BB:BB:BB
The reply is normally unicast back toward PC-A.
Step 6: PC-A Learns the Mapping
PC-A can store the mapping in its neighbor/ARP cache:
192.168.1.20 → BB:BB:BB:BB:BB:BB
It can now construct Ethernet frames addressed to PC-B.
ARP Request Explained
An ARP request asks:
Which device owns this IPv4 address, and what is its hardware address?
A simplified request contains information such as:
Sender MAC
Sender IP
Target MAC
Target IP
For an unresolved target, the target hardware-address field is not yet known.
Example:
Sender IP:
192.168.1.10
Sender MAC:
AA:AA:AA:AA:AA:AA
Target IP:
192.168.1.20
Target MAC:
Unknown
The request is carried in an Ethernet broadcast so devices in the relevant local broadcast domain can receive it.
Why Is an ARP Request Broadcast?
The sender does not yet know the destination MAC.
It therefore cannot address the Ethernet frame directly to the target device.
Instead, it uses:
FF:FF:FF:FF:FF:FF
which represents the Ethernet broadcast destination.
Conceptually:
Switch
/ | \
/ | \
v v v
PC-B PC-C PC-D
ARP Request:
"Who has 192.168.1.20?"
Every appropriate device in the VLAN can receive the broadcast.
Only the device responsible for the requested address should provide the normal ARP reply.
ARP Reply Explained
The ARP reply provides the requested address mapping.
Example:
ARP Request:
Who has 192.168.1.20?
Reply:
192.168.1.20 is at BB:BB:BB:BB:BB:BB
Unlike the initial request, the normal reply can be sent directly to the requesting host because the target already knows the requester’s MAC from the ARP request.
The exchange is therefore approximately:
PC-A PC-B
ARP Request
Broadcast
---------------------------------------->
Who has 192.168.1.20?
ARP Reply
Unicast
<----------------------------------------
192.168.1.20 is at
BB:BB:BB:BB:BB:BB
After that, ordinary IP communication can proceed.
What Is an ARP Table?
Hosts do not want to broadcast an ARP request before every packet.
They therefore maintain learned neighbor information.
This is commonly called an:
ARP table
or:
ARP cache
Example:
| IPv4 Address | MAC Address | Type |
|---|---|---|
| 192.168.1.1 | 00:11:22:33:44:55 | Dynamic |
| 192.168.1.20 | BB:BB:BB:BB:BB | Dynamic |
| 192.168.1.50 | CC:CC:CC:CC:CC | Dynamic |
Operating systems may use a more sophisticated neighbor state machine than the simple word “cache” suggests.
On Linux, for example, IPv4 ARP information is integrated into the kernel neighbor subsystem and entries can have states such as:
REACHABLE
STALE
DELAY
PROBE
FAILED
So an ARP/neighbor entry is not necessarily a permanent IP-to-MAC mapping.
Viewing the ARP Table on Windows
A traditional Windows command is:
arp -a
You may see output similar to:
Interface: 192.168.1.10
Internet Address Physical Address
192.168.1.1 00-11-22-33-44-55
192.168.1.20 bb-bb-bb-bb-bb-bb
Windows also provides modern PowerShell networking commands such as:
Get-NetNeighbor
which can expose neighbor information in greater detail.
Viewing ARP Neighbors on Linux
A modern Linux command is:
ip neigh
Example:
192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE
192.168.1.20 dev eth0 lladdr bb:bb:bb:bb:bb:bb STALE
Older systems may also provide:
arp -n
but ip neigh is generally the more appropriate modern Linux tool.
Local Destination vs Remote Destination
One of the most important ARP concepts is that a host does not normally ARP for every final destination IP address.
The host first determines whether the destination is:
Local/on-link
or:
Remote/reached through a router
This decision comes from the host’s routing information and interface configuration.
Consider:
PC
IP: 192.168.1.10
Prefix: /24
Gateway: 192.168.1.1
Destination:
192.168.1.20
is on the local 192.168.1.0/24 network.
The host can ARP for:
192.168.1.20
directly.
But what if the destination is:
8.8.8.8
?
That address is not part of the local /24.
The host therefore does something different.
ARP and the Default Gateway
For a remote destination, the host needs to send the packet to the appropriate next-hop router.
Suppose:
PC
IP: 192.168.1.10
Gateway: 192.168.1.1
and the destination is:
8.8.8.8
The PC does not normally ask:
Who has 8.8.8.8?
on its local Ethernet network.
Instead, its routing table tells it to use:
192.168.1.1
as the next hop.
The PC therefore resolves the gateway’s MAC address:
Who has 192.168.1.1?
Suppose the answer is:
192.168.1.1 is at
00:11:22:33:44:55
The resulting Ethernet frame can contain:
Destination MAC:
00:11:22:33:44:55
while the encapsulated IP packet still contains:
Destination IP:
8.8.8.8
This distinction is fundamental.
MAC Destination vs IP Destination
For traffic leaving the local subnet:
Ethernet Destination MAC
=
Next-hop router
while:
IP Destination
=
Final remote host
Conceptually:
PC
192.168.1.10
|
| Ethernet destination:
| Router MAC
|
| IP destination:
| 8.8.8.8
v
Router
|
v
Internet
|
v
8.8.8.8
The Layer 2 header changes as the packet traverses different links.
The IP destination generally remains the remote destination unless some Layer 3 function such as NAT modifies relevant addressing.
This is one of the clearest examples of how Layer 2 and Layer 3 work together.
ARP Does Not Cross Routers Normally
ARP operates within the local Layer 2 context.
A router separates Layer 2 broadcast domains.
Suppose:
LAN A
192.168.10.0/24
|
v
Router
|
v
LAN B
192.168.20.0/24
An ARP broadcast generated in LAN A is not ordinarily forwarded by the router into LAN B.
Instead:
Host A
ARP → Gateway MAC
The router then forwards the IP packet through the appropriate next-hop network.
On LAN B, the router may perform its own ARP resolution for the destination host.
End-to-End ARP Example
Consider:
PC-A
192.168.10.10
|
v
Router
192.168.10.1
192.168.20.1
|
v
Server-B
192.168.20.50
PC-A wants to send data to Server-B.
PC-A sees that 192.168.20.50 is remote.
It resolves:
192.168.10.1 → Router MAC
The first Ethernet frame looks conceptually like:
Source MAC:
PC-A
Destination MAC:
Router
Source IP:
192.168.10.10
Destination IP:
192.168.20.50
The router receives the frame, removes the Layer 2 encapsulation, performs a routing decision, and forwards the IP packet toward the server network.
On the server-side Ethernet segment, the router may need:
192.168.20.50 → Server-B MAC
The new Ethernet frame then has:
Source MAC:
Router's LAN-B interface
Destination MAC:
Server-B
while the IP packet still identifies:
192.168.10.10 → 192.168.20.50
This illustrates why MAC addresses are link-local forwarding information rather than end-to-end Internet identifiers.
ARP and Ethernet Switches
A frequent source of confusion is the difference between:
ARP table
and:
MAC address table
They are not the same thing.
A host or Layer 3 device uses ARP to associate:
IPv4 address → MAC address
An Ethernet switch learns associations such as:
MAC address → Switch port
Example:
Host ARP Table
192.168.1.20
→ BB:BB:BB:BB:BB:BB
Switch MAC Table
BB:BB:BB:BB:BB:BB
→ Gi1/0/8
Together, these mechanisms allow the frame to reach the correct endpoint.
ARP Table vs MAC Address Table
| Feature | ARP/Neighbor Table | Switch MAC Table |
|---|---|---|
| Maps | IPv4 → MAC | MAC → Port |
| Used primarily by | Hosts/routers/L3 devices | Ethernet switches |
| Main purpose | Neighbor resolution | Frame forwarding |
| Layer relationship | IPv4-to-link layer | Layer 2 |
| Example | 192.168.1.20 → BB… | BB… → Gi1/0/8 |
This distinction is extremely useful during troubleshooting.
If ARP resolution succeeds but traffic still fails, inspect the switching path, VLAN, security policy, routing, and destination host rather than repeatedly clearing ARP.
ARP and VLANs
ARP broadcasts remain within their relevant Layer 2 broadcast domain.
In a VLAN-based network:
VLAN 10
PC-A
PC-B
VLAN 20
PC-C
PC-D
an ARP broadcast generated by PC-A in VLAN 10 should not simply be flooded into VLAN 20.
Conceptually:
Switch
VLAN 10 VLAN 20
PC-A ----+ +---- PC-C
| |
PC-B ----+ +---- PC-D
ARP from PC-A
|
+----> PC-B
|
X----> PC-C
X----> PC-D
This is one reason VLANs define Layer 2 broadcast boundaries.
Communication between VLANs requires Layer 3 forwarding.
ARP and Inter-VLAN Routing
Suppose:
VLAN 10
192.168.10.0/24
Gateway: 192.168.10.1
and:
VLAN 20
192.168.20.0/24
Gateway: 192.168.20.1
PC-A:
192.168.10.10
wants to reach:
192.168.20.50
PC-A does not normally ARP for 192.168.20.50.
It ARPs for:
192.168.10.1
The Layer 3 gateway routes the packet toward VLAN 20.
This distinction helps diagnose cases where:
Same VLAN works
Different VLAN fails
If same-subnet ARP and communication work, but inter-VLAN traffic fails, the likely problem may be:
Gateway
Routing
ACL
Firewall
Return route
rather than ARP on the originating LAN.
What Is Gratuitous ARP?
A Gratuitous ARP, often abbreviated GARP, is an ARP message sent without the ordinary preceding request/response sequence for resolving an unknown neighbor.
A device can announce information about its own IPv4 address and link-layer address.
Conceptually:
"I am 192.168.1.50,
and this address is associated with my MAC."
Gratuitous ARP can be useful for several operational purposes, including:
Updating neighboring ARP information
Detecting some address conflicts
High-availability failover
Announcing a MAC change
Exact behavior depends on the operating system and protocol implementation.
Gratuitous ARP and High Availability
Consider two systems participating in a high-availability service:
Server A
Active
Server B
Standby
Clients use a virtual address:
192.168.1.100
Initially:
192.168.1.100
→ MAC of Server A
If Server A fails, Server B may take over the virtual address.
But other devices could still have cached information pointing toward the old MAC.
A gratuitous ARP announcement can help update neighboring devices:
Before failover:
192.168.1.100
→ AA:AA:AA:AA:AA:AA
After failover:
192.168.1.100
→ BB:BB:BB:BB:BB:BB
This is why gratuitous ARP can appear in high-availability architectures.
Gratuitous ARP and Switch MAC Learning
Gratuitous ARP can also help switching infrastructure relearn where a MAC address or service has moved.
This becomes relevant during events such as:
VM migration
Cluster failover
Firewall failover
Virtual IP migration
A failover may therefore involve both:
ARP/neighbor updates
and:
switch MAC-table updates
These are related but separate mechanisms.
What Is Proxy ARP?
Proxy ARP occurs when a router or another Layer 3 device answers an ARP request on behalf of another IP destination.
Conceptually:
Host
|
| "Who has 192.168.2.50?"
v
Router
|
| "Use my MAC."
v
Host sends frame to router
The router can then forward the packet toward the actual destination.
Proxy ARP has legitimate uses, especially in certain legacy or specialized designs, but it can also hide incorrect subnet assumptions and make troubleshooting less intuitive.
Modern network design generally benefits from explicit routing rather than unnecessary dependence on Proxy ARP.
Static vs Dynamic ARP Entries
Most ARP information is learned dynamically.
Example:
192.168.1.20
→ BB:BB:BB:BB:BB:BB
Dynamic
Dynamic information can age or transition through neighbor states.
A static entry is manually configured.
Example concept:
192.168.1.20
→ BB:BB:BB:BB:BB:BB
Permanent
Static mappings can be useful in specialized situations but create administrative overhead.
If the device or NIC changes and the static MAC mapping is not updated, connectivity can fail.
For most endpoint networks, dynamic neighbor discovery is expected.
ARP Cache Aging
Dynamic ARP entries do not normally remain forever.
Operating systems age, validate, probe, or refresh neighbor information according to their own implementations.
This matters because the following assumption is unsafe:
Every operating system keeps ARP entries for exactly X minutes.
There is no single universal ARP-cache lifetime applicable to every operating system and network stack.
When troubleshooting, inspect the actual neighbor state rather than relying on a memorized timeout.
Duplicate IP Addresses and ARP
Duplicate IPv4 addresses can create some of the most confusing ARP-related failures.
Suppose two devices are configured with:
192.168.1.50
but have different MAC addresses:
Device A
192.168.1.50
AA:AA:AA:AA:AA:AA
Device B
192.168.1.50
BB:BB:BB:BB:BB:BB
Neighboring systems may observe inconsistent mappings:
192.168.1.50
→ AA:AA:AA:AA:AA:AA
then later:
192.168.1.50
→ BB:BB:BB:BB:BB:BB
Symptoms may include:
- intermittent connectivity,
- sessions reaching the wrong host,
- duplicate IP warnings,
- ARP entries changing unexpectedly,
- services becoming reachable and unreachable,
- apparent packet loss.
When an IP-to-MAC mapping unexpectedly alternates between two legitimate devices, duplicate addressing should be investigated.
ARP Spoofing and ARP Poisoning
ARP was designed for trusted local-network environments and does not provide strong cryptographic authentication of ARP mappings.
This creates an opportunity for attacks commonly described as:
ARP spoofing or ARP poisoning.
An attacker on an appropriate local Layer 2 network may attempt to send misleading ARP information.
For example, a victim should have:
192.168.1.1
→ Router MAC
but malicious ARP information attempts to make the victim associate:
192.168.1.1
→ Attacker MAC
Depending on network conditions and controls, this can facilitate:
Traffic interception
Man-in-the-middle behavior
Traffic disruption
ARP spoofing is fundamentally a local Layer 2 concern rather than an attack that arbitrary remote Internet hosts can normally perform against your LAN’s ARP cache.
For broader protection concepts, see Network Security Basics.
Defending Against ARP Spoofing
Enterprise switches can provide mechanisms that help mitigate certain ARP attacks.
One important example is:
Dynamic ARP Inspection (DAI)
DAI can validate ARP traffic against trusted binding information, commonly associated with DHCP Snooping environments.
Conceptually:
DHCP Snooping Binding
IP + MAC + VLAN + Port
|
v
Dynamic ARP Inspection
|
v
Validate ARP
Other protections can include:
- network segmentation,
- DHCP Snooping,
- switch-port security,
- secure wireless access,
- endpoint monitoring,
- encrypted application protocols such as HTTPS and SSH.
ARP security should be treated as one part of a layered network-security architecture.
Common ARP Problem: Incomplete Neighbor Entry
A host may attempt to resolve:
192.168.1.50
but receive no reply.
The neighbor entry may remain unresolved or enter a failed state.
Possible causes include:
Target device offline
Wrong VLAN
Incorrect subnet configuration
Switching problem
Wireless isolation
Host firewall/security behavior
Duplicate addressing
Incorrect route
Physical connectivity problem
Do not assume that “ARP failed” means ARP itself is malfunctioning.
Often ARP is revealing a deeper Layer 2 problem.
Common ARP Problem: Wrong MAC Address
Suppose:
192.168.1.50
should map to:
AA:AA:AA:AA:AA:AA
but the ARP table shows:
BB:BB:BB:BB:BB:BB
Investigate:
Duplicate IP
Recent failover
Virtual IP movement
Proxy ARP
ARP spoofing
Stale neighbor information
Then inspect the switch MAC table to determine where the unexpected MAC is physically or logically located.
Common ARP Problem: Stale Entry After Failover
A server moves from one system to another:
Virtual IP
192.168.1.100
Old mapping:
192.168.1.100
→ MAC-A
New active system:
192.168.1.100
→ MAC-B
If neighboring devices retain stale information, traffic can continue toward the wrong MAC until the entry is updated.
Check whether the HA platform sends appropriate gratuitous ARP announcements during failover.
Common ARP Problem: Wrong Subnet Mask
A wrong subnet mask can cause a host to make the wrong on-link decision.
Suppose the correct configuration is:
IP:
192.168.10.50
Prefix:
/24
but the host is incorrectly configured with a much broader prefix.
It may incorrectly believe that some remote destinations are directly connected and try to resolve them locally with ARP instead of sending packets to the gateway.
Symptoms can include:
Repeated unanswered ARP requests
Some local hosts reachable
Remote networks unreachable
Gateway apparently unused for affected destinations
Always verify the IP prefix when ARP behavior appears illogical.
Common ARP Problem: Wrong VLAN
Consider:
PC-A
192.168.10.20
Expected VLAN: 10
but the switch port is actually assigned to VLAN 20.
PC-A sends:
Who has 192.168.10.1?
but the real gateway is in VLAN 10.
The ARP request never reaches the expected gateway because the host is in the wrong Layer 2 broadcast domain.
Symptoms:
IP configuration looks correct
Gateway unreachable
ARP for gateway unanswered
This is an excellent example of why ARP troubleshooting frequently becomes VLAN troubleshooting.
Common ARP Problem: Gateway ARP Fails
Suppose:
Same local subnet communication works
but:
Default gateway unreachable
Check:
Gateway IP
Gateway interface/SVI state
VLAN assignment
Trunk
ARP request/reply
Duplicate IP
Gateway MAC
If the client cannot resolve the default gateway’s link-layer address, it cannot normally send IPv4 traffic beyond its local network through that gateway.
ARP Troubleshooting Workflow
A systematic workflow is more effective than repeatedly clearing caches.
Step 1: Verify IP Configuration
On Windows:
ipconfig /all
On Linux:
ip addr
ip route
Confirm:
IP address
Prefix/subnet mask
Default gateway
Interface
If these are wrong, ARP behavior may be perfectly correct for an incorrect configuration.
Step 2: Determine Whether the Destination Is Local
Ask:
Is the destination on-link?
If yes:
ARP should resolve the destination itself.
If no:
ARP normally resolves the next-hop gateway.
This distinction can immediately reveal incorrect troubleshooting assumptions.
Step 3: Inspect the ARP/Neighbor Table
Windows:
arp -a
or:
Get-NetNeighbor
Linux:
ip neigh
Look for:
Expected IP
Expected MAC
Neighbor state
Unexpected changes
Incomplete/failed entries
Step 4: Generate Traffic
Try reaching the target:
ping 192.168.1.20
But interpret ping carefully.
A failed ping does not automatically prove ARP failure because ICMP may be filtered.
The useful question is:
Did attempting communication trigger ARP resolution, and did the target respond?
Check the neighbor table again or capture packets.
Clearing ARP Information on Windows
The exact supported method can depend on Windows version and privileges.
Traditional commands include:
arp -d *
and administrative network commands can also be used to remove neighbor information.
However:
Clearing ARP should be a diagnostic action, not a universal solution.
If the underlying problem is a duplicate IP, wrong VLAN, bad gateway, or malicious ARP traffic, the incorrect state can return.
Flushing a Neighbor Entry on Linux
Linux provides flexible neighbor management with the ip command.
To remove a particular entry, an administrator can use a command such as:
sudo ip neigh del 192.168.1.20 dev eth0
To inspect entries:
ip neigh show
Exact interface names vary:
eth0
ens18
enp0s3
wlan0
After deletion, the kernel can resolve the neighbor again when communication requires it.
Packet-Level ARP Troubleshooting
Packet capture is one of the best ways to diagnose ARP.
A capture might show:
ARP Request:
Who has 192.168.1.20?
Tell 192.168.1.10
followed by:
ARP Reply:
192.168.1.20 is at BB:BB:BB:BB:BB:BB
If you see repeated requests:
Who has 192.168.1.20?
Who has 192.168.1.20?
Who has 192.168.1.20?
with no reply, investigate why the target cannot respond.
Possible causes include:
Target offline
Wrong VLAN
Layer 2 path failure
Incorrect IP
Port isolation
Security controls
ARP in Wireshark
Wireshark can filter ARP traffic with:
arp
Useful fields include:
Sender MAC address
Sender IP address
Target MAC address
Target IP address
Opcode
Typical opcodes distinguish requests from replies.
A capture allows you to answer:
Was the ARP request sent?
Did the expected device receive/respond?
Which MAC claimed the address?
Are multiple MACs claiming one IP?
This is often more reliable than guessing from application symptoms.
Troubleshooting ARP with tcpdump
On Linux, you can inspect ARP packets using:
sudo tcpdump -ni eth0 arp
Example output conceptually shows requests and replies as they cross the interface.
To focus on a specific host:
sudo tcpdump -ni eth0 arp and host 192.168.1.20
Packet capture is especially useful when an ARP entry repeatedly fails or changes.
ARP Troubleshooting Decision Tree
IPv4 connectivity problem
|
v
Correct IP/prefix?
/ \
NO YES
| |
v v
Fix config Destination local?
/ \
YES NO
| |
v v
Resolve target Resolve gateway
with ARP with ARP
| |
+------v------+
|
ARP reply?
/ \
NO YES
| |
v v
Check VLAN, Check routing,
L2, target, firewall,
duplicate IP destination
This simple model helps isolate Layer 2 resolution from Layer 3 routing.
ARP vs DNS
ARP and DNS are sometimes confused because both perform forms of “resolution.”
But they solve completely different problems.
DNS
Maps names to IP-related information:
example.com
|
v
93.184.216.34
ARP
Maps a local/on-link IPv4 address to a link-layer address:
192.168.1.20
|
v
BB:BB:BB:BB:BB:BB
A simplified communication chain might therefore be:
Domain Name
|
| DNS
v
IP Address
|
| Routing decision
v
Next-hop IPv4 address
|
| ARP
v
MAC Address
|
| Ethernet
v
Local frame delivery
For the name-resolution layer, see DNS Explained.
ARP vs DHCP
DHCP and ARP also serve different purposes.
DHCP can provide configuration such as:
IP address
Subnet mask/prefix
Default gateway
DNS servers
ARP then helps the IPv4 host resolve appropriate local neighbors.
Conceptually:
DHCP
|
v
"Your IP is 192.168.1.20
Your gateway is 192.168.1.1"
|
v
ARP
|
v
"What MAC address belongs to 192.168.1.1?"
If DHCP provides an incorrect subnet mask or gateway, ARP behavior can consequently appear abnormal.
ARP vs IPv6 Neighbor Discovery
IPv6 does not use ARP.
Instead, IPv6 uses Neighbor Discovery, based on ICMPv6, for functions including neighbor address resolution.
Conceptually:
IPv4
→ ARP
IPv6
→ Neighbor Discovery Protocol
This is a critical distinction when troubleshooting dual-stack networks.
If IPv6 connectivity is failing, searching only the ARP table may tell you nothing about the failing IPv6 neighbor relationship.
ARP Troubleshooting Checklist
When investigating a suspected ARP problem, collect:
Source IP:
Source MAC:
Source VLAN:
Subnet mask/prefix:
Default gateway:
Destination IP:
Destination local or remote:
Expected target MAC:
Actual ARP entry:
Neighbor state:
Switch port:
Switch MAC-table entry:
ARP request visible:
ARP reply visible:
Duplicate IP suspected:
Recent failover:
Recent VLAN change:
Recent NIC replacement:
Proxy ARP enabled:
This converts:
“The server is unreachable.”
into a structured network diagnosis.
ARP Best Practices
ARP is largely automatic, but network architecture determines how reliable and secure the environment is.
Useful practices include:
- Maintain accurate IP-address management.
- Avoid manually assigned duplicate addresses.
- Keep VLAN and subnet boundaries consistent.
- Monitor unexpected MAC movement.
- Investigate frequent ARP changes.
- Use DHCP Snooping and Dynamic ARP Inspection where appropriate.
- Protect network access at the switch edge.
- Document virtual IP and high-availability behavior.
- Verify gratuitous ARP behavior during failover testing.
- Avoid unnecessary Proxy ARP.
- Use packet captures when neighbor resolution is unclear.
- Do not treat clearing the ARP cache as a permanent repair.
The most important operational principle is:
Understand why the ARP mapping is wrong before deleting it.
Frequently Asked Questions
What does ARP stand for?
ARP stands for Address Resolution Protocol.
What does ARP do?
In common IPv4 Ethernet networks, ARP resolves an on-link IPv4 address into the link-layer address needed for local frame delivery.
Is ARP Layer 2 or Layer 3?
ARP operates at the boundary between network-layer IPv4 addressing and link-layer delivery. Different networking models classify it differently, so calling it strictly “Layer 2” or strictly “Layer 3” can oversimplify its role.
What is an ARP request?
An ARP request asks which device owns a particular protocol address and requests its hardware address.
Is an ARP request broadcast?
On Ethernet, a normal request for an unknown neighbor is typically carried in a broadcast frame.
What is an ARP reply?
It is the response providing the requested protocol-to-hardware address mapping.
Is an ARP reply broadcast?
A normal response to a conventional ARP request is generally unicast to the requester because the requester supplied its hardware address in the request.
What is an ARP table?
It is neighbor information associating IPv4 addresses with link-layer addresses.
What is the difference between an ARP table and a MAC table?
An ARP table maps IPv4 addresses to MAC addresses. A switch MAC table maps MAC addresses to switch ports.
Does a switch use ARP?
A Layer 2 switch primarily forwards Ethernet frames using its MAC address table. A multilayer switch can also use ARP for its Layer 3 interfaces and routing functions.
Does ARP cross a router?
Ordinary ARP broadcasts are limited to their local Layer 2 broadcast domain and are not normally routed between IP networks.
Does a computer ARP for a remote Internet server?
Normally no. It resolves the MAC address of the appropriate local next hop, usually the default gateway.
Why does my computer ARP for the gateway?
Because remote IP packets need to be delivered locally to the router that will forward them toward the destination.
What is gratuitous ARP?
It is an unsolicited ARP announcement/request mechanism commonly used to announce address information, update neighbor mappings, detect conflicts, and assist failover.
What is Proxy ARP?
Proxy ARP occurs when a router or another system responds to an ARP request on behalf of another destination.
What is ARP cache?
ARP cache is commonly used to describe stored IPv4-to-link-layer neighbor mappings.
Can ARP entries expire?
Dynamic neighbor information can age, transition through states, and be refreshed according to the operating system’s neighbor-management implementation.
What is an incomplete ARP entry?
It generally indicates that neighbor resolution has been attempted but a usable link-layer mapping has not yet been obtained.
Why would ARP requests receive no reply?
Possible causes include an offline target, wrong VLAN, wrong address, Layer 2 failure, port isolation, security controls, or incorrect network configuration.
What is ARP spoofing?
ARP spoofing involves sending misleading ARP information in an attempt to manipulate another system’s IP-to-MAC mapping.
What is ARP poisoning?
ARP poisoning generally refers to corrupting neighbor ARP information through forged or misleading ARP messages.
What is Dynamic ARP Inspection?
DAI is a switch security mechanism that can validate ARP messages against trusted binding information and reject invalid ARP traffic.
Does IPv6 use ARP?
No. IPv6 uses Neighbor Discovery mechanisms based on ICMPv6 instead.
Can duplicate IP addresses cause ARP problems?
Yes. Two devices claiming the same IPv4 address can cause inconsistent IP-to-MAC mappings and intermittent connectivity.
Can ARP cause a broadcast storm?
Normal ARP produces broadcast traffic, but ordinary ARP by itself should not be confused with a switching loop. Layer 2 loops or abnormal behavior can amplify broadcasts dramatically.
Does clearing ARP fix network problems?
It can force neighbor information to be relearned and is useful diagnostically, but it does not repair underlying causes such as duplicate IPs, wrong VLANs, routing problems, or attacks.
Conclusion
ARP is one of the mechanisms that connects IPv4 networking with Ethernet delivery.
At the IP layer, a host knows:
Destination IP
192.168.1.20
At the Ethernet layer, it needs:
Destination MAC
BB:BB:BB:BB:BB:BB
ARP provides the relationship:
IPv4 Address
|
| ARP
v
MAC Address
For a local destination:
Host
|
| ARP for destination
v
Local Host
For a remote destination:
Host
|
| ARP for next-hop gateway
v
Router
|
| Routing
v
Remote Network
This distinction explains many networking behaviors that initially seem confusing.
ARP also connects directly to other fundamental concepts:
ARP
|
+---- Ethernet switching
|
+---- MAC address tables
|
+---- VLANs
|
+---- Default gateways
|
+---- Routing
|
+---- High availability
|
+---- Duplicate IP detection
|
+---- Network security
When troubleshooting, avoid thinking of ARP as an isolated protocol.
An unanswered ARP request may indicate:
Wrong VLAN
Wrong subnet
Target offline
Layer 2 failure
Gateway problem
An incorrect ARP entry may indicate:
Duplicate IP
Failover
Proxy ARP
Stale neighbor state
ARP spoofing
And a correct ARP entry does not prove that the complete network path is healthy—it only confirms an important part of local neighbor resolution.
The most useful troubleshooting model is therefore:
Physical Link
|
v
VLAN / Layer 2
|
v
ARP Resolution
|
v
IP Routing
|
v
Firewall / ACL
|
v
DNS
|
v
Application
By testing each layer in order, ARP becomes one of the most useful diagnostic signals in an IPv4 network rather than another cache to clear whenever connectivity fails.
Continue with Computer Networking Explained for the networking foundation, TCP/IP Explained for packet routing, Routers, Switches and Network Devices for Ethernet forwarding, Network Security Basics for Layer 2 security concepts, and DNS Explained for name resolution.
For protocol-level details, consult the original RFC 826: An Ethernet Address Resolution Protocol. Linux administrators can also use the official ip-neighbour documentation to understand neighbor-table management and states.