ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • arp
    네트워크 2024. 1. 14. 22:59

    - LAN(local area network): IP 대역을 공유하는 근거리 통신망. arp request가 미치는 영역.

     

    - mac 주소: 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자로 공장에서 출고될 때 부여되고 평생 사용하는 고유한 주소를 의미한다. 즉 LAN에서 목적지와 통신하기 위한 실질적인 주소를 말한다. 이것만으로 라우팅을 한다면 숫자가 매우 많아져 라우터가 다운된다. 연속성을 갖는 IP 주소 다수를 한 줄로 지정해 편리하게 라우팅할 수 있어 둘 모두를 사용한다.


    - ARP는 "Address Resolution Protocol"의 약자로, 네트워크에서 사용되는 프로토콜 중 하나입니다. ARP는 IP 주소와 실제 네트워크 인터페이스의 MAC 주소 간의 매핑을 수행하는 데 사용됩니다. 이러한 매핑은 데이터를 전송할 때, 특히 이더넷과 같은 로우레벨 네트워크에서 필요합니다.

    간단히 말하면, ARP는 두 가지 주요 목적을 갖고 있습니다:

    1. IP 주소에서 MAC 주소로의 매핑: ARP는 특정 IP 주소가 네트워크에서 어떤 MAC 주소에 해당하는지 찾아내는 데 사용됩니다. 네트워크 장치가 특정 IP 주소로 통신하려고 할 때, ARP는 그 IP 주소에 대한 MAC 주소를 찾아내어 데이터를 올바른 네트워크 장치로 전송할 수 있게 합니다.
    2. ARP 테이블 관리: ARP는 매핑 정보를 ARP 테이블에 저장합니다. ARP 테이블은 네트워크 장치의 IP 주소와 해당 MAC 주소 간의 현재 매핑 정보를 포함하고 있습니다. 이 테이블은 주로 캐시의 역할을 하며, ARP 프로토콜이 불필요하게 계속해서 수행되는 것을 방지합니다.

    - ARP의 주요 단점 중 하나는 보안 측면에서의 취약성입니다. ARP 스푸핑 및 ARP 중간자 공격과 같은 공격 유형이 ARP를 통해 이뤄질 수 있습니다. 이에 대한 대응책으로는 ARP 캐시 포이즌링 방지를 위한 보안 메커니즘이나 ARP 세척(ARP Spoofing Detection)과 같은 방법들이 있습니다.

     

    - arp 프로토콜 동작 순서

    1. 같은 네트워크에 있을 때

    같은 네트워크 내에 있는 단말들의 mac주소는 중계장치(스위치)가 mac주소 테이블 정보를 저장하고 관리하고 있으므로 내부에서 단말들이 mac 주소를 가지고 통신할 수 있게 된다.

       1) A와 B가 통신하기 위해 같은 네트워크 대역에 arp요청을 브로드캐스트 방식으로 B의 ip주소를 가진 단말이 있는지 물어본다. A는 B의 mac주소를 모르기 때문에 일단 기본 게이트웨이( FF:FF:FF:FF:FF:FF)로 기록한다.

       2) 네트워크 스위치 장비는 A의 mac주소를 자신의 mac 주소 테이블에 저장한다.

       3) 네트워크 스위치 장비가 arp 요청을 받고나서 자신이 가지고 있는 mac 테이블에 B의 IP 주소에 대한 mac주소가 저장되어 있다면, A에게 B의 IP주소의 mac주소를 알려준다. 만약 mac 테이블에 정보가 없다면 반대편의 B까지 arp 요청이 전달된다. 이후 B는 arp요청을 받은 다음 자신의 IP주소가 목적지에 기록되어 있음을 확인한 후 자신의 mac주소를 알려주는 응답을 한다. 이후 스위치는 B의 mac주소를 mac 주소 테이블에 저장한다.

         4) A는 마침내 전달 받은 B의 mac주소를 확인하고 B와의 통신을 시작한다.

     

    2. 같은 네트워크에 없을 때

     arp 프로토콜을 통해 IP주소와 mac주소 간 변환을 통해 통신한다.

        1) A와 B가 통신하기 위해 같은 네트워크 대역에 arp요청을 브로드캐스트 방식으로 B의 ip주소를 가진 단말이 있는지 물어본다. A는 B의 mac주소를 모르기 때문에 일단 기본 게이트웨이( FF:FF:FF:FF:FF:FF)로 기록한다.

        2) 라우터는 해당 arp 요청을 받고 목적지 B의 IP주소가 같은 네트워크에 있지 않기 때문에 같은 네트퉈크 대역대에 있는 라우터 자신의 인터페이스 mac 주소로 응답해준다.

        3) A는 B와 통신하기 위해 다시 라우터에게 B의 목적지 IP 주소와 같은 네트워크 대역의 라우터 인터페이스 mac주소를 목적지로 arp 요청을 보낸다.

        4) 라우터는 해당 네트워크 대역까지 패킷을 보낸다. 단, 라우터도 목적지 B의 mac 주소를 모르므로 해당 네트워크 대역대에 브로드캐스트 메세지로 B의 IP 주소를 가진 단말이 있는지 물어본다.

        5) B단말이 자신의 IP주소가 목적지로 되어있는 패킷을 보고 라우터에게 자신의 mac주소를 포함하여 응답한다.

        6) 이후 라우터를 통해 A와 B가 통신을 시작한다.

     

    - ARP(Request) 프레임은 특정 IP 주소에 대한 MAC 주소 매핑을 요청하는 데 사용됩니다. ARP 프레임은 일반적으로 이더넷 프레임 내에 포함되며, 다음과 같은 구조를 가지고 있습니다.

    1. 이더넷 헤더 (Ethernet Header):
      • 목적지 MAC 주소 (Destination MAC Address): ARP 프레임이 전송되는 대상의 MAC 주소를 지정합니다. ARP Request의 경우, 이 값은 브로드캐스트 주소(FF:FF:FF:FF:FF:FF)입니다.
      • 출발지 MAC 주소 (Source MAC Address): ARP 프레임을 전송하는 장치의 MAC 주소를 나타냅니다.
    2. ARP 프로토콜 헤더 (ARP Protocol Header):
      • 하드웨어 타입 (Hardware Type): 사용 중인 하드웨어 유형을 나타내며, 이더넷의 경우 1로 설정됩니다.
      • 프로토콜 타입 (Protocol Type): 상위 계층 프로토콜의 종류를 나타냅니다. ARP의 경우, IPv4의 프로토콜 번호인 0x0800을 사용합니다.
      • 하드웨어 주소 길이 (Hardware Address Length): MAC 주소의 길이를 바이트 단위로 나타냅니다. 이더넷의 MAC 주소 길이는 6바이트이므로 6으로 설정됩니다.
      • 프로토콜 주소 길이 (Protocol Address Length): ARP 프레임에서 사용하는 프로토콜 주소의 길이를 바이트 단위로 나타냅니다. IPv4 주소의 길이는 4바이트이므로 4로 설정됩니다.
      • 오퍼레이션 코드 (Operation Code): ARP 요청인지 응답인지를 나타냅니다. ARP Request의 경우 1로 설정됩니다.
    3. ARP 데이터 필드 (ARP Data Field):
      • 출발지 MAC 주소 (Sender Hardware Address): ARP 프레임을 보내는 장치의 MAC 주소를 나타냅니다.
      • 출발지 프로토콜 주소 (Sender Protocol Address): ARP 프레임을 보내는 장치의 IP 주소를 나타냅니다.
      • 목적지 MAC 주소 (Target Hardware Address): ARP 프레임의 목적지 MAC 주소를 지정하는 필드입니다. ARP Request의 경우 비어 있습니다.
      • 목적지 프로토콜 주소 (Target Protocol Address): ARP 프레임의 목적지 IP 주소를 지정하는 필드입니다.

    ARP Request 프레임이 전송되면, 이 프레임을 받은 네트워크 내의 모든 장치는 해당 IP 주소를 가진 장치가 누구인지 알기 위해 ARP Reply를 다시 보냅니다. ARP Reply 프레임의 구조는 ARP Request와 유사하지만, 오퍼레이션 코드는 2로 설정되고 목적지 MAC 주소가 실제 주소로 채워집니다.

     
     
     
     

    '네트워크' 카테고리의 다른 글

    서브네트워크, 호스트 IP 개수 계산  (0) 2025.02.28
    broadcast domain과 collision domain  (0) 2024.01.15
    Http와 Https의 차이  (0) 2024.01.09
Designed by Tistory.