Cahpter02. Application Layer
DNS : Domain Name Server
- 많은 DNS server들의 계층 구조로 구현된 분산된 DB
- application layer protocol : host가 통신하여 이름을 확인
- DNS service 목록
- hostname ↔ IP 주소 변환
- host aliasing(별칭) : canonical(실제이름) 따로 존재
- mail server aliasing
- load distribution : 서버가 많을 때 골고루 서버 이름 부여, 중복 웹 서버의 경우 여러 IP 주소가 하나의 정식 호스트 이름과 연관 → DNS가 이 IP 주소 집합을 가짐
- centralize가 아닌 이유
- single point of failure이 있을 수 있어서 → 서버가 1대이면 다운되었을 때 서비스 불가
- traffic volume → 서버가 1대이면 traffic 과다
- distant centralized database → 서버가 1대이면 멀리서 오는 것은 delay 大
- maintenance → 서버가 1대이면 관리 어려움
- 위 이유들로 centralize는 확장성 부족
DNS : root name server
- 마지막으로 물어보려고 하는 server
- Internet function에서 엄청나게 중요하다
- DNSSEC : 보안 제공 (인증과 데이터 무결성)
- ICANN : root DNS domain을 관리하는 곳
- 13개의 logical root name server들이 있다
TLD : authoritative servers
- Top-Level Domain servers
- educause는 .edu TLD에 대한 TLD 서버 담당
- .cm .net TLD에 대한 authoritative registry
- registry : 각각의 TLD를 관리하는 기관
- registrar : 도메인 등록대행업체
- Authoritative DNS servers
- 이곳에서 정보를 얻는다
- 호스트 이름을 IP 주소로 매핑하는 공개적인 DNS record를 제공하는 기관
Local DNS name servers
- 가장 먼저 물어봐야 할 곳
- 서버들의 계층 구조에 엄격하게 속하지는 않지만 DNS 구조의 중심에 있다
- 각각의 ISP들이 하나씩 가지고 있다
- host가 DNS query를 만들면 query는 local DNS server로 보내진다
- 있으면 → 최근 name-to-address 변환 쌍의 local cache를 가진다 (최신이 아닐 수도)
- 없으면 → proxy 역할을 수행하고 query를 계층 구조로 전달한다
DNS name solution : iterated query
- DNS 동작 방법 중 하나
- "잘 모르겠는데 000 한테 가면 돼~~~" 느낌
DNS name resolution : recursive query
- DNS 동작방법 중 하나
- "내가 물어보고 올게 ㄱㄷㄱㄷ~~~"의 느낌
- contacted server가 알아서 해줌
Caching, Updating DNS Records
- name server가 mapping을 학습하면 cache가 매핑된다
- TTL만큼 cache를 가진다 이후 사라짐
- root name server는 보호 되어야 해서 TTL server로 간다
- cache는 예전 값일 수도 있다
- name host가 IP 주소를 변경하는 경우 모든 TTL이 만료될 때까지 Internet-wide에서 알 수 없다
- RFC 2136 : 내용이 바뀌면 notify하자 하는 것 → 내 cache값이 update 된다
DNS records
- DNS : resource record들을 저장하는 분산 DB
- resource record = RR
- RR format : (name, value, type, ttl) → 4개의 field로 구성
- type = A
- name이 hostname이 된다
- value가 IP address가 된다
- versiont 4를 나타낸다
- type = CNAME
- name이 alias name이 된다
- value가 canonical name이 된다
- type = NS
- NS = name server
- name이 도메인이 된다
- value가 이 도메인의 authoritative name server의 hostname이 된다
- type = MX
- name이 도메인이 된다
- value가 name과 연관된 mailserver의 이름이 된다
- domain : sookmyung.ac.kr
- hostname : www.
DNS protocol messages
- DNS query와 reply msg는 같은 format을 가진다
DNS security
- DDos attacks
- 다량의 패킷을 각 DNS root server로 보내어 정상적인 기능을 불가능하게 하는 공격
- Redirect attacks
- main-in-middle : DNS query 중간에서 채가기, 가장 알아채기 어렵다
- DNS poisoning : 가로채고 다른 정보를 준다
- 방지를 위해 DNSSEC 을 사용한다
- Local name server가 root name server에 먼저 접속하게 되면 노출되기 쉬워진다. 따라서 대부분의 정보를 cache로 local name server가 가진다. 그러나 TLD가 위험해진다.
'Computer Science > Computer Network' 카테고리의 다른 글
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.6 video streaming and content distribution networks (0) | 2023.11.02 |
---|---|
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.5 P2P applications (0) | 2023.11.02 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.3 Email, SMTP, IMAP (0) | 2023.11.02 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.2 Web and HTTP (1) | 2023.11.02 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.1 Principles of network application (0) | 2023.11.01 |