DNS(Domain Name Server)은 IP주소와 컴퓨터 이름을 상호 변환시킵니다. (oops4u.com <-> 123.123.123.123)
resolver에서 hosts 파일과 DNS 데이터베이스에서 매핑(컴퓨터 이름과 IP의 조합)을 기술한 맵을 찾도록 설정할 수 있습니다.
Resolver
/etc/host.conf (해석기 설정 파일)
/etc/hosts (로컬 호스트 데이터베이스)
/etc/resolv.conf (해석기 설정 파일)
1. /etc/sysconfig/network 네트워크 설정
# /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=ns1.test.com (네임서버로 사용할 도메인이름)
2. /etc/host.conf 파일 편집
order 라는 옵션으로 네임 resolve 메커니즘이 시도되는 순서를 콤마(,)로 나열합니다. (메소드: hosts, bind, nis)
# vi /etc/host.conf
order hosts, bind
hosts에서 맵을 찾아보고 그 다음 bind에서 찾아본다는 의미입니다.
3. /etc/hosts 파일 편집
이 파일에는 컴퓨터 이름과 IP주소가 포함되어 있어야 합니다.
IP_address hostname [aliases...]
# vi /etc/hosts
127.0.0.1 localhost
146.82.138.7 master.debian.org master
209.237.226.90 www.opensource.org
127.0.0.1 은 로컬 컴퓨터에 대한 IP 주소로 변경하지 말아야 합니다.
그 다음줄 부터 보유하고 있는 고정 아이피를 적습니다.
4. /etc/resolv.conf 파일 편집
이 파일에 네임서버를 지정해 주어야 합니다.
# vi /etc/resolv.conf
nameserver 123.123.123.123
Bind(Berkeley Internet Name Daemon)
네임서버 기능은 Bind 패키지의 named 라는 프로그램으로 이루어집니다.
예전에는 bind버전에서는 chroot 폴더를 사용하지 않고, /var/named/ 에 모든 zone파일과 named.conf 파일이 있었지만,
보안상의 문제로 인하여 named.conf파일을 대체한 파일은 /var/named/chroot/etc 디렉토리에, zone파일은
/var/named/chroot/var/named에 보관됩니다.
1. Bind를 설치
# yum install bind* caching-nameserver
bind 9.3 부터는 named.conf 대신 name.caching-nameserver.conf 를 사용합니다.
2. Bind 설정 파일 편집
외부 접속을 허용한다면 다음처럼 변경한다.
# vi /etc/named.caching-nameserver.conf
options {
//listen-on port 53 { 127.0.0.1; };
listen-on port 53 { any; };
query-source port 53;
//allow-query { localhost; };
//allow-query-cache { localhost; };
allow-query { any; };
allow-query-cache { any; };
};
view localhost_resolver {
//match-clients { localhost; };
//match-destinations { localhost; };
match-clients { any; };
match-destinations { any; };
// zone 파일 경로
include "/etc/named.rfc1912.zones";
};
3. zone 파일 설정 (추가할 도메인에 대해 zone 추가)
# vi /etc/named.rfc1912.zones
zone "aaa.com" IN {
type master;
file "aaa.com.zone";
allow-update { none; };
};
zone "33.22.11.in-addr.arpa" IN {
type master;
file "aaa.com.rev";
allow-update { none; };
}
zone "bbb.com" IN {
type master;
file "bbb.com.zone";
allow-update { none; };
};
4. zone 파일 생성
# cd /var/named/chroot/var/named
# cp -p localhost.zone aaa.com.zone
# vi aaa.com.zone
$TTL 86400
@ IN SOA ns1.aaa.com. webmaster.aaa.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns1.aaa.com.
IN MX 10 mail
IN A 123.123.123.123
aaa.com IN TXT "v=spf1 ip4:55.55.55.0/24 -all"
ns1 IN A 123.123.123.123
oops IN A 123.123.123.123
mail IN A 55.55.55.55
www IN CNAME oops
wiki IN CNAME oops
5. reverse 파일 생성
# cd /var/named/chroot/var/named
# cp -p localhost.zone aaa.com.rev
# vi aaa.com.rev
$TTL 86400
@ IN SOA ns1.aaa.com. webmaster.aaa.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns1.aaa.com.
44 IN PTR ns1.aaa.com.
$TTL 86400 - 캐싱 서버가 도메인의 값을 가지는 시간
SOA(Start Of Authority) - 네임서버(FQDN), 관리자 메일 주소, 갱신인식형식(serial: 일반적으로 YYYYMMDDnn)...
NS(Name Server) - 도메인을 관리할 네임서버 지정
MX(Mail Exchanger) - 도메인에 대한 메일서버 지정
A(Address Record) - 호스트 이름과 IP 주소 매칭
TXT(Text) - 관련된 정보나 SPF레코드 작성
CNAME(Canonical NAME) - 컴퓨터 하나에 여러개의 이름을 부여
6. conf 파일 / zone 파일 문법 체크
named-checkconf [location conf file]
named-checkzone [check domain] [location zone file]
# named-checkconf /etc/named.caching-nameserver.conf
# named-checkconf /etc/named.rfc1912.zones
# named-checkzone aaa.com /var/named/chroot/var/named/aaa.com.zone
zone aaa.com/IN: loaded serial 42
OK
7. 데몬 재실행
# /etc/init.d/named restart
8. chkconfig 변경
# chkconfig --level 3 named on // runlevel3 터미널 부팅시 httpd 적재