주소 해결 프로토콜
Address Resolution Protocol인터넷 프로토콜 스위트 |
---|
응용 프로그램레이어 |
트랜스포트 레이어 |
인터넷 레이어 |
링크 레이어 |
ARP(Address Resolution Protocol)는 MAC 주소와 같은 링크 계층 주소를 검출하는 데 사용되는 통신 프로토콜로, 지정된 인터넷 계층 주소(일반적으로 IPv4 주소)와 관련되어 있습니다.이 매핑은 인터넷 프로토콜 스위트의 중요한 기능입니다.ARP는 1982년에 정의되었습니다. RFC826,[1] 이것은 인터넷 표준 STD 37입니다.
ARP는, IEEE 802 규격, FDDI, X.25, 프레임 릴레이, 및 Asynchronous Transfer Mode(ATM; 비동기 전송 모드)를 사용한IPv4, Chaosnet, DECnet, 및 Xerox PARC Universal Packet(PUP)등의 네트워크와 데이터 링크층의 테크놀로지의 많은 조합으로 실장되고 있습니다.
Internet Protocol Version 6(IPv6) 네트워크에서는 ARP 기능은 NDP에 의해 제공됩니다.
운용범위
Address Resolution Protocol은 요청-응답 프로토콜입니다.메시지는 링크 계층 프로토콜에 의해 직접 캡슐화됩니다.이것은 단일 네트워크의 경계 내에서 통신되며, 인터넷 워킹노드를 통해 라우팅되는 일은 없습니다.
패킷 구조
Address Resolution Protocol은 하나의 주소 해결 요청 또는 응답을 포함하는 단순한 메시지 형식을 사용합니다.패킷은 기본 네트워크의 데이터 링크층에서 원시 페이로드로 전송됩니다.이더넷의 경우 EtherType 값을 사용하여 ARP 프레임을 식별합니다.
ARP 메시지의 크기는 링크층 및 네트워크층 주소 크기에 따라 달라집니다.메시지 헤더는 각 레이어에서 사용 중인 네트워크의 유형과 각 레이어의 주소 크기를 지정합니다.메시지 헤더는 요청 (1) 및 응답 (2)의 조작 코드를 사용하여 완성됩니다.패킷의 payload는 송신측 및 수신측 호스트의 하드웨어 및 프로토콜 주소의 4개의 주소로 구성됩니다.
ARP 패킷의 주요 패킷 구조를 다음 표에 나타냅니다.이것은, 이더넷상에서 가동하는 IPv4 네트워크의 예를 나타내고 있습니다.이 시나리오에서 패킷에는 Sender Hardware Address(SHA; 송신자 하드웨어 주소) 및 Target Hardware Address(THA; 타깃하드웨어 주소)에 대한 48비트필드와 대응하는 Sender 및 Target Protocol Address(SPA 및 TPA)에 대한 32비트필드가 있습니다.이 경우 ARP 패킷사이즈는 28바이트입니다
옥텟 오프셋 | 0 | 1 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 하드웨어 타입(HTYPE) | |||||||||||||||
2 | 프로토콜 유형(PTYPE) | |||||||||||||||
4 | 하드웨어 주소 길이(HLEN) | Protocol Address Length(PLEN) | ||||||||||||||
6 | 조작(OPER) | |||||||||||||||
8 | Sender Hardware Address(SHA; 송신자 하드웨어 주소)(처음 2바이트) | |||||||||||||||
10 | (다음 2바이트) | |||||||||||||||
12 | (마지막 2바이트) | |||||||||||||||
14 | Sender Protocol Address(SPA)(처음 2바이트) | |||||||||||||||
16 | (마지막 2바이트) | |||||||||||||||
18 | Target Hardware Address(THA; 타깃하드웨어 주소) (처음 2바이트) | |||||||||||||||
20 | (다음 2바이트) | |||||||||||||||
22 | (마지막 2바이트) | |||||||||||||||
24 | Target Protocol Address(TPA) (처음 2바이트) | |||||||||||||||
26 | (마지막 2바이트) |
- 하드웨어 타입(HTYPE)
- 네트워크 링크 프로토콜 유형을 지정합니다.예:이더넷은 [2]1 입니다.
- 프로토콜 유형(PTYPE)
- 이 필드는 ARP 요청의 대상이 되는 인터넷 워크 프로토콜을 지정합니다.IPv4 의 경우, 이 값은0x0800. 허용되는 PCYPE 값은 EtherType [2][3]값과 번호 공간을 공유합니다.
- 하드웨어 길이(HLEN)
- 하드웨어 주소의 길이(옥텟 단위).이더넷 주소의 길이는 6 입니다.
- 프로토콜 길이(PLEN)
- 인터넷 워크주소의 길이(옥텟 단위).인터넷 워크 프로토콜은 PCYPE에서 지정됩니다. 예: IPv4 주소 길이는 4입니다.
- 작동
- 송신자가 실행하고 있는 조작을 지정합니다(요구의 경우는 1, 응답의 경우는 2).
- Sender Hardware Address(SHA; 송신자 하드웨어 주소)
- 송신자의 미디어 주소.ARP 요청의 경우 이 필드는 요청을 보내는 호스트의 주소를 나타내기 위해 사용합니다.ARP 응답에서 이 필드는 요구가 찾고 있던 호스트의 주소를 나타내기 위해 사용됩니다.
- Sender Protocol Address(Sender Protocol Address)
- 송신자의 인터넷 워크주소
- 타깃 하드웨어 주소(THA)
- 수신처의 미디어 주소.ARP 요청에서는 이 필드는 무시됩니다.ARP 응답에서는 이 필드를 사용하여 ARP 요구를 발신한 호스트의 주소를 나타냅니다.
- Target Protocol Address(TPA)
- 수신처의 인터넷 워크주소
ARP 프로토콜 매개 변수 값은 표준화되었으며 Internet Assigned Numbers Authority(IANA;[2] 인터넷 할당 번호 기관)에 의해 유지됩니다.
ARP의 EtherType은 0x0806 입니다.이는 payload가 ARP 패킷이며 캡슐화된 ARP 패킷 내에 표시되는PTYPE과 혼동하지 않는 경우에 이더넷프레임 헤더에 표시됩니다.
계층화
ARP가 인터넷 프로토콜 스위트 및 OSI 모델에 배치되는 것은 혼란스럽거나 논쟁의 여지가 있을 수 있습니다.RFC 1122에서는 ARP를 [4]링크층 섹션에 명시적으로 배치하지 않고 링크층 섹션에 기재하고 있습니다.일부 오래된 레퍼런스에서는 ARP를 OSI의 데이터[5] 링크 레이어에 배치하고 있으며, 새로운 에디션에서는 ARP를 네트워크 레이어에 관련짓거나 중간 OSI 레이어 2.5를 [6]도입하고 있습니다.
예
사무실 내 2대의 컴퓨터(컴퓨터 1과 컴퓨터 2)는 이더넷 케이블과 네트워크 스위치를 통해 로컬 영역 네트워크에서 서로 연결되어 있으며 게이트웨이나 라우터는 개입하지 않습니다.컴퓨터 1에는 컴퓨터 2에 송신하는 패킷이 있다.DNS 를 통해, 컴퓨터 2 의 IP 주소가 192.168.0.55 인 것을 확인합니다.
메시지를 보내려면 시스템 2의 MAC 주소도 필요합니다.먼저 컴퓨터 1은 캐시된 ARP 테이블을 사용하여 컴퓨터 2의 MAC 주소(00:EB:24:B2:05:AC) MAC 주소가 검출되면, 행선지 주소가 00 인 링크로 IP 패킷을 포함한 이더넷프레임을 송신합니다.EB:24:B2:05:AC. 캐시가 192.168.0.55에 대한 결과를 생성하지 않은 경우, 컴퓨터 1은 브로드캐스트 ARP 요청 메시지(행선지 FF:FF:FF:FF:FF:FF MAC 주소)는 로컬네트워크상의 모든 컴퓨터에서 받아들여지며 192.168.0.55에 대한 응답을 요구합니다.
컴퓨터 2는 MAC 주소와 IP 주소를 포함한 ARP 응답 메시지로 응답합니다.요청을 처리하는 과정에서 컴퓨터 2는 나중에 사용할 수 있도록 컴퓨터 1의 엔트리를 ARP 테이블에 삽입할 수 있습니다.
컴퓨터 1은 응답 정보를 ARP 테이블로 수신 및 캐시하여 패킷을 [7]전송할 수 있게 되었습니다.
ARP 프로브
IPv4의 ARP 프로브는 프로빙호스트의 SHA, 모두0의 SPA, 모두0의 THA 및 프로빙 대상의 IPv4 주소로 설정된TPA를 사용하여 작성된 ARP 요구입니다.네트워크상의 일부 호스트가 IPv4 주소(TPA내의)를 자신의 주소로서 간주하는 경우, 프로브(프로빙호스트의 SHA 경유)에 응답해, 주소의 경합을 프로브 호스트에 통지합니다.IPv4 주소를 자신의 주소로 간주하는 호스트가 없는 경우, 응답은 없습니다.이러한 프로브가 여러 개 송신되어 약간의 지연이 발생했지만 응답을 수신하는 프로브가 없는 경우 경합은 발생하지 않을 것으로 예상할 수 있습니다.원래 프로브 패킷에는 유효한 SHA/SPA도 유효한 THA/TPA 쌍도 포함되어 있지 않기 때문에 호스트가 패킷을 사용하여 캐시를 문제가 있는 데이터로 업데이트할 위험은 없습니다.IPv4 주소(수동 설정, DHCP, 또는 그 외의 수단으로부터 수신했는지를 불문하고)의 사용을 개시하기 전에, 이 사양을 실장하고 있는 호스트는, ARP 프로브 패킷을 [8][9]브로드캐스트 하는 것으로써, 주소가 이미 사용되고 있는지를 테스트할 필요가 있습니다.
ARP 방송
ARP는 단순한 알림 프로토콜로도 사용될 수 있습니다.이것은, 송신자의 IP 주소 또는 MAC 주소가 변경되었을 때에, 다른 호스트의 하드웨어 주소의 매핑을 갱신하는 경우에 편리합니다.이러한 아나운스는 gratuitous ARP(GARP) 메시지로도 불리며, 통상 타겟필드(TPA=SPA)에 SPA를 포함한 ARP 요구로서 브로드캐스트되며, THA는 제로로 설정됩니다.다른 방법으로는 송신자의 SHA 및 SPA가 타깃필드에 중복된 ARP 응답을 브로드캐스트하는 방법이 있습니다(TPA=SHA, THA=SHA).
ARP 요구 및 ARP 응답 아나운스는 모두 표준 기반의 방식이지만 [10][11]ARP 요구 방식이 권장됩니다.[12]일부 디바이스에서는,[13] 이러한 2 종류의 아나운스먼트의 어느쪽인가를 사용하도록 설정할 수 있습니다.
ARP 아나운스먼트는 응답을 요구하는 것이 아니라 패킷을 수신하는 다른 호스트의 ARP 테이블에서 캐시된 엔트리를 업데이트합니다.방송의 조작 코드는 요구 또는 응답 중 하나입니다.ARP 표준에서는 opcode는 주소 필드에서 [14][15][16]ARP 테이블이 갱신된 후에만 처리되도록 규정되어 있습니다.
많은 OS가 기동시에 ARP 방송을 발행합니다.이것에 의해, 예를 들면, 네트워크 카드가 최근에 변경되어(IP 주소와 MAC 주소의 매핑을 변경), 다른 호스트의 ARP 캐시에 낡은 매핑이 아직 존재하는 경우에 발생하는 문제를 해결할 수 있습니다.
ARP 아나운스먼트는 착신 트래픽 로드밸런싱을 제공하기 위해 일부 네트워크인터페이스에서도 사용됩니다.네트워크 카드의 팀에서는, 착신 패킷을 수신하는 팀내의 다른 MAC 주소를 통지하기 위해서 사용됩니다.
ARP 아나운스를 Zeroconf 프로토콜로 사용하면 다른 IP 주소 설정을 사용할 수 없는 인터페이스에 링크 로컬주소를 자동으로 할당할 수 있습니다.아나운스는, 호스트가 선택한 주소가 네트워크 [17]링크상의 다른 호스트에서 사용되고 있지 않은 것을 확인하기 위해서 사용됩니다.
이 함수는 사이버 보안 관점에서 위험합니다.이는 공격자가 서브넷의 다른 호스트에 대한 정보를 취득하여 공격자 MAC이 디폴트게이트웨이의 IP에 관련되어 있는 엔트리 등 ARP 캐시(ARP 스푸핑)에 저장할 수 있기 때문에 외부 네트워크에 대한 모든 트래픽을 대행 수신할 수 있기 때문입니다.
ARP 중개
ARP 미디에이션은 접속 회선상에서 다른 해상도 프로토콜(예를 들어 한쪽은 이더넷, 다른 한쪽은 프레임 릴레이)이 사용되는 경우 Virtual Private Wire Service(VPWS; 가상 프라이빗 와이어 서비스)를 통해 레이어 2 주소를 해결하는 프로세스를 말합니다.IPv4 에서는, 각 Provider Edge(PE; 프로바이더엣지) 디바이스는, 로컬로 접속된 Customer Edge(CE; 고객 엣지) 디바이스의 IP 주소를 검출해, 대응하는 리모트 PE 디바이스에 배포합니다.다음으로 각 PE 디바이스는 리모트 CE 디바이스의 IP 주소와 로컬 PE 디바이스의 하드웨어 주소를 사용하여 로컬 ARP 요구에 응답합니다.IPv6 에서는, 각 PE 디바이스는 로컬 및 리모트 양쪽의 CE 디바이스의 IP 주소를 검출해, 로컬 Neighbor Discovery(ND) 및 Inverse Neighbor Discovery(IND) 패킷을 대행 수신해, 리모트 PE [18]디바이스에 전송 합니다.
Inverse ARP 및 Reverse ARP
Inverse Address Resolution Protocol(Inverse ARP 또는 InARP)은 데이터 링크층(레이어 2) 주소에서 다른 노드의 네트워크층 주소(예를 들어 IP 주소)를 취득하기 위해 사용됩니다.ARP는 레이어 3 주소를 레이어2 주소로 변환하기 때문에 InARP는 그 반대로 기술될 수 있습니다.또한 InARP는 ARP에 대한 프로토콜 확장으로 구현됩니다. InARP는 ARP와 동일한 패킷 형식을 사용하지만 동작 코드는 다릅니다.
InARP는 주로 프레임 릴레이(DLCI) 및 ATM 네트워크에서 사용됩니다.이 네트워크에서는 가상 회선의 레이어2 주소가 레이어2 시그널링으로부터 취득되는 경우가 있습니다.또, 이러한 가상 회선을 [19]사용하려면 , 대응하는 레이어 3 주소를 사용할 수 있을 필요가 있습니다.
InARP와 마찬가지로 Reverse Address Resolution Protocol(Reverse ARP 또는 RARP)은 레이어 2 주소를 레이어 3 주소로 변환합니다.단, InARP에서는 요구 스테이션은 다른 노드의 레이어3 주소를 쿼리하지만 RARP는 주소 설정을 위해 요구 스테이션 자체의 레이어3 주소를 취득하기 위해 사용됩니다.RARP는 폐지되어 BOOTP로 대체되었습니다.BOOTP는 나중에 Dynamic Host Configuration Protocol(DHCP)[20]로 대체되었습니다.
ARP 스푸핑 및 프록시 ARP
ARP는 네트워크상에서 ARP 응답을 인증하는 방법을 제공하지 않기 때문에 ARP 응답은 필요한 레이어2 주소를 가진 시스템 이외의 시스템에서 발신될 수 있습니다.ARP 프록시는 다이얼업인터넷 서비스 등의 네트워크 설계의 일부로서 트래픽을 전송하는 다른 시스템을 대신해 ARP 요구에 응답하는 시스템입니다.반면 ARP 스푸핑에서는 응답 시스템 또는 스푸퍼는 다른 시스템의 주소에 대한 요구에 응답하여 해당 시스템에 바인드된 데이터를 가로채는 것을 목적으로 합니다.악의적인 사용자는 ARP 스푸핑을 사용하여 네트워크상의 다른 사용자에 대해 중간자 공격 또는 서비스 거부 공격을 수행할 수 있습니다.ARP 스푸핑 공격을 검출하고 실행하기 위해 다양한 소프트웨어가 존재하지만 ARP 자체는 이러한 [21]공격으로부터 보호하는 방법을 제공하지 않습니다.
대체 수단
IPv6 에서는, ARP 가 아니고, Neighbor Discovery Protocol 와 그 확장(Secure Neighbor Discovery 등)이 사용됩니다.
컴퓨터는 활성 프로토콜을 사용하는 대신 알려진 주소 목록을 유지할 수 있습니다.이 모델에서는 각 컴퓨터는 레이어 3 주소(IP 주소 등)와 레이어 2 주소(이더넷 MAC 주소 등)의 매핑 데이터베이스를 유지합니다.이 데이터는 주로 로컬네트워크 링크로부터의 ARP 패킷을 해석함으로써 유지됩니다.따라서 ARP 캐시라고 불리는 경우가 많습니다.적어도 [22]1980년대부터 네트워크 컴퓨터에는 [23][24][25]이 데이터베이스를 조회하거나 조작하기 위한 arp라는 유틸리티가 있습니다.
지금까지는 스태틱컨피규레이션파일이나 [26]중앙에서 관리하는 목록 등 주소 간의 매핑을 유지하기 위해 다른 방법이 사용되었습니다.
ARP 충전재
사용자 인터페이스가[27] 없는 네트워크 카메라나 네트워크 배전 [28]장치 등의 임베디드 시스템에서는 ARP가 관여하지 않기 때문에 초기 네트워크 접속에 ARP 스터핑을 사용할 수 있습니다.
ARP 스터핑은 다음과 같이 이루어집니다.
- 사용자의 컴퓨터에는 IP 주소가 수동으로 주소 테이블에 채워져 있습니다(통상은 디바이스의 라벨에서 MAC 주소를 취득한 arp 명령어를 사용합니다).
- 컴퓨터는 특별한 패킷(일반적으로 기본 크기가 아닌 ping 패킷)을 장치로 전송합니다.
- 그러면 디바이스는 이 IP 주소를 채택합니다.
- 그런 다음 사용자는 Telnet 또는 웹 프로토콜을 통해 통신하여 구성을 완료합니다.
이러한 디바이스에는 일반적으로 디바이스가 정상적으로 동작하면 이 프로세스를 디세블로 하는 방법이 있습니다.이는 이 기능에 의해 공격에 취약해질 수 있기 때문입니다.
표준 문서
- RFC 826 - Ethernet Address Resolution Protocol, 인터넷 표준 STD 37.
- RFC 903 - 역주소 해결 프로토콜, 인터넷 표준 STD 38.
- RFC 2390 - Inverse Address Resolution Protocol, 초안 표준
- RFC 5227 - IPv4 주소 경합 검출, 제안된 표준
「 」를 참조해 주세요.
레퍼런스
- ^ David C. Plummer (November 1982). "RFC 826, An Ethernet Address Resolution Protocol -- or -- Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware". Internet Engineering Task Force, Network Working Group.
- ^ a b c "Address Resolution Protocol (ARP) Parameters". www.iana.org. Retrieved 2018-10-16.
- ^ RFC 5342
- ^ RFC 1122
- ^ W. Richard Stevens, TCP/IP 일러스트레이티드, 제1권: The Protocols, Adison Wesley, 1994, ISBN 0-201-63346-9.
- ^ W. Richard Stevens, TCP/IP 일러스트레이티드, Volume 1: The Protocols, Adison Wesley, 2011, ISBN 0-321-33631-3, 14페이지
- ^ Chappell, Laura A.; Tittel, Ed (2007). Guide to TCP/IP (Third ed.). Thomson Course Technology. pp. 115–116. ISBN 9781418837556.
- ^ Cheshire, S. (July 2008). IPv4 Address Conflict Detection. Internet Engineering Task Force. doi:10.17487/RFC5227. RFC 5227.
- ^ Harmoush, Ed. "ARP Probe and ARP Announcement". Practical Networking. PracticalNetworking .net. Retrieved 3 August 2022.
- ^ Perkins, C. (November 2010). "RFC 5944 - IP Mobility Support for IPv4, Revised". Internet Engineering Task Force.
A gratuitous ARP MAY use either an ARP Request or an ARP Reply packet. [...] any node receiving any ARP packet (Request or Reply) MUST update its local ARP cache with the Sender Protocol and Hardware Addresses in the ARP packet [...]
- ^ Perkins, C. (October 1996). "RFC 2002 - IP Mobility Support". Internet Engineering Task Force.
- ^ Cheshire, S. (July 2008). "RFC 5227 - IPv4 Address Conflict Detection". Internet Engineering Task Force.
Why Are ARP Announcements Performed Using ARP Request Packets and Not ARP Reply Packets?
- ^ "FAQ: The Firewall Does not Update the Address Resolution Protocol Table". Citrix. 2015-01-16.
[...] garpReply enabled [...] generates ARP packets that [...] are of OPCODE type REPLY, rather than REQUEST.
- ^ "Gratuitous ARP in DHCP vs. IPv4 ACD Draft". Archived from the original on October 12, 2007.
- ^ Perkins, Charles E. (October 1996). "RFC 2002 Section 4.6".
- ^ Droms, Ralph (March 1997). "RFC 2131 DHCP – Last lines of Section 4.4.1".
- ^ RFC 3927
- ^ Shah, H.; et al. (June 2012). Address Resolution Protocol (ARP) Mediation for IP Interworking of Layer 2 VPNs. Internet Engineering Task Force. doi:10.17487/RFC6575. RFC 6575.
- ^ T. Bradley; et al. (September 1998). "RFC 2390 - Inverse Address Resolution Protocol". Internet Engineering Task Force.
- ^ Finlayson; Mann; Mogul; Theimer (June 1984). A Reverse Address Resolution Protocol. Internet Engineering Task Force. doi:10.17487/RFC0903. RFC 903.
- ^ Steve Gibson (2005-12-11). "ARP Cache Poisoning". GRC.
- ^ University of California, Berkeley. "BSD manual page for arp(8C) command". Retrieved 2011-09-28.
- ^ Canonical. "Ubuntu manual page for arp(8) command". Archived from the original on 2012-03-16. Retrieved 2011-09-28.
- ^ Apple Computer. "Mac OS X manual page for arp(8) command". Retrieved 2011-09-28.
- ^ Microsoft. "Windows help for arp command". Retrieved 2011-09-28.
- ^ Sun Microsystems. "SunOS manual page for ethers(5) file". Retrieved 2011-09-28.
- ^ Axis Communication. "Axis P13 Network Camera Series Installation Guide" (PDF). Retrieved 2011-09-28.
- ^ American Power Corporation. "Switched Rack Power Distribution Unit Installation and Quick Start Manual" (PDF). Archived from the original (PDF) on 2011-11-25. Retrieved 2011-09-28.
외부 링크

- "ARP Sequence Diagram (pdf)" (PDF). Archived from the original (PDF) on 2021-03-01.
- Gratuitous ARP
- Wireshark의 정보 및 샘플 캡처
- ARP-SK ARP 트래픽 생성 도구