application 에서 dns query
application 에서 host name 에 대한 ip address 를 얻기 위해 dns query 를 한다. 내부적으로 어떻게 dns query 를 만들어서 dns server 로 날리는지에 대한 설명은 여기서 생략하기로 하겠다.여하튼 dns query 를 만드는 부분은 대부분 library 내에서 해주게 된다. 그래서 대부분의 os 에서는 host name 에 대한 ip address 를 찾아주는 함수를 제공하는데 아래에 있는 함수들이다.
- getaddrinfo function (Windows)(windows 의 gethostbyname 은 deprecated 됐다.)
- Joinc: linux man page : gethostbyname - 도메인 이름에 대한 인터넷 주소 목록을 얻어온다.
OS 의 dns deamons
이 때 deamon 이나 service 가 띄워져 있다면, 여기서 일차적으로 dns query 에 대한 response 를 주는 듯 하다.(자세한 사항은 좀 더 확인이 필요하다.) 이 녀석들은 os 내의 모든 application 의 dns query 에 대해 1차적인 응답을 책임진다.이런 deamon 들이 구체적으로 어떤 모습을 하고 있는지 살펴보자.
windows
아래처럼 windows 에서는 기본적으로 DNS client 라는 서비스를 띄워놓고 있으며, 이 녀석이 os level 에서의 DNS caching 을 해준다.[ref. 1] 이녀석에 대한 수정(ttl 등) 은 ref. 1 을 참고하자.linux
linux 도 비슷한 서비스를 가지고 있는데 대부분 nscd daemon, BIND, dnsmasq 이 셋중의 한 녀석을 사용한다.[ref. 1]applicaton level dns deamon
그리고 dns query 를 하게 되는 application 에서도 자신이 날린 dns query 에 대한 cache 를 가지고 있는 경우도 있다.우리가 가장 많이 사용하는 녀석은 역시 browser 인데 몇몇 browser 는 자체적으로 dns cache 를 하고 있다. 다른 browser 는 모르겠지만 firefox, chrome 은 하고 있다.[ref. 1, ref. 2]
댓글 없음:
댓글 쓰기