title: "ARP테이블"
last_modified_at: 2019-02-22
ARP 테이블
ARP 테이블: IP주소 - MAC주소를 매칭해주는 테이블. DNS처럼!
cmd에 ①arp -d
②ping 8.8.8.8
을 치면 ping[^1]시간/접속정보 등이 나온다.
cmd에 ①arp-a
를 치면 arp 캐시 테이블을 볼 수 있다. IP주소-MAC주소가 대응된 테이블이 나온다.
Ping
ping: TCP/IP환경에서 목적지 호스트가 잘 작동/응답하는지 점검하는 기능
ping
명령어를 입력했을 때, 내 컴퓨터에서 목적지까지 찾아가는 과정은 다음과 같다:
목적지 호스트 찾아가기
- 서브넷 마스크 이용, 네트워크 ID 찾음
- 출발지 Network ID와 도착지 Network ID 비교
- [출발지 네트워크ID ≠ 도착지 네트워크 ID] 인 경우 ⇒ 라우터 이용
- [출발지 네트워크ID = 도착지 네트워크 ID] 인 경우 ⇒ 스위치 이용
- 데이터 보내기
1. 라우터를 찾아가는 경우
출발지와 도착지의 네트워크 ID가 다르다 == 다른 네트워크에 있다 == 다른 LAN영역에 있다!
따라서, 다른 랜과 연결해주는 라우터를 찾아간다. 어떻게? 목적지 IP대신 라우터의 IP를 들고서.
라우터와 내 컴퓨터는 동일 LAN 영역 안에 있다. 그렇다면 스위칭
을 통해 라우터로 찾아가면 된다. 스위칭을 하려면 MAC주소가 필요한데, 지금 라우터의 MAC주소를 모른다면? (=ARP캐시 테이블이 비어 있다면?) 캐시 테이블부터 채우게 된다.
라우터의 MAC주소 얻기
나는 라우터의 MAC주소를 모른다. 따라서 나와 같은 스위치에 물린 모든 호스트에 질의를 보낸다[^Broadcast]. 그러면 질의를 받은 라우터가 나에게 맥 주소를 알려준다.[^Unicast] 이렇게 나는 라우터의 MAC주소를 얻어 ARP캐시 테이블을 채운다.
라우팅하기
이제 라우터의 맥주소를 얻었으니 내 컴퓨터에서 라우터로 스위칭 할 수 있다. 데이터를 라우터로 보내주면, 그 이후부터는 라우팅을 통해 목적지에 도달할 것이다.
2. 스위치를 찾아가는 경우
출발지와 도착지의 네트워크 ID가 다르다 == 같은 네트워크에 있다 == 같은 LAN영역에 있다!
같은 LAN영역 안에 있으므로 스위칭을 이용한 내부통신이 가능하다.
1번에서 라우터를 찾아낸 방식과 같이, 목적지 IP를 이용하여 목적지 호스트의 MAC주소를 알아낸다. 이번에는 라우터를 거칠 필요 없이 바로 목적지로 스위칭하면 될 것이다.
정리
데이터 송수신 위치 찾기
- 출발지 - 도착지 네트워크 ID 얻고 비교하기
- 목적지 위치 알아내기
- if(목적지≠도착지) : 다른 네트워크에 있다 == 라우팅이 필요하다
- 라우터의 MAC주소를 알아낸다. (브로드캐스트 & 유니캐스트 방식으로)
- 라우터까지 데이터를 보낸다 (스위칭, MAC이용)
- 라우터가 목적지까지 데이터를 보낸다(라우팅, IP이용)
- if(목적지==도착지): 같은 네트워크에 있다 == 스위칭한다 == 라우팅이 필요 없다
- 도착지의 MAC주소를 알아낸다. (브로드캐스트 & 유니캐스트 방식으로)
- 도착지로 데이터를 보낸다 (스위칭, MAC이용)
- if(목적지≠도착지) : 다른 네트워크에 있다 == 라우팅이 필요하다
이 모든 일들은 운영체제가 알아서 한다.
그리고 이렇게 ARP요청&응답이 일어나는 공간을 ARP 영역이라고 한다. 이 ARP는 동일 네트워크 ID를 공유하는 범위 내에서 일어나므로 LAN영역과도 같다.
즉, LAN영역 == 동일 네트워크 ID == 내부통신 가능 영역(by MAC) == 단일 ARP영역
참고
해킹 입문자를 위한 TCP/IP 이론과 보안(오동진)
정보통신기술용어해설(http://www.ktword.co.kr/)
정보통신용어사전(http://terms.tta.or.kr/mobile/main.do)
[^1]: 출발지-목적지 사이 데이터 교환이 잘 이루어지는지 회선 상태를 점검하는 기능
'Study > Tips' 카테고리의 다른 글
마이크로서비스, 도커, 컨테이너 관련 글 모음 (0) | 2020.07.22 |
---|---|
티스토리 코드블럭에 html을 작성하면 미리보기에 적용이 된다. (0) | 2020.05.17 |
DHCP,DNS,MAC주소 (0) | 2020.03.11 |
IP주소, 서브넷 마스크, 게이트웨이 (0) | 2020.03.11 |
파이썬 코딩 팁 (0) | 2020.02.25 |