phantom0219 2024. 1. 10. 21:44

필자는 dns의 자세한 이해 없이 얕은 지식으로 모의해킹 공부에서 관련 도구들을 사용했기에 자세한 정리를 위해 글을작성함.

글 작성에 참고한 내용 : Rookies 수업, 네트워크 해킹과 보안-한빛아카데미, 칼리 리눅스와 백트랙을 활용한 모의해킹-에이콘


DNS는 무엇인가?

DNS(Domain Name System)은 IP주소를 사람이 이해하기 쉬운 명칭인 도메인 이름으로 상호 매칭 시켜주는 시스템이다. 인터넷 전화번호부 라고 이해해도 좋다.

DNS는 어떻게 작동하는 것인가?

도메인 이름에 대한 IP주소를 얻는 순서 (ex. www.naver.com)
1. hosts파일에 정보가 없으면 시스템에 설정된 DNS서버인 로클 DNS서버에 질의한다.
2. 로컬 DNS서버에도 해당 정보가 없으면 루트 DNS서버에 질의를 보낸다.
3. 루트 DNS 서버에서 www.naver.com에 대한 정보가 없으면 com관리하는 DNS 서버에 대한 정보를 보내준다,
4. 로컬 DNS 서버는 com DNS 서버에 www.naver.com에 대해 다시 질의한다.
5. 해당 정보가 없을 경우, com DNS서버는 다시 nvaer.com에 질의하도록 로컬 DNS서버에 보낸다.
6. 로컬 DNS 서버는 마지막으로 naver.com의 DNS서버에 질의한다.
7. naver.com의 DNS 서버로 부터 www.naver.com의 IP주소를 얻는다,
8. 해당 IP주소를 클라이언트에 전달한다.

그 후 클라이언트는 받은 주소로 서버에 접속한다.

DNS 레코드

DNS레코드는 권한 있는 DNS 서버에 있는 명령으로서, 도메인에 연계된 IP 주소 및 해당 도메인에 대한 요청의 처리 방법에 대한 정보를 제공한다. 이 레코드는 DNS 구문이라고 하는 일련의 텍스트 파일로 구성된다. DNS 구문은 DNS 서버에게 수행할 작업을 알려주는 명령으로 사용되는 문자열이다.

DNS 레코드 종류

종류 내용
A 도메인의 IP주소를 갖고 있는 레코드(1:1, 1:N, M:1)
PTR A 레코드와 상반된 개념. IP주소에 대해 도메인 명을 맵핑하는 역할
NS DNS 서버를 가리키며, 각 도메인에 적어도 한개 이상 있어야함
CNAME 호스트의 다른 이름을 정의하는 데 사용
SOA 도메인에 대한 권한이 있는 서버
반응형