티스토리 뷰

리눅스는 resolver가 DNS를 풀이하는데, 설정 파일은 [ /etc/resolv.conf ]에 위치하고 있습니다. 간략한 파일 편집을 위한 옵션은 여기를 참고하도록 합니다,

 

DNS는 nameserver option을 사용해서 세팅하게 되는데 형식은 아래와 같습니다.

 

$ cat /etc/resolv.conf
nameserver 192.168.0.1
nameserver 192.168.0.2
nameserver 192.168.0.3

 

하지만 이 설정에도 임계치가 있으니... 앞서 링크에서 설명되어 있지만 MAXNS 값은 현재 3으로 <resolv.h>에 선언되어 있습니다. (모든 커널이 꼭 그러한것은 아닙니다) 이 값으로 인해서 [ /etc/resolv.conf ] 에 nameserver option으로 아무리 많은 값을 세팅해도 실제 53번 port를 사용해서 DNS 질의하는 packet을 3번째 설정된 [ 192.168.0.3 ]까지만 루틴을 돌게 되는데요,

 

자, 실제로 그런지 테스트를 위한 방법은 간단합니다. 커널에서 기본 제공되는 gethostbyname() 함수를 사용하는 방법인데, 해당 함수는 도메인을 인자로 받고 .(dot) 형식의 인터넷 주소를 return하기 때문에 내부적으로 DNS query를 사용한다는 점을 이용합니다. 간단한 프로그램을 구현해서 돌려보면 결과는 당연히 3번째 설정된 nameserver 까지만 루틴됩니다. 관련해서 IPv6 설정은 추후에 덧붙이도록 하겠습니다.

 

 

 

'개발 > Linux' 카테고리의 다른 글

vi 문자열 치환  (0) 2013.07.18
Why do a lot of #defines in the kernel use do { ... } while(0)?  (0) 2013.05.09
kmalloc, vmalloc...  (0) 2012.04.18
UTC (Universal Time Coordinated)  (0) 2012.03.13
file_operations - compat_ioctl()  (0) 2012.03.07
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday