본문 바로가기
공부/네트워크

ARP 캐시 테이블 & DNS 캐시 테이블

by 맑은청이 2020. 8. 20.
728x90
반응형

https://com24everyday.tistory.com/235?category=1142270

 

네트워크 용어 정리(DNS,DHCP,IP,서브넷마스크 등)

이더넷 어댑터는 LAN 카드(NIC)를 의미 이더넷(Ethernet) 이란 LAN 영역에서 사용하는 통신 기술 중 하나. 사실상 표준 방식. IP 주소와 범위 :IP 주소는 컴퓨터의 주소라고 할 수 있음. 0.0.0.0 ~ 255.255.255.2

com24everyday.tistory.com

MAC 주소와 IP 주소에 대해 제대로 모르시는 분은 위 포스팅을 보고 와주세요.

 

오늘은 아주 중요한 ARP(Address Resoution Protocol) 캐시 테이블과 DNS 캐시 테이블에 대해 정리해보겠습니다. 

 

명령어 'ping ip주소' 을 사용하면 해당 ip주소와 연결이 되어있는지를 알려줍니다. 

 

arp -d : arp 연결 삭제 

arp -a : arp 연결 보여줌 

 

window cmd 에서 arp 캐시를 삭제해주기 위해서는 다음과 같은 명령어를 입력해야합니다. 

 

netsh interface ip delete arpcache

 

다음과 같이 ip 주소와 대응하는 MAC 주소가 있는 것을 볼 수 있습니다. 이렇게 이 둘의 대응 관계를 저장해놓는 테이블이 ARP 캐시 테이블이라고 합니다.  

 

데이터를 전송하기 위해서 일련의 ARP 요청과 응답 과정은 다음과 같습니다. 

 

이해를 돕기 위해 출발지 IP, 맥주소 와 목적지 IP 는 다음과 같이 설정합니다. 

출발지 192.168.0.13 / 00-24-1D-DF-8C-47

목적지 8.8.8.8 / 모름

 

위와 같이 출발지는 ip,MAC 을 다 알고있지만 목적지의 MAC 은 모르는 경우가 많습니다. 

운영체제는 'ping 8.8.8.8' 을 입력받으면 서브넷 마스크를 통해서 출발지와 목적지의 네트워크 ID 를 비교합니다. 

이게 다르면 두 주소는 다른 LAN 영역에 있다는 의미가 됩니다. 

출발지와 다른 LAN 영역에 있는 목적지로 데이터를 전송하기 위해서 운영체제는 자기가 사용하는 라우터의 IP 주소를 목적지 IP 로 변경합니다.  

 

위에 예시는 다음과 같이 될 겁니다. (서브넷 마스크는 255.255.255.0)

 

출발지 192.168.0.13 / 00-24-1D-DF-8C-47

목적지 192.168.0.1/ 모름 

 

192.168.0.1 는 현재 DHCP 서버의 주소입니다. 

 

이제 목적지 IP 와 상응하는 맥주소를 찾아야합니다. 

그래야 출발지와 동일한 LAN 영역에 위치한 게이트웨이까지 스위칭 통신할 수 있기 때문입니다. 

(스위칭은 같은 LAN 영역에서 , 라우팅은 다른 LAN 영역에서의 통신입니다.) 

 

하지만 현재는 맥주소를 모르기 때문에 ARP 질의를 브로드캐스트(broadcast) 방식으로 전송합니다. 

브로드캐스트같은 LAN 영역에 있는 모든 호스트에게 데이터를 전송한다는 의미입니다. 

이는 ARP 캐시 테이블에 대응하는 맥주소가 없을 경우에 해당됩니다. 

 

ARP 브로드캐스트 질의를 받은 호스트 중에 '192.168.0.1'번을 사용하는 호스트는 자신에 맥주소를 유니캐스트(unicast)방식으로 보내줍니다. 유니캐스트는 브로드캐스트와 상응하는 거라고 생각하면 됩니다. 1:1 채팅이에요. 

 

이 정보는 자신의 ARP 캐시테이블에 반영합니다. 

이 후 운영체제에서 이 테이블을 참조해 유니캐스트 방식으로 게이트웨이까지 전송합니다. 다음은 게이트웨이가 IP 주소에 기반해 라우팅 통신으로 전송합니다.

 

이처럼 ARP 요청과 응답이 일어나는 공간을 ARP 영역이라고 합니다. LAN 의 또 다른 차원 개념이라고 생각하시면 됩니다. 

 

정리하자면 다음과 같습니다. 

 

ARP 기능 - IP 주소와 MAC 주소 연결

ARP 캐시 테이블 - IP 주소와 MAC 주소의 대응 관계를 저장한 테이블

브로드캐스트 방식 - 자신과 동일한 네트워크 ID 를 사용하는 모든 호스트에게  데이터를 전송하는 방식

유니캐스트 방식 - 특정한 호스트에게 데이터를 전송하는 방식

ARP 영역 - ARP 요청과 응답이 일어나는 공간

 

 

 


DNS 캐시 테이블 

 

ipconfig/flushdns - DNS 캐시 테이블 삭제 

ipconfig/displaydns - DNS 캐시 테이블 확인

 

ping 은 IP 주소 뿐만 아니라 도메인 네임(www.naver.com) 을 쳐도 연결이 되는 걸 볼 수 있습니다. 

어떻게 알고 그러는 걸까요? 

답은 'C:\Windows\System32\drivers\etc\hosts' 에 있습니다.

 

 다음과 같은 내용을 볼 수 있습니다. 

hosts 에 존재하는 도메인 네임은 IP 주소를 안 치더라도 ping 과 같은 명령어에 쓸 수 있는 겁니다. 

도메인을 추가할려면 관리자 권한이 필요합니다. 이를 악의적으로 수정해서 해킹이 이루어질 수도 있기 때문이죠.

DNS 캐시 테이블의 대응 관계를 조작하는 것DNS 스푸핑(Spoofing)공격 혹은 파밍(Pharming) 공격이라고 합니다. 이는 hosts 파일을 변경해서도 가능합니다. 

(ARP 캐시 테이블을 공격하면 ARP 스푸핑입니다.)

 

 

DNS 캐시 테이블에 해당 도메인 네임이 없다면 운영체제는 로컬 DNS 서버 IP 주소로 도메인 네임에 대한 질의를 요청합니다. 응답을 받으면 DNS 캐시 테이블에 반영합니다. 왠지 ARP 캐시 테이블을 갱신하는 것과 유사하지요.

 

 DNS 질의 순서

1. 로컬 하드 디스크에서 검색

2. DNS 캐시 테이블에서 검색

3. 로컬 DNS 서버에게 질의 

728x90
반응형