DNS

박찬영·2024년 2월 19일
0

DNS

Domain Name System

DNS(Domain Name System)은 사용자가 숫자로 된 인터넷 프로토콜 주소 대신 인터넷 도메인 이름과 검색 가능한 URL을 사용하여 웹사이트에 접속하는 것을 가능하게 합니다.
사용자는 93.184.216.34와 같은 IP 주소를 기억하는 대신 www.example.com을 검색할 수 있습니다.

✨ DNS 를 알기 전 기본 지식

  1. 도메인 이름 (Domain Name): 도메인 이름은 웹사이트나 네트워크 서비스를 식별하는 데 사용되는 사람이 이해하기 쉬운 문자열입니다. 도메인 이름은 계층적인 구조를 가지며, 오른쪽에서 왼쪽으로 점으로 구분됩니다. 예를 들어, "www.example.com"은 "com" 도메인 내에 있는 "example" 하위 도메인 내의 "www" 호스트를 가리킵니다.
  2. IP 주소 (Internet Protocol Address): IP 주소는 컴퓨터 또는 네트워크 장치를 고유하게 식별하는 숫자입니다. 모든 인터넷 연결된 장치는 IP 주소를 가지고 있으며, 데이터를 주고받을 때 이 주소를 사용하여 통신합니다.
  3. DNS 서버 (DNS Server): DNS 서버는 도메인 이름을 IP 주소로 변환하거나 그 반대로 IP 주소를 도메인 이름으로 변환하는 역할을 합니다. 이러한 서버들은 전 세계에 분산되어 있으며, 이를 통해 인터넷 사용자는 도메인 이름을 입력하여 웹사이트에 액세스할 수 있습니다.
  4. DNS 쿼리 (DNS Query): 사용자가 웹 브라우저에 도메인 이름을 입력하면, 컴퓨터는 DNS 서버에 해당 도메인 이름을 IP 주소로 변환해 달라는 요청을 보냅니다. 이 요청을 DNS 쿼리라고 하며, DNS 서버는 이를 처리하여 응답을 반환합니다.
  5. DNS 레코드 (DNS Record): DNS 서버에는 다양한 유형의 DNS 레코드가 저장되어 있습니다.
    이 레코드들은 도메인 이름과 관련된 정보를 포함하며, 예를 들어 A 레코드는 도메인 이름을 IPv4 주소로 매핑하고, AAAA 레코드는 도메인 이름을 IPv6 주소로 매핑합니다.

✨ www.naver.com 을 입력했을 때

내 컴퓨터에서 www.naver.com 에 접속하려고 합니다.
그런데, 현재 내 브라우저는 이 서버의 IP 를 알지 못합니다.
그래서 브라우저는 PC 에 설정된 로컬 DNS 서버에 해당 도메인과 호스트명의 IP 를 갖고 있는지 물어봅니다.
DNS 서버는 그냥 네임 서버라고 불리기도 합니다.
이 로컬 DNS 서버는 보통 통신사마다 지정된 곳이 있는데 사용자가 다른 곳으로 바꿀 수도 있습니다.
여튼 여기에는 이 주소(www.naver.com)의 정보가 이미 캐싱돼있을 수도 있고 없을 수도 있습니다.
있는 경우 바로 반환을 하며, 없을 경우 로컬 DNS 는 이 Root DNS 서버에다가 이 주소에 해당하는 IP를 어디서 찾을 수 있는지 물어봅니다.
이때 이 루트 DNS 서버 자체는 전 세계에 13군데가 있습니다.
여튼 이 Root DNS 서버는 .com 으로 끝나는 도메인들을 담당하는 서버의 IP 주소를 반환합니다.
그럼 로컬 DNS 서버는 이 주소를 받아서 다시 .com 을 담당하는 서버에 도착하면 .com 을 담당하는 서버는 다시 naver.com 의 도메인 정보를 가진 서버의 IP 주소를 반환합니다. 그러면 마지막으로 naver.com 의
도메인 정보를 가진 서버로 도착하게 되면 여러 호스트네임별 IP 주소들이 들어있습니다.
여기로 부터 www 에 해당하는 IP 주소를 얻어낸 다음 브라우저에게 반환하고 비로소 ww.naver.com 의 서버로 접속하게 됩니다.

DNS 스푸핑 - > IP 주소를 가로채서 자기들의 잘못된 IP 주소를 알려줘서 해킹하는 것을 말한다.

위에서 로컬 DNS 서버를 사용자가 다른 곳으로 바꿀 수 있다고 했는데 다른 곳으로 바꾸는 이유는
특정 사이트를 좀더 빠르게 이용하고 싶거나 정부가 막아놓은 사이트를 접속하고 싶을때 이용합니다.
하지만 다른 서비스들이 느려질 수가 있습니다.

✨ A Record, CNAME

A Record -> 도메인을 서버의 IP 로 직접 연결하는 겁니다. IP 로의 직통 연결이라 접속이 빠르다는 장점이 있습니다.
CNAME -> 도메인을 별명과 연결하는 거에요. IP가 유동적으로 변하는 서버의 경우 그 바뀌는 IP들에 일정하게 연결된 다른 도메인으로 연결하는 것을 뜻합니다. AWS 나 Firebase 같은거를 사용할 때 이용합니다.

profile
오류는 도전, 코드는 예술

0개의 댓글

관련 채용 정보