Internet hosts, routers:
- IP address (32bit) - 데이터그램에 대한 주소 지정에 사용된다.
DNS
많은 name servers의 계층 구조로 구현된 분산 데이터베이스(distributed database)
application-layer protocol : 호스트, DNS 서버가 이름 (address / name translation)을 해결하기 위해 통신한다.
중요한 인터넷 기능으로, application-layer protocol로 구현된다.
네트워크의 edge에서 complexity가 있다.
DNS services
- 호스트 이름에서 IP 주소로 변환
- 호스트 별칭(aliasing) : 정식(canonical) 및 별칭(alias) 이름
- 메일 서버 별칭
- 로드 분산(load distribution)
- * 복제된(replicated) 웹서버 : 하나의 이름에 많은 IP 주소가 해당됨(correspond)
DNS가 중앙집중화(centralize) 되지 않은 이유
- 단일 실패 지점
- 트래픽 양
- 먼 중앙 집중 데이터베이스
- 유지보수
Thinking about the DNS
거대한(humongous) 분산 데이터 베이스 : 십억개의 레코드, 각각은 간단함
하루에 수조 개 이상의 쿼리 처리
- 쓰기보다 읽기가 훨씬 많음
- 성능이 중요하다. 거의 모든 인터넷 통신이 DNS와 상호작용함.
조직적, 물리적으로 분산돼있다.(organizationally, physically decentralized)
- 각 레코드를 담당하는 수백만 개의 다른 조직
불가침성(bulletproof) : 신뢰성, 보안(reliability, security)
DNS: a distributed, hierarchical database - 분산되고 계층적인 데이터베이스
클라이언트가 www.amazon.com의 IP주소를를 요청할 때,
1) 루트 서버에 쿼리해서 .com DNS 서버를 찾음
2) .com DNS 서버에 쿼리해서 amazon.com DNS 서버를 찾음
3) 클라이언트는 amazon.com DNS 서버에 쿼리해서 그의 IP 주소를 가져옴
DNS: root name servers
이름을 해결할 수 없는 name server에 의해 마지막 수단으로 공식적인 연락처(contact-of-last-resort)
인터넷에서 매우 중요한 기능이다. 이 기능 없이 작동할 수 없음
- DNSSEC - 보안을 제공함 (인증, 메시지 무결성 - message integrity)
ICANN(Internet Corporation for Assigned Names and Numbers): 루트 DNS 도메인 담당
Top Level Domain(TLD) servers
상위 도메인 서버는 .com .org 등을 담당한다.
Network Solutions: .net TLD에 대한 권위(authoritative)있는 레지스트리
authoritative DNS servers
기관의 자체 DNS 서버로, 기관의 명명된 호스트에 대한 authoritative 호스트 이름에서 IP 매핑을 제공한다.
기관 또는 서비스 제공 업체에서 유지(maintained)할 수 있다.
Local DNS name servers
호스트가 DNS 쿼리를 생성하면, 로컬 DNS 서버로 전송된다.
로컬 DNS 서버는 다음과 같은 답을 반환한다.
- 최근 "이름에서 주소로의 변환 쌍"의 로컬 캐시 (가능한 오래된 것 - 최신화하려고)
- 해결을 위해 DNS 계층구조로 요청 전달
각 ISP에는 로컬 DNS 이름 서버가 있다. 로컬 DNS 서버는 계층에 속하진 않는다.
DNS name resolution
iterated query (반복 쿼리)
local DNS server가 반복적으로 여러 서버에게 쿼리를 보내고 받는다.
연락한 서버는 연락할 서버의 이름을 포함한 응답을 반환한다.
recursive query (재귀 쿼리)
이름 해결을 연락한 이름 서버에게 떠넘긴다.
계층 구조의 상위 수준에서 부하가 많아지는 원인이 된다.
Caching DNS Information
한번 이름서버가 매핑 정보를 알게 되면, 매핑 정보를 캐시하고 쿼리에 대한 응답으로 즉시(immediately) 반환한다.
- 캐싱은 응답 시간을 개선한다.(improve)
- 일정 시간(TTL)이 지나면 만료돼서 사라진다.
- TLD 서버는 일반적으로 로컬 이름 서버에 캐시된다.
캐시된 항목은 오래된 정보일 수도 있다.
- 명명된 호스트가 IP주소를 변경하려면, 모든 TTL이 만료될 때까지 인터넷 전체에서 알려지지 않을 수 있다.
=> TTL이 길면 호스트의 IP 주소 정보가 느리게 업데이트된다.
- 최선의 노력으로 이름-주소로의 변환을 수행한다.
DNS records
DNS는 resource record(RR)을 저장하는 분산 데이터베이스이다.
RR format: (name, value, type, ttl)
type은 4가지가 있다;
type = A
- name: 호스트 이름
- value: IP 주소
type = NS
- name: 도메인 이름 (foo.com)
- value: authoritative name server의 호스트 이름
type = CNAME
- name: 근본적인(canonical) 이름의 대체(alias) 이름 [ ex) www.ibm.com => servereast.backup...com ]
- value: 근본적인 이름(canonical name)
type = MX
- value: name과 관련된 SMTP 메일 서버의 이름
DNS protocol messages
DNS 쿼리는 응답 메시지(reply messages)와 동일한 포맷을 가짐.
identification(식별자)
16bit 숫자로, query에 대한 식별자와 해당 query에 대한 응답에 동일한 값 사용함
flags
쿼리 또는 응답 여부
재귀적인 쿼리 여부 (recursion desired)
재귀적인 쿼리에 대한 응답으로 재귀적인 쿼리를 처리할 수 있는지 여부 (recursion available)
응답이 권위있는 응답인지 여부 (reply is authoritative)
questions: name, type fields for a query
answers: RRs in response to query
authority: records for authoritative servers
additional info: additional "helpful" info that may be used
Getting your info into the DNS
DNS에 등록하는 방법 예시 : "Network Utopia" 등록
- DNS 등록기관에서 networkutopia.com 이름을 등록
- * 권위 있는 이름 서버 (주 서버 및 보조 서버)의 이름과 IP 주소 제공
- * 등록기관이 .com TLD 서버에 NS, A RRs를 삽입한다.
- * (networkutopia.com, dns1.networkutopia.com, NS) , (dns1.networkutopia.com, 212.212.212.1, A)
- 212.212.212.1 IP 주소로 권위 있는 서버를 로컬로 생성
- * www.networkutopia.com에 대한 type A 레코드 작성
- * networkutopia.com에 대한 type MX 레코드 작성
DNS security
DDoS attacks
루트 서버에 대한 공격
- 현재까지 성공하지 못함
- 트래픽 필터링
- local DNS servers는 TLD servers의 IP를 캐시해서 root server를 우회(bypass)할 수 있다.
TLD 서버에 대한 공격
- 더 위험함
Spoofing attack(위조 공격)
DNS 쿼리를 가로채서 가짜 응답을 반환한다.
- DNS 캐시 독점(poisoning)
- RFC 4033:DNSSEC 인증 서비스
'학교강의필기장 > 컴퓨터네트워크' 카테고리의 다른 글
컴퓨터네트워크[8]: Video streaming and content distribution networks (0) | 2023.04.19 |
---|---|
컴퓨터네트워크[7]: P2P applications (0) | 2023.04.19 |
컴퓨터네트워크[5]: E-mail, SMTP, IMAP (0) | 2023.04.19 |
컴퓨터네트워크[4]: Web and HTTP (0) | 2023.04.18 |
컴퓨터네트워크[3]: 네트워크 애플리케이션의 기본 원리 (0) | 2023.04.18 |