안녕하세요 오늘은 DNS(Domain Name System)에 대해 알아보겠습니다. DNS서버 구축을 하기 위해 먼저 개념을 알고가는 것이 좋다고 생각해서 먼저 글을 작성해봅니다 시작해보겠습니다.
DNS 란?
- 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP주소로 해석해주는 TCP/IP 네트워크 서비스입니다
- 계층 구조를 가지는 분산데이터베이스 구조
- 각 조직을 구분해주는 도메인 이름을 관리하는 DNS 서버들이 모여서 만들어 낸 가상 이름 공간
DNS가 생겨난 이유
TCP/IP 환경에서 IP 주소로 시스템을 구분 (외우기 부담스러움)
인터넷 초기
- SNI-NIC라는 컴퓨터가 hosts.txt파일을 가지고있습니다
- hosts.txt에는 모든 컴퓨터의 Hostname 과 IP주소 정보가 저장됩니다
- Client는 FTP를 이용해 SRI-NIC에 접근해서 hosts.txt파일을 다운로드합니다
문제점
- 업데이트가 늦다
- 네트워크 트래픽(원치않은 곳으로 우회해서 접속할 수 있다)
- 이름이 중복될 수 있다
해결법
1. 호스트 이름에 계층구조사용
2. 분산된 데이터베이스 이용(DNS)
https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/resources/dns/dnsInfo.jsp
DNS 동작과정
- Local(hosts) -> DNS cashe table -> DNS server
- 위 과정에서 없다면 최상위(루트도메인) -> top level Domain -> Second level Domain -> Subdomain순으로 IP를 찾음
- 이 때 이 이름은 FQDN으로 유일
- SOA(Start of Authority) : DNS zone 의 기본 이름 식별
- A(Host Record) : 호스트 이름이 정의된 주 영역
- CNAME(Aliad Record) : 별칭
- MX(Mail Exchange Record) : 메일 서버에서 이용
- SRV(Service Resources) : 도메인에서 서비스 이용이 가능한지 식별
- NS(Name Servers) : 도메인의 모든 네임서버 식별
- AAAA(IPv6 DNS Record) : IPv6 주소를 기준으로 하는 레코드
루트힌트(Root Hints)
- DNS 루트 서버의 IP주소를 포함하고 있는 파일
DNS 쿼리(Query)
- 쿼리는 Recursive(재귀) or Iterative(반복)으로 구분
- DNS 클라이언트와 서버는 서로 쿼리를 교환
네임 스페이스를 위한 권한이 있는 DNS서버와 권한이 없는 DNS서버로 구분
- 네임 스페이스를 위한 권한이 있는 DNS 서버 : 요청된 IP주소를 응답
- 네임 스페이스를 위한 권한이 없는 DNS 서버 : 캐시 정보 확인, 전달자 이용 , 루트 힌트를 이용
DNS 기본 동작
1. Client server가 Local DNS Server에 쿼리를 보냅니다 mail1.nwtraders.com의 IP주소를 알고있냐고(Local DNS에서 모른다고 가정하겠습니다)
2. Local DNS는 mail1.nwtraders.com에 대해 모르면 가정 먼저 Root DNS에 쿼리를 보냅니다.
3. 모른다고 답이오면 다음 DNS com 을 관리하는 DNS에 물어봅니다.
4. com DNS도 모른다고 답이오면 다음 Nwtraders.com에 물어봅니다
5. Nwtraders.com을 관리하는 DNS서버에서 IP주소를 알고있다면 Authoritative Response를 보냅니다
6. 그것을 받은 Local DNS서버는 mail.Nwtraders.com의 IP주소를 캐싱하고 Clinet Server에 mail.Nwtraders.com의 IP주소를 전달해줍니다
이렇게 Local DNS서버가 여러 DNS서버를 차례대로 물어봐서 그답을 찾는 과정을 Recursive Query(재귀적질의)라고 부릅니다
Iterative Query(반복적 질의)는 local DNS 서버가 다른 DNS 서버에게 쿼리를 보내어 답을 요청하는 작업이라 합니다. 자신이 직접 관리하지 않는 질의 요청이 있을 경우 질의에 응답 가능한 NS목록을 응답합니다. 예를들어 컴퓨터가 질의한 것이 www.naver.com이라 하면 자신은 com도메인이고 자신의 하위도메인에 naver.com이 있을 때, 컴퓨터에 naver.com을 관리하는 DNS를 알려주는 것입니다.
+내용추가
SOA(Start Of Authority)
- Serial(일련번호) : 2차 네임서버가 zone 파일의 수정여부를 알 수 있도록 하기 위한 옵션
- Refresh(새로고침) : 1차 네임서버의 zone 파일 수정 여부를 2차 네임서버가 검사를 하기 위한 옵션
- Retry(다시시도간격) : 2차 네임서버에서 1차 네임서버로 연결이 되지 않을 경우 재 접속을 요구하는 옵션
- Expire(다음날짜이후에만료) : Secondary가 Expire에서 지정한 시간 동안 Primary에 연결하지 못 할 경우, 해당 도메인이 유효하지 않다고 보고, 해당 도메인에 대한 정보를 전송하지 않는 것
- TTL : DNS캐시에 살아있는 시간을 설정하는 것
'❌이전글 > 이전글' 카테고리의 다른 글
메일서버 프로토콜 세가지 SMTP, POP3, IMAP (0) | 2019.06.08 |
---|---|
리눅스CentOS7- 마스터 DNS서버 , 네임서버 구축 (0) | 2019.05.28 |
로컬 DNS 서버 구축하기 (0) | 2019.05.25 |
정보처리기사 합격했습니다 (1) | 2019.05.24 |
셸 스크립트의 기초를 배우자(2) if~case문 (0) | 2019.05.15 |
티스토리 블로그 네이버에 노출 웹마스터도구 (1) | 2019.05.12 |
셸 스크립트의 기초를 배우자(1) (0) | 2019.05.11 |
리눅스(centos7) - 하드디스크 추가에서 오토마운트까지 (0) | 2019.05.07 |