가자미의 개발이야기
[네트워크] DNS 본문
a. DNS : domain name system
각각의 노드들을 식별하기 위한 id가 필요하다.
대표적인 예시로 ip 주소(32비트)를 활용한다.
www.something...com이라는 는 주소로 들어갈 경우
DNS가 이 도메인주소를 ip주소로 변환하여 컴퓨터들이 인식할 수 있게한다.
분산데이터 : 계층적인 구조를 갖는 네임서버들
어플리케이션 계층 프로토콜 : UDP를 사용
b. DNS : services
host aliasing : 실제 이름을 줄여서 사용할 수 있게 해준다.
예를 들어 www.abcd.ef...com을 www.abcd.com 으로도 접속 가능하게 지원한다.
mail server aliasing : 메일서버도 별명을 활용할 수 있다.
load distribution : 하나의 웹서버가 모든 요청을 다루기 보다 여러 웹서버가 나눠서 다루는 게 효과적.
하나의 도매인에서 여러 ip로 나타내게 하여 요청을 나눠서 다룰 수 있음.
왜 DNS는 분산 형식을 가질까?
하나로 모았을 경우 DNS 하나가 망가지면 모두 접속하기 어려워짐
한 DNS에 너무 많은 트래픽이 몰림
유지보수에도 불리
c. DNS : 계층구조
예시. amazon.com을 입력했을 경우
1. Root DNS 서버가 TLD DNS 서버 중 com DNS 서버를 찾아 전달
2. com DNS 서버는 amazon.com의 DNS 서버를 찾아줌
3. amazon.com DNS 서버는 해당 ip를 찾아줌.
그 외로 local DNS name 서버가 있음.
-사용자와 근접하게 작동. 계층 구조에는 포함 안됨.
-사용자가 어떤 도매인을 입력하면 해당 도매인에 캐쉬가 있는지 확인하고
-있으면 해당 ip를 반환하고, 없을 경우 프록시로 동작하여 쿼리를 계층구조로 요청을 보냄
d. DNS 작동 방식
iterated query : local DNS 프록시 역할로 여러 서버와 연결
recursive query : local DNS가 계층 구조에 일을 넘김
e. DNS 캐싱
이전에 접속했던 쿼리에 대한 ip를 일정기간동안 기억하고 있다.
일정 기간(TTL) 이후 해당 매핑을 지운다.
자주 방문하는 쿼리의 TLD서버를 local name 서버가 캐시해놓는다.
f. DNS 레코드
RR : DNS에 저장되는 데이터의 형식
RR format: (name, value, type, ttl)
type에 따른 형식 변화
-type=A : name은 호스트이름, value는 ip주소
-type=NS : name은 도매인주소, value는 authoritative name server의 호스트이름
-type=CNAME : name은 alias name(별명), value는 canonical name(원래 이름)
-type=MX : name은 메일서버의 alias name, value는 canonical name
g. DNS 프로토콜
identification : 어떤 query에 대한 응답인지를 구분해주는 역할
flag :
QR(1비트) : 쿼리인지 응답인지
Op code(4비트) : 0(일반적인 쿼리 혹은 응답), 1(inverse query), 2(서버 상태 요청), 4(주의), 5(업데이트)
h. DNS에 새로운 레코드 삽입
-DNS reigistar 사업자에게 도매인과 해당 ip를 매핑
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] CDN (0) | 2021.03.26 |
---|---|
[네트워크] P2P (0) | 2021.03.26 |
[네트워크] 쿠키, 캐쉬, 이메일 (0) | 2021.03.16 |
[네트워크] 어플리케이션 프로토콜 (0) | 2021.03.16 |
[네트워크] 어플리케이션 (0) | 2021.03.10 |