ARP
1. Address Resolution Protocol
1.1. 개요
'''A'''ddress '''R'''esolution '''P'''rotocol
OSI 7 Layer에서 Layer 3에 위치한 프로토콜이며, MAC 주소와 IP 주소를 서로 연결하는 용도로 사용한다.
사실 이 내용은 일반 사용자 레벨에서는 거의 볼 일이 없는 내용이다. 하지만 ARP는 의외로 중요한 역할을 하는데, LAN 환경에서는 MAC 주소를 기반으로 통신하기 때문이다. ARP는 IP 주소를 기반으로 MAC 주소를 알아오는 역할을 한다. 실제로 Wireshark를 이용하여 패킷을 잡아보면 출발지 주소가 자기 랜카드의 MAC 주소, 도착지 주소는 브로드캐스트(255.255.255.255)이다. 예시로 192.168.0.0/24 환경에서 자신의 IP는 192.168.0.2이고, 192.168.0.10의 IP 주소를 가진 PC의 MAC 주소를 알려고 할 때 Info 부분에 "Who has 192.168.0.10? Tell 192.168.0.2" 라고 써 있는 것을 볼 수 있다. 이런 식으로 얻어온 ARP 정보는 ARP 테이블에 올라가는데, Microsoft Windows에서는 명령 프롬프트에 arp -a를 입력하면 볼 수 있다.
[image]
ARP 테이블은 캐시 개념이라 일정 시간이 지나면 사라진다. 바로 ARP를 초기화 할 수 있는데, 명령 프롬프트에서 arp -d를 입력하거나 랜 케이블을 분리했다 다시 연결해 주면 ARP 테이블이 초기화된다. 잘 보면 현재 환경은 IP 주소가 172.16.119.0/24의 사설 IP 환경인데, 현재 VMware Host-only 네트워크라 게이트웨이가 없다. 하지만 실제 로컬 네트워크 환경에서는 게이트웨이마저 ARP 테이블에 동적으로 올라와 있게 되는데, 이로 인해 발생할 수 있는 상황이 ARP spoofing. 자세한 것은 해당 항목을 참고해 보자.
[image]
실제로 ARP 패킷을 캡처한 모습이다, WireShark의 Info란을 보면 'who has'로 시작해서 'tell ~'로 끝나는 내용과, '~is at ~'라는 내용을 가진 패킷이 있는데, 'who was'로 시작해서 'tell ~~'로 끝나는 내용이 담긴 패킷은 ARP의 Request 패킷이다, 'who has 192.168.50.1? tell 192.168.50.2'라는 Request 패킷이 있다면, 이는 '192.168.50.1'가 누군지 안다면 '192.168.50.2'으로 MAC 주소를 보내달라는 뜻으로 해석이 가능하며,
'~is at ~' 내용의 Reply(Response) 패킷은 '192.168.50.1 is at AA:AA:AA:AA:AA:AA' 라는 내용이 있다면 '네가 물어본 192.168.50.1의 MAC 주소는 AA:AA:AA:AA:AA:AA야' 라는 내용으로 해석이 가능하다.
1.2. RARP
'''R'''everse '''A'''ddress '''R'''esolution '''P'''rotocol
ARP와는 반대로 MAC 주소를 가지고 IP 주소를 알아내는 프로토콜이긴 한데, ARP 의 반대 동작을 하는 것은 아니다.
인터넷 초기 하드 디스크가 달리지 않은 단말이 부팅할 경우, 이 단말은 자신의 IP 가 무엇인지 알지 못한 채로 부팅되는데, 자신의 MAC 주소를 이용해서 서버에게 자신의 IP 를 물어보고, 이를 이용해서 설정하는 용도로 사용되었다. DHCP나 BOOTP처럼 '''IP를 자동으로 할당받는게 아니라 이미 다른 PC에 할당된 IP의 MAC 주소만을 가지고 알아오는 것이다.'''
디스크 달리지 않은 단말은 21세기에는 더이상 사용되지 않으므로, RARP 는 사실상 폐기된 프로토콜이다.
1.3. IPv6 에서의 동작
'''ND''' ('''N'''eighbor '''D'''iscovery) 또는 '''NDP''' ('''N'''eighbor '''D'''iscovery '''P'''rotocol)
IPv6 에서도 동일하게 MAC 주소로 부터 IP 주소를 얻어 오는 기능이 필요하다. 다만, 이것은 ARP 라고 부르지는 않고, 대신 IPv6 ND (Neighbor Discovery) 또는 NDP(Neighbor Discovery Protocol) 이라고 부른다.
이에 대해서는 RFC 4861에서 설명되어 있다.
개념상으로 ARP 와 같은 동작을 하고 실제로도 유사하게 동작하지만, IPv6 구조에 따라 다르게 동작하는 부분도 많이 있다. NDP 는 ICMPv6 를 이용해서 동작한다.
참고로 윈도우와 리눅스에서는 각각 아래와 같은 명령으로 ipv6 neighbor 정보를 확인할 수 있다.
2. ARP Instruments
[image]
미국에 있던 신디사이저 회사. 회사명은 설립자 알란 R. 펄먼('''A'''lan '''R'''. '''P'''earlman)에서 딴것으로 추정.
1969년 설립되어 70년대에 ARP2600, String Ensemble, Odyssey등 명악기들을 제작했으나, 1981년 재정적 어려움으로 인해 문을 닫았다.
2.1. 대표 모델
2.1.1. 2600
[image]
모노포닉 모듈러 신스. ARP2500에 후속버전. 1971년 생산되기 시작했다.
당시 모듈러 신스중 그나마 작고 휴대성이 좋아, 당시 뮤지션들이 투어용으로 쓰기 딱이었다. 물론 지금은 엄청난 무게, 아날로그 회로에 온도 민감성 때문에 못들고 다니지만...
ARP2600이 사용된 대표적인 음악 - Oxygene 4(장 미셸 자르)[2]
2.1.2. Odyssey
[image]
모노포닉 휴대용 신스. 1972년 생산되었다.
2600에 축소 버전으로, 가격도 미니무그에 반정도 하는 1,495달러 였다.
ARP가 없어진 1981년 같이 단종되어 버렸는데, 이후 약 34년뒤인 2015년에 KORG가 ARP 공동 창업자인 David Friend와 협력해 재출시했다. 최근에도 판매중.
Odyssey가 사용된 대표적인 음악 - Chameleon(허비 행콕)
2.1.3. String Ensemble
[image]
''' 70년대 당시 팝, 록, 재즈, 디스코등 대중음악에 광범위하게 사용된 명(名) 스트링 신스 '''
1974년 생산된 스트링 신디사이저이다.
ARP에서 만든거지만, 내부 음색 엔진은 네덜란드에 Eminent BV라는 전자 오르간 회사에서 제조한 Eminent 310 Unique[3] 의 스트링 앙상블 섹션을 기반으로 한다.
String Ensemble이 사용된 대표적인 음악 - Video Killed the Radio Star(버글스)
String Ensemble이 사용된 대표적인 음악 - Dogs(핑크 플로이드)[4]
2.2. 사용자
- 크라프트베르크 - Odyssey
- 장 미셸 자르 - 2600, 2500
- 허비 행콕 - Odyssey, Soloist, 2600, String Ensemble
- 엘튼 존 - String Ensemble
- 마이크 올드필드 - 2600
- 코무로 테츠야(TM NETWORK) - String Ensemble
- 릭 라이트(핑크 플로이드) - String Ensemble, Quadra
- 토니 뱅크스(제네시스(밴드)) - Pro Soloist, Quadra, 2600
- 존 로드(딥 퍼플) - Odyssey
- 제프 다운스(버글스[5] ) - String Ensemble
- deadmau5 - 2500, 2600
- 사카모토 류이치,호시노 하루오미(YMO) - Odyssey