01 DNS 서비스
1. IP 주소 체계
- 인터넷에서는 32비트의 이진수로 된 IP주소로 호스트를 구분한다.
- www.xxx.yyy.zzz 형태로 표현한다.
1) 클래스 구분
2) 주소 클래스
ⓐ 클래스 A : 2^24개의 호스트 수용
ⓑ 클래스 B : 2^15개의 호스트 수용
ⓒ 클래스 C : 2^8개의 호스트 수용
ⓓ 클래스 D : 멀티 캐스팅 지원
* IP주소 : 네트워크주소 + 호스트주소 > netmask(비트앤드연산)
3) DNS 필요성
- 도메인 이름 : 문자형으로 표기되는 호스트 이름(일반 사용자가 선호)
- IP 주소 : IP 프로토콜에서 호스트 구분을 위해 반드시 필요
> DNS : 도메인 이름을 이용하여 IP 주소로 변환하는 서비스
- 계층구조의 도메인 기반 주소 표기방법을 의 한 분산 데이터베이스 시스템
- 해석기 : ip주소를 원하는 응용프로그램은 도메임 이름을 매개변수로 해석기 호출함
UDP를 이용해 DNS 네임 서버에 변환을 요청하여 호스트의 IP주소를 얻음
- nslookup 명령 : DNS를 이용해 주소변환 요구를 수행하는 대화영 프로그램
- 도메인 네임 스페이스 : 트리 구조의 네임 스페이스를 비롯해 데이터에 대한 이름 관련 규칙 정의
- 네임서버 : 도메인 트리구조와 트리에 보관된 자원 레코드를 관리하는 프로그램
- 해석기 : 클라이언트의 요청을 받아 네임 서버로부터 정보를 알아냄
> etc/hosts 파일
- 인터넷 초기에 수작업으로 관리
- 파일의 내용은 도메인이름, ip 주소의 쌍으로 구성된다.
02 도메인 네임 스페이스
- DNS : 거대한 분산 데이터 베이스
- 도메인 네임 스페이스 : DNS가 저장, 관리하는 계층적 데이터베이스, 트리구조, 점으로 구분
1) 도메인 네임 스페이스의 구조
- 계층적인 트리구조 지원
- 도메인 이름 : 최하위 호스트의 레이블을 맨 왼쪽에 두고, 상위 노드로 이동하면서 점으로 구분한 레이블 이름을 연속을 붙임
* TLD: 최상위 도메인, 맨 오른쪽
- 도메인 : 도메인 네임 스페이스에서 하부 트리 전체를 의미, 해당 도메인의 명칭은 하부트리의 맨 상위에 위치한 호스트의 도메인 이름이다.
- 도메인 이름 : 하위 호스트의 레이블부터 루트에 이르는 경로에 위치한 모든 호스트의 레이블을 점으로 연결한 것
2) 데이터 베이스 서비스
- 계층 구조의 네임서버
- 각 네임 서버는 자신의 하부에 위치한 호스트 정보만을 관리
- 이웃하는 네임 서버끼리 정보가 필요할 땐 상위 네임 서버의 중개가 필요
- 도메인 영역 : 존 - 임의의 네임서버가 관리하는 영역
3) 자원 레코드
- 자원 레코드 유형
ⓐ A(Address) : 호스트의 IP주소
ⓑ NS(Name server) : 도메인을 관장하는 인증된 네임 서버를 나타낸다.
ⓒ CNAME(Caanonical name) : 별명이 있는 호스트의 정식이름(공식적으로 등록된 사이트)
03 네임 서버와 해석기
1) 요청의 처리
- 질의 요청이 처리되는 과정
- 인증 데이터가 반드시 필요한지 명시, 혹은 캐시
- 해석기는 질의 요청을 재귀적으로 처리하는 명시, 혹은 비재귀적
- 재귀적 처리
- 해석기가 최초로 접속한 네임서버가 질의요청을 추적, 관리
- 재귀적 요청을 받은 네임 서버가 결과적으로 해석기 역할을 수행
- 비재귀적 : 요청을 받은 네임서버가 다른 네임 서버의 포인터 정보를 회신
- 반복적 처리
- 네임 서버2로부터 원하는 정보를 얻지못한 넹미 서버는 네임 서버1 과 직접 접촉하여 정보를 얻음
- 네임 서버 1 의 포인터인 ip주소는 네임서버2가 제공
04 DNS 프로토콜
- DNS 제한
- 해석기와 네임 서버는 UDP 53번 포트로 DNS메시지 전송
- DNS메시지가 512바이트보다 크면 TCP를 이용, 이때도 53번 포트 사용
- DNS메시지가 512바이트보다 커 TCP를 사용할 경우, 미리 인지한 경우면 처음부터 TCP를 사용
* etc/services : port 프로토콜 확인가능