bind9 이용해 DNS 설치하기
도메인 등록 업체에서 구매한 도메인이 있는데, 그 도메인으로 접속했을 때, 내 서버로 접속이 되도록 하고 싶다!
카페24 같은 경우, 도메인 등록도 할 수 있고, 그 도메인을 자신들이 호스팅하는 서버로 바로 연결도 시켜주고 있어서 이런 작업이 필요없지만...
나처럼 도메인 따로 구입해놓고 자체적으로 웹서버를 돌릴려고 한다면, 이 둘을 연결해줄 필요가 있다...
이럴 때 필요한 것이 도메인 네임 서버, DNS 되시겠다.
자체적으로 DNS를 운영하면 소위 3차 도메인도 내 맘대로 만들어서 사용할 수 있다.
aaa.com 도 가능하지만, aaa.aaa.com, bbb.aaa.com 같이 앞에 다른 이름 넣는게 가능하다는 말쌈~~
그럼, 우분투에서 사용할 수 있는 DNS 프로그램을 설치해보자.. 그 이름은 bind9!
아참! 네임서버가 제대로 돌아가려면 53번 포트가 열려있어야 한다.
설치는 아래처럼...
$ sudo apt-get install bind9 bind9utils
주루룩~ 잘 설치가 된다.
설치중 보이는 로그중에 /etc/bind/rndc.key 를 생성했다는 메세지도 보인다.
나중에 써먹을때가 있을지도...
wrote key file "/etc/bind/rndc.key"
이제 설정을 하나씩 해 보자..
현재 aaa.com 으로 사용할 서버에서 작업한다고 가정하고 출발~
/etc/hosts 수정
127.0.0.1 localhost
123.123.123.123 aaa.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
이 서버로 접속해서 여기가 어디요? 하고 물어보는 것들에게 'aaa.com'이요~ 라고 이야기해 줄 수 있게 추가를 해 주자.
resolv.conf 수정
resolv.conf 파일이 머하는 녀석이냐? 하니, 도메인네임서버가 어디 있는지 시스템에게 알려주는 녀석이라네.
서버에 터미널 로그인을 하고, /etc/resolv.conf 파일을 편집해 보자.
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
기본적으로는 위처럼 되어 있는데...흠...
127.0.0.1 은 localhost 를 의미한다고 알고 있는데, 127.0.1.1 은 머지??? 하고 검색을 해보니 데비안 리눅스에서 이것도 루프백 아이피라고 하네. 좀 더 자세한거는 설명하기 어렵...ㅠㅠ
암튼, 네임서버가 127.0.1.1 즉, 바로 내 자신, 니가 보고 있는 이 서버에 설치되어 있다~~ 라는 설정이 되겠다.
resolv.conf 에 nameserver 를 아래처럼 여러개 등록할 수도 있다.
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
nameserver 168.126.63.1
nameserver 항목외에 domain, search 항목도 작성할 수 있는데. domain 에는 로컬 도메인 네임을 적어주면되고, 안 적으면, search 에 지정한 항목을 알아서 사용한다고 한다. (로컬 도메인은 머여? 아...어렵다...)
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
domain aaa.com
nameserver 127.0.1.1
search otherdomain.com
bind9의 설정 파일 /etc/bind/named.conf
열어보니 아래처럼 되어있다. "손대지 마라!, zone 을 추가하려면 /etc/bind/named.conf.local 에서 해라!" 라고 적혀있다.
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
시키는대로... /etc/bind/named.conf.local 을 열어보니
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
주석처리된거 빼고 아무것도 없네. 여기다가 zone 을 추가하라는 말이쥐? 예제는 없니?
zone 은 무슨 의미인가?
설치하고 있는 DNS 에서 관리할 도메인을 지정해주기 위한 거 같다.. "이 지역은 내 구역이야!" 라고.
"aaa.com 이라는 도메인은 내가 관리해..여긴 aaa.com 구역이야!" ...라는 의미로 아래처럼 추가를 해 줄수 있다고 한다.
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "aaa.com" {
type master;
file "/etc/bind/db.aaa.com";
};
type 에 master로 되어있는데, 사실 slave 타입도 있다. 그건 나중에 다시..
file 항목에 지정해준 "/etc/bind/db.aaa.com 을 zone 파일이라고 부른다.
저 파일도 만들어줘야한다.
어떻게??
미리 만들어져 있는 /etc/bind/db.local 을 복사해서 수정하는 방법으로 만들어 줄 수 있다.
/etc/bind/db.local 을 열어보까나...
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
하...
/etc/bind/ 로 가서 db.local 을 복사해서 db.aaa.com 파일을 만들고 아래처럼 수정을 하자.
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA aaa.com. root.aaa.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.aaa.com.
@ IN A 123.123.123.123
@ IN AAAA ::1
ns IN A 123.123.123.123
후후...localhost 대신에 aaa.com 을 넣고, 네임서버라는 의미로 폼나게 ns 를 더했을뿐이다.
123.123.123.123 은 서버의 고정 IP 되시겠다. 훼이크다.
여기까지하고 bind9 을 재시작을 해서 추가한 설정들이 적용되도록 하자.
$ sudo service bind9 restart
도메인을 등록한 회사 사이트에 가서 aaa.com 도메인의 네임서버를 ns.aaa.com이라고 설정을 해야겠네.
이렇게 되면, 어디서든 aaa.com 으로 접속하려고 하면, ns.aaa.com(123.123.123.123) 에 가서 aaa.com 이 어디요? 라고 묻게되는데, resolv.conf 에 aaa.com이 등록되어있으니 이 서버로 연결되는 것....이 맞나?
먼가 이해가 덜 된 부분이 있지만, 요기까지!
언제 날 봐서, 도메인 네임 운영 부분 전체에 대해서 한번 정리를 해야겠다.
끝!
'우분투' 카테고리의 다른 글
[우분투] 14.04에서 아파치 가상호스트로 두 개 사이트 운영하기 (2) | 2014.10.28 |
---|---|
[우분투] 14.04에서 서버에 도메인 네임 추가하기 (0) | 2014.10.28 |
[우분투] 14.04에서 apache2 루트 디렉토리 변경하기 (2) | 2014.10.28 |
[우분투] 14.04에서 apache2, php5, mysql 설치 - LAMP (0) | 2014.10.27 |
[우분투] 우분투 14.04 LTS 설치 (0) | 2014.10.27 |
댓글