본문으로 바로가기

ARP(Address Resolution Protocol)

category 네트워크/All about Network 2018. 10. 24. 02:16
반응형
본 게시글은 'PC모드'에서 보시면 잘리지 않은 정상적인 화면으로 보실 수 있습니다.

ARP (Address Resolution Protocol)

Switch는 MAC Address를 통해서 목적지와 함께 Frame을 주고 받는다. 그러나 처음 통신을 시작할 때는 상대방의 MAC Address를 모른다. 그 때 상대방의 Mac Address를 알아내기 위하여 사용하는 프로토콜ARP(Address Resolution Protocol)이다.


ARP 동작 방식 By R2

R1에서 R2로 Ping을 날려보는 것으로 ARP 동작 방식을 이해할 수 있다.

  • 참고 Topology

기본 설정, 및 IP 설정은 생략. 


1. R1에 ping 1.1.1.2 명령어를 입력하여 R2에 ping을 보낼 준비를 한다.


출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Data

1.1.1.1

1.1.1.2

0000.0000.0001

?

ping


2. R1은 R2의 MAC Address를 알지 못한다. 고로 R1은 브로드캐스트 주소로 설정한 ARP Request Packet을 전송한다.

출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Data

1.1.1.1

1.1.1.2

0000.0000.001

FFFF.FFFF.FFFF

ARP Req.


3. ARP Request Packet을 받은 SW1은 자신의 연결되어있는 모든 포트에 ARP Request Packet을 브로드캐스팅[각주:1]한다.


4. ARP Request Packet을 받은 R2와 R3는 자신의 요청 패킷인지 아닌지를 확인한다. 고로 R3는 Request Frame을 폐기하고 R2는 R1에게 ARP Reply Packet을 전달한다. 동시에 R2와 R3는 자신들의 ARP Table에 R1의 MAC Address 정보를 저장한다.

출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Data

1.1.1.2

1.1.1.1

0000.0000.0002

0000.0000.0001

ARP Rep.


5. ARP Table에 저장되면서 R2의 MAC Address를 알게 된 R1은 R2에게 정확하게 Ping을 보낸다.

출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Data

1.1.1.1

1.1.1.2

0000.0000.0001

0000.0000.0002

ping


ARP Debuging을 통한 ARP 동작 방식 확인 By R3
R1#ping 1.1.1.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.2, timeout is 2 seconds:

*Oct 21 17:34:36.711: IP ARP: creating incomplete entry for IP address: 1.1.1.3 interface FastEthernet0/0
*Oct 21 17:34:36.715: IP ARP: sent req src 1.1.1.1 0000.0000.0001,
                 dst 1.1.1.2 0000.0000.0000 FastEthernet0/0
*Oct 21 17:34:36.775: IP ARP: rcvd rep src 1.1.1.3 0000.0000.0003, dst 1.1.1.1 FastEthernet0/0.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 16/22/28 ms
R1#

*Oct 21 17:34:36.711: IP ARP: creating incomplete entry for IP address: 1.1.1.3 interface FastEthernet0/0
    1.1.1.3, 즉 R3에게 ARP를 보낼 준비를 한다.

dst 1.1.1.3 0000.0000.0000 FastEthernet0/0

그러나 destination을 모르는 R1은 0000.0000.0000의 Broadcast 주소로 설정된 ARP Request Packet을 전달한다.

Packet을 캡쳐해서 보면 Broadcast, ARP, 60 Who has 1.1.1.3? tell 1.1.1.1, 하단 Dst: Broadcast FFFF.FFFF.FFFF로 나온다.

*Oct 21 17:34:36.775: IP ARP: rcvd rep src 1.1.1.2 0000.0000.0003, dst 1.1.1.1 FastEthernet0/0

위의 ARP 동작방식을 통하여 1.1.1.3의 MAC Address가 0000.0000.0003이라는 것을 Received받는다.

그 후 .!!!!를 통해서 ping이 빠지지 않고 정상적으로 때려지는 것을 확인할 수 있다.

Packet을 캡쳐해서 보면 00:00:00_00:00:01, ARP, 60 1.1.1.3 is at 00:00:00:00:00:03, 하단 Dst: 00:00:00_00:00:01로 나온다.


ARP Table 확인

show arp 명령어를 통해서 장비의 ARP Table을 확인할 수 있다.

R1#show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  1.1.1.1                 -   0000.0000.0001  ARPA   FastEthernet0/0
Internet  1.1.1.3                 0   0000.0000.0003  ARPA   FastEthernet0/0


ARP Exception(예외)

ARP 요청시 무조건 목적지 IP 주소의 MAC 주소를 요청하지는 않는다.


1. 목적지 IP 주소가 자신과 동일한 서브넷 소속이면 해당 목적지 IP 주소를 가진 장비에게 직접 MAC 주소를 요청한다.

2. 목적지 IP 주소가 자신과 다른 서브넷 소속이면 1. 자신의 게이트웨이에게 게이트웨이의 MAC 주소를 요청한다. 2. 요청 후 게이트웨이 라우터는 라우팅 테이블을 참조하여 패킷을 목적지 방향으로 라우팅시킨다.


  1. 플러딩(flooding) 한다고도 부른다.자세한 내용은 Transparent Bridging에서 다룬다. [본문으로]
반응형