도메인 이름 시스템(DNS)
다른 응용 프로그램을 도와주기 위해 만들어짐
1. 사용자는 파일 전송 클라이언트에 호스트 이름을 전달 2. 파일 전송 클라이언트는 DNS 클라이언트에 호스트 이름을 전달 3. 각 컴퓨터는 부팅이 된 후 하나의 DNS 서버의 주소를 알고 있으며, DNS 클라이언트는 알고 있는 DNS 서버의 IP 주소를 이용하여 파일 전송 서버의 이름을 제공하는 질의와 함께 메시지를 DNS 서버로 송부 4. DNS 서버는 원하는 파일 전송 서버의 IP 주소로 응답 5. DNS 서버는 파일 전송 클라이언트에 IP 주소를 전달 6. 파일 전송 클라이언트는 파일 전송 서버에 접근하기 위해 수신된 IP 주소를 사용 |
이름 공간(Name Space)
유일한 이름을 대응시키는 이름 공간은 두 가지 방법으로 구성
1. 단층적 이름 공간(flat name space)
2. 계층적 이름 공간(hierarchical name space)
단층적 이름 공간 - 이름은 주소에 할당됨.
- 이름은 구조적이지 않은 문자의 연속
- 중앙에서 전체를 관리해야 하기 때문에 인터넷과 같은 거대한 시스템에서 사용할 수 없음.
계층적 이름 공간 - 각 이름은 여러 부분으로 나뉘어 만들어짐.
- 첫 번째 부분은 기관의 성격을 나타내고, 두 번째 부분은 기관의 이름, 세 번째 부분은 기관 내의 부서를 나타내는 식으로 구성
- 이 경우 이름 공간을 할당하고 관리하는 기관을 분산시킬 수 있음
- 중앙 기관(central authority)은 기관의 성격과 이름을 정의하는 이름의 일부분만을 할당하고, 이름의 나머지 부분을 할당하는 책임은 해당 기관에게 주어짐
- 각 기관은 그 이름에 접두사나 접미사를 붙여 호스트나 자원을 정의
- 한 기관 내의 관리자는 이름의 일부가 같더라도 전체 이름이 다르기 때문에 동일한 접두사나 접미사가 다른 기관 내에서 사용되었는지에 대해 걱정할 필요가 없음
예를 들어, 두 기관이 자신들의 컴퓨터 하나에 caesar라는 이름을 부여했다고 가정 - 첫 번째 기관은 중앙 기관으로부터 first.com이 주어지고, 두 번째 기관은 second.com의 이름이 주어짐
- 이 기관들이 각각 그들이 이미 받은 이름에 caesar라는 이름을 더하여 만든 결과인 ceasar.first.com와 ceasar.second com은 2개의 구별 가능한 이름이며, 개개 이름은 고유한 의미를 갖음
|
도메인 이름 공간
- 계층적 이름 공간을 갖기 위해서 도메인 이름 공간(domain name space)이 만들어짐
- 트리는 레벨 0(root)에서 레벨 127까지로 128 레벨만을 갖음
레이블
- 트리의 각 노드는 레이블(label)을 가지는데, 이것은 최대 63 문자로 구성되는 스트링
도메인 이름
- 트리의 각 노드는 도메인 이름을 가짐
도메인
도메인은 도메인 이름 공간의 부분 트리(subtree)
DNS 서버
루트 서버(root server)
- 전체 트리로 구성되는 영역의 서버
- 자신의 권한을 다른 서버들에게 위임하고 자신은 이러한 서버들에 대한 참조만을 유지
일차 서버(primary server) - 자신이 권한을 갖는 영역에 대한 파일을 저장한 서버
- 영역 파일에 대한 생성, 관리, 갱신에 대한 책임을 갖음
이차 서버(secondary server)
- 다른 서버(일차 또는 이차 서버)로부터 영역에 관한 완전한 정보를 받아서 로컬 디스크에 파일을 저장하는 서버
- 영역 파일을 생성하지도 않고 갱신하지도 않음
- 갱신이 필요하면 이는 반드시 일차 서버에서 수행된 후, 이차 서버로 갱신된 버전을 보내게 됨
|
인터넷에서 DNS
DNS는 서로 다른 플랫폼에서 사용될 수 있는 프로토콜
인터넷에서 도메인 이름 공간(트리)은 일반 도메인(generic domain), 국가 도메인(country domain), 역 도메인(inverse domain)이라고 하는 세 가지로 분류
일반 도메인
일반적인 특성에 따라 등록된 호스트를 정의
국가 도메인
두 문자로 국가의 약자(예를 들어 us는 United States)를 표시
변환
이름-주소 변환(name-address resolution) : 이름(domain name)을 주소(IP address)로 매핑 시키는 것
- DNS는 클라이언트-서버 응용으로 설계
- 변환은 재귀 변환과 반복 변환이 있음
재귀 변환
반복 변환
- 자신이 직접 관리하지 않는 질의 요청이 있을 경우 질의에 응답 가능할 것으로 보이는 NS(이름 서버) 목록을 응답
캐싱
- 서버는 자신의 도메인에 있지 않은 이름에 대한 질의를 받을 때마다 서버 IP 주소에 대한 데이터베이스 검색을 하며, 이 검색 시간이 줄어들수록 효율성은 높아짐
1) 권한 있는 서버가 매핑 정보에다 수명(TTL, time-to-live)이라는 추가적인 정보를 제공 : 서버가 전달하는 매핑 정보가 수초 동안의 수명을 갖음
2) 서버가 캐시하고 있는 각 매핑에 대해 TTL 카운터를 갖도록 DNS가 요구하는 것 : 각각의 매핑마다 일정시간 동안만 존재하도록 함
DNS 메시지
- DNS 질의 및 DNS 응답에 관련되어, 단일 기본 구조를 갖지만, 여러 용도로 전달
- 질의 : 도메인네임에 대한 상세 정보를 요청 (DNS 쿼리) - 응답 : 질의에 대한 상세 정보의 응답 (DNS 응답) - 영역 전달 : 영역과 관련된 자원 레코드 집합을 다른 네임 서버로 복사하는 것 - 통지 (notification) - 동적 갱신 (dynamic update) |
DNS 메시지 구분
DNS 메시지 기본 포맷
- 5가지 영역으로 구분 가능 = (Header) + (질의, 응답, 책임, 부가정보)
응답, 책임, 부가정보 영역: 가변 길이
레지스트라(Registrar)
새로운 도메인에 대한 DNS 등록 방법
DNS의 보안
공격자는 DNS 서버에 과도하게 많은 요구(Flood)를 하여 멈추게 하려고 시도할 수 있음 → 이런 유형의 공격은 서비스 거부 공격(denial-of-service attack)으로 준비를 통해 방지 가능
- 그러나 DNSSEC은 DNS 메시지의 기밀성을 제공하지 못함
- DNSSEC 사양에 서비스 거부 공격에 대한 특별한 보호도 없음 - 그러나 캐싱 시스템은 어느 정도의 공격에 대해 상위 수준의 서버를 보호 |
'데이터 통신' 카테고리의 다른 글
[데이터 통신과 네트워킹] Chapter 11 멀티미디어 기본 연습문제 풀이 (0) | 2022.12.02 |
---|---|
[데이터 통신과 네트워킹] 네트워크 관리 & SNMP (0) | 2022.11.30 |
[데이터 통신과 네트워킹] 응용층(FTP, E-mail) (0) | 2022.11.07 |
[데이터 통신과 네트워킹] 응용층 (WWW와 HTTP) (0) | 2022.11.04 |
[데이터 통신과 네트워킹] Chapter 10 응용층 기본 연습문제 풀이 (0) | 2022.11.02 |