• ARP 프로토콜은 한국어로 주소 결정 프로토콜이라고 함
  • IP 주소를 MAC 주소와 매칭 시키기 위한 프로토콜
  • MAC 주소 → 물리적 네트워크 주소는 이더넷 또는 토큰링의 48 비트 네트워크 카드(NIC) 주소
  • ARP를 사용 이유는 로컬 네트워크(LAN, Local Area Network)에서 단말과 단말 간 통신을 하기 위해 IP 주소와 함께 MAC 주소를 이용
  • IP 주소를 MAC Address와 매칭하여 목적지 IP의 단말이 소유한 MAC 주소를 향해 제대로 찾아가기 위함
  • IP 주소를 MAC 주소로 매칭해야하는 이유를 알기위해서는 LAN(Local Address Network)과 MAC 주소에 대해 이해 필요

 

LAN(Local Address Network)

  • 근거리 통신망, 로컬 영역 네트워크(영어: local area network, LAN),
  • 네트워크 매체를 이용하여 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크
  • 아무리 큰 규모의 네트워크일지라도 같은 IP 대역을 공유한다면 근거리 네트워크임
  • LAN은 ARP Request가 미치는 영역 → APR Request Packet이 전달되기만 한다면 LAN이라봄
  • 같은 IP 대역을 공유하는 LAN에서 단말간 통신을 하기 위해선 사용자는 IP 주소를 목적지로 지정하지만 실제로는 MAC 주소를 이용해 목적지를 찾음. → IP 주소와 MAC 주소를 매칭하기 위해 ARP가 사용
  • 아래 그림) 중앙에 하나의 L2 Switch를 두고 컴퓨터들을 연결하여 LAN(192.168.1.0/24)을 구성
    1. PC0(192.168.1.1)이 PC1(192.168.1.2)와 통신을 하기 위해서 사용자는 목적지를 192.168.1.2로 지정
    2. LAN 구성에서 통신을 하는 경우 실제 목적지는 PC1의 IP 주소와 함께 MAC 주소를 목적지로 지정하고 전달

MAC 주소

  • 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자로 Network Interface Card(NIC)를 가진 단말이라면 공장에서 출고될 때 부여되고 평생 사용하는 고유한 주소를 의미
  • LAN(Local Address Network)에서 목적지와 통신하기 위한 실질적인 주소 → MAC 주소
  • 네트워크 장비 혹은 컴퓨터가 갖는 Network Interface Card마다 MAC 주소를 가짐
  • LAN(Local Address Network, Layer 2)에서는 IP 주소를 MAC 주소에 매칭하여 통신
  • MAC Address 확인 (ipconfig /all 명령어)

 

MAC 주소가 필요 이유

1. 주소 이동 예시 → 논리적 주소인 IP 주소와 물리적 주소인 MAC주소의 관계가 행정적 주소와 물리적 주소와 같음

  1. '서울특별시 광진구 화양동 43'에서 '성남시 분당구 야탑동 24'으로 이동한다고 가정
  2. 화양동을 출발하여 남쪽으로 내려감
  3. 성남으로 가기 위해 잠실대교를 건너 송파구의 석촌동, 문정동을 지나면 복정동으로 향하는 도로를 지나감
  4. 성남시 수정구 복정동에 도착한 후에 분당구 야탑동으로 이동하려면 중원구 성남동을 지나가야함
  5. 성남동을 지나 드디어 야탑동에 도착
  6. 야탑동에 도착하니 야탑동 24가 어디인지 써있는 표시 없어, 주변의 지형지물을 통해 야탑동 24의 위치 찾아냄
  7. 야탑동 24이 친구 집이라면 친구에게 전화해 "한국전자부품연구원 위에 보면 야탑천이 시작되는 곳에 있어"라는 질문으로 위치 정보를 얻을 수 있음
  8. 야탑동 24라는 행정적 주소는 제도에 따라 변할 수 있지만 야탑천이 시작되는 곳이라는 물리적인 주소는 결코 변하지 않음

 

2. LAN(192.168.1.0/24)의 구성 예시 → IP는 변경, MAC은 불변하는 틍징을 가지고 통신

  • IP 주소는 끊임없이 변화함
  • MAC 주소 체계가 없는 상황을 가정하고 IP 주소만 있는 상황에서 PC0 사용자가 자신의 IP를 192.168.1.2로 바꾼다면 PC0와 PC1 모두 192.168.1.2 IP를 갖게 될 것이고 원래 IP 192.168.1.2 주인이 누군지 알수 없음
  • 고유한 정보인 MAC 주소는 웬만해서는 변경되지 않음 → MAC 주소를 사용하여 전달하는 것이 확실
  • 인터넷 상에서 IP 주소 없이 변화하지 않는 고유한 주소인 MAC 주소를 사용하여 라우팅을 한다면, 각 고유한 주소를 라우팅 테이블에 일일이 입력하다간 라우터가 다운됨 → 라우팅 테이블에 등록될 숫자가 매우 많아짐
  • IP 주소는 연속성을 갖기 때문에 IP 주소 다수를 한 줄로 지정해줄 수 있으니 편리

 

ARP에 대한 설명

  • 단말간 통신에서 양쪽 단말은 IP를 이용하여 목적지를 지정하지만 실제 데이터 이동을 위해 MAC 주소를 함께 이용
  • 통신을 위해 필요한 것이 Address Resolution Protocol(ARP) → IP 주소와 MAC 주소를 일대일 매칭하여 LAN(Layer 2)에서 목적지를 제대로 찾아갈 수 있도록 함
  • ARP 테이블(ARP Table)은 IP 주소와 MAC 주소를 일대일 대응하여 테이블로 정리하고 목적지 IP에 맞는 목적지 MAC 주소로 전달 → IP 주소와 MAC 주소를 일대일 매칭시킨 정보를 정리해둔 Table

1. PC0의 ARP Table

  • PC0의 ARP Table에 다른 PC들의 IP 주소와 함께 MAC 주소가 일대일 매칭되어 관리
  • 사용자가 데이터를 보내기 위해 목적지 IP 주소를 지정한다면 PC0은 ARP Table에 있는 MAC 주소를 보고 해당 MAC 주소의 소유 PC로 전달

2. 스위치의 MAC 주소 Table

  • 중간에서 데이터를 전달하는 스위치 또한 자신의 Port에 연결된 PC들의 MAC 주소 정보를 가짐
  • 어느 Port에서 어느 PC의 MAC 주소가 올라오는지 알아야 PC에게서 전달받은 데이터를 전달할 때 목적지 MAC 주소를 올바르게 지정 가능
  • 스위치의 MAC Table은 PC0에서 PC 1,2,3으로 Ping 명령을 실시한 후의 결과 → LAN에서의 통신은 MAC 주소를 이용

 

ARP Table 생성 과정

  • IP 주소와 MAC 주소가 구비되어있다 하더라도 다른 PC의 IP 주소와 MAC 주소를 모르면 데이터를 전달 X
  • ARP Table을 생성하여 다른 PC들에 대한 주소 정보를 확보하는 것이 필요
  • ARP는 이더넷 통신에 없어서는 안 될 매우 중요한 요소이며 네트워크 트러블 슈팅의 기본
  • PC 0,1,2,3뿐만 아니라 모든 단말들은 자신만의 Routing Table이 있어 자신이 보내려는 패킷의 목적지 IP가 자신이 소속된 IP 대역인지 아닌지 알 수 있음
  • ARP Table 순차적으로 설명
    1. PC0(192.168.1.1)은 PC 2(192.168.1.3)에게 데이터를 전달하려고 함 → Routing table을 보니 자신(PC0)과 PC2가 같은 LAN에 속한다는 것을 암
    2. PC0는 Broadcast(FF:FF:FF:FF:FF:FF)인 ARP Request(Who has 192.168.1.3? Tell 192.168.1.1)를 전송 → PC1,PC2,PC3에 전달
    3. ARP Request의 목표인 PC2가 반응하여 ARP Response(PC2의 MAC 주소)를 응답
    4. PC0(192.168.1.1)은 PC2가 보낸 ARP Reponse를 받고 ARP Table에 PC2의 IP와 MAC 주소를 기록
    5. PC0가 PC2에 데이터를 보내려 목적지 IP를 192.168.1.3으로 지정하면 자연스레 ARP Table을 보고 PC2의 MAC 주소를 목표로 전달

 

참고 URL : https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

+ Recent posts