DNS: Domain Name System
people : 많은 식별자 :
• SSN, 이름, 여권 번호
Internet hosts, routers:
• IP 주소 (32 bit) - datagrams 주소 지정에 사용됩니다.
• "name"(예 : cs.umass.edu) - 사람이 사용
# 사람이 사용하는것을 router가 packet을 routing하는데 사용할 수 있도록 IP로 translation시스템
# host는 DNS query를 시작해서 ip주소를 회신받아 대상 노드를 가져와 커뮤니케이션한다
Q : IP 주소와 이름간에 매핑하는 방법은 무엇입니까?
Domain Name System:
▪ 여러 name server의 hierarchy계층 구조로 구현된 분산 데이터베이스 # 'root가 하나다'를 의미
▪ application-layer 프로토콜 : host, name server는 이름을 확인하기 위해 통신합니다 (address/name translation)
• note : 핵심 인터넷 기능, application-layer 프로토콜로 구현됨
• 네트워크 "edge"의 복잡성 # system이 실패하면 데이터 전송 불가, 인터넷 전체가 다운된다
DNS: services, structure
DNS services
▪ hostname을 IP 주소로 변환
▪ host 별칭
• 표준canonical, 별칭 이름 # canonical name, canonical record는 cname으로 알려져 있다
▪ mail server 별칭
▪ load distribution
• 복제 된 웹 server : 많은 IP 주소가 하나의 이름에 해당
Q : DNS를 중앙 집중화하지 않는 이유는 무엇입니까?
▪ 단일 실패 지점
▪ 교통량
▪ 원거리 중앙 데이터베이스
▪ 유지 보수
A: doesn‘t scale!
▪ Comcast DNS server만 : 하루 600B DNS queries
# query가 너무 많아지고, server가 실패하면 전체 인터넷이 실패, traffic이 많다
DNS: a distributed, hierarchical database
client는 www.amazon.com의 IP 주소를 원합니다. 1 차 근사치 :
▪ client가 .com DNS 서버를 찾기 위해 root server에 query
▪ client가 .com DNS 서버를 query하여 amazon.com DNS 서버를 가져옵니다.
▪ client가 amazon.com DNS server를 query하여 www.amazon.com의 IP주소를 가져옵니다.
DNS: root name servers
▪ 이름을 확인할 수없는 name server 별 공식 contact-of-last-resort
▪ 매우 중요한 인터넷 기능
• 인터넷은 그것 없이는 작동 할 수 없습니다!
• DNSSEC – 보안 제공 (인증 및 메시지 무결성)
▪ ICANN (Internet Corporation for Assigned Names and Numbers)은 root DNS domain을 관리합니다.
TLD: authoritative servers
Top-Level Domain (TLD) servers:
▪ .com, .org, .net, .edu, .aero, .jobs, .museums 및 모든 최상위 국가 도메인 (예 : .cn, .uk, .fr, .ca, .jp)을 담당합니다.
▪ Network Solutions : .com, .net TLD에 대한 권한있는 레지스트리
▪ Educause: .edu TLD
Authoritative DNS servers:
▪ 조직의 자체 DNS 서버, 조직의 명명된 host에 대한 IP mapping에 권한있는 host name을 제공합니다.
▪ 조직 또는 서비스 제공 업체가 유지 관리 할 수 있습니다.
Local DNS name servers
▪ 엄격하게 계층에 속하지 않음
▪ 각 ISP (주거 ISP, 회사, 대학)에는
• “default name server"라고도 함
▪ host가 DNS query를 할 때 local DNS server로 query를 보냅니다.
• 최근 name-to-address 변환 쌍의 local cache가 있습니다 (하지만 오래되었을 수 있습니다!).
• proxy 역할을 하며 query를 hierarchy구조로 전달
DNS name resolution: iterated query
예 : engineering.nyu.edu의 host는 gaia.cs.umass.edu의 IP 주소를 원합니다.
Iterated query:
▪ 접속된 server가 접속할 server의 이름으로 응답
▪“이 이름은 모르지만이 server에 물어보십시오”
DNS name resolution: recursive query
예 : engineering.nyu.edu의 host는 gaia.cs.umass.edu의 IP 주소를 원합니다.
Recursive query:
▪ 접속된 name server에 이름 확인 부담을줍니다.
▪ 상위 계층의 부하가 높습니까?
Caching, Updating DNS Records
▪ name server가 mapping을 학습하면 mapping을 캐시합니다.
• 일정 시간 (TTL) 후 cache 항목 시간 초과 (사라짐)
• 일반적으로 local name server에 캐시 된 TLD 서버
• 따라서 자주 방문하지 않는 root name server
▪ 캐시된 항목이 out-of-date되었을 수 있습니다 (최선의 이름-주소 변환!)
• 이름 호스트가 IP 주소를 변경하면 모든 TTL이 만료 될 때까지 인터넷 전체에 알려지지 않을 수 있습니다!
▪ 제안된 IETF 표준 업데이트 / 알림 메커니즘
• RFC 2136
DNS records
DNS : resource records (RR)를 저장하는 분산 데이터베이스
# 2,2,4,2 byte
type=A
▪ name is hostname
▪ value is IP address
type=NS
▪ name is domain (e.g., foo.com)
▪ value is 이 도메인에 대한 권한있는 name server의 host 이름
type = CNAME
▪ name은 일부 "canonical정규"(실제) 이름의 별칭입니다.
www.ibm.com은 실제로 servereast.backup2.ibm.com입니다
▪ 값은 canonical정식 이름입니다.
type=MX
▪ value is 이름과 연관된 mail server의 이름
DNS protocol messages
DNS query및 reply 메시지는 모두 동일한 형식을 갖습니다.
# client가 quey를 보내면 번호가 되고 생성되고 dns 서버가 응답할때 마다 해당 번호가 포함된다.
# ttl reply는 여러 resource를 반환할 수 있다. host가 여러 ip를 가질 수 있으므로
resoure record 수가 다르다, tld server가 여러개 일수 있다
# 보낼 때(query)는 answer RRs, authority RRs, additional RRs가 0이다, 받을 때는 0이 아니다
Inserting records into DNS
예 : 새로운 스타트 업“Network Utopia”
▪ DNS register (예 : Network Solutions)에서 networkuptopia.com 이름을 등록합니다.
• 신뢰할 수있는 name server (기본 및 보조)의 이름, IP 주소 제공
• registrer이 NS, A RR을 .com TLD server에 삽입합니다.
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
▪ IP 주소 212.212.212.1를 사용하여 로컬로 권한있는 server 생성
• www.networkuptopia.com에 대한 유형 A record
• networkutopia.com에 대한 MX record 입력
DNS security
DDoS 공격
▪ 트래픽으로 루트 서버 폭격
• 현재까지 성공하지 못함
• traffic 필터링
• local DNS server는 TLD server의 IP를 cache하여 root server 우회를 허용합니다.
# root server의 ip를 cache하는 local dns server가 많기 때문, 너무 많으면 명령할 필요 없어짐
# root server는 첫번째 명령만 받고 다음 부터 local(local isp 또는 DNS server)에서 수행한다
▪ TLD 서버 폭격
• 잠재적으로 더 위험
▪ Redirect 공격
▪ man-in-middle
• DNS 쿼리 차단 # 해커가 읽을 수 있고
▪ DNS 중독 # 읽고 수정하면
• 가짜는 DNS 서버에 의존하여
DDoS 용 DNS 악용
▪ 스푸핑 된 소스 주소로 쿼리 보내기 : 대상 IP
▪ 증폭 필요
'컴퓨터 네트워크' 카테고리의 다른 글
컴퓨터 네트워크 Week 7-2: CDN (0) | 2020.10.17 |
---|---|
컴퓨터 네트워크 Week 7-1 : P2P application (0) | 2020.10.13 |
컴퓨터 네트워크 Week 6-1 : HTTP, E-mail (0) | 2020.10.12 |
컴퓨터 네트워크 Week 5-1 : (0) | 2020.10.04 |
컴퓨터 네트워크 Week 4-2 : Web and HTTP, Non-persistent, Persistent (1) | 2020.10.04 |