대학공부/인터넷 프로토콜

주소 변환 프로토콜(ARP)

진진리 2024. 3. 29. 14:41
728x90

ARP: IP 주소를 알고 있을 때 네트워크 상에서 MAC 주소를 얻어온다 -> 2-3 계층 중간에서 동작

1. ARP 캐시 테이블 참고

2-1. 있으면 유니캐스트 통신

2-2. 없으면 ARP

  • Request 패킷 - 브로드캐스트로 전송
  • Reply 패킷 - 유니캐스트로 통신

주소 변환

인터넷의 주소

  • 논리 주소(logical address)
    • 호스트나 라우터가 사용하는 네트워크 레벨 주소
    • 전세계적으로 유일한 주소
    • IP 주소
    • 32비트 길이
  • 물리 주소(physical address)
    • 로컬 네트워크에서 유효한 주소
    • 로컬 주소, 로컬에서 유일하면 됨
    • 보통 하드웨어로 구현
    • 호스트나 라우터 내에 설치된 NIC에 들어 있음
    • MAC 주소
  • 호스트나 라우터로 패킷을 전달하기 위해 논리 및 물리 주소가 모두 필요
  • 논리 주소 <-> 물리 주소 변환 필요
  • 정적 또는 동적 변환 가능
    1. 정적 변환(static mapping)
      • 논리 주소와 물리 주소 연관 테이블 생성
      • 네트워크 상의 각 시스템에 저장
      • 물리 주소가 변경될 경우 정적 테이블의 갱신으로 인한 오버헤드 발생
    2. 동적 변환(dynamic mapping)
      • 물리 주소와 논리 주소 쌍 중 하나만 알면 프로토콜(ARP, RARP)을 통해 다른 하나를 알아냄

 

ARP

  • TCP/IP 프로토콜에서의 ARP의 위치

  • ARP 동작

IP주소에 해당하지 않는 PC는 Request를 무시

  • ARP 패킷 헤더

OPER, SHA, THA는 꼭 알고 있어야 함!

 

  • ARP 패킷의 캡슐화


ARP의 동작 과정

  1. 송신자는 타겟 IP주소를 알고 있음
  2. ARP에게 ARP 요청 메시지 생성 요청 (타겟 MAC 주소는 0으로 채워짐)
  3. 데이터 링크층에 전달되면 목적지는 MAC 브로드캐스트 주소로 하는 프레임에 캡슐화
  4. 모든 호스트나 라우터가 프레임을 수신하여 자신의 ARP에 전달
  5. 타겟 시스템은 자신의 MAC 주소를 포함한 ARP 응답 메시지 송신(유니캐스트)
  6. 송신자는 응답 메시지를 받고 타겟 시스템의 MAC 주소를 알게 됨
  7. IP 데이터그램은 프레임으로 캡슐화되어 목적지에 유니캐스트

 

ARP가 사용되는 4가지 경우

  • 송신자는 호스트이고 같은 네트워크 상에 있는 호스트에 패킷 전송 (논리 주소는 목적지 IP 주소)
  • 송신자는 호스트이고 다른 네트워크 상에 있는 호스트에게 패킷 전송 (논리 주소는 라우터의 IP 주소)
  • 송신자는 라우터이고 다른 네트워크 상에 있는 호스트에게 데이터 그램 전송 (논리 주소는 다음 홉 라우터의 IP 주소)
  • 송신자는 라우터이고 같은 네트워크 상에 있는 호스트에게 데이터 그램 전송 (논리 주소는 목적지 IP주소)


예제

시스템 A가 시스템 B의 IP 주소는 알지만 물리 주소는 알지 못하는 상황

시스템 A

  • IP 주소: 130.23.43.20
  • 물리 주소: 0xB23455102210

시스템 B

  • IP 주소: 130.23.43.25
  • 물리 주소: 0xA46EF45983AB

두 호스트는 같은 이더넷 네트워크에 있다. (정확한 판단은 서브넷 마스크 필요)

이더넷 프레임에 캡슐화된 APR 요청과 응답 패킷

요청 패킷: 목적지 IP 주소가 0xFFFFFFFF(브로드캐스트 - 범위 LAN), 타겟 물리 주소가 0x00000000

응답 패킷: 유니 캐스트, 송신 물리 주소가 0xA46EF45983AB


프록시 ARP

  • 서브넷팅 효과를 만들기 위해 사용
  • 호스트 집합을 대행하여 수행(중개자)
  • 라우터(서로 다른 LAN을 연결)에서 동작
    • 일반적인 통신에서는 ARP 프로토콜의 범위는 로컬 네트워크로 한정
    • ARP request의 패킷을 라우터 인터페이스에서는 무시
    • 하지만 원격 네트워크에 있는 경우 다른 서브넷(네트워크)에 대신 MAC 주소를 물어봄 (대부분 사용하지 않음)

 

추가 자료 :: Proxy ARP

  • 호스트가 ARP를 요구할 때 라우터는 자신이 가지고 있는 ARP 테이블을 이용하여 대신 자신의 MAC 주소를 알려주는 기술
    • 장점: 같은 네트워크 안에러 라우팅 처리없이 쉽게 라우터를 붙일 수 있음, Host가 Default Gateway를 설정하지 않음
    • 단점: ARP 트래픽 증가, 보안상의 문제 (ARP Spoofing), 큰 범위의 ARP 테이블 필요
  • 사용하지 않는 이유: ARP 캐시에 IP 주소와 MAC 주소가 서로 다른 장비의 정보로 mapping 됨 -> 문제 발생
    • 이 방법보다는 라우터는 IP 주소로 통신

ARP 덤프 분석

  • request

  • response

  • ARP 캐시 테이블 확인
    • ARP 요청과 응답 결과는 두 기긱 모두 ARP 캐시에 저장 (2분간)
    • ARP 명령을 사용할 때는 기존의 캐시를 미리 삭제할 필요가 있음
    • arp -d: 캐시 삭제
    • arp -a: 캐시 테이블 확인
    • arp -s [IP 주소] [MAC 주소]: 호스트를 추가(static), 영구적으로 지속됨