-
[DNS] Domain Name System 개요생활코딩/WEBn 2020. 9. 28. 18:30
[강의 출처] opentutorials.org/course/3276
Domain Name System이란?
- 인터넷에 연결된 컴퓨터 한 대 한 대를 host라고 하고,
- host와 host가 연결될 수 있도록 각 host의 주소를 표현해주는 IP address라고 한다.
- 숫자의 나열인 IP주소는 그 자체로 기억하기 어렵기 때문에, 이를 텍스트 형태의 '이름(Domain)'으로 표현하기로 하고,
- DNS Server에 그 쌍을 기록해두게 되었다. (Ex www.icann.org: 192.0.43.7)
- 따라서 실제 인터넷 접속은 도메인주소로 인터넷에 접속 -> 운영체제가 DNS Server에 접속 후 IP주소 확인 -> 해당 주소로 접속 형태로 이루어진다.
IP주소와 host
- 운영체제에는 hosts 파일이 있으며, hosts에 등록된 도메인에는 DNS Server 없이 접속 가능 (DNS Server에 우선해 처리)
- Mac OS의 경우 /etc/hosts에 저장되어 있어서, sudo nano /etc/hosts로 수정 가능
- 악의적으로 hosts를 변조해 악의적인 IP주소: 은행도메인 형태로 접속하게 만드는 것이 피싱의 기본 수법
DNS Server
- 기존에는 스탠포드 리서치 기관에서 hosts 파일을 관리하고, 다른 이용자들이 해당 파일을 다운 받아서 이용했으나
- 갱신 및 다운로드를 위한 시간/비용 지출, 하나의 파일로 관리하기에 너무 많은 데이터 양 등의 이슈로 인해
- DNS Server로 해당 서비스를 이전하여 실시간 서비스가 가능해짐
Public DNS
- 일반적인 경우, 도메인주소로 접속을 시도하면 ISP(통신사)에서 자동으로 할당해준 DNS Server를 이용해 접속
- 다만 속도, 보안 등의 이슈로 통신사가 지정한 DNS Server를 이용하고 싶지 않은 경우,
- 다른 DNS 서비스들(Public DNS)를 이용할 수 있음 (ex 구글의 8.8.8.8, Cloudflare의 1.1.1.1 등)
도메인 이름의 구조 및 이름 등록 과정
DNS 서버는 여러 대가 계층적으로 구성되어 있으며, 탐색시 상위 -> 하위 순으로 탐색하여 최종 주소를 확인
예를 들어 위의 주소라면 .(루트 네임 서버) -> com.(탑레벨 도메인 서버) -> example.com. -> blog.example.com. 순서로 탐색해서 IP주소를 얻게 됨
nslookup
- Name Server 조회 명령어로, 터미널에 아래와 같이 실행
- 응답 속도 개선을 위해 cache를 사용하는데, 이렇게 캐시가 응답한 경우 아래처럼 Non-authoritative answer로 표시됨
$ nslookup naver.com
# 결과 Server: 8.8.8.8 # 사용하고 있는 DNS서버 Address: 8.8.8.8#53 Non-authoritative answer: Name: naver.com Address: 125.209.222.141 # 해당 사이트의 IP주소
만약 Authoritative answer이 필요한 경우, 먼저 -type=ns로 관할 네임서버 주소를 확인 후,
$ nslookup -type=ns naver.com
# 결과 Non-authoritative answer: naver.com nameserver = ns2.naver.com. # naver.com을 담당하는 네임서버의 위치 naver.com nameserver = ns1.naver.com. # 이쪽은 백업/보조 Authoritative answers can be found from:
해당 네임서버에 요청하면 된다.
$ nslookup naver.com ns2.naver.com.
# 결과 Server: ns2.naver.com. Address: 125.209.249.6#53 # 이제 Non-authoritative 표시되지 않는다
DNS record
- DNS Server에 저장하는 DNS 정보 하나하나를 가리킴
- 데이터타입은 A, NS, CNAME 등 여러가지가 있음
- 실제 IP주소인 경우 A(Address): 최종적으로 필요한 IP주소 (ex 125.209.249.6)
- 별칭인 경우(www.naver.com: naver.com.) CNAME(Canonical Name)
- 아래 예시처럼, 여러 도메인을 운영하는 데 IP주소가 자주 바뀌는 경우 유리하다.
- temp.com. A 실제 IP주소(변경은 여기만 하면 된다)
- domain-for-user.com CNAME temp.com.
- another-domain.com CNAME temp.com.
- 네임서버인 경우 NS(Name Server)
도메인을 다른 웹호스팅 서비스의 웹페이지와 연결하기
- 원하는 도메인 선정 후 구매
- 웹호스팅 서비스에서 제공하는 IP주소를 DNS Server에 A 타입 DNS record로 매핑
- 웹호스팅 서비스의 Custom Domain 등에 해당 도메인 등록
'생활코딩 > WEBn' 카테고리의 다른 글
[Node.js & MySQL] Intro, 환경설정 (0) 2020.11.03 [OAuth2.0] OAuth2.0 개요 (0) 2020.09.30 [Node.js] 입출력 데이터의 보안 이슈 (0) 2020.09.18 [Node.js] 인코딩 - encodeURI(), charset=utf-8 (0) 2020.09.17 [Node.js] 비동기/동기(Sync)와 콜백, request (0) 2020.09.15