1 14 장. DNS 컴퓨터네트워크
2 14-1 도메인서비스 이번시간의학습목표 도메인이름과 IP 주소변환과정이필요한이유이해
3 IP 주소 (1) 32 비트크기 사용자편의를위해 8 비트크기의 10 진수 4 개로표현 www.xxx.yyy.zzz 예 : 211.223.201.30 주소클래스 클래스구분 클래스 IP 주소범위 네트워크주소크기 호스트주소크기 A 0 ~ 127 7 비트 24 비트 B 128 ~ 191 14 비트 16 비트 C 192 ~ 223 21 비트 8 비트
4 IP 주소 (2) 주소클래스 클래스 A : 2 24 개의호스트수용 클래스 B : 2 16 개의호스트수용 클래스 C : 2 8 개의호스트수용 클래스 D : 멀티캐스팅지원
5 DNS (1) Domain Name System 도메인이름 문자형으로표기되는호스트이름 ( 일반사용자가선호 ) IP 주소 IP 프로토콜에서호스트구분을위하여반드시필요 도메인이름을 IP 주소로변환하는서비스가반드시필요 DNS 도입전 인터넷초기에수작업으로관리 /etc/hosts 파일 파일의내용은 ( 도메인이름, IP 주소 ) 의쌍으로구성 주기적으로 ftp 서비스를이용하여수정된파일다운로드
6 DNS (2) 컴퓨터보급에따른기존방법의한계 한시스템에서모든호스트의이름과주소를관리하는것이불가능 도메인이름중복문제 해결방안 위임과계층적도메인이름 ROOT 에서하부로위임 (com, edu, kr 등 ) TLD(Top Level Domain) 에서하위로계속위임 (co.kr, ac.kr 등 ) 위임받은기관에서자신의도메인에속한호스트이름, IP 주소관리 (korea.co.kr 에서 info1 관리 ) 분산데이터베이스 각기관에서관리하고있는분산데이터베이스를연계하여서비스제공
7 DNS (3) 해석기 (Resolver) IP 주소를얻고자하는응용프로그램이호출 응용프로그램은해석기에게도메인이름을매개변수로제공 해석기는 DNS 프로토콜을이용하여 DNS 서버에변환을요청 nslookup(dig) 명령어 DNS 서버 : server.korea.co.kr information.korea.co.kr의 IP 주소
8 DNS (4) DNS 구성요소 도메인네임스페이스 (domain name space) 트리구조의네임스페이스를비롯해데이터에대한이름관련규칙을정의 트리에연결된호스트는자원레코드 (Resource Records) 로표현 DNS 서비스는자원레코드의특정유형정보를얻는과정 네임서버 (name server) 도메인트리구조와트리에보관된자원레코드를관리하는프로그램 여러네임서버가구역을분할해전체도메인을관리함 분할한구역을담당하는주 (primary) 네임서버와백업용도의부 (secondary) 네임서버가있음 캐시에다른서버로부터얻어온정보임시보관 해석기 (resolver) 클라이언트의요청을받아네임서버로부터정보를얻어냄 하나의이상의네임서버와접촉가능 캐시에얻어온정보임시보관
9 15-2 도메인네임스페이스 이번시간의학습목표 계층구조의네임스페이스, 도메인, 존개념이해 도메인정보를관리하기위한자원레코드종류이해
도메인네임스페이스 (1) DNS 가저장, 관리하는계층적데이터베이스 최상위에루트가존재하고, 그아래로모든호스트가트리구조로이어짐 레이블 이름 ( 최대 63 바이트 ) 도메인이름 점 (.) 으로구분한레이블의연속 루트 크기가 0 인 Null 레이블을가짐 공식표기 (fully qualified domain name) 할때마지막에점 (.) 을붙여야함 www.korea.co.kr.. 이없는경우호스트의 default domain 이기본적으로붙게됨 www.korea.co.kr 로표기하는경우 www.korea.co.kr.korea.co.kr. 로해석 10
도메인네임스페이스 (2) 도메인 계층적구조 같은레벨에서는레이블이유일해야함 도메인이름 최하위레이블을왼쪽에위치하고상위로이동하면서레이블을표기 예 : xx.lcs.mit.edu TLD ( 최상위도메인 ) Top Level Domain 루트바로밑에위치한레이블 예 : mil, edu, arpa 도메인 : edu 도메인, mit.edu 도메인 11
도메인네임스페이스 (3) 최상위도메인 RFC 1591의 TLD.com: 상업적인용도.edu: 교육기관용도.net: 네트워크서비스제공자와관련된시스템.org: 다양한종류의기관.int: 국제적인목적으로정의.gov: 미국연방정부와관련된기관.mil: 미국국방성관련기관 추가 : arts, firm, info, nom, rcc, store, web 등 국가코드의활용 :.tv,.cc https://www.icann.org/ 에서확인가능 12
도메인네임스페이스 (4) 도메인이름 하위레이블부터시작 레이블이름을점 (.) 으로연결 13
데이터베이스서비스 (1) 인터넷도메인네임스페이스를계층구조로분할 하나의개념적인저장장소를갖지만, 실제로는각하부 도메인을관리하는호스트에이름, 주소관리권한위임 14
데이터베이스서비스 (2) 권한을위임받은도메인관리서버는자신의도메인에 포함된모든레이블 ( 호스트또는하부도메인 ) 에관한 정보를적절하게유지해야함 다른도메인에속한호스트의정보는해당도메인을 관리하는네임서버로부터얻어냄 15
데이터베이스서비스 (3) 존 (zone) 임의의네임서버가관리하는영역 도메인과유사하지만다름 16
자원레코드 (1) 자원레코드 이름과주소정보등을저장하기위한레코드 트리에연결된각호스트의정보는자원레코드와관계됨 DNS 네임서버가해석기에반환하는데이터가자원레코드정보 질의레코드 DNS 클라이언트가 DNS 서버에정보를요청하는용도 17
자원레코드 (2) 각필드의의미 Name 찾고자하는가변길이의도메인이름 Type 자원의종류 Class TTL 프로토콜패밀리 ( 인터넷 : IN) 캐쉬정보의유효기간 RD Length RD 의크기 RD(Resource Data) 자원데이터 18
자원레코드 (3) Type A(Address) 호스트의 IP 주소 ( 도메인이름과 IP 주소변환 ) NS(Name Server) 도메인을관장하는인증된네임서버 CNAME(Canonical Name) 호스트의별명 SOA(Start of Authority) 존의시작을표시 WKS(Well-Known Services) 호스트가제공하는네트워크서비스 PTR(Pointer) IP 주소를도메인이름으로변환 HINFO(Host Information) 호스트정보 MX(Mail exchange) 메일교환 ( 특정메일주소로전송된메일을다른주소로재전송 (redirect)) 기타 : SIG(Security Signature), NXT(Next Domain), AAAA(IPv6 주소 ), TXT(text) 등 19
14-3 네임서버와해석기 이번시간의학습목표 도메인관리를위한해석기와네임서버의동작원리이해 20
변환과정 (1) 응용프로그램이해석기라고부르는 DNS 클라이언트에게정보제공요청 해석기 (resolver) 해석기가 DNS 메시지형식의질의를생성 이질의를네임서버에게전달 네임서버는회신용 DNS 메시지에결과를담아해석기에회신 네임서버의부담을줄이기위하여캐시정보활용 인증 (authoritative) 데이터 해당데이터를직접관리할책임이있는네임서버로부터받은정보 캐시데이터 이전요청에의하여호스트가보관하던정보 TTL(Time To Live) 동안유효하며, 이시간을넘어가면캐시정보삭제 21
변환과정 (2) 존 (zone) 존은자원레코드에포함된인증데이터의집합체로정의됨 관리하는정보 존에속하는모든호스트의전체자원레코드집합체 존에포함된최상위호스트 위임서브존 자신의존에속하지만인증이위임된경우 위임된서버존에관한글루 (glue) 데이터 서브존의네임서버에접근할수있도록해줌 22
변환과정 (3) 존 (zone) ( 계속 ) test.info.mit.edu 의호스트 정보를얻고자하는경우 info.mit.edu를관리하는네임서버의 IP 주소를알면간단히처리 info.mit.edu의네임서버가서브존도메인내부에위치하여 IP 주소를얻기곤란한경우에글루데이터가필요 23
요청의처리 (1) 호스트 A 가호스트 B 의정보를원할때, 호스트 A, B 가 같은도메인에위치하면이도메인의네임서버가인증 데이터를회신 다른도메인에위치하면인근네임서버에게요청 호스트 (A) 를중개해줌 인근네임서버를찾는작업은인증정보를찾을때까지반복됨 질의요청이처리되는과정 인증데이터가반드시필요한지명시, 혹은캐시 해석기는질의요청을재귀적으로처리해야하는지명시, 혹은비재귀적 24
요청의처리 (2) 재귀적요청 해석기가최초로접속을시도한네임서버가질의요청을 추적, 관리 재귀적요청을받은네임서버가결과적으로해석기역할을 수행 비재귀적 요청을받은네임서버가다른네임서버의포인터정보를회신 이를받은해석기는다른네임서버에게다시질의 25
요청의처리 (3) 26
14-4 DNS 프로토콜 이번시간의학습목표 DNS 클라이언트와서버간전송되는 DNS 메시지이해 27
DNS 메시지 (1) 메시지구성 Header 12 바이트 헤더값에따라메시지각필드의사용결정 Question 질의메시지, 응답메시지에서모두사용 질의레코드 Answer, Authority, Additional 자원레코드사용 28
DNS 메시지 (2) DNS 헤더 Identification 요청과응답의연관관계확인용도 QR (Query Response) 질의메시지 (1) 응답메시지 (0) OPCODE 질의나응답의종류 표준 (0), 반대 (1), 서버상태요청 (2) AA (Authoritative Answer) 인증권한이있는네임서버여부 ( 응답전용 ) TC (Truncated) UDP 최대크기초과여부 1 로설정되면초과된것이므로 TCP 로재요청필요 RD (Recursive Desired) 재귀적응답요청 ( 질의전용 ) RA (Recursion Available) 재귀응답가능여부 ( 응답전용 ) RCODE 0 이면정상, 그외응답오류 QCOUNT, ANCOUNT, AUCOUNT, ARCOUNT 각자원레코드갯수 29
UDP 패킷크기로인한제약 해석기와네임서버는기본적으로 UDP 53 번포트로 DNS 메시지전송 UDP 프로토콜의최대전송크기 512 바이트 TCP 53 번포트를사용하는경우 미리 512 바이트보다크다는것을인지하는경우에는처음부터 TCP 사용 사전에인지하지못하는경우는 TC=1 로지정되므로, TCP 연결을사용하여재질의 IPv4 의경우 UDP 사용이일반적이나, 주소크기가늘어나고기본적으로복수개의주소를가질수있는 IPv6, 보안이강화된 DNSSEC 의경우 UDP 크기제한을넘어갈수있음 30
DNS 프로토콜의동작과정 (1) 질의메시지 www.korea.co.kr 호스트의 IP 주소를원하는경우 Header 의 Identification : 메시지식별자, UDP 의비순서적전송방식을보완하려고사용 플래그값은 0 0100 이므로 QR=0 은질의메시지, OPcode=0 은표준질의, RD=1 은재귀적응답임 이름 : www.korea.co.kr 유형 : A (Address) 클래스 : IN ( 인터넷 ) 31
DNS 프로토콜의동작과정 (2) 32
DNS 프로토콜의동작과정 (3) 응답메시지 DNS 헤더 QUESTION: 질의와동일 33
DNS 프로토콜의동작과정 (4) 응답메시지 ( 계속 ) ANSWER: 2 개 34
DNS 프로토콜의동작과정 (5) 응답메시지 ( 계속 ) Authority 자원레코드내용 35