DNS 서버란?
- 웹 브라우저나 FTP 클라이언트를 사용할 때 URL을 사용한다. 실제 원하는 서버에 접근하려면 URL을 해당 컴퓨터의 IP주소로 변환시켜아한다. www.naver.com 같은 도메인을 IP 주소로 변환해주는 서버이다.
도메인 변환 순서
1. Web Browser, Command에 도메인네임을 입력한다.
www.nate.com, http://www.nate.com
2. /etc/host.conf (hosts참조, DNS질의) 우선순위
hosts, bind
2-1. hosts : /etc/hosts 파일을 우선 참조하여 해석
2-2. bind : /etc/resolv.conf 파일에 저장된 nameserver에게 질의
3. /etc/hosts 을 참조하거나 /etc/resolv.conf 에 저장된 nameserver
질의가 성공하면, IP주소를 획득하고, 다음 통신을 진행하고,
실패하고 통신을 진행하고 않는다.
도메인의 종류
일반(gTLD) 도메인 : com, net, org, edu, ...
국가(ccTLD) 도메인 : kr, fr, sp
특수 도메인 : arpa
DNS 레코드
A : IPv4 Address, 정방향 조회 (DomainName -> IP Address)
AAAA : IPv6 Address, 정방향 조회
mx : Mail eXchanger, 메일 교환기(서버)
ns : Name Server , 네임(DNS)서버
soa : Start Of Authority, 권한의 시작(Master NS)
cname : Canonical Name, 별칭 이름
ptr : Pointer, 역방향 조회 (IP Address -> DomainName)
txt : Text, 서버의 대한 설명
사용을 안하면서 역할의 바뀐 상태,
SPF(Sender Policy Framework)
필요한 패키지
네임서버 운영에 필요한 패키지들
- bind, bind-libs, bind-utils, (bind-chroot)
DNS 조회 유틸리티
1. nslookup 사용법
nslookup [-type=레코드] 도메인네임 [DNS IP]
-type=레코드 : 질의 도메인네임 유형을 지정한다.
생략할 경우 기본값 -type=a (IPv4)
DNS IP : 특정 DNS 서버(IP)로 질의하고 싶을 때 사용
생략할 경우, 시스템 등록된 기본 DNS로 질의
2. dig 사용법
dig [-x] [@DNS IP] 도메인네임 [레코드] [+옵션]
-x : 역방향 조회시 사용, 생략할 경우 정방향 조회
@DNS IP : 특정 DNS 서버(IP)로 질의하고 싶을 때 사용
생략할 경우, 시스템 등록된 기본 DNS로 질의
레코드 : 질의 도메인네임 유형을 지정한다.
생략할 경우 기본값 -type=a (IPv4)
+옵션 : +short - 응답 중 Answer 섹션의 내용만 출력
NS(네임서버) 구축 순서
rpm -e bind-chroot (CentOS5 에는 기본적으로 설치되어있다. 간단하게 구축하기 위해 삭제하고 설치하자.)
0. 패키지: bind, bind-utils, bind-libs, ...
파 일: 설정 - /etc/named.conf
/etc/rndc.conf
/etc/rndc.key
/etc/named.rfc1912.zones <- 추가
/etc/named.root.hints <- 추가
영역 - /var/named/*.zone
1. 설정파일 수정: /etc/named.conf
2. 영역 설정파일: /var/named/*.zone
$TTL 시간 ; 기본 TTL 시간을 설정
$ORIGIN 영역명.
영역명. IN SOA ; Master NS 관련 설정
마스터NS 관리자E-Mail ( 시리얼 갱신주기 재시도 만료 최소TTL )
영역명. IN NS ; Master/Slave NS 나열
3. 설정파일 점검명령어: named-checkconf, named-checkzone
ZONE 파일 설정하는 여러가지 방법
1. $ORIGIN 과 상관없이 설정하는 방법: 모든 도메인명에 .으로
마무리를 한다.
2. $ORIGIN 을 적극적으로 이용하는 방법: ORIGIN == @, .을 생략하면
ORIGIN(@)이 뒤에 따라붙는다.
※ 왼쪽(질문) 도메인이 생략된 경우 위에 질문 도메인이 아래로 상속된다.
3. $ORIGIN 을 수정, 이용하는 방법(.을 생략해도 상관없는 방법)
----------------------------------------실습----------------------------------------
# yum install bind bind-utils bind-libs
네임서버를 구축하기 위해 bind 패키지들을 설치해주자.
# vi /etc/named.conf
파일을 수정하자. 파일 내용은
----------------------------------------------------------------------
options {
listen-on port 53 { any; };
// 나의 어떤 IP와 포트로 청취할 것인가의 옵션이다.
listen-on-v6 port 53 { none; };
// 위 옵션과 같이 IPv6 의 IP 와 포트를 청취할 것인가이다.
directory "/var/named";
// zone 파일이 있을 기본값 위치
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
// 어떤 IP한테서의 쿼리를 허용할 것인가이다.
allow-query-cache { any; };
// 캐시 서비스에 대한 것을 어떠한 IP한테서의 쿼리를 허용할 것인가이다.
};
include "/etc/named.rfc1912.zones";
// sample 로 있는 cache를 이용했다. cache에 대한 zone 파일이 저장되어 있다.
// 이는 /etc/named.rfc1912.zones 불러온다는 뜻이다.
ZONE "cgh.co.kr" IN {
type master;
file "cgh.co.kr.zone";
};
// DNS 서버를 운영하기 위하여 나만의 ZONE 파일을 정의하엿다.
----------------------------------------------------------------------
# vi /var/named/cgh.co.kr.zone
으로 설정파일에서 만든 zone 파일을 생성하자.
zone 파일의 내용은
----------------------------------------------------------------------
$ORIGIN cgh.co.kr.
$TTL 1D
@ IN SOA ns1 root(
2020072200 ; Serial Number
3H ; Refresh
15M ; Retry
1W ; Expire
1D ) ; Minimum TTL
// SOA 설정값이다
cgh.co.kr. IN NS ns1.cgh.co.kr.
// 네임서버 지정
ns1.cgh.co.kr. IN A 192.168.200.103
// 네임서버 IP 지정
www.cgh.co.kr. IN A 123.123.123.123
ftp IN A 222.222.222.222
// 테스트 해보기위한 각종 도메인 지정
----------------------------------------------------------------------
테스트를 위해
# vi /etc/resolv.conf
에서 DNS 서버를 루프백으로 바꾸어 테스트하자.
# iptables -I INPUT -p udp --dport 53 -j ACCEPT
# service named restart
방화벽을 개방시키고 서비스를 구동하여 리눅스와 윈도우에서 테스트해보자.
이 처럼 캐시 DNS 서비스와 임의로 만든 ZONE 파일이 잘 작동되는 것을 확인할 수 있었다.
'실습 > [CentOS]' 카테고리의 다른 글
[CentOS] 메일 서버 개념과 구축 (0) | 2020.07.27 |
---|---|
[CentOS] DNS서버 레코드Type 설정, Master/Slave 서버 (0) | 2020.07.23 |
[CentOS] Telnet 서버와 SSH 서버 구축과 공개키 인증 (0) | 2020.06.30 |
[CentOS] 시스템의 안정성을 위한 정기적인 시스템 백업 (0) | 2020.06.29 |