1. ARP : Adress Resoulution Protocol 란?
Host A와 Host B가 통신을 하기 위해서는 링크계층의 Physical Adress(Mac Adress)와 네트워크계층의 IP Adress를 알고 있어야 합니다. 이 두 주소사이의 변환을 해주는 프로토콜이 ARP입니다.
이는 마치 Domain 이름과 IP주소를 매핑시켜주는 DNS와 유사하기도 합니다.
※ARP - IP - DNS 개념도
(WINS : Window Internet Name Service는 NetBIOS이름으로 변환시켜주는 프로토콜로 MS사의 윈도우를 사용하는 회사나 대학에서 DNS보조용도로 사용합니다. //브로드캐스팅을 없애주어 트래픽을 줄일수 있습니다.)
각 IP Node(Host와 Router 등)의 랜카드에는 ARP table을 가지고 있습니다. 이는 마치 라우터의 라우팅테이블과 유사하며 IP / MAC 주소간의 매핑정보를 가지고 있습니다.
형태는 <IP Address; Mac Address; TTL>로 구성되어있습니다. (일반적으로 TTL값은 20분)
※ [CMD] - [ arp -a ]
위의 명령어로 들어가면 Host의 각 인터페이스의(랜카드의) ARP table을 확인할 수 있습니다.
2. ARP : Same LAN(: Network : Subnet)
동일네트워크에서의 ARP 동작
<ARP Request>
1.호스트A가 D와 통신을 하려고 한다. 먼저 D로 가기 위한 MAC주소를 획득해야함.(D의 IP주소는 알고 있음)
2.호스트A는 ARP Request 패킷을 생성하고, Sender MAC과 IP주소를 자신의 주소로 채워넣고, Target IP주소는 D의
IP주소로 채워넣은 후 Target의 MAC주소는 0으로 지정.
3.호스트A는 생성된 ARP패킷을 네트워크(서브넷)으로 Broadcast 전송함.
1. 호스트D는 수신받은 ARP Request에서 Target IP주소가 자신인 것을 확인하고 ARP 처리로 넘김.
2. 호스트D는 ARP Replay 패킷을 생성하고 Target IP주소와 MAC주소는 ARPRequest의 Sender IP와 MAC주소로
설정하고, Sender IP와 MAC주소를 자신의 주소로 채워넣음.
3. 호스트 D는 ARP패킷을 호스트 A로 Unicast로 전송함.
4. 호스트 A는 ARP Replay를 가지고 해당 MAC주소로 통신을 시도함.
※ 다른 네트워크에 있는 호스트인 경우는 해당 호스트의 MAC주소를 얻는 것이 아니라 게이트웨이의 MAC주소를 얻게됨. 일반적으로 라우터의 MAC주소.
※ 다른 네트워크에 있는 호스트인 경우는 해당 호스트의 MAC주소를 얻는 것이 아니라 게이트웨이의 MAC주소를
얻게됨. 일반적으로 라우터의 MAC주소.
※ ARP is "plug-and-play" : 네트워크 관리자의 중재없이 노드들이 그들의 ARP table을 자동 생성. |
- Unicast : 메시지 수신주소 1개를 가지는 1:1 통신형태
- Broadcast : 네트워크 내의 모든 주소(노드)들에게 동일 메시지를 보내는 형태
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
ARP 및 ARP 스니핑 관련자료.