DNS-3
DNS-3
DNS query
- DNS를 요청하는 클라이언트는 name server에 IP 주소를 얻기 위해 DNS query message 를 전송.
- DFS 처럼 각 name server가 하위 name server에 재귀적으로 요청을 보내고 받는 방식을 recursive query 방식이라고 함.
- BFS 처럼 한 name server가 각 하위 name server에 하나씩 요청을 보내고 받는 방식을 iterative query 방식이라고 함.
- Local name server 까지는 recursive query를 통해 요청하고, local name server는 iterative query를 통해 여러 name server들로부터 주소를 받아 옴.
DNS Resolver
- Name server들에 쿼리를 보내고 정보를 받아오는 기능을 수행하는 컴포넌트.
- 이를 단말 기기(호스트)에 넣기는 불가능하기 때문에, 실제로는 local(recursive) name server가 이 과정을 수행함.
- 실제 호스트에서는 local name server에 쿼리를 전달하고 응답을 받는 인터페이스 역할만 하는 단순한 기능만 구현 됨.
- 이를 stub resolver라고 하고, stub resolver는 local name server의 주소만 알면 됨.
DNS 동작 방식
- 브라우저에서 domain name을 통해 특정 호스트에 접속하려고 하면, resolver는 통해 local name server에 요청을 보냄.
- Local name server에 domain name이 캐싱되어 있는지 확인하고, 있는 경우 9번으로, 없는 경우 3번으로 이동.
- Local name server가 root name server에 쿼리를 보냄.
- Root name server는 domain name에 해당하는 TLD name server의 주소를 반환.
- Local name server는 TLD name server에게 쿼리를 보냄.
- TLD name server는 domain name에 해당하는 authoriative name server의 주소를 반환.
- Local name server가 authoriative name server에 쿼리를 보냄.
- Authoriative name server는 domain name에 해당하는 IP 주소를 알려 줌.
- Local name server가 IP 주소를 캐싱하고, 브라우저에게 해당 IP 주소를 반환.
- 브라우저는 IP 주소를 통해 호스트에 접속.
References
- https://hanamon.kr/dns%EB%9E%80-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%84%A4%EC%9E%84-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B0%9C%EB%85%90%EB%B6%80%ED%84%B0-%EC%9E%91%EB%8F%99-%EB%B0%A9%EC%8B%9D%EA%B9%8C%EC%A7%80/
- https://gentlysallim.com/dns%EB%9E%80-%EB%AD%90%EA%B3%A0-%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84%EB%9E%80-%EB%AD%94%EC%A7%80-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC/